Patch level : at 1.7 702

Files correlati     : at8.exe
Ricompilazione Demo : [ ]
Commento            : Aggiornamento archivi da altra sezione RIMINI: aggiunta possibilita di caricare le famiglie


git-svn-id: svn://10.65.10.50/trunk@12140 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
cris 2004-06-03 10:45:51 +00:00
parent 6470ebcc73
commit dc44bbbd4f
3 changed files with 146 additions and 3 deletions

View File

@ -19,6 +19,7 @@
#include "contsan.h"
#include "idoneita.h"
#include "benem.h"
#include "famiglie.h"
class TAggConSan : public TApplication
{
@ -29,10 +30,12 @@ class TAggConSan : public TApplication
TLocalisamfile* _contsan;
TLocalisamfile* _idoneita;
TLocalisamfile* _benem;
TLocalisamfile* _famiglie;
TRecord_array* _sdonazioni;
TRecord_array* _scontrolli;
TRecord_array* _sidoneita;
TRecord_array* _sbenem;
TRecord_array* _sfamiglie;
// parametri di sezione
int _intsi_f1, _intsi_f2, _intsi_m, _intaf_m, _etadonne;
int _numdon1, _numdon2;
@ -64,10 +67,12 @@ bool TAggConSan::create()
_contsan = new TLocalisamfile(LF_CONTSAN);
_idoneita = new TLocalisamfile(LF_IDONEITA);
_benem = new TLocalisamfile(LF_BENEM);
_famiglie = new TLocalisamfile(LF_FAMIGLIE);
_sdonazioni = new TRecord_array(LF_DONAZ,DON_PROGDON);
_scontrolli = new TRecord_array(LF_CONTSAN,CON_PROGCON);
_sidoneita = new TRecord_array(LF_IDONEITA,IDO_PROGIDO);
_sbenem = new TRecord_array(LF_BENEM,BEN_PROGBEN);
_sfamiglie = new TRecord_array(LF_FAMIGLIE,FAM_PROGFAM);
TConfig config(CONFIG_STUDIO);
_numdon1 = config.get_int("NumDon1");
_numdon2 = config.get_int("NumDon2");
@ -89,10 +94,12 @@ bool TAggConSan::create()
bool TAggConSan::destroy()
{
delete _sfamiglie;
delete _sbenem;
delete _sidoneita;
delete _scontrolli;
delete _sdonazioni;
delete _famiglie;
delete _benem;
delete _idoneita;
delete _contsan;
@ -116,6 +123,7 @@ bool TAggConSan::menu(MENU_TAG m)
bool anagrafica = _msk->get_bool(F_ANAGRAFICA);
bool controlli = _msk->get_bool(F_CONTROLLI);
bool benemerenze = _msk->get_bool(F_BENEMERENZE);
bool famiglie = _msk->get_bool(F_FAMIGLIE);
TLocalisamfile& soggetti = _rel->lfile();
_rel->lfile().setkey(2);
bool modificato = FALSE;
@ -472,6 +480,69 @@ bool TAggConSan::menu(MENU_TAG m)
delete pi;
delete fc;
}
if (famiglie)
{
TString16 codsez = _msk->get(F_SEZINI);
TString16 codsot = _msk->get(F_SOTINI);
for(_famiglie->first(); !_famiglie->eof(); _famiglie->next())
{
soggetti.setkey(1);
soggetti.zero();
soggetti.put(SOG_CODICE, _famiglie->get(FAM_CODFAM));
if (soggetti.read() == NOERR)
{
if (soggetti.get_long(SOG_CODICE) == _famiglie->get_long(FAM_CODFAM) && soggetti.get(SOG_CODSEZ) == codsez && soggetti.get(SOG_CODSOT))
_famiglie->remove();
}
}
_famiglie->last();
_rel->lfile().setkey(2);
long ultfam = _famiglie->get_long(FAM_FAMIGLIA);
long actfam = 0, prevfam = -1;
TExternisamfile* fc = new TExternisamfile("$portafam");
TProgind *pi;
pi = new TProgind(fc->eod(),"Aggiornamento famiglie", FALSE, TRUE, 10);
pi->setstatus(1);
for(fc->first(); !fc->eof(); fc->next())
{
pi->addstatus(1);
modificato = FALSE;
const TString80 cognome = fc->get("COGNOME");
const TString80 nome = fc->get("NOME");
const TDate datanasc = fc->get_date("DATANASC");
recsog.zero();
recsog.put(SOG_COGNOME, cognome);
recsog.put(SOG_NOME, nome);
recsog.put(SOG_DATANASC, datanasc);
if (recsog.read(_rel->lfile())==NOERR)
{
TRectype& recfam = fc->curr();
recfam.put(FAM_CODFAM, recsog.get(SOG_CODICE));
actfam = recfam.get_long(FAM_FAMIGLIA);
if (actfam != prevfam)
{
ultfam++;
prevfam = actfam;
}
recfam.put(FAM_FAMIGLIA, ultfam);
recfam.put(FAM_PROGFAM, fc->get("PROGFAM"));
recfam.put(FAM_GRADOPAR, fc->get("GRADOPAR"));
_famiglie->write(recfam);
}
else
{
rigastampa = "";
rigastampa << cognome;
rigastampa << " " << nome;
rigastampa << " " << datanasc.string();
row.reset();
row.put(rigastampa);
printer().print(row);
}
}
delete pi;
delete fc;
}
pr.formfeed();
pr.close();
}

