Patch level : 10.0
Files correlati : lv4.exe lv4900a.msk lv4900.rep Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/branches/R_10_00@22538 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
c6cdc3fcd4
commit
c1f4f318d4
@ -14,6 +14,7 @@ int main(int argc, char** argv)
|
||||
case 5: lv4600(argc, argv); break; // Riclassificazione conti COGECO
|
||||
case 6: lv4700(argc, argv); break; // Riclassificazione tabelle COGECO
|
||||
case 7: lv4800(argc, argv); break; // Esportazione Bolle
|
||||
case 8: lv4900(argc, argv); break; // Aggiornamento prezzi
|
||||
default: lv4100(argc, argv); break; // Importazione movimenti contabili
|
||||
}
|
||||
return 0;
|
||||
|
1
lv/lv4.h
1
lv/lv4.h
@ -6,3 +6,4 @@ int lv4500(int argc, char* argv[]); // importazione fatture
|
||||
int lv4600(int argc, char* argv[]); // riclassificazione conti COGECO
|
||||
int lv4700(int argc, char* argv[]); // riclassificazione tabelle COGECO
|
||||
int lv4800(int argc, char* argv[]); // esportazione bolle
|
||||
int lv4900(int argc, char* argv[]); // aggiornamento prezzi
|
||||
|
193
lv/lv4900.cpp
Normal file
193
lv/lv4900.cpp
Normal file
@ -0,0 +1,193 @@
|
||||
#include <applicat.h>
|
||||
#include <automask.h>
|
||||
#include <currency.h>
|
||||
#include <lffiles.h>
|
||||
#include <progind.h>
|
||||
#include <recarray.h>
|
||||
#include <relation.h>
|
||||
#include <report.h>
|
||||
|
||||
#include "lv4900a.h"
|
||||
#include "lvrcondv.h"
|
||||
|
||||
////////////////
|
||||
// MASCHERA //
|
||||
////////////////
|
||||
|
||||
class TPrezzi_mask : public TAutomask
|
||||
{
|
||||
private:
|
||||
|
||||
protected:
|
||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
|
||||
public:
|
||||
TPrezzi_mask() : TAutomask("lv4900a") { TPrice p; set(F_DECIMALS, p.decimals()); }
|
||||
};
|
||||
|
||||
bool TPrezzi_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
switch (o.dlg())
|
||||
{
|
||||
case F_DATA:
|
||||
if (e == fe_init && o.empty())
|
||||
{
|
||||
const TDate oggi(TODAY);
|
||||
const int curr_month = oggi.month();
|
||||
const int next_month = (((curr_month+2) % 12) / 3 * 3)+1;
|
||||
const int next_year = oggi.year() + (next_month < curr_month ? 1 : 0);
|
||||
const TDate d(1, next_month, next_year);
|
||||
o.set(d.string());
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
////////////////////////
|
||||
// TPrice_recordset //
|
||||
////////////////////////
|
||||
|
||||
class TPrice_recordset : public TISAM_recordset
|
||||
{
|
||||
int _mode;
|
||||
bool _roundup;
|
||||
int _decimals;
|
||||
real _perc, _incmin;
|
||||
|
||||
protected:
|
||||
virtual const TVariant& get_field(int logic, const char* field) const;
|
||||
|
||||
public:
|
||||
TPrice_recordset(const TMask& m);
|
||||
};
|
||||
|
||||
const TVariant& TPrice_recordset::get_field(int logic, const char* field) const
|
||||
{
|
||||
if ((logic == 0 || logic == LF_LVRCONDV) && strncmp(field, "NEW", 3) == 0)
|
||||
{
|
||||
const TFixed_string base(field+3);
|
||||
if (((_mode & 1) && (base == LVRCONDV_PREZZO)) || ((_mode & 2) && (base == LVRCONDV_PREZNOL)))
|
||||
{
|
||||
const real old_price = TISAM_recordset::get_field(logic, base).as_real();
|
||||
if (old_price > ZERO)
|
||||
{
|
||||
real new_price = old_price * (CENTO + _perc) / CENTO;
|
||||
if (_roundup)
|
||||
new_price.ceil(_decimals);
|
||||
else
|
||||
new_price.round(_decimals);
|
||||
if (new_price == old_price && _perc > ZERO)
|
||||
new_price += _incmin;
|
||||
TVariant& tmp = get_tmp_var();
|
||||
tmp.set(new_price);
|
||||
return tmp;
|
||||
}
|
||||
}
|
||||
}
|
||||
return TISAM_recordset::get_field(logic, field);
|
||||
}
|
||||
|
||||
|
||||
TPrice_recordset::TPrice_recordset(const TMask& m) : TISAM_recordset("USE LVRCONDV")
|
||||
{
|
||||
_mode = m.get_int(F_PREZZO);
|
||||
_decimals = m.get_int(F_DECIMALS);
|
||||
_roundup = m.get_bool(F_ARROTONDA);
|
||||
_perc = m.get_real(F_PERC);
|
||||
_incmin = m.get_real(F_MINIMO);
|
||||
|
||||
const TString4 nil = "???";
|
||||
const TString& por = m.get_bool(F_USEPORTO) ? m.get(F_PORTO) : nil;
|
||||
const TString& cco = m.get_bool(F_USECATCON) ? m.get(F_CATCON) : nil;
|
||||
const TString& cve = m.get_bool(F_USECATVEN) ? m.get(F_CATVEN) : nil;
|
||||
const bool cfven_needed = por != nil || cco != nil || cve != nil;
|
||||
|
||||
TString select;
|
||||
if (cfven_needed)
|
||||
{
|
||||
if (por != nil) select << "&&(CFVEN.CODPORTO==\""<< por << "\")";
|
||||
if (cco != nil) select << "&&(CFVEN.CODCATC==\"" << cco << "\")";
|
||||
if (cve != nil) select << "&&(CFVEN.CATVEN==\"" << cve << "\")";
|
||||
}
|
||||
|
||||
const TString& dca = m.get(F_FROMCODART);
|
||||
const TString& aca = m.get(F_TOCODART);
|
||||
if (dca.full() || aca.full())
|
||||
select << "&&(BETWEEN(CODART,\"" << dca << "\",\"" << aca << "\"))";
|
||||
|
||||
TString query;
|
||||
query << "USE LVRCONDV SELECT (BETWEEN(\""<< m.get(F_DATA) << "\",LVCONDV.DATAIN,LVCONDV.DATASC))";
|
||||
switch (_mode)
|
||||
{
|
||||
case 1: query << "&&(STR(PREZZO>0))"; break;
|
||||
case 2: query << "&&(STR(PREZNOL>0))"; break;
|
||||
default: query << "&&(STR((PREZZO>0)||(PREZNOL>0)))"; break;
|
||||
}
|
||||
query << select;
|
||||
query << "\nJOIN LVCONDV INTO CODCF==CODCF CODCONT==CODCONT";
|
||||
if (cfven_needed)
|
||||
query << "\nJOIN CFVEN INTO TIPOCF=\"C\" CODCF==CODCF";
|
||||
query << "\nFROM CODCF=" << m.get(F_FROMCLI) << "\nTO CODCF=" << m.get(F_TOCLI);
|
||||
|
||||
set(query);
|
||||
}
|
||||
|
||||
|
||||
////////////////////
|
||||
// Applicazione //
|
||||
////////////////////
|
||||
|
||||
class TAggiornamento_prezzi : public TSkeleton_application
|
||||
{
|
||||
public:
|
||||
virtual void main_loop();
|
||||
};
|
||||
|
||||
void TAggiornamento_prezzi::main_loop()
|
||||
{
|
||||
TPrezzi_mask m;
|
||||
while (m.run() == K_ENTER)
|
||||
{
|
||||
TPrice_recordset* pr = new TPrice_recordset(m);
|
||||
TReport rep;
|
||||
if (rep.load("lv4900"))
|
||||
{
|
||||
rep.set_recordset(pr);
|
||||
rep.preview();
|
||||
}
|
||||
|
||||
if (m.get_bool(F_DEFINITIVO) && yesno_box(TR("Si desiderano registrare i nuovi prezzi?")))
|
||||
{
|
||||
const int mode = m.get_int(F_PREZZO); // 1, 2, 3
|
||||
TProgind pi(pr->items(), title(), false, true);
|
||||
const TRectype& curr = pr->cursor()->curr();
|
||||
TFast_isamfile file(LF_LVRCONDV);
|
||||
for (bool ok = pr->move_first(); ok; ok = pr->move_next())
|
||||
{
|
||||
if (!pi.addstatus(1))
|
||||
break;
|
||||
file.curr() = curr;
|
||||
if (mode & 1)
|
||||
file.put(LVRCONDV_PREZZO, pr->get("NEW"LVRCONDV_PREZZO).as_real());
|
||||
if (mode & 2)
|
||||
file.put(LVRCONDV_PREZNOL, pr->get("NEW"LVRCONDV_PREZNOL).as_real());
|
||||
const int err = file.rewrite();
|
||||
if (err != NOERR)
|
||||
{
|
||||
cantwrite_box(file.description());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int lv4900(int argc, char* argv[])
|
||||
{
|
||||
TAggiornamento_prezzi a;
|
||||
a.run(argc, argv, TR("Aggiornamento prezzi"));
|
||||
return 0;
|
||||
}
|
66
lv/lv4900.rep
Normal file
66
lv/lv4900.rep
Normal file
@ -0,0 +1,66 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<report name="lv4900" orientation="1" lpi="8">
|
||||
<description>Aggiornamento prezzi</description>
|
||||
<font face="Courier New" size="8" />
|
||||
<section type="Head" pattern="1" />
|
||||
<section type="Head" level="1" pattern="1" />
|
||||
<section repeat="1" type="Head" level="2" page_break="1" pattern="1">
|
||||
<groupby>CODCF+CODCONT</groupby>
|
||||
<field border="3" y="0.5" type="Linea" width="120" height="0" pattern="1" />
|
||||
<field border="2" x="71" y="0.5" type="Linea" height="3.5" pattern="1" />
|
||||
<field border="2" x="94" y="0.5" type="Linea" height="3.5" pattern="1" />
|
||||
<field x="13" y="1" type="Numero" align="right" link="LVCONDV.CODCF" width="6" pattern="1">
|
||||
<source>CODCF</source>
|
||||
</field>
|
||||
<field x="20" y="1" type="Stringa" width="50" pattern="1">
|
||||
<prescript description="H2.0 PRESCRIPT">MESSAGE ISAMREAD,CLIFO,TIPOCF='C'!CODCF=CODCF,RAGSOC</prescript>
|
||||
</field>
|
||||
<field x="72" y="1" type="Testo" width="10" pattern="1" text="Contratto" />
|
||||
<field x="83" y="1" type="Numero" align="right" link="LVCONDV.CODCONT" width="10" pattern="1">
|
||||
<source>CODCONT</source>
|
||||
</field>
|
||||
<field x="95" y="1" type="Data" width="10.5" pattern="1">
|
||||
<source>LVCONDV.DATAIN</source>
|
||||
</field>
|
||||
<field x="106" y="1" type="Data" width="10.5" pattern="1">
|
||||
<source>LVCONDV.DATASC</source>
|
||||
</field>
|
||||
<field border="3" y="2.5" type="Linea" width="120" height="0" pattern="1" />
|
||||
<field y="3" type="Testo" width="20" pattern="1" text="Articolo" />
|
||||
<field x="20" y="3" type="Testo" width="50" pattern="1" text="Descrizione" />
|
||||
<field x="72" y="3" type="Testo" align="right" width="10" pattern="1" text="Vecchio" />
|
||||
<field x="83" y="3" type="Testo" align="right" width="10" pattern="1" text="Prezzo" />
|
||||
<field x="95" y="3" type="Testo" align="right" width="10" pattern="1" text="Vecchio" />
|
||||
<field x="106" y="3" type="Testo" align="right" width="10" pattern="1" text="Noleggio" />
|
||||
<field border="2" y="4" type="Linea" width="120" height="0" pattern="1" />
|
||||
</section>
|
||||
<section type="Body" pattern="1" />
|
||||
<section type="Body" level="1" pattern="1">
|
||||
<field type="Stringa" link="ANAMAG.CODART" width="20" pattern="1">
|
||||
<source>CODART</source>
|
||||
</field>
|
||||
<field x="20" type="Stringa" width="50" pattern="1">
|
||||
<prescript description="B1.0 PRESCRIPT">MESSAGE ISAMREAD,ANAMAG,CODART=CODART,DESCR</prescript>
|
||||
</field>
|
||||
<field border="2" x="71" type="Linea" pattern="1" />
|
||||
<field x="72" type="Prezzo" align="right" width="10" pattern="1" hide_zero="1" text="#########,@@">
|
||||
<source>PREZZO</source>
|
||||
</field>
|
||||
<field x="83" type="Prezzo" align="right" width="10" pattern="1" hide_zero="1" text="#########,@@">
|
||||
<source>NEWPREZZO</source>
|
||||
</field>
|
||||
<field border="2" x="94" type="Linea" pattern="1" />
|
||||
<field x="95" type="Prezzo" align="right" width="10" pattern="1" hide_zero="1" text="#########,@@">
|
||||
<source>PREZNOL</source>
|
||||
</field>
|
||||
<field x="106" type="Prezzo" align="right" width="10" pattern="1" hide_zero="1" text="#########,@@">
|
||||
<source>NEWPREZNOL</source>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Foot" pattern="1" />
|
||||
<section type="Foot" level="1" pattern="1" />
|
||||
<section type="Foot" level="2" pattern="1" />
|
||||
<sql>USE LVRCONDV
|
||||
JOIN LVCONDV INTO CODCF==CODCF CODCONT==CODCONT
|
||||
</sql>
|
||||
</report>
|
33
lv/lv4900a.h
Normal file
33
lv/lv4900a.h
Normal file
@ -0,0 +1,33 @@
|
||||
#define F_PREZZO 201
|
||||
#define F_DATA 202
|
||||
#define F_PERC 203
|
||||
#define F_DECIMALS 204
|
||||
#define F_ARROTONDA 205
|
||||
#define F_MINIMO 206
|
||||
#define F_DEFINITIVO 207
|
||||
|
||||
#define F_FROMCODART 211
|
||||
#define F_FROMDESCART 212
|
||||
#define F_TOCODART 213
|
||||
#define F_TODESCART 214
|
||||
|
||||
#define F_USEPORTO 221
|
||||
#define F_PORTO 222
|
||||
#define F_DPORTO 223
|
||||
#define F_USECATCON 224
|
||||
#define F_CATCON 225
|
||||
#define F_DCATCON 226
|
||||
#define F_USECATVEN 227
|
||||
#define F_CATVEN 228
|
||||
#define F_DCATVEN 229
|
||||
|
||||
#define F_FROMCLI 231
|
||||
#define F_FROMRAGSOC 232
|
||||
#define F_TOCLI 233
|
||||
#define F_TORAGSOC 234
|
||||
|
||||
#define F_FROMCATVEN 241
|
||||
#define F_FROMCATDESC 242
|
||||
#define F_TOCATVEN 243
|
||||
#define F_TOCATDESC 244
|
||||
|
271
lv/lv4900a.uml
Normal file
271
lv/lv4900a.uml
Normal file
@ -0,0 +1,271 @@
|
||||
#include "lv4900a.h"
|
||||
|
||||
TOOLBAR "topbar" 0 0 0 2
|
||||
#include <elabar.h>
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Aggiornamento prezzi" 0 2 0 0
|
||||
|
||||
GROUPBOX DLG_NULL 78 5
|
||||
BEGIN
|
||||
PROMPT 1 0 "@bParametri elaborazione"
|
||||
END
|
||||
|
||||
RADIOBUTTON F_PREZZO 1 56
|
||||
BEGIN
|
||||
PROMPT 1 0 ""
|
||||
ITEM "1|Prezzo"
|
||||
ITEM "2|Nolo"
|
||||
ITEM "3|Entrambi"
|
||||
FLAGS "Z"
|
||||
END
|
||||
|
||||
BOOLEAN F_DEFINITIVO
|
||||
BEGIN
|
||||
PROMPT 55 1 "Calcolo definitivo"
|
||||
END
|
||||
|
||||
NUMBER F_PERC 5 1
|
||||
BEGIN
|
||||
PROMPT 2 2 "% variazione "
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
LIST F_ARROTONDA 1 12
|
||||
BEGIN
|
||||
PROMPT 27 2 "Arrotondamento "
|
||||
ITEM "0|matematico"
|
||||
ITEM "1|per eccesso"
|
||||
END
|
||||
|
||||
NUMBER F_DECIMALS 1
|
||||
BEGIN
|
||||
PROMPT 66 2 "Decimali "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
CURRENCY F_MINIMO 5
|
||||
BEGIN
|
||||
PROMPT 2 3 "Aumento minimo "
|
||||
FLAGS "U"
|
||||
END
|
||||
|
||||
DATE F_DATA
|
||||
BEGIN
|
||||
PROMPT 61 3 "Data "
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 5
|
||||
BEGIN
|
||||
PROMPT 1 5 "@bCategorie"
|
||||
END
|
||||
|
||||
BOOLEAN F_USEPORTO
|
||||
BEGIN
|
||||
PROMPT 2 6 "Porto"
|
||||
MESSAGE FALSE CLEAR,F_PORTO|CLEAR,F_DPORTO
|
||||
MESSAGE TRUE ENABLE,F_PORTO|ENABLE,F_DPORTO
|
||||
END
|
||||
|
||||
STRING F_PORTO 3
|
||||
BEGIN
|
||||
PROMPT 18 6 ""
|
||||
USE %POR
|
||||
INPUT CODTAB F_PORTO
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_PORTO CODTAB
|
||||
OUTPUT F_DPORTO S0
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_DPORTO 50
|
||||
BEGIN
|
||||
PROMPT 25 6 ""
|
||||
USE %POR KEY 2
|
||||
INPUT S0 F_DPORTO
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice" CODTAB
|
||||
COPY OUTPUT F_PORTO
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
BOOLEAN F_USECATCON
|
||||
BEGIN
|
||||
PROMPT 2 7 "Cat. contabile"
|
||||
MESSAGE FALSE CLEAR,F_CATCON|CLEAR,F_DCATCON
|
||||
MESSAGE TRUE ENABLE,F_CATCON|ENABLE,F_DCATCON
|
||||
END
|
||||
|
||||
STRING F_CATCON 3
|
||||
BEGIN
|
||||
PROMPT 18 7 ""
|
||||
USE CCO
|
||||
INPUT CODTAB F_CATCON
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CATCON CODTAB
|
||||
OUTPUT F_DCATCON S0
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_DCATCON 50
|
||||
BEGIN
|
||||
PROMPT 25 7 ""
|
||||
USE CCO KEY 2
|
||||
INPUT S0 F_DCATCON
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice" CODTAB
|
||||
COPY OUTPUT F_CATCON
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
BOOLEAN F_USECATVEN
|
||||
BEGIN
|
||||
PROMPT 2 8 "Cat. vendita"
|
||||
MESSAGE FALSE CLEAR,F_CATVEN|CLEAR,F_DCATVEN
|
||||
MESSAGE TRUE ENABLE,F_CATVEN|ENABLE,F_DCATVEN
|
||||
END
|
||||
|
||||
STRING F_CATVEN 3
|
||||
BEGIN
|
||||
PROMPT 18 8 ""
|
||||
USE CVE
|
||||
INPUT CODTAB F_CATVEN
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CATVEN CODTAB
|
||||
OUTPUT F_DCATVEN S0
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_DCATVEN 50
|
||||
BEGIN
|
||||
PROMPT 25 8 ""
|
||||
USE CVE KEY 2
|
||||
INPUT S0 F_DCATVEN
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice" CODTAB
|
||||
COPY OUTPUT F_CATVEN
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 4
|
||||
BEGIN
|
||||
PROMPT 1 10 "@bClienti"
|
||||
END
|
||||
|
||||
NUMBER F_FROMCLI 6
|
||||
BEGIN
|
||||
PROMPT 2 11 "Dal "
|
||||
USE LF_CLIFO
|
||||
INPUT TIPOCF "C"
|
||||
INPUT CODCF F_FROMCLI
|
||||
DISPLAY "Codice" CODCF
|
||||
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||
DISPLAY "Sospeso@C" SOSPESO
|
||||
OUTPUT F_FROMCLI CODCF
|
||||
OUTPUT F_FROMRAGSOC RAGSOC
|
||||
ADD RUN cg0 -1 C
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_FROMRAGSOC 50
|
||||
BEGIN
|
||||
PROMPT 25 11 ""
|
||||
USE LF_CLIFO KEY 2
|
||||
INPUT TIPOCF "C"
|
||||
INPUT RAGSOC F_FROMRAGSOC
|
||||
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||
DISPLAY "Codice" CODCF
|
||||
DISPLAY "Sospeso@C" SOSPESO
|
||||
COPY OUTPUT F_FROMCLI
|
||||
ADD RUN cg0 -1 C
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
NUMBER F_TOCLI 6
|
||||
BEGIN
|
||||
PROMPT 2 12 "Al "
|
||||
COPY USE F_FROMCLI
|
||||
INPUT TIPOCF "C"
|
||||
INPUT CODCF F_TOCLI
|
||||
COPY DISPLAY F_FROMCLI
|
||||
OUTPUT F_TOCLI CODCF
|
||||
OUTPUT F_TORAGSOC RAGSOC
|
||||
ADD RUN cg0 -1 C
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_TORAGSOC 50
|
||||
BEGIN
|
||||
PROMPT 25 12 ""
|
||||
COPY USE F_FROMRAGSOC
|
||||
INPUT TIPOCF "C"
|
||||
INPUT RAGSOC F_TORAGSOC
|
||||
COPY DISPLAY F_FROMRAGSOC
|
||||
COPY OUTPUT F_TOCLI
|
||||
ADD RUN cg0 -1 C
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 4
|
||||
BEGIN
|
||||
PROMPT 1 14 "@bArticoli"
|
||||
END
|
||||
|
||||
STRING F_FROMCODART 20 14
|
||||
BEGIN
|
||||
PROMPT 2 15 "Dal "
|
||||
USE LF_ANAMAG
|
||||
INPUT CODART F_FROMCODART
|
||||
DISPLAY "Codice@20" CODART
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
DISPLAY "Sospeso@C" SOSPESO
|
||||
OUTPUT F_FROMCODART CODART
|
||||
OUTPUT F_FROMDESCART DESCR
|
||||
CHECKTYPE NORMAL
|
||||
ADD RUN ve2 -3
|
||||
END
|
||||
|
||||
STRING F_FROMDESCART 50
|
||||
BEGIN
|
||||
PROMPT 25 15 ""
|
||||
USE LF_ANAMAG KEY 2
|
||||
INPUT DESCR F_FROMDESCART
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
DISPLAY "Codice@20" CODART
|
||||
DISPLAY "Sospeso@C" SOSPESO
|
||||
COPY OUTPUT F_FROMCODART
|
||||
CHECKTYPE NORMAL
|
||||
ADD RUN ve2 -3
|
||||
END
|
||||
|
||||
STRING F_TOCODART 20 14
|
||||
BEGIN
|
||||
PROMPT 2 16 "Al "
|
||||
COPY USE F_FROMCODART
|
||||
INPUT CODART F_TOCODART
|
||||
COPY DISPLAY F_FROMCODART
|
||||
OUTPUT F_TOCODART CODART
|
||||
OUTPUT F_TODESCART DESCR
|
||||
CHECKTYPE NORMAL
|
||||
ADD RUN ve2 -3
|
||||
END
|
||||
|
||||
STRING F_TODESCART 50
|
||||
BEGIN
|
||||
PROMPT 25 16 ""
|
||||
COPY USE F_FROMDESCART
|
||||
INPUT DESCR F_TODESCART
|
||||
COPY DISPLAY F_FROMDESCART
|
||||
COPY OUTPUT F_TOCODART
|
||||
CHECKTYPE NORMAL
|
||||
ADD RUN ve2 -3
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
|
Loading…
x
Reference in New Issue
Block a user