- Aggiunto flag stampa totali di periodo
- Corretta la stampa degli header git-svn-id: svn://10.65.10.50/trunk@5554 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
b8bc385dd0
commit
56f054caa2
@ -346,6 +346,7 @@ class TStampa_stat : public TPrint_application
|
|||||||
_col_anno ; // numero di colonne che formano un "Anno" (=periodo di rif.)
|
_col_anno ; // numero di colonne che formano un "Anno" (=periodo di rif.)
|
||||||
bool _st_totr; // flag stampa totali di riga
|
bool _st_totr; // flag stampa totali di riga
|
||||||
bool _st_totc; // flag stampa totali di colonna
|
bool _st_totc; // flag stampa totali di colonna
|
||||||
|
bool _st_tota; // flag stampa totali di "anno"
|
||||||
static TString s_park; // stringa di lavoro
|
static TString s_park; // stringa di lavoro
|
||||||
// ******************
|
// ******************
|
||||||
// stampa file di Output
|
// stampa file di Output
|
||||||
@ -458,10 +459,11 @@ bool TStampa_stat::set_print(int i)
|
|||||||
|
|
||||||
_st_totr=printmask().get_bool(F_STTOTALIRIGA);
|
_st_totr=printmask().get_bool(F_STTOTALIRIGA);
|
||||||
_st_totc=printmask().get_bool(F_STTOTALICOL);
|
_st_totc=printmask().get_bool(F_STTOTALICOL);
|
||||||
|
_st_tota=printmask().get_bool(F_STTOTALIANNO);
|
||||||
_largcol = (_st_totr ? LARG_COLPERC : 0 ) + (selmask().get(F_TIPODATO)[0]=='V' ? LARG_COLVAL : LARG_COLQTA); // valori o quantità
|
_largcol = (_st_totr ? LARG_COLPERC : 0 ) + (selmask().get(F_TIPODATO)[0]=='V' ? LARG_COLVAL : LARG_COLQTA); // valori o quantità
|
||||||
_numcol_dati = selmask().get_int(F_PERIODO);
|
_numcol_dati = selmask().get_int(F_PERIODO);
|
||||||
_col_anno =min(_numcol_dati,printmask().get_int(F_COLANNO)); //numero di colonne che formano un "Anno"
|
_col_anno =min(_numcol_dati,printmask().get_int(F_COLANNO)); //numero di colonne che formano un "Anno"
|
||||||
_numcol = _numcol_dati+ (_st_totr ? int((_numcol_dati -1)/_col_anno+1) : 0);
|
_numcol = _numcol_dati+ (_st_tota ? int((_numcol_dati -1)/_col_anno+1) : 0);
|
||||||
_pagewidth=POS_PRIMACOL+int((FORMWIDTH-POS_PRIMACOL)/_largcol)*_largcol;
|
_pagewidth=POS_PRIMACOL+int((FORMWIDTH-POS_PRIMACOL)/_largcol)*_largcol;
|
||||||
|
|
||||||
// reset delle variabili per la gestione di gruppi ai vari livelli
|
// reset delle variabili per la gestione di gruppi ai vari livelli
|
||||||
@ -512,7 +514,7 @@ void TStampa_stat::preprocess_header()
|
|||||||
lastrow=row;
|
lastrow=row;
|
||||||
for (int c=0; c < _numcol; c++) // colonne
|
for (int c=0; c < _numcol; c++) // colonne
|
||||||
{
|
{
|
||||||
if (_st_totr && c && (((c)%_col_anno)==0 || c> _numcol_dati) )
|
if (_st_tota && c && (((c+1)%(_col_anno+1))==0 || c==_numcol-1) )
|
||||||
{
|
{
|
||||||
set_row_atpos('H',row,nome_totale(1+int((c-1)/_col_anno) ),POS_PRIMACOL+c*_largcol+_largcol/2 );
|
set_row_atpos('H',row,nome_totale(1+int((c-1)/_col_anno) ),POS_PRIMACOL+c*_largcol+_largcol/2 );
|
||||||
} else {
|
} else {
|
||||||
@ -675,7 +677,7 @@ int TStampa_stat::set_rows_colonne(int row,TRectype &strec)
|
|||||||
int col=0; // contatore di colonna corrente
|
int col=0; // contatore di colonna corrente
|
||||||
int position; // posizione fisica della colonna corrente
|
int position; // posizione fisica della colonna corrente
|
||||||
// **********
|
// **********
|
||||||
// setta i totali di colonne
|
// setta i totali di riga
|
||||||
if (strec.get_char(SVS_TIPO)==LINEA_DATI ||
|
if (strec.get_char(SVS_TIPO)==LINEA_DATI ||
|
||||||
strec.get_char(SVS_TIPO)==LINEA_RAFFRONTI && printmask().get(F_TIPORAFFRONTO)[0]==AS_VALUE)
|
strec.get_char(SVS_TIPO)==LINEA_RAFFRONTI && printmask().get(F_TIPORAFFRONTO)[0]==AS_VALUE)
|
||||||
{
|
{
|
||||||
@ -729,7 +731,7 @@ int TStampa_stat::set_rows_colonne(int row,TRectype &strec)
|
|||||||
// colonna con la percentuale rispetto al totale di riga
|
// colonna con la percentuale rispetto al totale di riga
|
||||||
if (_st_totr && aggiungi_perc && !_tot_riga[int(c/_col_anno)].is_zero())
|
if (_st_totr && aggiungi_perc && !_tot_riga[int(c/_col_anno)].is_zero())
|
||||||
{
|
{
|
||||||
set_row_atpos('R',row,((real)(strec.get_real(colname)/_tot_riga[int(c/_col_anno)]*100.0)).string(PICTURE_PERCENT),POS_PRIMACOL+(col+1)*_largcol-LARG_COLPERC);
|
set_row_atpos('R',row,((real)(strec.get_real(colname)/_tot_riga[int(c/_col_anno)]*100.0)).string(PICTURE_PERCENT),position+_largcol-LARG_COLPERC);
|
||||||
}
|
}
|
||||||
// riga con i totali di colonna
|
// riga con i totali di colonna
|
||||||
if (_st_totc && aggiungi_perc )
|
if (_st_totc && aggiungi_perc )
|
||||||
@ -738,18 +740,20 @@ int TStampa_stat::set_rows_colonne(int row,TRectype &strec)
|
|||||||
if (!_rec_totale.get_real(colname).is_zero())
|
if (!_rec_totale.get_real(colname).is_zero())
|
||||||
{
|
{
|
||||||
r_totc=((real)(strec.get_real(colname)/_rec_totale.get_real(colname)*100.0)).string(PICTURE_PERCENT);
|
r_totc=((real)(strec.get_real(colname)/_rec_totale.get_real(colname)*100.0)).string(PICTURE_PERCENT);
|
||||||
set_row_atpos('R',row+1,(const char *)r_totc,POS_PRIMACOL+col*_largcol+_largcol-LARG_COLPERC);
|
set_row_atpos('R',row+1,(const char *)r_totc,position+_largcol-LARG_COLPERC);
|
||||||
} else {
|
} else {
|
||||||
// aggiunge comunque una riga vuota per la spaziatura
|
// aggiunge comunque una riga vuota per la spaziatura
|
||||||
set_row_atpos('R',row+1,"",0);
|
set_row_atpos('R',row+1,"",0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// colonna con il totale di un "anno"
|
// colonna con il totale di un "anno"
|
||||||
if (_st_totr && aggiungi_perc && (((c+1)%_col_anno)==0 || c== _numcol_dati-1))
|
if (_st_tota && aggiungi_perc && (((c+1)%_col_anno)==0 || c== _numcol_dati-1))
|
||||||
{
|
{
|
||||||
col++;
|
col++;
|
||||||
set_row_atpos('R',row,(const char *)_tot_riga[int(c/_col_anno)].string(PICTURE),POS_PRIMACOL+col*_largcol);
|
position = POS_PRIMACOL+col*_largcol;
|
||||||
set_row_atpos('R',row,(const char *)real(100).string(PICTURE_PERCENT),POS_PRIMACOL+col*_largcol+_largcol-LARG_COLPERC);
|
set_row_atpos('R',row,(const char *)_tot_riga[int(c/_col_anno)].string(PICTURE),position);
|
||||||
|
if (_st_totr && aggiungi_perc)
|
||||||
|
set_row_atpos('R',row,(const char *)real(100).string(PICTURE_PERCENT),position+_largcol-LARG_COLPERC);
|
||||||
}
|
}
|
||||||
col++;
|
col++;
|
||||||
}
|
}
|
||||||
@ -812,7 +816,7 @@ int TStampa_stat::handle_levchange(int row,const int level)
|
|||||||
lencode=rec_grp2.get(SVS_CODICE).len();
|
lencode=rec_grp2.get(SVS_CODICE).len();
|
||||||
}
|
}
|
||||||
adjust_record(rec_grp1,lencode);
|
adjust_record(rec_grp1,lencode);
|
||||||
wrk_row.fill('-',_largcol*_numcol);
|
wrk_row.fill('-',_pagewidth-POS_PRIMACOL);
|
||||||
set_row_atpos('R',++row,(const char *)wrk_row,POS_PRIMACOL);
|
set_row_atpos('R',++row,(const char *)wrk_row,POS_PRIMACOL);
|
||||||
wrk_row ="Totale ";
|
wrk_row ="Totale ";
|
||||||
wrk_row << partkey_name(rec_grp1.get(SVS_LEVCODE));
|
wrk_row << partkey_name(rec_grp1.get(SVS_LEVCODE));
|
||||||
@ -1167,7 +1171,7 @@ void TStampa_stat::put_column(TRectype & statrec,int col,TSVriep_record& rieprec
|
|||||||
{
|
{
|
||||||
real r,fc;
|
real r,fc;
|
||||||
static TString colname("Rxx");
|
static TString colname("Rxx");
|
||||||
CHECK(col>=0,"Le colonne partono da 0");
|
if (col<0 || col> SVS_NUMCOLONNE) return;
|
||||||
colname=SVS_COLNAME;
|
colname=SVS_COLNAME;
|
||||||
colname << col;
|
colname << col;
|
||||||
r=statrec.get_real(colname);
|
r=statrec.get_real(colname);
|
||||||
@ -1397,9 +1401,9 @@ void TStampa_stat::genera_file(const char *outfn)
|
|||||||
key.cut(0);
|
key.cut(0);
|
||||||
for (int l=0; l< num_liv_output; l++)
|
for (int l=0; l< num_liv_output; l++)
|
||||||
{
|
{
|
||||||
static TString lev_code;
|
static TString16 levcode;
|
||||||
lev_code=s_chiave.cell(l,s_chiave.cid2index(S_CAMPO));
|
levcode=s_chiave.cell(l,s_chiave.cid2index(S_CAMPO));
|
||||||
key << get_part(lev_code,curr);
|
key << get_part(levcode,curr);
|
||||||
// setta il range in base all'algoritmo (Valori/progressivi/mobili)
|
// setta il range in base all'algoritmo (Valori/progressivi/mobili)
|
||||||
const int range=(alg=='V'? col : alg=='P' ? ((1+int(col/_col_anno))*_col_anno-1) : (col+_col_anno-1));
|
const int range=(alg=='V'? col : alg=='P' ? ((1+int(col/_col_anno))*_col_anno-1) : (col+_col_anno-1));
|
||||||
if (col>=first_col) // periodo da osservare
|
if (col>=first_col) // periodo da osservare
|
||||||
@ -1409,7 +1413,7 @@ void TStampa_stat::genera_file(const char *outfn)
|
|||||||
update_file(" ","T",LINEA_DATI,num_liv_output,c,curr);
|
update_file(" ","T",LINEA_DATI,num_liv_output,c,curr);
|
||||||
if (*s_chiave.cell(l,s_chiave.cid2index(S_TOTALE))=='X')
|
if (*s_chiave.cell(l,s_chiave.cid2index(S_TOTALE))=='X')
|
||||||
for (int c=max(col,0);c <= range ; c++)
|
for (int c=max(col,0);c <= range ; c++)
|
||||||
update_file(key,lev_code,LINEA_DATI,num_liv_output-l-1,c,curr);
|
update_file(key,levcode,LINEA_DATI,num_liv_output-l-1,c,curr);
|
||||||
}
|
}
|
||||||
if (first_raffr !=first_col && col >= first_raffr && col<=first_raffr+_numcol_dati) // periodo da confrontare
|
if (first_raffr !=first_col && col >= first_raffr && col<=first_raffr+_numcol_dati) // periodo da confrontare
|
||||||
{
|
{
|
||||||
@ -1418,7 +1422,7 @@ void TStampa_stat::genera_file(const char *outfn)
|
|||||||
update_file(" Totale","T",LINEA_RAFFRONTI, num_liv_output , c -first_raffr,curr);
|
update_file(" Totale","T",LINEA_RAFFRONTI, num_liv_output , c -first_raffr,curr);
|
||||||
if (*s_chiave.cell(l,s_chiave.cid2index(S_TOTALE))=='X')
|
if (*s_chiave.cell(l,s_chiave.cid2index(S_TOTALE))=='X')
|
||||||
for (int c=max(col,0); c <= range; c++)
|
for (int c=max(col,0); c <= range; c++)
|
||||||
update_file(key,lev_code,LINEA_RAFFRONTI,num_liv_output-l-1, c -first_raffr , curr);
|
update_file(key,levcode,LINEA_RAFFRONTI,num_liv_output-l-1, c -first_raffr , curr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1561,6 +1565,7 @@ const TString& TStampa_stat::get_part(TString & lev_code, TSVriep_record &riepre
|
|||||||
return park.rpad(3);
|
return park.rpad(3);
|
||||||
case 'F': // cliente / fornitore
|
case 'F': // cliente / fornitore
|
||||||
case 'C': // cliente / fornitore
|
case 'C': // cliente / fornitore
|
||||||
|
if (rieprec.get_char(SVR_TIPOCF)>' ')
|
||||||
lev_code[0]=rieprec.get_char(SVR_TIPOCF);
|
lev_code[0]=rieprec.get_char(SVR_TIPOCF);
|
||||||
park.format("%c%6d",lev_code[0],rieprec.get_int(SVR_CODCF));
|
park.format("%c%6d",lev_code[0],rieprec.get_int(SVR_CODCF));
|
||||||
return park;
|
return park;
|
||||||
|
@ -7,6 +7,8 @@
|
|||||||
#define F_TIPOTOTALIRIGA 110
|
#define F_TIPOTOTALIRIGA 110
|
||||||
#define F_STTOTALICOL 111
|
#define F_STTOTALICOL 111
|
||||||
#define F_TIPOTOTALICOL 112
|
#define F_TIPOTOTALICOL 112
|
||||||
|
#define F_STTOTALIANNO 113
|
||||||
|
#define F_COLANNO 114
|
||||||
|
|
||||||
#define F_FLAGSTOTALI 200
|
#define F_FLAGSTOTALI 200
|
||||||
#define F_FLAGT1 200
|
#define F_FLAGT1 200
|
||||||
@ -18,7 +20,6 @@
|
|||||||
#define F_FLAGT7 206
|
#define F_FLAGT7 206
|
||||||
#define F_FLAGT8 207
|
#define F_FLAGT8 207
|
||||||
#define F_FLAGT9 208
|
#define F_FLAGT9 208
|
||||||
#define F_COLANNO 210
|
|
||||||
#define AS_VALUE 'V'
|
#define AS_VALUE 'V'
|
||||||
#define AS_DIFF 'D'
|
#define AS_DIFF 'D'
|
||||||
#define AS_PERC 'P'
|
#define AS_PERC 'P'
|
||||||
|
@ -34,34 +34,46 @@ BEGIN
|
|||||||
ITEM "P|come percentuale"
|
ITEM "P|come percentuale"
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOL F_STTOTALIRIGA
|
BOOL F_STTOTALIANNO
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 4 "Stampo i totali di riga"
|
PROMPT 2 4 "Stampo i totali dei periodi di base"
|
||||||
MESSAGE TRUE ENABLE,F_TIPOTOTALIRIGA|ENABLE,F_COLANNO
|
MESSAGE TRUE ENABLE,F_COLANNO|ENABLE,F_STTOTALIRIGA
|
||||||
MESSAGE FALSE CLEAR,F_TIPOTOTALIRIGA|DISABLE,F_COLANNO
|
MESSAGE FALSE DISABLE,F_COLANNO|" ",F_STTOTALIRIGA
|
||||||
END
|
|
||||||
|
|
||||||
LIST F_TIPOTOTALIRIGA 1 25
|
|
||||||
BEGIN
|
|
||||||
PROMPT 29 4 ""
|
|
||||||
ITEM "P|come percentuale"
|
|
||||||
END
|
END
|
||||||
|
|
||||||
NUM F_COLANNO 2
|
NUM F_COLANNO 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 5 "Numero di colonne del periodo di base "
|
PROMPT 42 4 "composti da "
|
||||||
|
END
|
||||||
|
|
||||||
|
TEXT DLG_NULL
|
||||||
|
BEGIN
|
||||||
|
PROMPT 60 4 "colonne "
|
||||||
|
END
|
||||||
|
|
||||||
|
BOOL F_STTOTALIRIGA
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 6 "Stampo i totali di riga"
|
||||||
|
MESSAGE TRUE ENABLE,F_TIPOTOTALIRIGA
|
||||||
|
MESSAGE FALSE CLEAR,F_TIPOTOTALIRIGA
|
||||||
|
END
|
||||||
|
|
||||||
|
LIST F_TIPOTOTALIRIGA 1 25
|
||||||
|
BEGIN
|
||||||
|
PROMPT 29 6 ""
|
||||||
|
ITEM "P|come percentuale"
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOL F_STTOTALICOL
|
BOOL F_STTOTALICOL
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 7 "Stampo i totali di colonna"
|
PROMPT 2 8 "Stampo i totali di colonna"
|
||||||
MESSAGE TRUE ENABLE,F_TIPOTOTALICOL
|
MESSAGE TRUE ENABLE,F_TIPOTOTALICOL
|
||||||
MESSAGE FALSE CLEAR,F_TIPOTOTALICOL
|
MESSAGE FALSE CLEAR,F_TIPOTOTALICOL
|
||||||
END
|
END
|
||||||
|
|
||||||
LIST F_TIPOTOTALICOL 1 25
|
LIST F_TIPOTOTALICOL 1 25
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 35 7 ""
|
PROMPT 35 8 ""
|
||||||
ITEM "P|come percentuale"
|
ITEM "P|come percentuale"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user