Modifiche per permettere la ripetizione della stampa

git-svn-id: svn://10.65.10.50/trunk@555 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 1994-11-07 16:27:02 +00:00
parent ff355cbac4
commit f404830196

View File

@ -92,7 +92,7 @@ public:
bool elabora_riga(); // decide se fare salto pagina o no bool elabora_riga(); // decide se fare salto pagina o no
void scegli_cur(); void do_sort();
void set_completa (); void set_completa ();
void set_con_IV (); void set_con_IV ();
void set_senza_IV (); void set_senza_IV ();
@ -132,17 +132,30 @@ void CG1100_application::process_link(int id, const char* txt)
void CG1100_application::init_sort() void CG1100_application::init_sort()
{ {
_bil = new bil_ivd; switch (_tipo_stampa)
_sort = new TSort (sizeof(bil_ivd)); {
case con_IV_direttiva:
_sort -> addsortkey ((char*)&(_bil->sez) - (char*)&(_bil->sez),1); _sort->reset(sizeof(bil_ivd));
_sort -> addsortkey ((char*)&(_bil->let) - (char*)&(_bil->sez),1);
_sort -> addsortkey ((char*)&(_bil->numr) - (char*)&(_bil->sez),4); _sort -> addsortkey ((char*)&(_bil->sez) - (char*)&(_bil->sez),1);
_sort -> addsortkey ((char*)&(_bil->num) - (char*)&(_bil->sez),2); _sort -> addsortkey ((char*)&(_bil->let) - (char*)&(_bil->sez),1);
_sort -> addsortkey ((char*)&(_bil->gruppo) - (char*)&(_bil->sez),3); _sort -> addsortkey ((char*)&(_bil->numr) - (char*)&(_bil->sez),4);
_sort -> addsortkey ((char*)&(_bil->conto) - (char*)&(_bil->sez),3); _sort -> addsortkey ((char*)&(_bil->num) - (char*)&(_bil->sez),2);
_sort -> addsortkey ((char*)&(_bil->sottoc) - (char*)&(_bil->sez),6); _sort -> addsortkey ((char*)&(_bil->gruppo) - (char*)&(_bil->sez),3);
_sort->init(); _sort -> addsortkey ((char*)&(_bil->conto) - (char*)&(_bil->sez),3);
_sort -> addsortkey ((char*)&(_bil->sottoc) - (char*)&(_bil->sez),6);
break;
case con_ana_bil:
{
TRecfield codcbl (*_rec, PCN_CODCBL);
_sort->reset(_rec->len());
_sort->addsortkey (codcbl);
break;
}
default:
break;
}
} }
void CG1100_application::set_bil_key(bil_ivd* b, char sezione, char lettera, void CG1100_application::set_bil_key(bil_ivd* b, char sezione, char lettera,
@ -182,8 +195,8 @@ void CG1100_application::riempi_record(char sez,char let,const TString& numr,
void CG1100_application::postclose_print() void CG1100_application::postclose_print()
{ {
if (_tipo_stampa == con_IV_direttiva) // if (_tipo_stampa == con_IV_direttiva)
delete _sort; // delete _sort;
} }
print_action CG1100_application::postprocess_page(int file,int counter) print_action CG1100_application::postprocess_page(int file,int counter)
@ -296,12 +309,13 @@ default:
////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////
// Crea sort se necessario e seleziona il cursore opportuno // Crea sort se necessario e seleziona il cursore opportuno
////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////
void CG1100_application::scegli_cur() void CG1100_application::do_sort()
{ {
switch (_tipo_stampa) switch (_tipo_stampa)
{ {
case completa: case completa:
select_cursor (_cur_c1); case senza_IV_direttiva:
case senza_ana_bil:
break; break;
case con_IV_direttiva: case con_IV_direttiva:
{ {
@ -310,8 +324,7 @@ void CG1100_application::scegli_cur()
int num_conto; int num_conto;
bool classe_conto = FALSE; bool classe_conto = FALSE;
init_sort(); _sort->init();
select_cursor (_cur_c1); select_cursor (_cur_c1);
TCursor * cursor = current_cursor(); TCursor * cursor = current_cursor();
@ -339,7 +352,7 @@ void CG1100_application::scegli_cur()
if ((g != 0) && (c != 0) && (s == 0)) if ((g != 0) && (c != 0) && (s == 0))
{ {
if (sez != '0') if (sez != '\0' && sez != '0')
{ {
sez_conto = sez; sez_conto = sez;
@ -366,7 +379,7 @@ void CG1100_application::scegli_cur()
riempi_record(sez_conto,let_conto,numr_conto,num_conto,g,c,s,descr,sez_opp,let_opp,numr_opp,num_opp); riempi_record(sez_conto,let_conto,numr_conto,num_conto,g,c,s,descr,sez_opp,let_opp,numr_opp,num_opp);
else else
{ {
if (sez != '0') if (sez != '\0' && sez != '0')
{ {
if (let == '\0') if (let == '\0')
if ((sez == '1')||(sez == '2')) if ((sez == '1')||(sez == '2'))
@ -379,21 +392,14 @@ void CG1100_application::scegli_cur()
} }
_sort->endsort(); _sort->endsort();
delete _bil; // delete _bil;
select_cursor (_cur_c2); select_cursor (_cur_c2);
break; break;
} }
case senza_IV_direttiva:
select_cursor (_cur_c1);
break;
case con_ana_bil: case con_ana_bil:
{ {
TRecfield codcbl (*_rec, PCN_CODCBL);
_sort->addsortkey (codcbl);
_sort->init(); _sort->init();
select_cursor (_cur_c1); select_cursor (_cur_c1);
@ -419,9 +425,6 @@ void CG1100_application::scegli_cur()
select_cursor (_cur_c2); select_cursor (_cur_c2);
break; break;
} }
case senza_ana_bil:
select_cursor (_cur_c1);
break;
default: default:
break; break;
} }
@ -429,7 +432,7 @@ void CG1100_application::scegli_cur()
bool CG1100_application::preprocess_print (int file,int counter) bool CG1100_application::preprocess_print (int file,int counter)
{ {
//scegli_cur(); do_sort();
switch (_tipo_stampa) switch (_tipo_stampa)
{ {
case con_IV_direttiva: case con_IV_direttiva:
@ -582,10 +585,10 @@ void CG1100_application::set_con_IV()
} }
} }
} }
set_row (_i,"@58g%3d", _gruppo); set_row (_i,"@58g$[r]%3d$[n]", _gruppo);
set_row (_i,"@62g%3d", _conto); set_row (_i,"@62g$[r]%3d$[n]", _conto);
if (_sottoc != 0) if (_sottoc != 0)
set_row (_i,"@66g%6ld", _sottoc); set_row (_i,"@66g$[r]%6ld$[n]", _sottoc);
set_row (_i,"@73g%.40s", (const char*) descr); set_row (_i,"@73g%.40s", (const char*) descr);
if (sez_opp != '0') if (sez_opp != '0')
@ -1019,7 +1022,19 @@ bool CG1100_application::set_print(int)
_prima_volta = TRUE; _prima_volta = TRUE;
} }
scegli_cur(); switch (_tipo_stampa)
{
case completa:
case senza_IV_direttiva:
case senza_ana_bil:
select_cursor (_cur_c1); break;
case con_IV_direttiva:
case con_ana_bil:
select_cursor (_cur_c2); break;
default:
break;
}
init_sort();
_resetta_righe_stampa = TRUE; _resetta_righe_stampa = TRUE;
return TRUE; return TRUE;
@ -1188,6 +1203,8 @@ void CG1100_application::user_create()
_tipo_stampa = completa; _tipo_stampa = completa;
_salto_pag = FALSE; _salto_pag = FALSE;
_bil = new bil_ivd;
_sort = new TSort();
} }
@ -1197,6 +1214,8 @@ void CG1100_application::user_destroy()
delete _rel; delete _rel;
delete _rec; delete _rec;
delete _descr; delete _descr;
delete _bil;
delete _sort;
} }
int cg1100(int argc, char* argv[]) int cg1100(int argc, char* argv[])