diff --git a/mg/mg4100.cpp b/mg/mg4100.cpp index e3c6f6f8b..76a7be86a 100755 --- a/mg/mg4100.cpp +++ b/mg/mg4100.cpp @@ -14,6 +14,7 @@ class TStampa_listamov : public TApplication { + TArray _files; TMask * _mask; TForm * _form; @@ -28,43 +29,70 @@ protected: bool TStampa_listamov::create() { - TRectype darec(LF_MOVMAG),arec(LF_MOVMAG); + _files.add(new TLocalisamfile(LF_MOVMAG)); + _files.add(new TLocalisamfile(LF_RMOVMAG)); + _files.add(new TLocalisamfile(LF_ANAMAG)); + _files.add(new TLocalisamfile(LF_UMART)); + _files.add(new TLocalisamfile(LF_TAB)); + + TRectype darec(LF_RMOVMAG),arec(LF_RMOVMAG); _mask = new TMask("mg4100"); - while (TRUE) { - if (_mask->run() != K_ENTER) - return FALSE; + while (_mask->run() == K_ENTER) { _form = new TForm("mg4100", ""); TSorted_cursor& cur = (TSorted_cursor& )*_form->cursor(); - TString filter("ANNOES=="); + TString sortexp; + TString filter; - filter << _mask->get(F_ANNOES); - cur.setfilter(filter); + filter << '(' << LF_MOVMAG << "->ANNOES==\""<< _mask->get(F_ANNOES) << "\")"; + if (_mask->get(F_CAU1).not_empty()) + { + filter << "&&((CAUS==\"" << _mask->get(F_CAU1) << "\")"; + filter << "||(" << LF_MOVMAG << "->CODCAUS==\"" << _mask->get(F_CAU1)<< "\")"; + if (_mask->get(F_CAU2).not_empty()) + filter << "||(CAUS==\"" << _mask->get(F_CAU2) << "\")" + << "||(" << LF_MOVMAG << "->CODCAUS==\"" << _mask->get(F_CAU2)<< "\")"; + if (_mask->get(F_CAU3).not_empty()) + filter << "||(CAUS==\"" << _mask->get(F_CAU3)<< "\")" + << "||(" << LF_MOVMAG << "->CODCAUS==\"" << _mask->get(F_CAU3)<< "\")"; + if (_mask->get(F_CAU4).not_empty()) + filter << "||(CAUS==\"" << _mask->get(F_CAU4)<< "\")" + << "||(" << LF_MOVMAG << "->CODCAUS==\"" << _mask->get(F_CAU4)<< "\")"; + if (_mask->get(F_CAU5).not_empty()) + filter << "||(CAUS==\"" << _mask->get(F_CAU5)<< "\")" + << "||(" << LF_MOVMAG << "->CODCAUS==\"" << _mask->get(F_CAU5)<< "\")"; + if (_mask->get(F_CAU6).not_empty()) + filter << "||(CAUS==\"" << _mask->get(F_CAU6)<< "\")" + << "||(" << LF_MOVMAG << "->CODCAUS==\"" << _mask->get(F_CAU6)<< "\")"; + filter << ")"; + } darec.zero(' '); arec.zero(' '); if (_mask->get(F_ORDINE)=="N") { - cur.setkey(1); - // trova il record iniziale + sortexp="NUMREG|CODART|NRIG"; + // trova il record iniziale E finale darec.put("NUMREG",_mask->get(F_DANUM)); - // trova il record finale arec.put("NUMREG",_mask->get(F_ANUM)); _form->find_field('B',odd_page,"HEADER_DATA").hide(); } else { - cur.setkey(4); - // trova il record iniziale - darec.put("DATACOMP",_mask->get(F_DADATA)); - // trova il record finale - arec.put("DATACOMP",_mask->get(F_ADATA)); + sortexp.cut(0) << LF_MOVMAG << "->DATAREG|NUMREG|CODART|NRIG"; + // trova il record iniziale E finale + if (_mask->get(F_DADATA).not_empty()) + filter << "&&( DATACOMP>=" << '"' << _mask->get(F_DADATA) << '"'; + if (_mask->get(F_ADATA).not_empty()) + filter << "&&( DATACOMP<=" << '"' << _mask->get(F_ADATA) << "\")"; _form->find_field('B',odd_page,"HEADER_DATA").show(); } - cur.setregion(darec,arec); + cur.change_order(sortexp); + cur.setfilter(filter,TRUE); + cur.setregion(darec,arec); _form->print(); delete _form; } // while true - return TRUE; + return FALSE; } bool TStampa_listamov::destroy() { diff --git a/mg/mg4100.frm b/mg/mg4100.frm index 289db1905..097042b7d 100755 --- a/mg/mg4100.frm +++ b/mg/mg4100.frm @@ -1,23 +1,20 @@ -USE 110 KEY 4 +USE LF_RMOVMAG BY NUMREG CODART NRIG +JOIN LF_MOVMAG TO LF_RMOVMAG INTO NUMREG==NUMREG JOIN CAU TO 110 INTO CODTAB==CODCAUS -SORT 111 BY NUMREG CODART NRIG - JOIN TO 110 INTO NUMREG==NUMREG -JOIN 47 TO 111 INTO CODART==CODART -JOIN 33 TO 110 INTO PROVV==DOCPROVV ANNO==ANNODOC CODNUM==CODNUM NDOC==NUMDOC +JOIN LF_ANAMAG TO LF_RMOVMAG INTO CODART==CODART +JOIN 33 TO LF_MOVMAG INTO PROVV==DOCPROVV ANNO==ANNODOC CODNUM==CODNUM NDOC==NUMDOC -JOIN 49 TO 111 KEY 2 ALIAS 349 INTO CODART==CODART UM==UM -JOIN 49 TO 47 ALIAS 249 INTO CODART==CODART +JOIN LF_UMART TO LF_RMOVMAG KEY 2 ALIAS 349 INTO CODART==CODART UM==UM +JOIN LF_UMART TO LF_ANAMAG ALIAS 249 INTO CODART==CODART END - + DESCRIPTION BEGIN - 47->* "Anagrafica articoli" - 109->* "Archivio Giacenze" - MAG->* "Tabella magazzini" - 110->* "Movimenti di magazzino" - 111->* "Righe Movimenti di magazzino" + LF_ANAMAG->* "Anagrafica articoli" + LF_MOVMAG->* "Movimenti di magazzino" + LF_RMOVMAG->* "Righe Movimenti di magazzino" 49->* "Unitą di misura articoli" - 33->* "documenti" + 33->* "documenti" END GENERAL @@ -30,7 +27,7 @@ BEGIN FINALE 133 END -SECTION HEADER ODD 3 +SECTION HEADER ODD 6 STRINGA 1 40 1 BEGIN @@ -42,14 +39,14 @@ END STRINGA 2 10 BEGIN KEY "Data" - PROMPT 120 1 "Data " + PROMPT 104 1 "Data " MESSAGE _TODAY END NUMERO 3 7 BEGIN KEY "Nr. pagina" - PROMPT 137 1 "Pagina " + PROMPT 121 1 "Pagina " MESSAGE _PAGENO END @@ -59,145 +56,221 @@ BEGIN PROMPT 45 2 "Stampa lista movimenti" END -STRINGA 5 146 +STRINGA 5 132 BEGIN KEY "Separatore (iniziale)" PROMPT 1 3 "------------------------------------------------------------------------------------------------------------------------------------------------------" END +STRINGA 6 +BEGIN + KEY "numreg" + PROMPT 3 4 "Num." +END + +STRINGA 7 +BEGIN + KEY "datacomp" + PROMPT 10 4 "Data" +END + +STRINGA 8 + BEGIN + KEY "descr mov" + PROMPT 20 4 "Descrizione movimento" +END + +STRINGA 101 +BEGIN + KEY "" + PROMPT 2 5 "Cod.mag." +END + +STRINGA 103 20 +BEGIN + KEY "" + PROMPT 13 5 "Articolo" +END + +STRINGA 104 40 +BEGIN + KEY "" + PROMPT 35 5 "Descrizione articolo" +END + +STRINGA 105 +BEGIN + KEY "caus" + PROMPT 74 5 "Causale" +END + +STRINGA 105 +BEGIN + KEY "UMART" + PROMPT 82 5 "UM" +END + +NUMERO 106 +BEGIN + KEY "quant" + PROMPT 88 5 "Quantita'" +END + +NUMERO 107 +BEGIN + KEY "prezzo" + PROMPT 109 5 "Prezzo" +END + +NUMERO 108 +BEGIN + KEY "valore" + PROMPT 120 5 "Valore" +END + +STRINGA 100 132 +BEGIN + KEY "Separatore (iniziale)" + PROMPT 1 6 "------------------------------------------------------------------------------------------------------------------------------------------------------" +END + + END SECTION BODY ODD 1 - SECTION HEADER_DATA 1 0 1 GROUP - DATA 1 - BEGIN - KEY "raggr fdata" - PROMPT 1 1 "------------- Registrazioni del " - FIELD 110->DATACOMP - END - END - SECTION RAGG_MOV 1 1 3 FILE 110 GROUP 110->DATACOMP + SECTION HEADER_DATA 1 0 1 GROUP + DATA 1 + BEGIN + KEY "raggr fdata" + PROMPT 1 1 "------------- Registrazioni del " + FIELD LF_MOVMAG->DATACOMP + END + END + SECTION RAGG_MOV 1 1 3 FILE LF_RMOVMAG GROUP LF_MOVMAG->DATACOMP - NUMERO 1 - BEGIN - KEY "numreg" - PROMPT 1 1 "" - FIELD 110->NUMREG - PICTURE "#####.@" - MESSAGE RESET,10 - END + NUMERO 1 + BEGIN + KEY "numreg" + PROMPT 1 1 "" + FIELD LF_MOVMAG->NUMREG + PICTURE "#####" + MESSAGE RESET,10 + END - DATA 2 8 - BEGIN - KEY "datacomp" - PROMPT 10 1 "" - FIELD 110->DATACOMP - END + DATA 2 8 + BEGIN + KEY "datacomp" + PROMPT 10 1 "" + FIELD LF_MOVMAG->DATACOMP + END + STRINGA 3 40 + BEGIN + KEY "descr mov" + PROMPT 20 1 "" + FIELD LF_MOVMAG->DESCR + END + STRINGA 4 22 + BEGIN + KEY " CAUS mov" + PROMPT 10 2 "Causale movimento " + FIELD LF_MOVMAG->CODCAUS + END + STRINGA 5 20 + BEGIN + KEY " DESCR CAUS" + PROMPT 32 2 "" + FIELD CAU->S0 + END - STRINGA 3 8 - BEGIN - KEY "descr mov" - PROMPT 20 1 "" - FIELD 110->DESCR - END + SECTION INFO_DOC 3 0 1 NUM_EXPR LF_MOVMAG->NUMDOC!=0 + STRINGA 6 20 + BEGIN + KEY " NUMDOC" + PROMPT 10 1 "Documento " + FIELD LF_MOVMAG->NUMDOC + END + STRINGA 7 20 + BEGIN + KEY " datadoc" + PROMPT 30 1 "del " + FIELD 33->DATADOC + END + END - STRINGA 4 8 - BEGIN - KEY " CAUS mov" - PROMPT 1 2 "" - FIELD 110->CODCAUS - END - STRINGA 5 20 - BEGIN - KEY " DESCR CAUS" - PROMPT 10 2 "" - FIELD CAU->S0 - END + SECTION RIGHE_MOV 3 1 1 FILE LF_RMOVMAG GROUP NUMREG + STRINGA 101 3 + BEGIN + KEY "" + PROMPT 4 1 "" + FIELD LF_RMOVMAG->CODMAG[1,3] + END + STRINGA 102 3 + BEGIN + KEY "" + PROMPT 8 1 "" + FIELD LF_RMOVMAG->CODMAG[4,5] + END - SECTION INFO_DOC 3 0 1 NUM_EXPR 110->NUMDOC!=0 - STRINGA 6 20 - BEGIN - KEY " NUMDOC" - PROMPT 2 1 "Documento " - FIELD 110->NUMDOC - END - STRINGA 7 20 - BEGIN - KEY " datadoc" - PROMPT 20 1 "del " - FIELD 33->DATADOC - END - END + STRINGA 103 20 + BEGIN + KEY "" + PROMPT 13 1 "" + FIELD LF_RMOVMAG->CODART + END - SECTION RIGHE_MOV 3 1 1 FILE 111 - STRINGA 101 3 - BEGIN - KEY "" - PROMPT 4 1 "" - FIELD 111->CODMAG[1,3] - END - STRINGA 102 3 - BEGIN - KEY "" - PROMPT 8 1 "" - FIELD 111->CODMAG[4,5] - END + STRINGA 104 40 + BEGIN + KEY "" + PROMPT 35 1 "" + FIELD LF_ANAMAG->DESCR + END - STRINGA 103 20 - BEGIN - KEY "" - PROMPT 13 1 "" - FIELD 111->CODART - END + STRINGA 105 4 + BEGIN + KEY "CAUS" + PROMPT 77 1 "" + FIELD LF_RMOVMAG->CAUS + END - STRINGA 104 40 - BEGIN - KEY "" - PROMPT 35 1 "" - FIELD 47->DESCR - END + STRINGA 105 20 + BEGIN + KEY "UMART" + PROMPT 82 1 "" + FIELD LF_RMOVMAG->UM + END - STRINGA 105 20 - BEGIN - KEY "UMART" - PROMPT 77 1 "" - FIELD 111->UM - END + NUMERO 106 + BEGIN + KEY "quant" + PROMPT 85 1 "" + FIELD LF_RMOVMAG->QUANT + PICTURE "####.###,@##" + END - NUMERO 106 - BEGIN - KEY "quant" - PROMPT 80 1 "" - FIELD 111->QUANT - PICTURE "####.###,@##" - // se il valore č corretto con FC, l'UM stampata deve essere quella dell'articolo - //MESSAGE _NUMEXPR,111->QUANT*349@->FC - END + NUMERO 107 + BEGIN + KEY "prezzo" + PROMPT 99 1 "" + FIELD LF_RMOVMAG->PREZZO + PICTURE "##.####.###@" + END - NUMERO 107 - BEGIN - KEY "prezzo" - PROMPT 94 1 " £ " - FIELD 111->PREZZO - PICTURE "##.####.###@" - END + NUMERO 108 + BEGIN + KEY "valore" + PROMPT 112 1 "" + MESSAGE _NUMEXPR,LF_RMOVMAG->PREZZO*LF_RMOVMAG->QUANT*349@->FC|ADD,10 + PICTURE "##.###.####.##@" + END - NUMERO 108 - BEGIN - KEY "valore" - FLAGS "H" - PROMPT 120 1 "" - MESSAGE _NUMEXPR,111->PREZZO*111->QUANT*349@->FC|ADD,10 - END + END // RIGHE MOVIMENTO - END // RIGHE MOVIMENTO - - NUMERO 10 - BEGIN - KEY "totale mov" - PROMPT 1 3 "Totale valore movimentato: £ " - PICTURE "##.###.####.##@" - END + NUMERO 10 + BEGIN + KEY "totale mov" + PROMPT 83 3 "Totale valore movimentato: £ " + PICTURE "##.###.####.##@" + END END diff --git a/mg/mg4100.h b/mg/mg4100.h index 9a428c3b1..56da40e10 100755 --- a/mg/mg4100.h +++ b/mg/mg4100.h @@ -4,4 +4,10 @@ #define F_ANUM 104 #define F_ORDINE 105 #define F_ANNOES 106 +#define F_CAU1 107 +#define F_CAU2 108 +#define F_CAU3 109 +#define F_CAU4 110 +#define F_CAU5 111 +#define F_CAU6 112 diff --git a/mg/mg4100.uml b/mg/mg4100.uml index db8157676..becdff9e5 100755 --- a/mg/mg4100.uml +++ b/mg/mg4100.uml @@ -1,65 +1,146 @@ -#include "mg1500.h" +#include "mg4100.h" PAGE "Stampa lista movimenti" -1 -1 78 18 NUMBER F_ANNOES 4 BEGIN - FLAGS "A" - PROMPT 2 9 "Codice esercizio " + FLAGS "A" + PROMPT 2 1 "Codice esercizio " + USE ESC + INPUT CODTAB F_ANNOES + DISPLAY "Esercizio" CODTAB + DISPLAY "Dal@12" D0 + DISPLAY "Al@12" D0 + OUTPUT F_ANNOES CODTAB + ADD NONE END LISTBOX F_ORDINE 30 BEGIN - PROMPT 2 1 "Stampa ordinata per " - ITEM "D|data di competenza" - MESSAGE SHOW,1@|HIDE,2@ - ITEM "N|numero di registrazione" - MESSAGE SHOW,2@|HIDE,1@ + PROMPT 2 3 "Stampa ordinata per " + ITEM "D|data di competenza" + MESSAGE SHOW,1@|HIDE,2@ + ITEM "N|numero di registrazione" + MESSAGE SHOW,2@|HIDE,1@ END DATA F_DADATA BEGIN - PROMPT 2 3 "Dalla data " - USE LF_MOVMAG KEY 4 SELECT ANNOES==#F_ANNOES// KEY 3 for DATAREG - INPUT DATAREG F_DADATA - DISPLAY "Esercizio" ANNOES - DISPLAY "N.@10" NUMREG - DISPLAY "Data@10" DATAREG - OUTPUT F_DADATA DATAREG + PROMPT 2 5 "Dalla data " + USE LF_MOVMAG KEY 4 SELECT ANNOES==#F_ANNOES// KEY 3 for DATAREG + INPUT DATAREG F_DADATA + DISPLAY "Esercizio" ANNOES + DISPLAY "N.@10" NUMREG + DISPLAY "Data@10" DATAREG + DISPLAY "Descrizione@30" DESCR + OUTPUT F_DADATA DATAREG GROUP 1 END DATA F_ADATA BEGIN - PROMPT 2 5 "Alla data " - COPY USE F_DADATA - INPUT DATAREG F_ADATA - COPY DISPLAY F_DADATA - OUTPUT F_ADATA DATAREG + PROMPT 2 7 "Alla data " + COPY USE F_DADATA + INPUT DATAREG F_ADATA + COPY DISPLAY F_DADATA + OUTPUT F_ADATA DATAREG GROUP 1 END STRING F_DANUM 7 BEGIN - PROMPT 2 3 "dal numero " - USE LF_MOVMAG KEY 1 SELECT ANNOES=#F_ANNOES - INPUT NUMREG F_DANUM - DISPLAY "Esercizio" ANNOES - DISPLAY "N.@10" NUMREG - DISPLAY "Data@10" DATAREG - OUTPUT F_DANUM NUMREG - GROUP 2 + PROMPT 2 5 "dal numero " + USE LF_MOVMAG KEY 1 SELECT ANNOES=#F_ANNOES + INPUT NUMREG F_DANUM + DISPLAY "Esercizio" ANNOES + DISPLAY "N.@10" NUMREG + DISPLAY "Data@10" DATAREG + DISPLAY "Descrizione@30" DESCR + OUTPUT F_DANUM NUMREG + GROUP 2 END STRING F_ANUM 7 BEGIN - PROMPT 2 5 "Al numero " - COPY USE F_DANUM - INPUT NUMREG F_ANUM - COPY DISPLAY F_DANUM - OUTPUT F_ANUM NUMREG + PROMPT 2 7 "Al numero " + COPY USE F_DANUM + INPUT NUMREG F_ANUM + COPY DISPLAY F_DANUM + OUTPUT F_ANUM NUMREG GROUP 2 END +STRING F_CAU1 4 +BEGIN + PROMPT 2 9 "Causale " + FLAGS "U" + USE %CAU + INPUT CODTAB F_CAU1 + DISPLAY "Codice" CODTAB + DISPLAY "Descr@30" S0 + OUTPUT F_CAU1 CODTAB + CHECKTYPE NORMAL + MESSAGE EMPTY CLEAR,F_CAU2 |CHECK,F_CAU2 + MESSAGE ENABLE,F_CAU2 +END +STRING F_CAU2 4 +BEGIN + FLAGS "U" + PROMPT 2 10 "Causale " + INPUT CODTAB F_CAU2 + COPY USE F_CAU1 + COPY DISPLAY F_CAU1 + OUTPUT F_CAU2 CODTAB + CHECKTYPE NORMAL + MESSAGE EMPTY CLEAR,F_CAU3 |CHECK,F_CAU3 + MESSAGE ENABLE,F_CAU3 +END +STRING F_CAU3 4 +BEGIN + FLAGS "U" + PROMPT 2 11 "Causale " + COPY USE F_CAU1 + INPUT CODTAB F_CAU3 + COPY DISPLAY F_CAU1 + OUTPUT F_CAU3 CODTAB + CHECKTYPE NORMAL + MESSAGE EMPTY CLEAR,F_CAU4 |CHECK,F_CAU4 + MESSAGE ENABLE,F_CAU4 +END +STRING F_CAU4 4 +BEGIN + FLAGS "U" + PROMPT 2 12 "Causale " + COPY USE F_CAU1 + INPUT CODTAB F_CAU4 + COPY DISPLAY F_CAU1 + OUTPUT F_CAU4 CODTAB + CHECKTYPE NORMAL + MESSAGE EMPTY CLEAR,F_CAU5 |CHECK,F_CAU5 + MESSAGE ENABLE,F_CAU5 +END +STRING F_CAU5 4 +BEGIN + FLAGS "U" + PROMPT 2 13 "Causale " + COPY USE F_CAU1 + INPUT CODTAB F_CAU5 + COPY DISPLAY F_CAU1 + OUTPUT F_CAU5 CODTAB + CHECKTYPE NORMAL + MESSAGE EMPTY CLEAR,F_CAU6 |CHECK,F_CAU6 + MESSAGE ENABLE,F_CAU6 +END +STRING F_CAU6 4 +BEGIN + FLAGS "U" + PROMPT 2 14 "Causale " + COPY USE F_CAU1 + INPUT CODTAB F_CAU6 + COPY DISPLAY F_CAU1 + OUTPUT F_CAU6 CODTAB + CHECKTYPE NORMAL +END + BUTTON DLG_OK 10 2 BEGIN PROMPT -12 -1 ""