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
{
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()
{

View File

@ -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

View File

@ -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

View File

@ -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 ""