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