99 lines
2.1 KiB
C++
Executable File
99 lines
2.1 KiB
C++
Executable File
// stampa allegato soci
|
|
#include "77stba.h"
|
|
#include "soci.h"
|
|
|
|
bool AlleSoci_filter_function(const TRelation* rel)
|
|
{
|
|
TString qual(3);
|
|
qual = rel->lfile(LF_SOCI).get(SOCI_RICQUAL);
|
|
return (qual=="A" || qual=="B" || qual=="C");
|
|
}
|
|
|
|
long TAlleSoci::filtra(const long codditta)
|
|
{
|
|
TString filtro(24);
|
|
_codditta=codditta;
|
|
|
|
TLocalisamfile& fl = cursor()->file(LF_SOCI);
|
|
TRectype da(fl.curr());
|
|
TRectype a(fl.curr());
|
|
da.zero();
|
|
a.zero();
|
|
da.put(SOCI_CODDITTA, codditta);
|
|
da.put(SOCI_ATTPREC, "A");
|
|
da.put(SOCI_TIPOASOC, "F");
|
|
a.put(SOCI_CODDITTA, codditta);
|
|
a.put(SOCI_ATTPREC, "A");
|
|
a.put(SOCI_TIPOASOC, "F");
|
|
cursor()->setregion(da, a);
|
|
|
|
cursor()->set_filterfunction(AlleSoci_filter_function);
|
|
const long items = cursor()->items();
|
|
return items;
|
|
}
|
|
|
|
void TAlleSoci::set_testata(TPrinter& pr)
|
|
{
|
|
TPrint_section& header = section('H', first_page);
|
|
header.update();
|
|
const int header_righe = header.height();
|
|
for (int i = 0; i < header_righe; i++)
|
|
pr.setheaderline(i, header.row(i));
|
|
}
|
|
|
|
void TAlleSoci::stampa_corpo(TPrinter& pr)
|
|
{
|
|
TPrint_section& body = section('B', odd_page);
|
|
_nprog++;
|
|
TForm_item& item_nprog = body.find_field(1);
|
|
TString snprog(5);
|
|
snprog << _nprog;
|
|
item_nprog.set(snprog);
|
|
|
|
body.update();
|
|
const int body_righe = body.height();
|
|
for (int i = 0; i < body_righe; i++)
|
|
{
|
|
pr.print(body.row(i));
|
|
_RigaCorr++;
|
|
}
|
|
if (usa_progind())
|
|
progind()->addstatus(1);
|
|
}
|
|
|
|
bool TAlleSoci::print(const long codditta, const long NumFis, const long NumNoFis)
|
|
{
|
|
TCursor* cur = cursor();
|
|
TPrinter& pr = printer();
|
|
|
|
const long numsoci = filtra(codditta);
|
|
if (numsoci <= 12)
|
|
return FALSE;
|
|
|
|
(*cur)=0L;
|
|
set_testata(pr);
|
|
|
|
_RigaCorr=0;
|
|
_nprog=0;
|
|
|
|
for ((*cur)=0L; cur->ok(); ++(*cur))
|
|
stampa_corpo(pr);
|
|
pr.formfeed();
|
|
close_print();
|
|
return TRUE;
|
|
}
|
|
|
|
bool TStampaAlleSoci::user_create()
|
|
{
|
|
_form = new TAlleSoci("77AS", quadro());
|
|
_form->set_cursor(_form->TForm::cursor());
|
|
_cur = _form->cursor();
|
|
_rel = _form->relation();
|
|
return TRUE;
|
|
}
|
|
|
|
bool TStampaAlleSoci::user_destroy()
|
|
{
|
|
delete _form;
|
|
return TRUE;
|
|
} |