Gestione Causali su riga movimento

e stampa con filtro sulle causali


git-svn-id: svn://10.65.10.50/trunk@4717 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
augusto 1997-06-19 10:54:42 +00:00
parent c7e5b4eb5f
commit 72d5e5fb6f
4 changed files with 373 additions and 185 deletions

View File

@ -14,6 +14,7 @@
class TStampa_listamov : public TApplication class TStampa_listamov : public TApplication
{ {
TArray _files;
TMask * _mask; TMask * _mask;
TForm * _form; TForm * _form;
@ -28,43 +29,70 @@ protected:
bool TStampa_listamov::create() 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"); _mask = new TMask("mg4100");
while (TRUE) { while (_mask->run() == K_ENTER) {
if (_mask->run() != K_ENTER)
return FALSE;
_form = new TForm("mg4100", ""); _form = new TForm("mg4100", "");
TSorted_cursor& cur = (TSorted_cursor& )*_form->cursor(); TSorted_cursor& cur = (TSorted_cursor& )*_form->cursor();
TString filter("ANNOES=="); TString sortexp;
TString filter;
filter << _mask->get(F_ANNOES); filter << '(' << LF_MOVMAG << "->ANNOES==\""<< _mask->get(F_ANNOES) << "\")";
cur.setfilter(filter); 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(' '); darec.zero(' ');
arec.zero(' '); arec.zero(' ');
if (_mask->get(F_ORDINE)=="N") if (_mask->get(F_ORDINE)=="N")
{ {
cur.setkey(1); sortexp="NUMREG|CODART|NRIG";
// trova il record iniziale // trova il record iniziale E finale
darec.put("NUMREG",_mask->get(F_DANUM)); darec.put("NUMREG",_mask->get(F_DANUM));
// trova il record finale
arec.put("NUMREG",_mask->get(F_ANUM)); arec.put("NUMREG",_mask->get(F_ANUM));
_form->find_field('B',odd_page,"HEADER_DATA").hide(); _form->find_field('B',odd_page,"HEADER_DATA").hide();
} else { } else {
cur.setkey(4); sortexp.cut(0) << LF_MOVMAG << "->DATAREG|NUMREG|CODART|NRIG";
// trova il record iniziale // trova il record iniziale E finale
darec.put("DATACOMP",_mask->get(F_DADATA)); if (_mask->get(F_DADATA).not_empty())
// trova il record finale filter << "&&( DATACOMP>=" << '"' << _mask->get(F_DADATA) << '"';
arec.put("DATACOMP",_mask->get(F_ADATA)); if (_mask->get(F_ADATA).not_empty())
filter << "&&( DATACOMP<=" << '"' << _mask->get(F_ADATA) << "\")";
_form->find_field('B',odd_page,"HEADER_DATA").show(); _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(); _form->print();
delete _form; delete _form;
} // while true } // while true
return TRUE; return FALSE;
} }
bool TStampa_listamov::destroy() bool TStampa_listamov::destroy()
{ {

View File

@ -1,21 +1,18 @@
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 JOIN CAU TO 110 INTO CODTAB==CODCAUS
SORT 111 BY NUMREG CODART NRIG JOIN LF_ANAMAG TO LF_RMOVMAG INTO CODART==CODART
JOIN TO 110 INTO NUMREG==NUMREG JOIN 33 TO LF_MOVMAG INTO PROVV==DOCPROVV ANNO==ANNODOC CODNUM==CODNUM NDOC==NUMDOC
JOIN 47 TO 111 INTO CODART==CODART
JOIN 33 TO 110 INTO PROVV==DOCPROVV ANNO==ANNODOC CODNUM==CODNUM NDOC==NUMDOC
JOIN 49 TO 111 KEY 2 ALIAS 349 INTO CODART==CODART UM==UM JOIN LF_UMART TO LF_RMOVMAG KEY 2 ALIAS 349 INTO CODART==CODART UM==UM
JOIN 49 TO 47 ALIAS 249 INTO CODART==CODART JOIN LF_UMART TO LF_ANAMAG ALIAS 249 INTO CODART==CODART
END END
DESCRIPTION DESCRIPTION
BEGIN BEGIN
47->* "Anagrafica articoli" LF_ANAMAG->* "Anagrafica articoli"
109->* "Archivio Giacenze" LF_MOVMAG->* "Movimenti di magazzino"
MAG->* "Tabella magazzini" LF_RMOVMAG->* "Righe Movimenti di magazzino"
110->* "Movimenti di magazzino"
111->* "Righe Movimenti di magazzino"
49->* "Unità di misura articoli" 49->* "Unità di misura articoli"
33->* "documenti" 33->* "documenti"
END END
@ -30,7 +27,7 @@ BEGIN
FINALE 133 FINALE 133
END END
SECTION HEADER ODD 3 SECTION HEADER ODD 6
STRINGA 1 40 1 STRINGA 1 40 1
BEGIN BEGIN
@ -42,14 +39,14 @@ END
STRINGA 2 10 STRINGA 2 10
BEGIN BEGIN
KEY "Data" KEY "Data"
PROMPT 120 1 "Data " PROMPT 104 1 "Data "
MESSAGE _TODAY MESSAGE _TODAY
END END
NUMERO 3 7 NUMERO 3 7
BEGIN BEGIN
KEY "Nr. pagina" KEY "Nr. pagina"
PROMPT 137 1 "Pagina " PROMPT 121 1 "Pagina "
MESSAGE _PAGENO MESSAGE _PAGENO
END END
@ -59,12 +56,85 @@ BEGIN
PROMPT 45 2 "Stampa lista movimenti" PROMPT 45 2 "Stampa lista movimenti"
END END
STRINGA 5 146 STRINGA 5 132
BEGIN BEGIN
KEY "Separatore (iniziale)" KEY "Separatore (iniziale)"
PROMPT 1 3 "------------------------------------------------------------------------------------------------------------------------------------------------------" PROMPT 1 3 "------------------------------------------------------------------------------------------------------------------------------------------------------"
END 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 END
SECTION BODY ODD 1 SECTION BODY ODD 1
@ -73,17 +143,17 @@ SECTION BODY ODD 1
BEGIN BEGIN
KEY "raggr fdata" KEY "raggr fdata"
PROMPT 1 1 "------------- Registrazioni del " PROMPT 1 1 "------------- Registrazioni del "
FIELD 110->DATACOMP FIELD LF_MOVMAG->DATACOMP
END END
END END
SECTION RAGG_MOV 1 1 3 FILE 110 GROUP 110->DATACOMP SECTION RAGG_MOV 1 1 3 FILE LF_RMOVMAG GROUP LF_MOVMAG->DATACOMP
NUMERO 1 NUMERO 1
BEGIN BEGIN
KEY "numreg" KEY "numreg"
PROMPT 1 1 "" PROMPT 1 1 ""
FIELD 110->NUMREG FIELD LF_MOVMAG->NUMREG
PICTURE "#####.@" PICTURE "#####"
MESSAGE RESET,10 MESSAGE RESET,10
END END
@ -91,103 +161,106 @@ SECTION BODY ODD 1
BEGIN BEGIN
KEY "datacomp" KEY "datacomp"
PROMPT 10 1 "" PROMPT 10 1 ""
FIELD 110->DATACOMP FIELD LF_MOVMAG->DATACOMP
END END
STRINGA 3 40
STRINGA 3 8
BEGIN BEGIN
KEY "descr mov" KEY "descr mov"
PROMPT 20 1 "" PROMPT 20 1 ""
FIELD 110->DESCR FIELD LF_MOVMAG->DESCR
END END
STRINGA 4 22
STRINGA 4 8
BEGIN BEGIN
KEY " CAUS mov" KEY " CAUS mov"
PROMPT 1 2 "" PROMPT 10 2 "Causale movimento "
FIELD 110->CODCAUS FIELD LF_MOVMAG->CODCAUS
END END
STRINGA 5 20 STRINGA 5 20
BEGIN BEGIN
KEY " DESCR CAUS" KEY " DESCR CAUS"
PROMPT 10 2 "" PROMPT 32 2 ""
FIELD CAU->S0 FIELD CAU->S0
END END
SECTION INFO_DOC 3 0 1 NUM_EXPR 110->NUMDOC!=0 SECTION INFO_DOC 3 0 1 NUM_EXPR LF_MOVMAG->NUMDOC!=0
STRINGA 6 20 STRINGA 6 20
BEGIN BEGIN
KEY " NUMDOC" KEY " NUMDOC"
PROMPT 2 1 "Documento " PROMPT 10 1 "Documento "
FIELD 110->NUMDOC FIELD LF_MOVMAG->NUMDOC
END END
STRINGA 7 20 STRINGA 7 20
BEGIN BEGIN
KEY " datadoc" KEY " datadoc"
PROMPT 20 1 "del " PROMPT 30 1 "del "
FIELD 33->DATADOC FIELD 33->DATADOC
END END
END END
SECTION RIGHE_MOV 3 1 1 FILE 111 SECTION RIGHE_MOV 3 1 1 FILE LF_RMOVMAG GROUP NUMREG
STRINGA 101 3 STRINGA 101 3
BEGIN BEGIN
KEY "" KEY ""
PROMPT 4 1 "" PROMPT 4 1 ""
FIELD 111->CODMAG[1,3] FIELD LF_RMOVMAG->CODMAG[1,3]
END END
STRINGA 102 3 STRINGA 102 3
BEGIN BEGIN
KEY "" KEY ""
PROMPT 8 1 "" PROMPT 8 1 ""
FIELD 111->CODMAG[4,5] FIELD LF_RMOVMAG->CODMAG[4,5]
END END
STRINGA 103 20 STRINGA 103 20
BEGIN BEGIN
KEY "" KEY ""
PROMPT 13 1 "" PROMPT 13 1 ""
FIELD 111->CODART FIELD LF_RMOVMAG->CODART
END END
STRINGA 104 40 STRINGA 104 40
BEGIN BEGIN
KEY "" KEY ""
PROMPT 35 1 "" PROMPT 35 1 ""
FIELD 47->DESCR FIELD LF_ANAMAG->DESCR
END
STRINGA 105 4
BEGIN
KEY "CAUS"
PROMPT 77 1 ""
FIELD LF_RMOVMAG->CAUS
END END
STRINGA 105 20 STRINGA 105 20
BEGIN BEGIN
KEY "UMART" KEY "UMART"
PROMPT 77 1 "" PROMPT 82 1 ""
FIELD 111->UM FIELD LF_RMOVMAG->UM
END END
NUMERO 106 NUMERO 106
BEGIN BEGIN
KEY "quant" KEY "quant"
PROMPT 80 1 "" PROMPT 85 1 ""
FIELD 111->QUANT FIELD LF_RMOVMAG->QUANT
PICTURE "####.###,@##" PICTURE "####.###,@##"
// se il valore è corretto con FC, l'UM stampata deve essere quella dell'articolo
//MESSAGE _NUMEXPR,111->QUANT*349@->FC
END END
NUMERO 107 NUMERO 107
BEGIN BEGIN
KEY "prezzo" KEY "prezzo"
PROMPT 94 1 " £ " PROMPT 99 1 ""
FIELD 111->PREZZO FIELD LF_RMOVMAG->PREZZO
PICTURE "##.####.###@" PICTURE "##.####.###@"
END END
NUMERO 108 NUMERO 108
BEGIN BEGIN
KEY "valore" KEY "valore"
FLAGS "H" PROMPT 112 1 ""
PROMPT 120 1 "" MESSAGE _NUMEXPR,LF_RMOVMAG->PREZZO*LF_RMOVMAG->QUANT*349@->FC|ADD,10
MESSAGE _NUMEXPR,111->PREZZO*111->QUANT*349@->FC|ADD,10 PICTURE "##.###.####.##@"
END END
END // RIGHE MOVIMENTO END // RIGHE MOVIMENTO
@ -195,7 +268,7 @@ SECTION BODY ODD 1
NUMERO 10 NUMERO 10
BEGIN BEGIN
KEY "totale mov" KEY "totale mov"
PROMPT 1 3 "Totale valore movimentato: £ " PROMPT 83 3 "Totale valore movimentato: £ "
PICTURE "##.###.####.##@" PICTURE "##.###.####.##@"
END END

View File

@ -4,4 +4,10 @@
#define F_ANUM 104 #define F_ANUM 104
#define F_ORDINE 105 #define F_ORDINE 105
#define F_ANNOES 106 #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

View File

@ -1,15 +1,22 @@
#include "mg1500.h" #include "mg4100.h"
PAGE "Stampa lista movimenti" -1 -1 78 18 PAGE "Stampa lista movimenti" -1 -1 78 18
NUMBER F_ANNOES 4 NUMBER F_ANNOES 4
BEGIN BEGIN
FLAGS "A" FLAGS "A"
PROMPT 2 9 "Codice esercizio " 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 END
LISTBOX F_ORDINE 30 LISTBOX F_ORDINE 30
BEGIN BEGIN
PROMPT 2 1 "Stampa ordinata per " PROMPT 2 3 "Stampa ordinata per "
ITEM "D|data di competenza" ITEM "D|data di competenza"
MESSAGE SHOW,1@|HIDE,2@ MESSAGE SHOW,1@|HIDE,2@
ITEM "N|numero di registrazione" ITEM "N|numero di registrazione"
@ -18,19 +25,20 @@ END
DATA F_DADATA DATA F_DADATA
BEGIN BEGIN
PROMPT 2 3 "Dalla data " PROMPT 2 5 "Dalla data "
USE LF_MOVMAG KEY 4 SELECT ANNOES==#F_ANNOES// KEY 3 for DATAREG USE LF_MOVMAG KEY 4 SELECT ANNOES==#F_ANNOES// KEY 3 for DATAREG
INPUT DATAREG F_DADATA INPUT DATAREG F_DADATA
DISPLAY "Esercizio" ANNOES DISPLAY "Esercizio" ANNOES
DISPLAY "N.@10" NUMREG DISPLAY "N.@10" NUMREG
DISPLAY "Data@10" DATAREG DISPLAY "Data@10" DATAREG
DISPLAY "Descrizione@30" DESCR
OUTPUT F_DADATA DATAREG OUTPUT F_DADATA DATAREG
GROUP 1 GROUP 1
END END
DATA F_ADATA DATA F_ADATA
BEGIN BEGIN
PROMPT 2 5 "Alla data " PROMPT 2 7 "Alla data "
COPY USE F_DADATA COPY USE F_DADATA
INPUT DATAREG F_ADATA INPUT DATAREG F_ADATA
COPY DISPLAY F_DADATA COPY DISPLAY F_DADATA
@ -40,19 +48,20 @@ END
STRING F_DANUM 7 STRING F_DANUM 7
BEGIN BEGIN
PROMPT 2 3 "dal numero " PROMPT 2 5 "dal numero "
USE LF_MOVMAG KEY 1 SELECT ANNOES=#F_ANNOES USE LF_MOVMAG KEY 1 SELECT ANNOES=#F_ANNOES
INPUT NUMREG F_DANUM INPUT NUMREG F_DANUM
DISPLAY "Esercizio" ANNOES DISPLAY "Esercizio" ANNOES
DISPLAY "N.@10" NUMREG DISPLAY "N.@10" NUMREG
DISPLAY "Data@10" DATAREG DISPLAY "Data@10" DATAREG
DISPLAY "Descrizione@30" DESCR
OUTPUT F_DANUM NUMREG OUTPUT F_DANUM NUMREG
GROUP 2 GROUP 2
END END
STRING F_ANUM 7 STRING F_ANUM 7
BEGIN BEGIN
PROMPT 2 5 "Al numero " PROMPT 2 7 "Al numero "
COPY USE F_DANUM COPY USE F_DANUM
INPUT NUMREG F_ANUM INPUT NUMREG F_ANUM
COPY DISPLAY F_DANUM COPY DISPLAY F_DANUM
@ -60,6 +69,78 @@ BEGIN
GROUP 2 GROUP 2
END 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 BUTTON DLG_OK 10 2
BEGIN BEGIN
PROMPT -12 -1 "" PROMPT -12 -1 ""