View File

@ -4,3 +4,9 @@
#define F_ANAGRAFICA 101
#define F_CONTROLLI 102
#define F_BENEMERENZE 103
#define F_FAMIGLIE 104
#define F_SEZINI 105
#define F_D_SEZINI 106
#define F_SOTINI 107
#define F_D_SOTINI 108

View File

@ -21,18 +21,84 @@ END
BOOLEAN F_ANAGRAFICA
BEGIN
PROMPT 2 3 "Aggiorna dati anagrafici"
PROMPT 2 2 "Aggiorna dati anagrafici"
END
BOOLEAN F_CONTROLLI
BEGIN
PROMPT 2 4 "Aggiorna controlli sanitari e idoneita'"
PROMPT 2 3 "Aggiorna controlli sanitari e idoneita'"
END
BOOLEAN F_BENEMERENZE
BEGIN
PROMPT 2 5 "Aggiorna benemerenze"
PROMPT 2 4 "Aggiorna benemerenze"
END
BOOLEAN F_FAMIGLIE
BEGIN
PROMPT 2 5 "Aggiorna famiglie"
MESSAGE TRUE ENABLE,1@
MESSAGE FALSE RESET,1@|DISABLE,1@
END
STRING F_SEZINI 2
BEGIN
PROMPT 25 5 "Sez. "
FLAGS "U"
USE LF_SEZIONI
INPUT CODSEZ F_SEZINI
INPUT CODSOT F_SOTINI
DISPLAY "Cod.sez" CODSEZ
DISPLAY "Cod.sot." CODSOT
DISPLAY "Sezione@25" DENSEZ
DISPLAY "Sottogruppo@25" DENSOT
OUTPUT F_SEZINI CODSEZ
OUTPUT F_D_SEZINI DENSEZ
OUTPUT F_SOTINI CODSOT
OUTPUT F_D_SOTINI DENSOT
CHECKTYPE SEARCH
HELP "Codice sezione da cui partire"
GROUP 1
END
STRING F_D_SEZINI 25
BEGIN
PROMPT 35 5 ""
FLAGS "U"
USE LF_SEZIONI KEY 2
INPUT DENSEZ F_D_SEZINI
DISPLAY "Sezione@25" DENSEZ
DISPLAY "Sottogruppo@25" DENSOT
DISPLAY "Cod.sez" CODSEZ
DISPLAY "Cod.sot." CODSOT
COPY OUTPUT F_SEZINI
CHECKTYPE NORMAL
HELP "Sezione da cui partire"
GROUP 1
END
STRING F_SOTINI 2
BEGIN
PROMPT 25 6 "Sot. "
COPY ALL F_SEZINI
CHECKTYPE SEARCH
HELP "Codice sottogruppo da cui partire"
GROUP 1
END
STRING F_D_SOTINI 25
BEGIN
PROMPT 35 6 ""
FLAGS "U"
COPY USE F_D_SEZINI
INPUT DENSEZ F_D_SEZINI
INPUT DENSOT F_D_SOTINI
COPY DISPLAY F_D_SEZINI
COPY OUTPUT F_D_SEZINI
CHECKTYPE NORMAL
HELP "Sottogruppo da cui partire"
GROUP 1
END
ENDPAGE