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];
|
||||
//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];
|
||||
//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
|
||||
//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')
|
||||
{
|
||||
const long dacli = mask.get_long(F_DACODCLI);
|
||||
const long acodcli = mask.get_long(F_ACODCLI);
|
||||
if (dacli == acodcli && dacli > 0)
|
||||
bernazzata = true;
|
||||
only_one_client = true;
|
||||
}
|
||||
|
||||
//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
|
||||
TString prequery;
|
||||
prequery << "USE RDOC KEY 1\n";
|
||||
prequery << "SELECT ((CODARTMAG!=\"\")&&(BETWEEN(33->DATADOC,#DADATA,#ADATA))";
|
||||
if (bernazzata)
|
||||
prequery << "SELECT (BETWEEN(33->DATADOC,#DADATA,#ADATA)&&(333@.S7=#TIPORIGA))";
|
||||
|
||||
if (only_one_client)
|
||||
prequery << "&&(DOC.TIPOCF=='C')&&(DOC.CODCF==#DACODCLI)";
|
||||
prequery <<")\n";
|
||||
prequery << "JOIN DOC INTO PROVV==PROVV ANNO==ANNO CODNUM==CODNUM NDOC==NDOC\n";
|
||||
prequery << "FROM CODNUM=#CODNUM ANNO=#ANNO PROVV='D'\n";
|
||||
prequery << "TO CODNUM=#CODNUM ANNO=#ANNO PROVV='D'\n";
|
||||
|
||||
prequery << "\nJOIN DOC INTO PROVV==PROVV ANNO==ANNO CODNUM==CODNUM NDOC==NDOC";
|
||||
prequery << "\nJOIN %TRI ALIAS 333 INTO CODTAB=TIPORIGA";
|
||||
prequery << "\nFROM CODNUM=#CODNUM ANNO=#ANNO PROVV=D";
|
||||
prequery << "\nTO CODNUM=#CODNUM ANNO=#ANNO PROVV=D";
|
||||
TDocument_recordset totali(prequery);
|
||||
totali.set_var("#CODNUM", TVariant(mask.get(F_CODNUM)));
|
||||
totali.set_var("#DADATA", mask.get_date(F_DADATA));
|
||||
totali.set_var("#ADATA", mask.get_date(F_ADATA));
|
||||
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));
|
||||
const long totali_items = totali.items();
|
||||
if (totali_items > 0)
|
||||
@ -653,27 +658,38 @@ void TStatistiche_ve::elabora(const TMask& mask) const
|
||||
//scatta la query per la costruzione del recordset
|
||||
TString query;
|
||||
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)
|
||||
{
|
||||
case 'A': query << "(BETWEEN(CODARTMAG,#DACODART,#ACODART)))\n"; break;
|
||||
case 'C': query << "(DOC.TIPOCF=='C')&&(BETWEEN(DOC.CODCF,#DACODCLI,#ACODCLI)))\n"; break;
|
||||
case 'G': query << "(BETWEEN(ANAMAG.GRMERC,#DAGRMERC,#AGRMERC)))\n"; break;
|
||||
default: break;
|
||||
case 'A':
|
||||
query << "&&(BETWEEN(CODART,#DACODART,#ACODART))";
|
||||
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
|
||||
query << "JOIN DOC INTO PROVV==PROVV ANNO==ANNO CODNUM==CODNUM NDOC==NDOC\n";
|
||||
|
||||
//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";
|
||||
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_riga == 'M')
|
||||
{
|
||||
if (tipo_stat == 'G' || (tipo_stat == 'C' && (tipo_dettaglio == 'G' || tipo_dettaglio == 'M')))
|
||||
query << "\nJOIN ANAMAG INTO CODART==CODARTMAG";
|
||||
}
|
||||
|
||||
//ri-parte comune
|
||||
query << "FROM CODNUM=#CODNUM ANNO=#ANNO PROVV='D'\n";
|
||||
query << "TO CODNUM=#CODNUM ANNO=#ANNO PROVV='D'\n";
|
||||
query << "\nFROM CODNUM=#CODNUM ANNO=#ANNO PROVV=D";
|
||||
query << "\nTO CODNUM=#CODNUM ANNO=#ANNO PROVV=D";
|
||||
|
||||
|
||||
//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("#ADATA", mask.get_date(F_ADATA));
|
||||
righe.set_var("#ANNO", TVariant((long)mask.get_int(F_ANNO)));
|
||||
righe.set_var("#TIPORIGA", mask.get(F_TIPORIGA));
|
||||
|
||||
switch(tipo_stat)
|
||||
{
|
||||
|
@ -24,5 +24,7 @@
|
||||
#define F_ACODCLI 120
|
||||
#define F_ADESCLI 121
|
||||
|
||||
#define F_TIPORIGA 124
|
||||
|
||||
#define F_EXCEL 125
|
||||
#define F_PATH 126
|
||||
|
@ -64,28 +64,34 @@ END
|
||||
|
||||
GROUPBOX -1 78 5
|
||||
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
|
||||
|
||||
LIST F_TIPOSTAT 21
|
||||
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 "G|Gruppi merceologici" MESSAGE HIDE,1@|HIDE,3@|SHOW,2@
|
||||
ITEM "C|Clienti" MESSAGE HIDE,1@|HIDE,2@|SHOW,3@
|
||||
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
|
||||
BEGIN
|
||||
PROMPT 2 9 "Dettagliato per "
|
||||
PROMPT 43 8 "Dettagli "
|
||||
ITEM "|Non dettagliato"
|
||||
ITEM "A|Articolo - Cliente"
|
||||
ITEM "M|Gr.Merc. - Cliente"
|
||||
@ -94,7 +100,15 @@ BEGIN
|
||||
GROUP 3
|
||||
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
|
||||
PROMPT 1 11 "@bIntervallo di selezione"
|
||||
END
|
||||
@ -264,17 +278,22 @@ BEGIN
|
||||
CHECKTYPE NORMAL
|
||||
GROUP 3
|
||||
END
|
||||
|
||||
|
||||
//dati per file excel
|
||||
|
||||
GROUPBOX -1 78 4
|
||||
BEGIN
|
||||
PROMPT 1 15 "@bParametri per il file formato Excel"
|
||||
END
|
||||
|
||||
BOOLEAN F_EXCEL
|
||||
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 TRUE ENABLE,F_PATH
|
||||
END
|
||||
|
||||
STRING F_PATH 256 50
|
||||
STRING F_PATH 256 44
|
||||
BEGIN
|
||||
PROMPT 2 17 "Cartella dove salvare il file "
|
||||
DSELECT
|
||||
|
Loading…
x
Reference in New Issue
Block a user