Patch level :10.0
Files correlati : Ricompilazione Demo : [ ] Commento : modifiche alla stampa statistiche git-svn-id: svn://10.65.10.50/trunk@20451 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
105d301e4d
commit
e39e03a360
@ -592,16 +592,18 @@ void TStatistiche_ve::elabora(const TMask& mask) const
|
|||||||
const char tipo_stat = mask.get(F_TIPOSTAT)[0];
|
const char tipo_stat = mask.get(F_TIPOSTAT)[0];
|
||||||
//se sceglie per cliente ha 3 possibilità di dettaglio (''=nessuno,'C'=raccolto per cliente,'A'=raccolto per articolo)
|
//se sceglie per cliente ha 3 possibilità di dettaglio (''=nessuno,'C'=raccolto per cliente,'A'=raccolto per articolo)
|
||||||
const char tipo_dettaglio = mask.get(F_DETTAGLIO)[0];
|
const char tipo_dettaglio = mask.get(F_DETTAGLIO)[0];
|
||||||
|
//volendo si possono includere anche le righedoc con articoli non in anamag o addirittura vuoti!
|
||||||
|
const char tipo_riga = mask.get(F_TIPORIGA)[0];
|
||||||
|
|
||||||
//stampa particolare bernazzalica in caso di UN SOLO CLIENTE selezionato nella stampa per cliente
|
//stampa particolare bernazzalica in caso di UN SOLO CLIENTE selezionato nella stampa per cliente
|
||||||
//in questo caso i totali non sono generali ma solo su quel cliente
|
//in questo caso i totali non sono generali ma solo su quel cliente
|
||||||
bool bernazzata = false;
|
bool only_one_client = false;
|
||||||
if (tipo_stat == 'C')
|
if (tipo_stat == 'C')
|
||||||
{
|
{
|
||||||
const long dacli = mask.get_long(F_DACODCLI);
|
const long dacli = mask.get_long(F_DACODCLI);
|
||||||
const long acodcli = mask.get_long(F_ACODCLI);
|
const long acodcli = mask.get_long(F_ACODCLI);
|
||||||
if (dacli == acodcli && dacli > 0)
|
if (dacli == acodcli && dacli > 0)
|
||||||
bernazzata = true;
|
only_one_client = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//creazione del csv recordset che verra' riempito dai record del recordset righe
|
//creazione del csv recordset che verra' riempito dai record del recordset righe
|
||||||
@ -612,19 +614,22 @@ void TStatistiche_ve::elabora(const TMask& mask) const
|
|||||||
//recordset per il calcolo dei totali mese/anno;servono per i calcoli futuri delle percentuali
|
//recordset per il calcolo dei totali mese/anno;servono per i calcoli futuri delle percentuali
|
||||||
TString prequery;
|
TString prequery;
|
||||||
prequery << "USE RDOC KEY 1\n";
|
prequery << "USE RDOC KEY 1\n";
|
||||||
prequery << "SELECT ((CODARTMAG!=\"\")&&(BETWEEN(33->DATADOC,#DADATA,#ADATA))";
|
prequery << "SELECT (BETWEEN(33->DATADOC,#DADATA,#ADATA)&&(333@.S7=#TIPORIGA))";
|
||||||
if (bernazzata)
|
|
||||||
|
if (only_one_client)
|
||||||
prequery << "&&(DOC.TIPOCF=='C')&&(DOC.CODCF==#DACODCLI)";
|
prequery << "&&(DOC.TIPOCF=='C')&&(DOC.CODCF==#DACODCLI)";
|
||||||
prequery <<")\n";
|
|
||||||
prequery << "JOIN DOC INTO PROVV==PROVV ANNO==ANNO CODNUM==CODNUM NDOC==NDOC\n";
|
prequery << "\nJOIN DOC INTO PROVV==PROVV ANNO==ANNO CODNUM==CODNUM NDOC==NDOC";
|
||||||
prequery << "FROM CODNUM=#CODNUM ANNO=#ANNO PROVV='D'\n";
|
prequery << "\nJOIN %TRI ALIAS 333 INTO CODTAB=TIPORIGA";
|
||||||
prequery << "TO CODNUM=#CODNUM ANNO=#ANNO PROVV='D'\n";
|
prequery << "\nFROM CODNUM=#CODNUM ANNO=#ANNO PROVV=D";
|
||||||
|
prequery << "\nTO CODNUM=#CODNUM ANNO=#ANNO PROVV=D";
|
||||||
TDocument_recordset totali(prequery);
|
TDocument_recordset totali(prequery);
|
||||||
totali.set_var("#CODNUM", TVariant(mask.get(F_CODNUM)));
|
totali.set_var("#CODNUM", TVariant(mask.get(F_CODNUM)));
|
||||||
totali.set_var("#DADATA", mask.get_date(F_DADATA));
|
totali.set_var("#DADATA", mask.get_date(F_DADATA));
|
||||||
totali.set_var("#ADATA", mask.get_date(F_ADATA));
|
totali.set_var("#ADATA", mask.get_date(F_ADATA));
|
||||||
totali.set_var("#ANNO", TVariant((long)mask.get_int(F_ANNO)));
|
totali.set_var("#ANNO", TVariant((long)mask.get_int(F_ANNO)));
|
||||||
if (bernazzata)
|
totali.set_var("#TIPORIGA", mask.get(F_TIPORIGA));
|
||||||
|
if (only_one_client)
|
||||||
totali.set_var("#DACODCLI", mask.get_long(F_DACODCLI));
|
totali.set_var("#DACODCLI", mask.get_long(F_DACODCLI));
|
||||||
const long totali_items = totali.items();
|
const long totali_items = totali.items();
|
||||||
if (totali_items > 0)
|
if (totali_items > 0)
|
||||||
@ -653,27 +658,38 @@ void TStatistiche_ve::elabora(const TMask& mask) const
|
|||||||
//scatta la query per la costruzione del recordset
|
//scatta la query per la costruzione del recordset
|
||||||
TString query;
|
TString query;
|
||||||
query << "USE RDOC KEY 1\n";
|
query << "USE RDOC KEY 1\n";
|
||||||
query << "SELECT ((CODARTMAG!=\"\")&&(BETWEEN(33->DATADOC,#DADATA,#ADATA))&&";
|
query << "SELECT (BETWEEN(33->DATADOC,#DADATA,#ADATA)&&(333@.S7=#TIPORIGA))";
|
||||||
|
|
||||||
switch (tipo_stat)
|
switch (tipo_stat)
|
||||||
{
|
{
|
||||||
case 'A': query << "(BETWEEN(CODARTMAG,#DACODART,#ACODART)))\n"; break;
|
case 'A':
|
||||||
case 'C': query << "(DOC.TIPOCF=='C')&&(BETWEEN(DOC.CODCF,#DACODCLI,#ACODCLI)))\n"; break;
|
query << "&&(BETWEEN(CODART,#DACODART,#ACODART))";
|
||||||
case 'G': query << "(BETWEEN(ANAMAG.GRMERC,#DAGRMERC,#AGRMERC)))\n"; break;
|
break;
|
||||||
default: break;
|
case 'C':
|
||||||
|
query << "&&(DOC.TIPOCF=='C')&&(BETWEEN(DOC.CODCF,#DACODCLI,#ACODCLI))";
|
||||||
|
break;
|
||||||
|
case 'G':
|
||||||
|
if (tipo_riga == 'M')
|
||||||
|
query << "&&(BETWEEN(ANAMAG.GRMERC,#DAGRMERC,#AGRMERC))";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//parte comune ai vari casi di statistica della query
|
//parte comune ai vari casi di statistica della query
|
||||||
query << "JOIN DOC INTO PROVV==PROVV ANNO==ANNO CODNUM==CODNUM NDOC==NDOC\n";
|
query << "\nJOIN DOC INTO PROVV==PROVV ANNO==ANNO CODNUM==CODNUM NDOC==NDOC";
|
||||||
|
query << "\nJOIN %TRI ALIAS 333 INTO CODTAB=TIPORIGA";
|
||||||
//parte non comune (deve joinare anamag per avere il grmerc
|
|
||||||
if (tipo_stat == 'G' || (tipo_stat == 'C' && (tipo_dettaglio == 'G' || tipo_dettaglio == 'M')))
|
|
||||||
query << "JOIN ANAMAG INTO CODART==CODARTMAG\n";
|
|
||||||
|
|
||||||
|
//parte non comune (deve joinare anamag per avere il grmerc)
|
||||||
|
if (tipo_riga == 'M')
|
||||||
|
{
|
||||||
|
if (tipo_stat == 'G' || (tipo_stat == 'C' && (tipo_dettaglio == 'G' || tipo_dettaglio == 'M')))
|
||||||
|
query << "\nJOIN ANAMAG INTO CODART==CODARTMAG";
|
||||||
|
}
|
||||||
|
|
||||||
//ri-parte comune
|
//ri-parte comune
|
||||||
query << "FROM CODNUM=#CODNUM ANNO=#ANNO PROVV='D'\n";
|
query << "\nFROM CODNUM=#CODNUM ANNO=#ANNO PROVV=D";
|
||||||
query << "TO CODNUM=#CODNUM ANNO=#ANNO PROVV='D'\n";
|
query << "\nTO CODNUM=#CODNUM ANNO=#ANNO PROVV=D";
|
||||||
|
|
||||||
|
|
||||||
//CREAZIONE RECORDSET
|
//CREAZIONE RECORDSET
|
||||||
@ -685,6 +701,7 @@ void TStatistiche_ve::elabora(const TMask& mask) const
|
|||||||
righe.set_var("#DADATA", mask.get_date(F_DADATA));
|
righe.set_var("#DADATA", mask.get_date(F_DADATA));
|
||||||
righe.set_var("#ADATA", mask.get_date(F_ADATA));
|
righe.set_var("#ADATA", mask.get_date(F_ADATA));
|
||||||
righe.set_var("#ANNO", TVariant((long)mask.get_int(F_ANNO)));
|
righe.set_var("#ANNO", TVariant((long)mask.get_int(F_ANNO)));
|
||||||
|
righe.set_var("#TIPORIGA", mask.get(F_TIPORIGA));
|
||||||
|
|
||||||
switch(tipo_stat)
|
switch(tipo_stat)
|
||||||
{
|
{
|
||||||
|
@ -24,5 +24,7 @@
|
|||||||
#define F_ACODCLI 120
|
#define F_ACODCLI 120
|
||||||
#define F_ADESCLI 121
|
#define F_ADESCLI 121
|
||||||
|
|
||||||
|
#define F_TIPORIGA 124
|
||||||
|
|
||||||
#define F_EXCEL 125
|
#define F_EXCEL 125
|
||||||
#define F_PATH 126
|
#define F_PATH 126
|
||||||
|
@ -64,28 +64,34 @@ END
|
|||||||
|
|
||||||
GROUPBOX -1 78 5
|
GROUPBOX -1 78 5
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 6 "@bParametri per la generazione statistiche"
|
PROMPT 1 6 "@bParametri da utilizzare per la generazione statistiche"
|
||||||
|
END
|
||||||
|
|
||||||
|
LIST F_TIPORIGA 16
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 7 "Tipo riga "
|
||||||
|
ITEMS "M|<M>erce"
|
||||||
|
ITEMS "S|<S>pese"
|
||||||
|
ITEMS "P|<P>restazioni"
|
||||||
|
ITEMS "R|<R>isorse"
|
||||||
|
ITEMS "A|<A>ttrezzature"
|
||||||
|
ITEMS "C|S<C>onti"
|
||||||
|
ITEMS "O|<O>maggi"
|
||||||
|
ITEMS "D|<D>escrizioni"
|
||||||
|
ITEMS "T|Re<T>tifiche"
|
||||||
END
|
END
|
||||||
|
|
||||||
LIST F_TIPOSTAT 21
|
LIST F_TIPOSTAT 21
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 7 "Tipo di statistica "
|
PROMPT 2 8 "Tipo statistica "
|
||||||
ITEM "A|Articoli" MESSAGE HIDE,2@|HIDE,3@|SHOW,1@ //group1=articoli,2=grmerc,3=clienti
|
ITEM "A|Articoli" MESSAGE HIDE,2@|HIDE,3@|SHOW,1@ //group1=articoli,2=grmerc,3=clienti
|
||||||
ITEM "G|Gruppi merceologici" MESSAGE HIDE,1@|HIDE,3@|SHOW,2@
|
ITEM "G|Gruppi merceologici" MESSAGE HIDE,1@|HIDE,3@|SHOW,2@
|
||||||
ITEM "C|Clienti" MESSAGE HIDE,1@|HIDE,2@|SHOW,3@
|
ITEM "C|Clienti" MESSAGE HIDE,1@|HIDE,2@|SHOW,3@
|
||||||
END
|
END
|
||||||
|
|
||||||
LIST F_TIPODATA 10
|
|
||||||
BEGIN
|
|
||||||
PROMPT 2 8 "Dati da analizzare "
|
|
||||||
ITEM "P|Prezzi"
|
|
||||||
ITEM "Q|Quantità"
|
|
||||||
FIELD #TIPODATA
|
|
||||||
END
|
|
||||||
|
|
||||||
LIST F_DETTAGLIO 20
|
LIST F_DETTAGLIO 20
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 9 "Dettagliato per "
|
PROMPT 43 8 "Dettagli "
|
||||||
ITEM "|Non dettagliato"
|
ITEM "|Non dettagliato"
|
||||||
ITEM "A|Articolo - Cliente"
|
ITEM "A|Articolo - Cliente"
|
||||||
ITEM "M|Gr.Merc. - Cliente"
|
ITEM "M|Gr.Merc. - Cliente"
|
||||||
@ -94,7 +100,15 @@ BEGIN
|
|||||||
GROUP 3
|
GROUP 3
|
||||||
END
|
END
|
||||||
|
|
||||||
GROUPBOX -1 78 5
|
LIST F_TIPODATA 10
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 9 "Dati "
|
||||||
|
ITEM "P|Prezzi"
|
||||||
|
ITEM "Q|Quantità"
|
||||||
|
FIELD #TIPODATA
|
||||||
|
END
|
||||||
|
|
||||||
|
GROUPBOX -1 78 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 11 "@bIntervallo di selezione"
|
PROMPT 1 11 "@bIntervallo di selezione"
|
||||||
END
|
END
|
||||||
@ -264,17 +278,22 @@ BEGIN
|
|||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
GROUP 3
|
GROUP 3
|
||||||
END
|
END
|
||||||
|
|
||||||
//dati per file excel
|
//dati per file excel
|
||||||
|
|
||||||
|
GROUPBOX -1 78 4
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 15 "@bParametri per il file formato Excel"
|
||||||
|
END
|
||||||
|
|
||||||
BOOLEAN F_EXCEL
|
BOOLEAN F_EXCEL
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 16 "Genera file in formato Excel (stat_ art/gmc/cli .xls)"
|
PROMPT 2 16 "Genera file (stat_ art/gmc/cli .xls)"
|
||||||
MESSAGE FALSE CLEAR,F_PATH
|
MESSAGE FALSE CLEAR,F_PATH
|
||||||
MESSAGE TRUE ENABLE,F_PATH
|
MESSAGE TRUE ENABLE,F_PATH
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_PATH 256 50
|
STRING F_PATH 256 44
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 17 "Cartella dove salvare il file "
|
PROMPT 2 17 "Cartella dove salvare il file "
|
||||||
DSELECT
|
DSELECT
|
||||||
|
Loading…
x
Reference in New Issue
Block a user