campo-sirio/m770/77stas.cpp
alex 3e0ee48a95 Riportata la R9702 sulla R9703
git-svn-id: svn://10.65.10.50/trunk@5411 c028cbd2-c16b-5b4b-a496-9718f37d4682
1997-10-22 10:59:30 +00:00

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;
}