diff --git a/pr/pr01.bmp b/pr/pr01.bmp index 83b5298e3..927f28aef 100755 Binary files a/pr/pr01.bmp and b/pr/pr01.bmp differ diff --git a/pr/pr1200.cpp b/pr/pr1200.cpp index 79794f7af..26c973fc9 100755 --- a/pr/pr1200.cpp +++ b/pr/pr1200.cpp @@ -1,5 +1,342 @@ +#include +#include +#include +#include + +#include "pr1200a.h" +#include "percprov.h" + +static word __lenfields[4]; + +class TPercprovv_form : public TForm +{ + TString _conf; + +protected: + virtual bool validate(TForm_item &, TToken_string &); +public: + void set_conf(const char* s) { _conf = s;} + TPercprovv_form(const char *); + virtual ~TPercprovv_form(){}; +}; + +TPercprovv_form::TPercprovv_form(const char* name): TForm() +{ + read(name); +} + +bool TPercprovv_form::validate(TForm_item &cf, TToken_string &s) +{ + const TString code(s.get(0)); + TString valore; + + if (code == "_FILLFIELDS") + { + TString value(cf.get()), x; + const int l = _conf.len(); + short flid = 0; + for (int i = 0; i < l; i++) + { + switch (_conf[i]) + { + case 'C': + flid = FRM_CLI; + break; + case 'V': + flid = FRM_CVE; + break; + case 'A': + flid = FRM_AGE; + break; + case 'P': + flid = FRM_PAG; + break; + case 'S': + flid = FRM_SCO; + break; + case 'Z': + flid = FRM_ZON; + break; + case 'M': + flid = FRM_ART; + break; + case 'E': + flid = FRM_GMC; + break; + case 'R': + flid = FRM_SMC; + break; + case 'F': + flid = FRM_RFA; + break; + default: + flid = 0; + break; + } + if (flid == 0) + break; + // Estrae il valore da value in x tramite __lenfields[] + x = value.left(__lenfields[i]); + value.ltrim(__lenfields[i]); + // Setta il TForm_item corrispondente + TForm_item& fi = find_field('B', odd_page, flid); + fi.set(x); + } + } + return TForm::validate(cf, s); +} + +class TStampa_percprovv : public TSkeleton_application +{ + TLocalisamfile *_percprov; + TTable *_apr; + TMask * _m; + +protected: + void compose_ranges(const TString& k, TString& s1, TString& s2); + static bool codarc_handler(TMask_field& fld, KEY k); + virtual bool create(); + virtual bool destroy(); + virtual void main_loop(); +}; + +inline TStampa_percprovv& app() { return (TStampa_percprovv&) main_app();} + +bool TStampa_percprovv::codarc_handler(TMask_field& fld, KEY k) +{ + if (fld.to_check(k) && k == K_TAB) + { + TMask& m = fld.mask(); + TTable* apr = app()._apr; + apr->put("CODTAB", fld.get()); + if (apr->read() == NOERR) + { + TString s3(apr->get("S3")); + const int len = s3.len(); + m.hide(-G_ALL); + m.reset(-G_ALL); + for (int i = 0; ifield(id_from).size(); + if (id_from == F_FROMCLIENTE) // I codici clienti vanno allineati a destra! + formato.format("%%%ds",__lenfields[i]); + else + formato.format("%%-%ds",__lenfields[i]); // Gli altri a sinistra + ws.format(formato,(const char*)_m->get(id_from)); + s1 << ws; + ws.format(formato,(const char*)_m->get(id_to)); + s2 << ws; + } +} + +void TStampa_percprovv::main_loop() +{ + TPercprovv_form frm("pr1200a"); + TRectype from(LF_PERCPROV), to(LF_PERCPROV); + TString codpr, s1,s2, s3; + + _m->hide(-G_ALL); + while (_m->run() == K_ENTER) + { + codpr = _m->get(F_CODPR); // Codice archivio + _apr->put("CODTAB", codpr); + if (_apr->read() == NOERR) // legge la stringa di definizione dei campi + s3 = _apr->get("S3"); + else + s3 = "----"; + + // Compone le stringhe per from e to + compose_ranges(s3, s1, s2); + + from.zero(); + from.put(PER_CODPR, codpr); + from.put(PER_KEYORD,s1); + + to = from; + to.put(PER_KEYORD, s2); + + TCursor* cur = frm.cursor(); + cur->setregion(from, to); + if (cur->items() == 0L) + { + warning_box("Non vi sono elementi da stampare nell'intervallo indicato."); + continue; + } + + for (short k = FRM_CLI; k <= FRM_RFA; k++) // Nasconde tutti gli items del cazzo + { + TForm_item& fi = frm.find_field('B', odd_page, k); + fi.hide(); + } + // Ripristina solo quelli necessari cambiandogli la coordinata y in sequenza (tanto al massimo + // sono 4) + const int l = s3.len(); + short flid = 0; + for (int i=0; i < l; i++) + { + switch (s3[i]) + { + case 'C': + flid = FRM_CLI; + break; + case 'V': + flid = FRM_CVE; + break; + case 'A': + flid = FRM_AGE; + break; + case 'P': + flid = FRM_PAG; + break; + case 'S': + flid = FRM_SCO; + break; + case 'Z': + flid = FRM_ZON; + break; + case 'M': + flid = FRM_ART; + break; + case 'E': + flid = FRM_GMC; + break; + case 'R': + flid = FRM_SMC; + break; + case 'F': + flid = FRM_RFA; + break; + default: + flid = 0; + break; + } + if (flid == 0) + break; + TForm_item& fi = frm.find_field('B', odd_page, flid); + fi.show(); + fi.y() = i+1; + } + frm.set_conf(s3); + frm.print(); + } +} + +bool TStampa_percprovv::create() +{ + _m = new TMask ("pr1200a"); + _m->set_handler(F_CODPR, codarc_handler); + _apr = new TTable("APR"); + _percprov = new TLocalisamfile(LF_PERCPROV); + return TSkeleton_application::create(); +} + +bool TStampa_percprovv::destroy() +{ + delete _m; + delete _apr; + delete _percprov; + return TSkeleton_application::destroy(); +} int pr1200(int argc, char** argv) { + TStampa_percprovv a; + a.run(argc,argv,"Stampa % di provvigione"); return 0; } diff --git a/pr/pr1200a.frm b/pr/pr1200a.frm new file mode 100755 index 000000000..9b67251db --- /dev/null +++ b/pr/pr1200a.frm @@ -0,0 +1,207 @@ +// Form di stampa archivio percentuali di provvigione +#include "pr1200a.h" + +USE LF_PERCPROV KEY 1 +JOIN APR ALIAS 201 INTO CODTAB==CODPR +END + +DESCRIPTION +BEGIN +END + +GENERAL +BEGIN + OFFSET 0 0 + FONT "Courier New" + SIZE 10 +END + +SECTION GRAPHICS FIRST 67 + +LINEA 1 80 1 +BEGIN + KEY "Riga di separazione titolo/sottotitolo" + PROMPT 1 3 "@B" +END + +LINEA 2 80 1 +BEGIN + KEY "Riga di separazione titolo/corpo" + PROMPT 1 5 "@B" +END + +END + +SECTION HEADER ODD 5 + +STRINGA 1 40 1 +BEGIN + KEY "nome ditta" + PROMPT 1 1 "Ditta " + MESSAGE _DITTA, !RAGSOC +END + +STRINGA 2 10 +BEGIN + KEY "Data" + PROMPT 50 1 "Data " + MESSAGE _TODAY +END + +NUMERO 3 7 +BEGIN + KEY "Nr. pagina" + PROMPT 70 1 "Pagina " + MESSAGE _PAGENO +END + +NUMERO 4 40 +BEGIN + KEY "Intestazione stampa" + PROMPT 24 2 "Stampa percentuali di provvigione" +END + +STRINGA 6 15 +BEGIN + KEY "Codice Archivio" + PROMPT 2 4 "Archivio: " + FIELD CODPR +END + +STRINGA 7 30 +BEGIN + KEY "Codice Archivio" + PROMPT 16 4 "" + FIELD 201@->S0 +END + +STRINGA 8 6 +BEGIN + KEY "Tipo provvigione (intestazione)" + PROMPT 40 4 "Tipo" +END + +STRINGA 9 15 +BEGIN + KEY "Percentuale provvigione (intestazione)" + PROMPT 53 4 "% Provvigione" +END + +STRINGA 10 10 +BEGIN + KEY "Provvigione ad importo(intestazione)" + PROMPT 68 4 "Importo" +END + +END + +SECTION BODY ODD 5 + +STRINGA 99 20 +BEGIN + KEY "Chiave Ordinamento" + PROMPT 2 1 "" + FIELD KEYORD + MESSAGE _FILLFIELDS + FLAGS "H" +END + +STRINGA FRM_CLI 20 +BEGIN + KEY "Cod. cliente" + PROMPT 2 1 "Cod. Cliente: " + FLAGS "H" +END + +STRINGA FRM_CVE 20 +BEGIN + KEY "Cat. Vendita" + PROMPT 2 1 "Cat. Vendita: " + FLAGS "H" +END + +STRINGA FRM_AGE 20 +BEGIN + KEY "Cod. Agente" + PROMPT 2 1 "Cod. Agente: " + FLAGS "H" +END + +STRINGA FRM_PAG 20 +BEGIN + KEY "Cod. Pagamento" + PROMPT 2 1 "Cod. Pagamento " + FLAGS "H" +END + +STRINGA FRM_SCO 20 +BEGIN + KEY "Cod. Sconto" + PROMPT 2 1 "Cod. Sconto: " + FLAGS "H" +END + +STRINGA FRM_ZON 20 +BEGIN + KEY "Cod. Zona" + PROMPT 2 1 "Cod. Zona: " + FLAGS "H" +END + +STRINGA FRM_ART 30 +BEGIN + KEY "Cod. Articolo" + PROMPT 2 1 "Cod. Articolo: " + FLAGS "H" +END + +STRINGA FRM_GMC 20 +BEGIN + KEY "Cod. GMC" + PROMPT 2 1 "Cod. GMC: " + FLAGS "H" +END + +STRINGA FRM_SMC 20 +BEGIN + KEY "Cod. SMC" + PROMPT 2 1 "Cod. SMC: " + FLAGS "H" +END + +STRINGA FRM_RFA 20 +BEGIN + KEY "Cod. RFA" + PROMPT 2 1 "Cod. RFA: " + FLAGS "H" +END + +LISTA 11 20 +BEGIN + KEY "Tipo di provvigione" + PROMPT 40 4 "Tipo provvigione: " + FIELD TIPO + ITEM "P|Percentuale" + ITEM "I|Importo unitario" + ITEM "V|Valore complessivo" +END + +NUMBER 12 6 +BEGIN + PROMPT 54 4 "" + FIELD PERCPROVV + PICTURE "##@,@@" +END + +NUMERO 13 18 +BEGIN + KEY "Importo" + PROMPT 62 4 "" + FIELD IMPORTO + PICTURE "###.###.###.###" +END + +END + +END // Section body + diff --git a/pr/pr1200a.h b/pr/pr1200a.h new file mode 100755 index 000000000..bf9a8f1ca --- /dev/null +++ b/pr/pr1200a.h @@ -0,0 +1,48 @@ +// campi maschera pr1200a.uml + +#define F_CODPR 101 +#define F_DESCR 102 +#define F_FROMCLIENTE 103 +#define F_TOCLIENTE 104 +#define F_FROMCATVEN 105 +#define F_TOCATVEN 106 +#define F_FROMCODAGE 107 +#define F_TOCODAGE 108 +#define F_FROMCODPAG 109 +#define F_TOCODPAG 110 +#define F_FROMCODSCONTO 111 +#define F_TOCODSCONTO 112 +#define F_FROMCODZONA 113 +#define F_TOCODZONA 114 +#define F_FROMCODART 115 +#define F_TOCODART 116 +#define F_FROMCODGMC 117 +#define F_TOCODGMC 118 +#define F_FROMCODSMC 119 +#define F_TOCODSMC 120 +#define F_FROMCODRFA 121 +#define F_TOCODRFA 122 + +#define G_ALL 1 +#define G_CLI 5 +#define G_CATV 6 +#define G_AGE 7 +#define G_PAG 8 +#define G_SCONTO 9 +#define G_ZONA 10 +#define G_ART 11 +#define G_GMC 12 +#define G_SMC 13 +#define G_RFA 14 + +#define FRM_CLI 1 +#define FRM_CVE 2 +#define FRM_AGE 3 +#define FRM_PAG 4 +#define FRM_SCO 5 +#define FRM_ZON 6 +#define FRM_ART 7 +#define FRM_GMC 8 +#define FRM_SMC 9 +#define FRM_RFA 10 + diff --git a/pr/pr1200a.uml b/pr/pr1200a.uml new file mode 100755 index 000000000..05e13bc26 --- /dev/null +++ b/pr/pr1200a.uml @@ -0,0 +1,330 @@ +#include "pr1200a.h" + +PAGE "Stampa % di provvigione" -1 -1 78 18 + +GROUPBOX DLG_NULL 76 4 +BEGIN + PROMPT 1 1 "Archivio" + FLAGS "R" +END + +STRING F_CODPR 2 +BEGIN + PROMPT 2 2 "Codice archivio " + FIELD CODPR + FLAGS "UZ" + USE APR + INPUT CODTAB F_CODPR + DISPLAY "Codice@10" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_CODPR CODTAB + OUTPUT F_DESCR S0 + CHECKTYPE REQUIRED + WARNING "Codice archivio non presente" +END + +STRING F_DESCR 50 +BEGIN + PROMPT 2 3 "Descrizione " + FLAGS "D" +END + +STRING F_FROMCLIENTE 6 +BEGIN + PROMPT 2 6 "Da cod. cliente " + FLAGS "R" + KEY 1 + USE LF_CLIFO KEY 1 SELECT TIPOCF=="C" + INPUT TIPOCF "C" + INPUT CODCF F_FROMCLIENTE + DISPLAY "Codice" CODCF + DISPLAY "Ragione sociale@50" RAGSOC + OUTPUT F_FROMCLIENTE CODCF + GROUP G_CLI G_ALL +END + +STRING F_TOCLIENTE 6 +BEGIN + PROMPT 40 6 "A cod. cliente " + FLAGS "R" + KEY 1 + USE LF_CLIFO KEY 1 SELECT TIPOCF=="C" + INPUT TIPOCF "C" + INPUT CODCF F_TOCLIENTE + DISPLAY "Codice" CODCF + DISPLAY "Ragione sociale@50" RAGSOC + OUTPUT F_TOCLIENTE CODCF + NUM_EXPR #F_TOCLIENTE>=#F_FROMCLIENTE + GROUP G_CLI G_ALL + WARNING "Range codice cliente non corretto" +END + +STRING F_FROMCATVEN 2 +BEGIN + PROMPT 2 7 "Da cat. vendita " + FLAGS "U" + KEY 1 + USE CVE + INPUT CODTAB F_FROMCATVEN + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_FROMCATVEN CODTAB + GROUP G_CATV G_ALL +END + +STRING F_TOCATVEN 2 +BEGIN + PROMPT 40 7 "A cat. vendita " + FLAGS "U" + KEY 1 + USE CVE + INPUT CODTAB F_TOCATVEN + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_TOCATVEN CODTAB + GROUP G_CATV G_ALL + STR_EXPR #F_TOCATVEN>=#F_FROMCATVEN + WARNING "Range codice categoria vendita non corretto" +END + +STRING F_FROMCODAGE 5 +BEGIN + PROMPT 2 8 "Da cod. agente " + FLAGS "UZ" + KEY 1 + USE LF_AGENTI + INPUT CODAGE F_FROMCODAGE + DISPLAY "Codice" CODAGE + DISPLAY "Ragione sociale@50" RAGSOC + OUTPUT F_FROMCODAGE CODAGE + GROUP G_AGE G_ALL +END + +STRING F_TOCODAGE 5 +BEGIN + PROMPT 40 8 "A cod. agente " + FLAGS "UZ" + KEY 1 + USE LF_AGENTI + INPUT CODAGE F_TOCODAGE + DISPLAY "Codice" CODAGE + DISPLAY "Ragione sociale@50" RAGSOC + OUTPUT F_TOCODAGE CODAGE + GROUP G_AGE G_ALL + STR_EXPR #F_TOCODAGE>=#F_FROMCODAGE + WARNING "Range codice agente non corretto" +END + +STRING F_FROMCODPAG 4 +BEGIN + PROMPT 2 9 "Da cod. pagamento " + FLAGS "UZ" + KEY 1 + USE %CPG + INPUT CODTAB F_FROMCODPAG + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_FROMCODPAG CODTAB + GROUP G_PAG G_ALL +END + +STRING F_TOCODPAG 4 +BEGIN + PROMPT 40 9 "A cod. pagamento " + FLAGS "UZ" + KEY 1 + USE %CPG + INPUT CODTAB F_TOCODPAG + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_TOCODPAG CODTAB + GROUP G_PAG G_ALL + STR_EXPR #F_TOCODPAG>=#F_FROMCODPAG + WARNING "Range codice pagamento non corretto" +END + +STRING F_FROMCODSCONTO 2 +BEGIN + PROMPT 2 10 "Da cod. sconto " + FLAGS "U" + KEY 1 + USE %SCC + INPUT CODTAB F_FROMCODSCONTO + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_FROMCODSCONTO CODTAB + GROUP G_SCONTO G_ALL +END + +STRING F_TOCODSCONTO 2 +BEGIN + PROMPT 40 10 "A cod. sconto " + FLAGS "U" + KEY 1 + USE %SCC + INPUT CODTAB F_TOCODSCONTO + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_TOCODSCONTO CODTAB + GROUP G_SCONTO G_ALL + STR_EXPR #F_TOCODSCONTO>=#F_FROMCODSCONTO + WARNING "Range codice sconto non corretto" +END + +STRING F_FROMCODZONA 2 +BEGIN + PROMPT 2 11 "Da cod. zona " + FLAGS "U" + KEY 1 + USE ZON + INPUT CODTAB F_FROMCODZONA + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_FROMCODZONA CODTAB + GROUP G_ZONA G_ALL +END + +STRING F_TOCODZONA 2 +BEGIN + PROMPT 40 11 "A cod. zona " + FLAGS "U" + KEY 1 + USE ZON + INPUT CODTAB F_TOCODZONA + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_TOCODZONA CODTAB + GROUP G_ZONA G_ALL + STR_EXPR #F_TOCODZONA>=#F_FROMCODZONA + WARNING "Range codice zona non corretto" +END + +STRING F_FROMCODART 20 +BEGIN + PROMPT 2 12 "Da cod. art. " + FLAGS "U" + KEY 1 + USE LF_ANAMAG + INPUT CODART F_FROMCODART + DISPLAY "Articolo@20" CODART + DISPLAY "Descrizione@50" DESCR + OUTPUT F_FROMCODART CODART + GROUP G_ART G_ALL +END + +STRING F_TOCODART 20 +BEGIN + PROMPT 40 12 "A cod. art. " + FLAGS "U" + KEY 1 + USE LF_ANAMAG + INPUT CODART F_TOCODART + DISPLAY "Articolo@20" CODART + DISPLAY "Descrizione@50" DESCR + OUTPUT F_TOCODART CODART + GROUP G_ART G_ALL + STR_EXPR #F_TOCODART>=#F_FROMCODART + WARNING "Range codice articolo non corretto" +END + +STRING F_FROMCODGMC 3 +BEGIN + PROMPT 2 13 "Da cat. merc. " + FLAGS "U" + KEY 1 + USE GMC SELECT CODTAB[4,5]=="" + INPUT CODTAB F_FROMCODGMC + DISPLAY "Codice" CODTAB[1,3] + DISPLAY "Descrizione@50" S0 + OUTPUT F_FROMCODGMC CODTAB[1,3] + GROUP G_GMC G_ALL +END + +STRING F_TOCODGMC 3 +BEGIN + PROMPT 40 13 "A cat. merc. " + FLAGS "U" + KEY 1 + USE GMC SELECT CODTAB[4,5]=="" + INPUT CODTAB F_TOCODGMC + DISPLAY "Codice" CODTAB[1,3] + DISPLAY "Descrizione@50" S0 + OUTPUT F_TOCODGMC CODTAB[1,3] + GROUP G_GMC G_ALL + STR_EXPR #F_TOCODGMC>=#F_FROMCODGMC + WARNING "Range categoria merceologica non corretto" +END + +STRING F_FROMCODSMC 5 +BEGIN + PROMPT 2 14 "Da sottocat. merc. " + FLAGS "U" + KEY 1 + USE GMC //SELECT CODTAB[4,5]!="" + INPUT CODTAB F_FROMCODSMC + DISPLAY "Cat." CODTAB[1,3] + DISPLAY "Sotto cat." CODTAB[4,5] + DISPLAY "Descrizione@50" S0 + OUTPUT F_FROMCODSMC CODTAB + GROUP G_SMC G_ALL +END + +STRING F_TOCODSMC 5 +BEGIN + PROMPT 40 14 "A sottocat. merc. " + FLAGS "U" + KEY 1 + USE GMC //SELECT CODTAB[4,5]!="" + INPUT CODTAB F_TOCODSMC + DISPLAY "Cat." CODTAB[1,3] + DISPLAY "Sotto cat." CODTAB[4,5] + DISPLAY "Descrizione@50" S0 + OUTPUT F_TOCODSMC CODTAB + GROUP G_SMC G_ALL + STR_EXPR #F_TOCODSMC>=#F_FROMCODSMC + WARNING "Range sottocategoria merceologica non corretto" +END + +STRING F_FROMCODRFA 5 +BEGIN + PROMPT 2 15 "Da raggr. fiscale " + FLAGS "U" + KEY 1 + USE RFA + INPUT CODTAB F_FROMCODRFA + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_FROMCODRFA CODTAB + GROUP G_RFA G_ALL +END + +STRING F_TOCODRFA 5 +BEGIN + PROMPT 40 15 "A raggr. fiscale " + FLAGS "U" + KEY 1 + USE RFA + INPUT CODTAB F_TOCODRFA + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_TOCODRFA CODTAB + GROUP G_RFA G_ALL + STR_EXPR #F_TOCODRFA>=#F_FROMCODRFA + WARNING "Range raggruppamento fiscale non corretto" +END + +BUTTON DLG_PRINT 10 2 +BEGIN + PROMPT -12 -1 "~Stampa" + MESSAGE EXIT,K_ENTER +END + +BUTTON DLG_QUIT 10 2 +BEGIN + PROMPT -22 -1 "" +END + +ENDPAGE + +ENDMASK + diff --git a/pr/pr1300.cpp b/pr/pr1300.cpp index 5876448bf..42ff0d85e 100755 --- a/pr/pr1300.cpp +++ b/pr/pr1300.cpp @@ -1,6 +1,7 @@ #include #include #include +#include #include #include "provv.h" @@ -61,21 +62,18 @@ void TStampa_schedeprovv::main_loop() { TForm frm("pr1300a"); - //const TPrint_section& head = frm.section('H', odd_page); - //const TPrint_section& foot = frm.section('F', odd_page); - - const int hh = 3;//head.height(); - const int fh = 1;//foot.height(); - const int fl = frm.height(); - + const int hh = 7; + const int fh = 1; + const int fl = printer().formlen(); + int rows[4]; // Righe orizzontali - rows[0] = hh-2; // Terzultima riga della testata - rows[1] = hh; // Ultima riga della testata - rows[2] = fl-fh+1; // Prima riga del footer + rows[0] = hh-3; + rows[1] = hh; + rows[2] = fl-1; rows[3] = 0; - - frm.genera_intestazioni(odd_page, rows[1]-1); - //frm.genera_fincatura(odd_page, rows[0], rows[1], rows); + frm.genera_intestazioni(odd_page, hh-2); + frm.genera_fincatura(odd_page, hh-3, fl-1, rows); + while (_m->run()!=K_QUIT) { diff --git a/pr/pr1300a.frm b/pr/pr1300a.frm index dfddef6f7..36cb3d356 100755 --- a/pr/pr1300a.frm +++ b/pr/pr1300a.frm @@ -24,7 +24,7 @@ BEGIN END -SECTION HEADER ODD 4 +SECTION HEADER ODD 7 STRINGA 1 40 1 BEGIN @@ -36,22 +36,30 @@ END STRINGA 2 10 BEGIN KEY "Data" - PROMPT 45 1 "Data " + PROMPT 126 1 "Data " MESSAGE _TODAY END NUMERO 3 7 BEGIN KEY "Nr. pagina" - PROMPT 70 1 "Pagina " + PROMPT 145 1 "Pagina " MESSAGE _PAGENO END + +STRINGA 4 +BEGIN + KEY "TITOLO" + PROMPT 60 3 "Stampa schede di provvigione" +END + +/* STRINGA 5 146 BEGIN KEY "Separatore (iniziale)" PROMPT 1 4 "------------------------------------------------------------------------------------------------------------------------------------------------------" END - +*/ /* STRINGA 3 @@ -139,7 +147,7 @@ STRINGA 1 20 BEGIN SPECIAL STRINGA INTESTAZIONE "Agente" "Agente" SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" - SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" + SPECIAL STRINGA FINCATURA "X " "Fincatura sinistra e destra" KEY "Descrizione" PROMPT 1 1 "Agente " MESSAGE RESET,G_TOTAGE@ @@ -150,7 +158,7 @@ STRINGA 2 30 BEGIN SPECIAL STRINGA INTESTAZIONE "Rag.Soc." "Ragione Sociale" SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" - SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" + SPECIAL STRINGA FINCATURA " X" "Fincatura sinistra e destra" KEY "RSoc" PROMPT 2 1 "" FIELD LF_AGENTI->RAGSOC @@ -230,10 +238,11 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE // Header clienti SECTION HCLIENTI 1 1 1 GROUP - STRINGA 1 15 + STRINGA 1 20 BEGIN KEY "Descrizione" PROMPT 1 1 " Cliente " + SPECIAL STRINGA FINCATURA "X " "Fincatura sinistra e destra" FIELD LF_PROVV->CODCLI MESSAGE RESET,G_TOTCLI@ END @@ -242,6 +251,7 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE BEGIN KEY "RSoc" PROMPT 2 1 "" + SPECIAL STRINGA FINCATURA " X" "Fincatura sinistra e destra" FIELD LF_CLIFO->RAGSOC MESSAGE COPY,302 END @@ -254,6 +264,7 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE STRINGA 1 20 BEGIN KEY "ndoc" + SPECIAL STRINGA FINCATURA "X " "Fincatura sinistra e destra" PROMPT 1 1 " Documento" MESSAGE RESET,G_TOTDOC@ END @@ -262,6 +273,7 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE BEGIN KEY "DATADOC" PROMPT 2 1 "" + SPECIAL STRINGA FINCATURA " X" "Fincatura sinistra e destra" MESSAGE _STREXPR,CODNUM+"/"+NDOC+" del "+DATADOC MESSAGE COPY,202 END @@ -273,20 +285,22 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE BEGIN KEY "FATTORE DI CONVERSIONE" FLAGS "H" - MESSAGE _NUMEXPR,IF(CODVAL,1,CAMBIO) + MESSAGE _NUMEXPR,IF(CODVAL,CAMBIO,1) END SECTION RATA_DAPAGARE 1 1 1 STREXPR LF_PROVV->SALDATA!="X" - STRINGA 101 15 + STRINGA 101 20 BEGIN KEY "nrata" + SPECIAL STRINGA FINCATURA "X " "Fincatura sinistra e destra" PROMPT 1 1 " Rata " FIELD LF_PROVV->NRATA END - STRINGA 102 15 + STRINGA 102 30 BEGIN KEY "DATADOC" + SPECIAL STRINGA FINCATURA " X" "Fincatura sinistra e destra" PROMPT 2 1 "del " FIELD LF_PROVV->DATASCAD END @@ -354,16 +368,18 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE END // RATA SECTION RATA_PAGATA 1 1 1 STREXPR LF_PROVV->SALDATA=="X" - STRINGA 101 15 + STRINGA 101 20 BEGIN KEY "nrata" PROMPT 1 1 " Rata " + SPECIAL STRINGA FINCATURA "X " "Fincatura sinistra e destra" FIELD LF_PROVV->NRATA END - STRINGA 102 15 + STRINGA 102 30 BEGIN KEY "DATADOC" + SPECIAL STRINGA FINCATURA " X" "Fincatura sinistra e destra" PROMPT 2 1 "del " FIELD LF_PROVV->DATASCAD END @@ -426,13 +442,20 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE STRINGA 201 20 BEGIN KEY "ndoc" + SPECIAL STRINGA FINCATURA "X " "Fincatura sinistra e destra" PROMPT 1 1 " Totale documento" END STRINGA 202 30 BEGIN KEY "DESCR" + SPECIAL STRINGA FINCATURA " X" "Fincatura sinistra e destra" PROMPT 2 1 "" END + STRINGA 3 6 + BEGIN + KEY "CODVAL" + PROMPT 3 1 "" + END NUMBER 203 15 BEGIN KEY "IMPORTO" @@ -497,13 +520,20 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE STRINGA 301 20 BEGIN KEY "cli" + SPECIAL STRINGA FINCATURA "X " "Fincatura sinistra e destra" PROMPT 1 1 " Totale cliente " END STRINGA 302 30 BEGIN KEY "DESCR" + SPECIAL STRINGA FINCATURA " X" "Fincatura sinistra e destra" PROMPT 2 1 "" END + STRINGA 3 6 + BEGIN + KEY "CODVAL" + PROMPT 3 1 "" + END NUMBER 303 15 BEGIN KEY "IMPORTO" @@ -565,12 +595,14 @@ END // end clienti NUMERO 401 20 BEGIN + SPECIAL STRINGA FINCATURA "X " "Fincatura sinistra e destra" PROMPT 1 2 "Totale agente" END STRINGA 402 30 BEGIN KEY "DESCR" + SPECIAL STRINGA FINCATURA " X" "Fincatura sinistra e destra" PROMPT 2 2 "" END NUMBER 403 15 @@ -627,7 +659,9 @@ END // end clienti END // Fine body +/* SECTION FOOTER ODD 3 END // Fine footer END // Fine Form +*/ diff --git a/pr/pr1300a.uml b/pr/pr1300a.uml index b95043e36..3362bddee 100755 --- a/pr/pr1300a.uml +++ b/pr/pr1300a.uml @@ -18,9 +18,9 @@ BEGIN PROMPT 2 3 " all'agente " FLAGS "U" COPY USE F_DAAGE - INPUT CODART F_AAGE + INPUT CODAGE F_AAGE COPY DISPLAY F_DAAGE - OUTPUT F_AAGE CODART + OUTPUT F_AAGE CODAGE GROUP G_CODAGE END diff --git a/pr/pr1400.cpp b/pr/pr1400.cpp index 3d69c1a10..702042f73 100755 --- a/pr/pr1400.cpp +++ b/pr/pr1400.cpp @@ -199,9 +199,11 @@ bool TStampa_statistiche_app::menu(MENU_TAG) LF_PROVV, (const char*)ds1, LF_PROVV, (const char*) ds2, LF_PROVV); ssec.setcondition(cond, _strexpr); } - + + ds1 = date_from.string(ANSI); + ds2 = date_to.string(ANSI); filter_expr.format("(ANSI(%d->DATADOC)>=\"%s\") && (ANSI(%d->DATADOC)<=\"%s\")", - LF_PROVV, (const char*)date_from.string(ANSI), LF_PROVV, (const char*) date_to.string(ANSI)); + LF_PROVV, (const char*)ds1, LF_PROVV, (const char*) ds2); // Setta il filtro sul cursore (attenzione se e' ordinato per ragione sociale) TSorted_cursor* cur = normal_order ? cur1 : cur2; diff --git a/pr/pr1400a.frm b/pr/pr1400a.frm index c04c395e3..38fc16b9a 100755 --- a/pr/pr1400a.frm +++ b/pr/pr1400a.frm @@ -10,7 +10,7 @@ USE LF_AGENTI -JOIN LF_PROVV KEY 3 INTO CODAGE==CODAGE +JOIN LF_PROVV KEY 3 INTO CODAGE=CODAGE END DESCRIPTION @@ -89,7 +89,7 @@ BEGIN PROMPT 3 1 "" END -NUMBER 4 14 +NUMBER 4 15 BEGIN SPECIAL STRINGA INTESTAZIONE "@CFatturato" "Fatturato (1)" SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" @@ -98,7 +98,7 @@ BEGIN PROMPT 4 1 "" END -NUMBER 5 14 +NUMBER 5 15 BEGIN SPECIAL STRINGA INTESTAZIONE "@CProvvigione" "Provvigione (1)" SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" @@ -116,7 +116,7 @@ BEGIN PROMPT 6 1 "" END -NUMBER 7 14 +NUMBER 7 15 BEGIN SPECIAL STRINGA INTESTAZIONE "@CFatturato" "Fatturato (2)" SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" @@ -125,9 +125,9 @@ BEGIN PROMPT 7 1 "" END -NUMBER 8 14 +NUMBER 8 15 BEGIN - SPECIAL STRINGA INTESTAZIONE "Provvigione" "Provvigione (2)" + SPECIAL STRINGA INTESTAZIONE "@CProvvigione" "Provvigione (2)" SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" KEY "Provvigione (2)" @@ -549,7 +549,7 @@ BEGIN MESSAGE _MONTHRANGE END -NUMBER F_FAT1 14 +NUMBER F_FAT1 15 BEING KEY "Fatturato (1)" PROMPT 4 1 "" @@ -557,7 +557,7 @@ BEING GROUP G_TOTAGE END -NUMBER F_PRO1 14 +NUMBER F_PRO1 15 BEING KEY "Provvigione (1)" PROMPT 5 1 "" @@ -572,7 +572,7 @@ BEGIN MESSAGE _MONTHRANGE END -NUMBER F_FAT2 14 +NUMBER F_FAT2 15 BEING KEY "Fatturato (2)" PROMPT 7 1 "" @@ -580,7 +580,7 @@ BEING GROUP G_TOTAGE END -NUMBER F_PRO2 14 +NUMBER F_PRO2 15 BEING KEY "Provvigione (2)" PROMPT 8 1 "" @@ -595,7 +595,7 @@ BEGIN MESSAGE _MONTHRANGE END -NUMBER F_FAT3 14 +NUMBER F_FAT3 15 BEING KEY "Fatturato (3)" PROMPT 4 2 "" @@ -603,7 +603,7 @@ BEING GROUP G_TOTAGE END -NUMBER F_PRO3 14 +NUMBER F_PRO3 15 BEING KEY "Provvigione (3)" PROMPT 5 2 "" @@ -618,7 +618,7 @@ BEGIN MESSAGE _MONTHRANGE END -NUMBER F_FAT4 14 +NUMBER F_FAT4 15 BEING KEY "Fatturato (4)" PROMPT 7 2 "" @@ -626,7 +626,7 @@ BEING GROUP G_TOTAGE END -NUMBER F_PRO4 14 +NUMBER F_PRO4 15 BEING KEY "Provvigione (4)" PROMPT 8 2 "" @@ -641,7 +641,7 @@ BEGIN MESSAGE _MONTHRANGE END -NUMBER F_FAT5 14 +NUMBER F_FAT5 15 BEING KEY "Fatturato (5)" PROMPT 4 3 "" @@ -649,7 +649,7 @@ BEING GROUP G_TOTAGE END -NUMBER F_PRO5 14 +NUMBER F_PRO5 15 BEING KEY "Provvigione (5)" PROMPT 5 3 "" @@ -664,7 +664,7 @@ BEGIN MESSAGE _MONTHRANGE END -NUMBER F_FAT6 14 +NUMBER F_FAT6 15 BEING KEY "Fatturato (6)" PROMPT 7 3 "" @@ -672,7 +672,7 @@ BEING GROUP G_TOTAGE END -NUMBER F_PRO6 14 +NUMBER F_PRO6 15 BEING KEY "Provvigione (6)" PROMPT 8 3 "" @@ -687,7 +687,7 @@ BEGIN MESSAGE _MONTHRANGE END -NUMBER F_FAT7 14 +NUMBER F_FAT7 15 BEING KEY "Fatturato (7)" PROMPT 4 4 "" @@ -695,7 +695,7 @@ BEING GROUP G_TOTAGE END -NUMBER F_PRO7 14 +NUMBER F_PRO7 15 BEING KEY "Provvigione (7)" PROMPT 5 4 "" @@ -710,7 +710,7 @@ BEGIN MESSAGE _MONTHRANGE END -NUMBER F_FAT8 14 +NUMBER F_FAT8 15 BEING KEY "Fatturato (8)" PROMPT 7 4 "" @@ -718,7 +718,7 @@ BEING GROUP G_TOTAGE END -NUMBER F_PRO8 14 +NUMBER F_PRO8 15 BEING KEY "Provvigione (8)" PROMPT 8 4 "" @@ -733,7 +733,7 @@ BEGIN MESSAGE _MONTHRANGE END -NUMBER F_FAT9 14 +NUMBER F_FAT9 15 BEING KEY "Fatturato (9)" PROMPT 4 5 "" @@ -741,7 +741,7 @@ BEING GROUP G_TOTAGE END -NUMBER F_PRO9 14 +NUMBER F_PRO9 15 BEING KEY "Provvigione (9)" PROMPT 5 5 "" @@ -756,7 +756,7 @@ BEGIN MESSAGE _MONTHRANGE END -NUMBER F_FAT10 14 +NUMBER F_FAT10 15 BEING KEY "Fatturato (10)" PROMPT 7 5 "" @@ -764,7 +764,7 @@ BEING GROUP G_TOTAGE END -NUMBER F_PRO10 14 +NUMBER F_PRO10 15 BEING KEY "Provvigione (10)" PROMPT 8 5 "" @@ -779,7 +779,7 @@ BEGIN MESSAGE _MONTHRANGE END -NUMBER F_FAT11 14 +NUMBER F_FAT11 15 BEING KEY "Fatturato (11)" PROMPT 4 6 "" @@ -787,7 +787,7 @@ BEING GROUP G_TOTAGE END -NUMBER F_PRO11 14 +NUMBER F_PRO11 15 BEING KEY "Provvigione (11)" PROMPT 5 6 "" @@ -802,7 +802,7 @@ BEGIN MESSAGE _MONTHRANGE END -NUMBER F_FAT12 14 +NUMBER F_FAT12 15 BEING KEY "Fatturato (12)" PROMPT 7 6 "" @@ -810,7 +810,7 @@ BEING GROUP G_TOTAGE END -NUMBER F_PRO12 14 +NUMBER F_PRO12 15 BEING KEY "Provvigione (12)" PROMPT 8 6 "" diff --git a/pr/prprassi.men b/pr/prprassi.men index 8fbb19750..313cce7ef 100755 --- a/pr/prprassi.men +++ b/pr/prprassi.men @@ -3,13 +3,40 @@ Caption = "Gestione agenti" Picture = Module = 0 Flags = "" -Item_01 = "Tabella tipo percentuale", "pr0 -0 apr", "" -Item_02 = "Stampa tabella tipo percentuali", "pr0 -1 apr", "" +Item_01 = "Archivi e tabelle", [PRASSIPR_002] +Item_02 = "Stampa archivi e tabelle", [PRASSIPR_003] +Item_03 = "Provvigioni", "pr0 -6", "" +Item_04 = "Stampa provvigioni", [PRASSIPR_004] +Item_05 = "Configurazione modulo", [PRASSIPR_010] + +[PRASSIPR_002] +Caption = "Archivi e tabelle" +Picture = +Module = 0 +Flags = "" Item_03 = "Archivio agenti", "pr0 -4", "" Item_04 = "Archivio percentuali", "pr0 -5", "" -Item_05 = "Archivio provvigioni", "pr0 -6", "" + +[PRASSIPR_003] +Caption = "Stampe archivi e tabelle" +Picture = +Module = 0 +Flags = "" Item_06 = "Stampa archivio agenti", "pr1 -0", "" Item_07 = "Stampa archivio percentuali", "pr1 -1", "" -Item_08 = "Stampa schede", "pr1 -2", "" -Item_09 = "Stampa statistiche", "pr1 -3", "" +[PRASSIPR_004] +Caption = "Stampe" +Picture = +Module = 0 +Flags = "" +Item_04 = "Stampa schede", "pr1 -2", "" +Item_05 = "Stampa statistiche", "pr1 -3", "" + + +[PRASSIPR_010] +Caption = "Configurazione modulo agenti" +Picture = +Module = 0 +Flags = "" +Item_01 = "Struttura archivi percentuali", "pr0 -0 apr", "" diff --git a/sv/sv1200.cpp b/sv/sv1200.cpp index 123cc19e4..24150a526 100755 --- a/sv/sv1200.cpp +++ b/sv/sv1200.cpp @@ -502,7 +502,7 @@ bool TStampa_stat::set_print(int i) _numcol_dati = selmask().get_int(F_PERIODO); _col_anno =min(_numcol_dati,printmask().get_int(F_COLANNO)); //numero di colonne che formano un "Anno" _numcol = _numcol_dati+ (_st_tota ? int((_numcol_dati -1)/_col_anno+1) : 0); - _pagewidth=POS_PRIMACOL+int((FORMWIDTH-POS_PRIMACOL)/_largcol)*_largcol; + _pagewidth=POS_PRIMACOL+int((printer().formwidth()-POS_PRIMACOL)/_largcol)*_largcol; // reset delle variabili per la gestione di gruppi ai vari livelli _colpage=1;