diff --git a/lv/lv0.cpp b/lv/lv0.cpp index 9d190eb38..1c74417ef 100755 --- a/lv/lv0.cpp +++ b/lv/lv0.cpp @@ -13,5 +13,5 @@ int main(int argc, char** argv) case 4: lv0500(argc, argv); break; // passaggi planning per contratto lv0500 (e periodi di sospensione) default: lv0100(argc, argv); break; // gestione tabelle lv0100 } - return 0; + return 0; } diff --git a/lv/lv0400d.h b/lv/lv0400d.h new file mode 100755 index 000000000..ca754df66 --- /dev/null +++ b/lv/lv0400d.h @@ -0,0 +1,12 @@ +//Definizione campi per maschera lv0400D +//Stampa Elenco Clienti per Articolo +#define F_CODART 201 +#define F_DESART 202 +#define F_CODCF_DA 203 +#define F_RAGSOC_DA 204 +#define F_CODCF_A 205 +#define F_RAGSOC_A 206 +#define F_PREZZO_DA 207 +#define F_PREZZO_A 208 +#define F_ZONA 209 +#define F_DESZONA 210 \ No newline at end of file diff --git a/lv/lv0400d.rep b/lv/lv0400d.rep new file mode 100755 index 000000000..82288ae5b --- /dev/null +++ b/lv/lv0400d.rep @@ -0,0 +1,82 @@ + + + Stampa Elenco Clienti per Articolo + +
+ + + MESSAGE _TODAY + + + + MESSAGE _PAGENO + + + + + + + + + + + #F_CODART_TO + + + + + + + #F_DESART_TO + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + 169.CODCF + + + 1000@.RAGSOC + + + 169.PREZZO + + + 169.MINCIC + + + 169.DOTIN + +
+
+
+ USE 169 KEY 1 +SELECT (CODART==#F_CODART_TO)(BETWEEN(17.CODZONA,#F_ZONA_FROM,#F_ZONA_FROM))(STR((PREZZOE;=#F_PREZZO_FROM))(PREZZOC;=IF(#F_PREZZO_TO==0,999999999999999999,#F_PREZZO_TO)))) +JOIN 20 TO 169 ALIAS 1000 INTO TIPOCF=="C" CODCF==CODCF +JOIN 17 TO 169 ALIAS 2000 INTO TIPOCF=="C" CODCF==CODCF +FROM CODCF=#F_CODCF_FROM +TO CODCF=#F_CODCF_TO + \ No newline at end of file diff --git a/lv/lv0400d.uml b/lv/lv0400d.uml new file mode 100755 index 000000000..4a6bb92f3 --- /dev/null +++ b/lv/lv0400d.uml @@ -0,0 +1,154 @@ +#include "lv0400d.h" + +TOOLBAR "topbar" 0 0 0 2 +#include "printbar.h" +ENDPAGE + +PAGE "Stampa Elenco Clienti per Articolo" -1 -1 40 5 + +GROUPBOX DLG_NULL 80 5 +BEGIN + PROMPT 1 1 "@b Parametri Articolo" +END + +STRING F_CODART 20 +BEGIN +PROMPT 2 3 "Articolo " +FLAG "U" +USE 47 +INPUT CODART F_CODART +DISPLAY "Codice@20" CODART +DISPAY "Descrizione@50" DESCR +OUTPUT F_CODART CODART +OUTPUT F_DESART DESCR +CHECKTYPE REQUIRED +FIELD #F_CODART_TO +END + +STRING F_DESART 50 +BE +PR 2 4 "Descrizione" +USE 47 KEY 2 +INPUT DESCR F_DESART +DISPLAY "Codice@20" CODART +DISPALY "Descrizione@50" DESCR +OUTPUT F_CODART CODART +OUTPUT F_DESART DESCR +CHECKTYPE REQUIRED +FIELD #F_DESART_TO +END + +GROUPBOX DLG_NULL 80 4 +BEGIN + PROMPT 1 7 "@b Parametri Cliente" +END + +NUMBER F_CODCF_DA 6 +BEGIN + PROMPT 2 8 "Da Cliente " + FLAGS "U" + KEY 1 + USE LF_CLIFO + INPUT TIPOCF "C" + INPUT CODCF F_CODCF_DA + DISPLAY "Codice" CODCF + DISPLAY "Ragione Sociale@50" RAGSOC + OUTPUT F_CODCF_DA CODCF + OUTPUT F_RAGSOC_DA RAGSOC + FIELD #F_CODCF_FROM +END + +STRING F_RAGSOC_DA 50 +BEGIN + PROMPT 25 8 "" + KEY 2 + USE LF_CLIFO KEY 2 + INPUT TIPOCF "C" + INPUT RAGSOC F_RAGSOC_DA + DISPLAY "Ragione Sociale@50" RAGSOC + DISPLAY "Codice" CODCF + OUTPUT F_CODCF_DA CODCF + OUTPUT F_RAGSOC_DA RAGSOC +END + +NUMBER F_CODCF_A 6 +BEGIN + PROMPT 2 9 "A Cliente " + FLAGS "U" + KEY 1 + USE LF_CLIFO + INPUT TIPOCF "C" + INPUT CODCF F_CODCF_A + DISPLAY "Codice" CODCF + DISPLAY "Ragione Sociale@50" RAGSOC + OUTPUT F_CODCF_A CODCF + OUTPUT F_RAGSOC_A RAGSOC + FIELD #F_CODCF_TO +END + +STRING F_RAGSOC_A 50 +BEGIN + PROMPT 25 9 "" + KEY 2 + USE LF_CLIFO KEY 2 + INPUT TIPOCF "C" + INPUT RAGSOC F_RAGSOC_A + DISPLAY "Ragione Sociale@50" RAGSOC + DISPLAY "Codice" CODCF + OUTPUT F_CODCF_A CODCF + OUTPUT F_RAGSOC_A RAGSOC +END + +GROUPBOX DLG_NULL 80 3 +BEGIN + PROMPT 1 12 "@b Parametri Prezzo" +END + +CURRENCY F_PREZZO_DA 18 +BEGIN +PROMPT 2 13 "Da Prezzo " +FLAGS "U" +FIELD #F_PREZZO_FROM +END + +CURRENCY F_PREZZO_A 18 +BEGIN +PROMPT 40 13 "A Prezzo" +FLAGS "U" +FIELD #F_PREZZO_TO +END + +GROUPBOX DLG_NULL 80 3 +BEGIN + PROMPT 1 16 "@b Parametri Zona" +END + +STRING F_ZONA 2 +BEGIN + PROMPT 2 17 "Codice Zona" + USE ZON + INPUT CODTAB F_ZONA + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_ZONA CODTAB + OUTPUT F_DESZONA S0 + CHECKTYPE NORMAL + FIELD #F_ZONA_FROM +END + +STRING F_DESZONA 50 +BEGIN + PROMPT 20 17 "" + USE ZON KEY 2 + INPUT CODTAB F_ZONA + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_ZONA CODTAB + OUTPUT F_DESZONA S0 +END + + +ENDPAGE +ENDMASK + + diff --git a/lv/lv2.cpp b/lv/lv2.cpp index 2dfb5df78..7b4a40a61 100755 --- a/lv/lv2.cpp +++ b/lv/lv2.cpp @@ -9,7 +9,7 @@ int main(int argc, char** argv) { case 0: lv2100(argc, argv); break; //generazione automatica del planning case 1: lv2200(argc, argv); break; //manipolazione e stampa del planning - //case 2: lv2300(argc, argv); break; //POSTO LIBERO + case 2: lv2300(argc, argv); break; //Stampa Giri Giornaliero/Settimanale case 3: lv2400(argc, argv); break; //generazione automatica bolle di consegna case 4: lv2600(argc, argv); break; //acquisizione bolle di rientro default: lv2100(argc, argv); break; //generazione automatica del planning diff --git a/lv/lv2200z.rep b/lv/lv2200z.rep new file mode 100755 index 000000000..955da7689 --- /dev/null +++ b/lv/lv2200z.rep @@ -0,0 +1,154 @@ + + + Stampa Giri Giornaliero + +
+ + + MESSAGE _TODAY + + + + + + + MESSAGE _PAGENO + +
+
+
+ DTCONS+CODITI + + + 167.GGCONS + +
  • +
  • +
  • +
  • +
  • +
  • +
  • + + + + + 167.CODITI + + + + 300@.S0 + + + + 167.CODAUT + + + + 301@.S0 + + + + DTCONS + + + + + + + + + + 302@.S0 + + + + + + 167.CODMEZ + + + + + + + + + + + + + + + + + + + + + + +
  • +
    + + CODITI + +
    +
    + + + + 167.ORDFER + + + + 167.CODCF + + + + 303@.RAGSOC + + + + IF(304@.CODINDSP= "0" ;303@.LOCALITACF;305@.LOCALITA) + + + + 167.MODPASS + +
  • +
  • +
  • +
  • + + + + + 167.CODNUM + + + + #NEXTCONS + + + IF(304@.CODINDSP= "0";303@.CIVCF+','+303@.INDCF;305@.CIV+','+305@.INDIR) + + + 167.NDOC + + +
  • +
    +
    +
    + USE 167 KEY 2 +SELECT (BETWEEN(CODITI,#FROM_CODITI,#TO_CODITI))(BETWEEN(CODAUT,#FROM_CODAUT,#TO_CODAUT))(BETWEEN(CODCF,#FROM_CODCF,#TO_CODCF)) +JOIN ITI ALIAS 300 INTO CODTAB==CODITI +JOIN AUT TO 167 ALIAS 301 INTO CODTAB==CODAUT +JOIN MEZ TO 167 ALIAS 302 INTO CODTAB==CODMEZ +JOIN 20 TO 167 ALIAS 303 INTO TIPOCF=="C" CODCF==CODCF +JOIN 168 TO 167 ALIAS 304 INTO CODCONT==CODCONT CODCF==CODCF +JOIN 16 TO 168 ALIAS 305 INTO TIPOCF=="C" CODCF==CODCF CODIND==CODINDSP +FROM DTCONS=#FROM_DATA +TO DTCONS=#TO_DATA + \ No newline at end of file diff --git a/lv/lv2300.cpp b/lv/lv2300.cpp index 7bed5c348..141e1da51 100755 --- a/lv/lv2300.cpp +++ b/lv/lv2300.cpp @@ -1,9 +1,310 @@ -#include "lv0.h" +#include +#include +#include +#include +#include "lv0.h" +#include "lv2300a.h" + +class TGiri_recordset: public TCSV_recordset +{ +public: + TGiri_recordset(): TCSV_recordset("CSV(\"\t\")") {} +}; + +//Variabili del singolo giorno contrenenti il codice cliente; +//ordine fermata e eventualmente l'ora +struct TPassaggio: public TObject +{ + + long _codcf; + int _ordfer; + int _ora; + TString _iter; + TPassaggio():_codcf(0),_ordfer(0),_ora(0),_iter("") {} + TPassaggio(long codcf, int ordfer, int ora, TString iter):_codcf(codcf),_ordfer(ordfer),_ora(ora),_iter(iter) {} +}; + +class TPassaggi: public TArray +{ + int _count; +public: + void add(TPassaggio* p); + TPassaggio& passaggio(int p); +}; + +TPassaggio& TPassaggi:: passaggio(int p) +{ + TPassaggio* h = (TPassaggio*)objptr(p); + + if(h==NULL) + { + h = new TPassaggio(); + TArray::add(h,p); + } + return *h; +} + +void TPassaggi::add(TPassaggio* p) +{ + const int of = p->_ordfer; + if(of>0 && of<1000) + { + int first=0; + int last=_count-1; + int guess=0; + while(first<=last) + { + guess=(first+last)/2; + TPassaggio& h = passaggio(guess); + if(h._ordfer==p->_ordfer) + break; + + if(h._ordfer>p->_ordfer) + { + last=guess-1; + } + else + { + first=guess+1; + } + } + TArray::insert(p,guess); + _count++; + } + else + { + TArray::add(p); + } +} + + +/*Tutti i passaggi settimanali di un singolo itinerario*/ +class TSettimana: public TArray +{ +public: + void add(int g,TPassaggio* p); + TPassaggio& passaggio(int g, int p);//giorno, fermata + int passaggi(int g) const; + int passaggi() const; + TSettimana():TArray(7){}//7 gg = settimana +}; + +//Tutti i records all'interno del giorno +int TSettimana::passaggi(int g) const +{ + int n=0; + TArray* p= (TArray* ) objptr(g); + if(p!=NULL) n=p->items(); + + return n; +} + +//Ritorno il numero di elementi con + passaggi +int TSettimana::passaggi() const +{ + int n=0; + FOR_EACH_ARRAY_ITEM((*this), i, obj) + { + TArray* p = (TArray*) obj; + const int e = p->items(); + if(e>n) n=e; + } + return n; +} + +void TSettimana::add(int g,TPassaggio* p) +{ + TPassaggi* a= (TPassaggi*) objptr(g); + if(a==NULL) + { + a=new TPassaggi(); + TArray::add(a,g); + } + a->add(p); + +} + +TPassaggio& TSettimana ::passaggio(int g,int p) +{ + TPassaggi* a= (TPassaggi*) objptr(g); + if(a==NULL) + { + a=new TPassaggi(); + TArray::add(a,g); + } + return a->passaggio(p); +} + + +class TItinerari: public TArray +{ +public: + void add(long i,int g,TPassaggio* p); + void add(long i,int g,long codcf, int ordfer, int ora,TString iter); + TSettimana& settimana(long codIti); +}; + +void TItinerari::add(long i,int g,TPassaggio* p) +{ + settimana(i).add(g,p); +} + +void TItinerari::add(long i,int g,long codcf, int ordfer, int ora, TString iter) +{ + TPassaggio* p = new TPassaggio(codcf,ordfer,ora,iter); + add(i,g,p); +} +TSettimana& TItinerari::settimana(long codIti) +{ + TSettimana* a = (TSettimana* ) objptr(codIti); + if(a==NULL) + { + a = new TSettimana(); + TArray::add(a,codIti); + } + return *a; +} + +class TGiri_mask: public TAutomask +{ +protected: + virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); +public: + TGiri_mask():TAutomask("lv2300a"){} +}; + +bool TGiri_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) +{ + return true; +} + +class TGiri_report : public TReport +{ +protected: + virtual bool use_mask() { return false; } + +public: + TGiri_report(bool settimanale) { load(settimanale ? "lv2300a" : "lv2200z"); } +}; + +class TGiri_app: public TSkeleton_application +{ +protected: + virtual void main_loop(); + void elabora(const TMask& mask) const; +}; + +void TGiri_app:: elabora(const TMask& mask)const +{ + TISAM_recordset giri("USE LVRCONSPLAN KEY 2\n" + "SELECT (BETWEEN(CODITI,#FROM_CODITI,#TO_CODITI))" + "&&(BETWEEN(CODCF,#FROM_CODCF,#TO_CODCF))" + "&&(BETWEEN(CODAUT,#FROM_CODAUT,#TO_CODAUT))\n" + "FROM DTCONS=#FROM_DATA\n " + "TO DTCONS=#TO_DATA" + ); + + //inserire parametri filtri + giri.set_var("#FROM_DATA",mask.get_date(F_DATA_FROM)); + giri.set_var("#TO_DATA",mask.get_date(F_DATA_TO)); + giri.set_var("#FROM_CODITI", TVariant(mask.get(F_CODITI_FROM))); + giri.set_var("#TO_CODITI",TVariant(mask.get(F_CODITI_TO))); + giri.set_var("#FROM_CODAUT",TVariant(mask.get(F_CODAUT_FROM))); + giri.set_var("#TO_CODAUT",TVariant(mask.get(F_CODAUT_TO))); + giri.set_var("#FROM_CODCF",TVariant(mask.get(F_CODCF_FROM))); + giri.set_var("#TO_CODCF",TVariant(mask.get(F_CODCF_TO))); + + TItinerari iti; + + for(bool ok = giri.move_first();ok;ok=giri.move_next()) + { + TDate giorno = giri.get("DTCONS").as_date(); + int wday = giorno.wday();//1=luned́ + long itinerario=giri.get("CODITI").as_int(); + TString iter=giri.get("CODITI").as_string(); + long cliente=giri.get("CODCF").as_int(); + int ordfer=giri.get("ORDFER").as_int(); + int ora = 0;//in attesa che venga inserito + + iti.add(itinerario,wday,cliente,ordfer,ora,iter); + } + + + TGiri_report r(true); + TGiri_recordset* giri_set = new TGiri_recordset(); + r.set_recordset(giri_set); + FOR_EACH_ARRAY_ITEM(iti,i,obj)//scandisce itinerario e tiene + //buoni solo quelli valorizzati + { + TSettimana& s = *(TSettimana*) obj; + const int max = s.passaggi(); + + for(int j=0; jnew_rec(); + + TString4 str_iti; + str_iti.format("%03d", i); + giri_set->set(0,TVariant(str_iti)); + + for(int g=1; g<=7;g++) + { + const TPassaggio& pass = s.passaggio(g,j); + const int column = (g-1)*3+1; + + giri_set->set(column,pass._codcf); + giri_set->set(column + 1,TVariant(long (pass._ordfer))); + giri_set->set(column + 2,TVariant(long (pass._ora))); + } + } + } + + //carica tuute le variabili del report. + r.mask2report(mask); + + TReport_book b; + bool ok = b.add(r);// Richiede parametri di stampa in base alla maschera omonima + if (ok) + { + if (b.pages() > 0) + b.print_or_preview(); // Stampa effettivamente + else + warning_box (TR("Nessun record estratto per i parametri inseriti")); + } +} + +void TGiri_app::main_loop() +{ + TGiri_mask m; + while(m.run()==K_ENTER) + { + //Stampa Giro Settimanale + if(m.get(F_CHOICE)=="S") + { + elabora(m); + } + //Stampa Giro Giornaliero + else + { + TGiri_report r(false); + + //carica tuute le variabili del report. + r.mask2report(m); + + TReport_book b; + bool ok = b.add(r); // Richiede parametri di stampa in base alla maschera omonima + if (ok) + if(b.pages() >0) + b.print_or_preview(); // Stampa effettivamente + else + warning_box (TR("Nessun record estratto per i parametri inseriti")); + } + } +} int lv2300(int argc, char* argv[]) { - /*POSTO LIBERO*/ - //TStampe_planning_app app; - //app.run(argc, argv, "Stampe Planning"); + TGiri_app app; + app.run(argc, argv, TR("Stampa Giri")); return 0; -} \ No newline at end of file +} diff --git a/lv/lv2300a.h b/lv/lv2300a.h new file mode 100755 index 000000000..09f1f23c4 --- /dev/null +++ b/lv/lv2300a.h @@ -0,0 +1,18 @@ +//Definizione campi per maschera lv2300a +//Stampa Giri (Giornaliero/Settimanale) + +#define F_DATA_FROM 201 +#define F_DATA_TO 202 +#define F_CODITI_FROM 203 +#define F_DESITI_FROM 204 +#define F_CODITI_TO 205 +#define F_DESITI_TO 206 +#define F_CODAUT_FROM 207 +#define F_DESAUT_FROM 208 +#define F_CODAUT_TO 209 +#define F_DESAUT_TO 210 +#define F_CODCF_FROM 211 +#define F_RAGSOCCF_FROM 212 +#define F_CODCF_TO 213 +#define F_RAGSOCCF_TO 214 +#define F_CHOICE 215 \ No newline at end of file diff --git a/lv/lv2300a.rep b/lv/lv2300a.rep new file mode 100755 index 000000000..f9b2b0a23 --- /dev/null +++ b/lv/lv2300a.rep @@ -0,0 +1,141 @@ + + + Stampa Giri Settimanale + +
    + + + MESSAGE _TODAY + + + + + + + MESSAGE _PAGENO + +
    +
    +
    + A + + + + + A + MESSAGE _ISAMREAD,163,MOD='LV'!COD='ITI'!CODTAB=#THIS,S0 + + + + + + + #FROM_DATA + + + + + + + #TO_DATA + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #FROM_CODITI + +
    +
    +
    + + + + + + + + + + + B + MESSAGE _ISAMREAD,CLIFO,TIPOCF='C'!CODCF=#THIS,RAGSOC + + + C + + + E + MESSAGE _ISAMREAD,CLIFO,TIPOCF='C'!CODCF=#THIS,RAGSOC + + + F + + + H + MESSAGE _ISAMREAD,CLIFO,TIPOCF='C'!CODCF=#THIS,RAGSOC + + + I + + + K + MESSAGE _ISAMREAD,CLIFO,TIPOCF='C'!CODCF=#THIS,RAGSOC + + + L + + + N + MESSAGE _ISAMREAD,CLIFO,TIPOCF='C'!CODCF=#THIS,RAGSOC + + + O + + + Q + MESSAGE _ISAMREAD,CLIFO,TIPOCF='C'!CODCF=#THIS,RAGSOC + + + R + + + T + MESSAGE _ISAMREAD,CLIFO,TIPOCF='C'!CODCF=#THIS,RAGSOC + + + U + +
    +
    +
    +
    + +
    + \ No newline at end of file diff --git a/lv/lv2300a.uml b/lv/lv2300a.uml new file mode 100755 index 000000000..3a50e2241 --- /dev/null +++ b/lv/lv2300a.uml @@ -0,0 +1,181 @@ +#include "lv2300a.h" + +TOOLBAR "topbar" 0 0 0 2 +#include "printbar.h" +ENDPAGE + +PAGE "Stampa Giri." -1 -1 40 5 + +GROUPBOX DLG_NULL 76 3 +BEGIN + PROMPT 1 1 "@bParametri Data" +END + +DATE F_DATA_FROM +BEGIN + PROMPT 2 2 "Dal " + FIELD #FROM_DATA + GROUP 1 + CHECKTYPE REQUIRED + FLAGS "A" +END + +DATE F_DATA_TO +BEGIN + PROMPT 25 2 "Al " + FIELD #TO_DATA + FLAGS "A" + GROUP 2 + CHECKTYPE REQUIRED + VALITATE DATE_CMP_FUNC >= F_DATA_FROM + WARNING "La data finale deve essere successiva a quella iniziale" +END + +GROUPBOX DLG_NULL 76 4 +BEGIN + PROMPT 1 4 "@bParametri Itinerario" +END + +STRING F_CODITI_FROM 3 +BEGIN + PROMPT 2 5 "Da Itinerario" + FLAGS "UZ" + USE &ITI + INPUT CODTAB F_CODITI_FROM + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_CODITI_FROM CODTAB + OUTPUT F_DESITI_FROM S0 + CHECKTYPE SEARCH + FIELD #FROM_CODITI +END + +STRING F_DESITI_FROM 50 +BEGIN + PROMPT 25 5 "" + FLAGS "D" +END + +STRING F_CODITI_TO 3 +BEGIN + PROMPT 2 6 "A Itinerario " + FLAGS "UZ" + USE &ITI + INPUT CODTAB F_CODITI_TO + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_CODITI_TO CODTAB + OUTPUT F_DESITI_TO S0 + CHECKTYPE SEARCH + FIELD #TO_CODITI +END + +STRING F_DESITI_TO 50 +BEGIN + PROMPT 25 6 "" + FLAGS "D" +END + +GROUPBOX DLG_NULL 76 4 +BEGIN + PROMPT 1 8 "@bParametri Autista" +END + +STRING F_CODAUT_FROM 6 +BEGIN + PROMPT 2 9 "Da Autista " + FLAGS "U" + USE &AUT + INPUT CODTAB F_CODAUT_FROM + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_CODAUT_FROM CODTAB + OUTPUT F_DESAUT_FROM S0 + CHECKTYPE SEARCH + FIELD #FROM_CODAUT +END + +STRING F_DESAUT_FROM 50 +BEGIN + PROMPT 25 9 "" + FLAGS "D" +END + +STRING F_CODAUT_TO 6 +BEGIN + PROMPT 2 10 "Ad Autista " + FLAGS "U" + USE &AUT + INPUT CODTAB F_CODAUT_TO + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_CODAUT_TO CODTAB + OUTPUT F_DESAUT_TO S0 + CHECKTYPE SEARCH + FIELD #TO_CODAUT +END + +STRING F_DESAUT_TO 50 +BEGIN + PROMPT 25 10 "" + FLAGS "D" +END + +GROUPBOX DLG_NULL 76 4 +BEGIN + PROMPT 1 12 "@bParametri Cliente" +END + +NUMBER F_CODCF_FROM 6 +BEGIN + PROMPT 2 13 "Da Cliente " + FLAGS "U" + USE LF_CLIFO KEY 1 + INPUT TIPOCF "C" + INPUT CODCF F_CODCF_FROM + DISPLAY "Codice " CODCF + DISPLAY "Ragione sociale@50" RAGSOC + OUTPUT F_CODCF_FROM CODCF + OUTPUT F_RAGSOCCF_FROM RAGSOC + CHECKTYPE NORMAL + FIELD #FROM_CODCF +END + +STRING F_RAGSOCCF_FROM 50 +BEGIN + PROMPT 25 13 "" + FLAGS "D" +END + +NUMBER F_CODCF_TO 6 +BEGIN + PROMPT 2 14 "A Cliente " + FLAGS "U" + USE LF_CLIFO KEY 1 + INPUT TIPOCF "C" + INPUT CODCF F_CODCF_TO + DISPLAY "Codice " CODCF + DISPLAY "Ragione sociale@50" RAGSOC + OUTPUT F_CODCF_TO CODCF + OUTPUT F_RAGSOCCF_TO RAGSOC + CHECKTYPE NORMAL + FIELD #TO_CODCF +END + +STRING F_RAGSOCCF_TO 50 +BEGIN + PROMPT 25 14 "" + FLAGS "D" +END + +LIST F_CHOICE 1 11 +BEGIN + PROMPT 2 16 "Stampa Giri" + ITEM "G|Giornaliero" + ITEM "S|Settimanale" + FLAGS "U" +END + +ENDPAGE + +ENDMASK