Patch level : at

Files correlati     :
Ricompilazione Demo : [ ]
Commento            : riorganizzazione storica avis


git-svn-id: svn://10.65.10.50/trunk@10590 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
cris 2002-10-31 13:34:56 +00:00
parent 3558de0dc4
commit c060240c84
8 changed files with 433 additions and 685 deletions

View File

@ -4,7 +4,7 @@
#include "at5.h"
#define usage "Error - usage : %s -[0|1|2|3|4|5|7]"
#define usage "Error - usage : %s -[0|1|2|3|4]"
int main(int argc, char** argv)
{
@ -19,14 +19,10 @@ int main(int argc, char** argv)
rt = at5200(argc, argv); break;
case 2:
rt = at5300(argc, argv); break;
case 3:
rt = at5400(argc, argv); break;
//case 3:
//rt = at5400(argc, argv); break;
case 4:
rt = at5500(argc, argv); break;
case 5:
rt = at5600(argc, argv); break;
case 7:
rt = at5800(argc, argv); break;
default:
error_box(usage, argv[0]) ; rt = 1; break;
}

View File

@ -1,13 +1,11 @@
#ifndef __AT5_H
#define __AT5_H
int at5100(int argc, char* argv[]); // parametri
int at5100(int argc, char* argv[]); // stampa di controllo controlli sanitari
int at5200(int argc, char* argv[]); // situazione sanitaria
int at5300(int argc, char* argv[]); // turni per controlli
int at5400(int argc, char* argv[]); // riordina donazioni
//int at5400(int argc, char* argv[]); // stampa di controllo donazioni
int at5500(int argc, char* argv[]); // stampa scadenze per controlli
int at5600(int argc, char* argv[]); // stampa soggetti per consenso
int at5800(int argc, char* argv[]); // eliminazione convocazioni
#endif // __AT5_H

View File

@ -1,15 +1,301 @@
#include <confapp.h>
#include <form.h>
#include <mask.h>
#include <printapp.h>
#include <utility.h>
class ATParametriSezione : public TConfig_application
#include "contsan.h"
#include "soggetti.h"
#include "sezioni.h"
#include "at5.h"
#include "at5100a.h"
#define ALIAS_TCS 200
class TControlloControlli : public TPrintapp
{
TRelation* _rel;
TMask* _msk;
int _counter;
int _cur;
TDate _dataold, _dataini, _datafin;
TString16 _tipocon, _sezold;
TString16 _sezini, _sotini, _tipostampa, _ordinamento;
TParagraph_string _cognome_nome;
protected:
virtual bool user_create();
virtual bool user_destroy();
virtual bool set_print(int m);
virtual void set_page(int file, int cnt);
virtual bool preprocess_page(int file, int counter);
public:
ATParametriSezione() : TConfig_application(CONFIG_STUDIO) {}
virtual ~ATParametriSezione() {}
void crea_intestazione();
void header_stampa(const TDate data, const TString16 sezione, const TString16 sottog);
TMask& app_mask() { return *_msk; }
TControlloControlli() : _cognome_nome("",35) {}
};
int at5100 (int argc, char* argv[])
HIDDEN inline TControlloControlli& app() { return (TControlloControlli&) main_app(); }
void TControlloControlli::set_page(int file, int cnt)
{
ATParametriSezione appc;
appc.run(argc, argv, "Parametri Sezione");
set_row(1,"@0g#D" , &_counter);
set_row(1,"@7g@pn" , FLD(LF_SOGGETTI,SOG_CODICE,"########"));
set_row(1,"@16g@S" , FLD(LF_SOGGETTI,SOG_TESSAVIS));
set_row(1,"@24g#a" , &_cognome_nome);
set_row(1,"@60g@ld" , FLD(LF_SOGGETTI,SOG_DATANASC));
set_row(1,"@71g@S" , FLD(LF_SOGGETTI,SOG_CODSEZ));
set_row(1,"@74g@S" , FLD(LF_SOGGETTI,SOG_CODSOT));
set_row(1,"@77g@ld" , FLD(LF_CONTSAN,CON_DATACON));
set_row(1,"@88g@S" , FLD(LF_CONTSAN,CON_TIPOCON));
set_row(1,"@91g@S" , FLD(LF_CONTSAN,CON_IDON1));
set_row(1,"@94g@S" , FLD(LF_CONTSAN,CON_IDON2));
set_row(1,"@97g@S" , FLD(LF_CONTSAN,CON_IDON3));
set_row(1,"@100g@S" , FLD(LF_CONTSAN,CON_IDON4));
set_row(1,"@103g@pn" , FLD(LF_CONTSAN,CON_INTSI,"###"));
set_row(1,"@107g@pn" , FLD(LF_CONTSAN,CON_INTAF,"###"));
set_row(1,"@111g@S" , FLD(LF_CONTSAN,CON_PROSSTIPO));
set_row(1,"@114g@ld" , FLD(LF_CONTSAN,CON_PROSSDATA));
set_row(1,"@125g@S" , FLD(LF_CONTSAN,CON_MOTIVO));
set_row(2,"@60g@S" , FLD(LF_CONTSAN,CON_RESPONSAB));
}
bool TControlloControlli::preprocess_page(int file, int counter)
{
// contatore soggetti stampati
// per ora non c'è
TString80 nome = current_cursor()->curr(LF_SOGGETTI).get(SOG_COGNOME);
nome << " ";
nome << current_cursor()->curr(LF_SOGGETTI).get(SOG_NOME);
_cognome_nome = nome;
// salto pagina se cambio punto di rottura
switch (_tipostampa[0])
{
case 'D':
{
const TDate datanew = current_cursor()->curr().get(CON_DATACON);
if (datanew != _dataold )
{
if (_dataold.ok())
printer().formfeed();
_dataold = datanew;
header_stampa(datanew,"","");
_counter = 0;
}
}
break;
case 'S':
{
TString16 sezione = current_cursor()->curr(LF_SOGGETTI).get(SOG_CODSEZ);
TString16 sottog = current_cursor()->curr(LF_SOGGETTI).get(SOG_CODSOT);
TString16 seznew = "";
seznew << sezione;
seznew << '/';
seznew << sottog;
if (seznew != _sezold )
{
if (_sezold != "****")
printer().formfeed();
_sezold = seznew;
header_stampa(NULLDATE,sezione,sottog);
_counter = 0;
}
}
break;
}
_counter++;
return TRUE;
}
void TControlloControlli::header_stampa(const TDate data, const TString16 sezione, const TString16 sottog)
{
TString intestazione(132);
intestazione = "STAMPA CONTROLLI SANITARI ";
switch (_tipostampa[0])
{
case 'D':
{
intestazione << "PER DATA ";
intestazione << data;
}
break;
case 'S':
{
intestazione << "PER SEZIONE ";
intestazione << sezione;
if (sottog.not_empty())
{
intestazione << "/";
intestazione << sottog;
}
TLocalisamfile sez(LF_SEZIONI);
sez.setkey(1);
TRectype& recsez = sez.curr();
recsez.zero();
recsez.put(SEZ_CODSEZ, sezione);
recsez.put(SEZ_CODSOT, sottog);
if (sez.read() == NOERR)
{
intestazione << " ";
intestazione << recsez.get(SEZ_DENSEZ);
TString80 densot = recsez.get(SEZ_DENSOT);
if (densot.not_empty())
{
intestazione << "/";
intestazione << densot;
}
}
}
break;
}
intestazione.center_just();
set_header(1,"@0g%s", (const char*) intestazione);
intestazione = "Pag. @#";
set_header(1, "@120g%s", (const char*) intestazione);
return;
}
bool TControlloControlli::set_print(int m)
{
KEY tasto;
tasto = _msk->run();
if (tasto == K_ENTER)
{
_sezini = _msk->get(F_SEZINI);
_sotini = _msk->get(F_SOTINI);
_dataini = _msk->get_date(F_DATAINI);
_datafin = _msk->get_date(F_DATAFIN);
_tipocon = _msk->get(F_TIPOCON);
_tipostampa = _msk->get(F_TIPOSTAMPA);
_ordinamento = _msk->get(F_ORDINAMENTO);
TString80 chiave = "";
switch (_tipostampa[0])
{
case 'D':
chiave = "93->DATACON|";
break;
case 'S':
chiave = "90->CODSEZ|90->CODSOT|93->DATACON|";
break;
}
switch (_ordinamento[0])
{
case 'C':
chiave << "UPPER(90->COGNOME)|UPPER(90->NOME)";
break;
}
TString80 filtro = "";
// filtro per tipo controlli
if (_tipocon.not_empty())
filtro = format("(TIPOCON == \"%s\")",(const char*)_tipocon);
// filtro per sezione/sottogruppo
if (_sezini.not_empty())
{
if (filtro.empty())
filtro = format("(90->CODSEZ == \"%s\")",(const char*)_sezini);
else
{
filtro << " && ";
filtro << format("(90->CODSEZ == \"%s\")",(const char*)_sezini);
}
if (_sotini.not_empty())
{
if (filtro.empty())
filtro = format("(90->CODSOT == \"%s\")",(const char*)_sotini);
else
{
filtro << " && ";
filtro << format("(90->CODSOT == \"%s\")",(const char*)_sotini);
}
}
}
// filtro per data
TRectype da(LF_CONTSAN);
TRectype a (LF_CONTSAN);
if (_dataini.ok())
da.put(CON_DATACON, _dataini);
if (_datafin.ok())
a.put(CON_DATACON, _datafin);
_cur = add_cursor(new TSorted_cursor(_rel, (const char*) chiave, "", 2, &da, &a));
current_cursor()->setfilter((const char*) filtro, TRUE);
_counter = 0;
_dataold = NULLDATE;
_sezold = "****";
reset_files();
add_file(LF_CONTSAN);
reset_print();
crea_intestazione();
return TRUE;
}
else
return FALSE;
}
void TControlloControlli::crea_intestazione()
{
reset_header();
TString sep(132);
sep = "Selezioni stampa: ";
if (_sezini.not_empty())
{
sep << "Sez. ";
sep << _sezini;
if (_sotini.not_empty())
{
sep << "/";
sep << _sotini;
}
sep << "; ";
}
if (_dataini.ok())
{
sep << "Dal ";
sep << _dataini.string();
}
if (_datafin.ok())
{
sep << " Al ";
sep << _datafin.string();
}
if (_dataini.ok() || _datafin.ok())
sep << "; ";
if (_tipocon.not_empty())
{
sep << "Tipo ";
sep << _tipocon;
sep << "; ";
}
sep.center_just();
set_header(2,"@0g%s", (const char*) sep);
set_header(3,"@0gProg.@7gCodice@16gTessera@24gCognome e nome@60gNato il@71gSe/So@77gData con/tipo@91gIdoneita'@103g SI AF@111gPross.tipo@125gMot.");
set_header(4,"@60gResponsabile");
set_header(5,"@0g------@7g--------@16g-------@24g-----------------------------------@60g----------@71g-----@77g----------@88g--@91g-- -- -- --@103g--- ---@111g-- ----------@125g----");
}
bool TControlloControlli::user_create()
{
_rel = new TRelation(LF_CONTSAN);
_rel->add(LF_SOGGETTI, "CODICE==CODICE");
_rel->add("TCS", "CODTAB==TIPOCON",1,0,ALIAS_TCS);
_msk = new TMask("at5100a");
return TRUE;
}
bool TControlloControlli::user_destroy()
{
delete _msk;
delete _rel;
return TRUE;
}
int at5100(int argc, char* argv[])
{
TControlloControlli a;
a.run(argc, argv, "Stampa di controllo controlli sanitari");
return 0;
}

View File

@ -1,460 +1,180 @@
#include "at5100a.h"
/* toolbar */
TOOLBAR "" 0 20 0 2
PAGE "Stampa di controllo controlli sanitari" -1 -1 78 20
BUTTON DLG_OK 10 2
GROUPBOX DLG_NULL 77 4
BEGIN
PROMPT -12 -1 ""
PROMPT 1 1 "Scelta sezione/sottogruppo"
END
BUTTON DLG_QUIT 10 2
STRING F_SEZINI 2
BEGIN
PROMPT -22 -1 ""
PROMPT 2 2 "Sezione "
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 stampare"
END
ENDPAGE
STRING F_D_SEZINI 25
BEGIN
PROMPT 20 2 ""
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 stampare"
END
PAGE "Automatismi" -1 -1 78 20
STRING F_SOTINI 2
BEGIN
PROMPT 2 3 "Sottogruppo "
COPY ALL F_SEZINI
CHECKTYPE SEARCH
HELP "Codice sottogruppo da stampare"
END
STRING F_D_SOTINI 25
BEGIN
PROMPT 20 3 ""
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"
END
//STRING F_SEZFIN 2
//BEGIN
// PROMPT 41 2 "A "
// FLAGS "U"
// USE LF_SEZIONI
// INPUT CODSEZ F_SEZFIN
// INPUT CODSOT F_SOTFIN
// DISPLAY "Cod.sez" CODSEZ
// DISPLAY "Cod.sot." CODSOT
// DISPLAY "Sezione@25" DENSEZ
// DISPLAY "Sottogruppo@25" DENSOT
// OUTPUT F_SEZFIN CODSEZ
// OUTPUT F_D_SEZFIN DENSEZ
// OUTPUT F_SOTFIN CODSOT
// OUTPUT F_D_SOTFIN DENSOT
// CHECKTYPE SEARCH
// HELP "Codice sezione finale"
//END
//STRING F_D_SEZFIN 25
//BEGIN
// PROMPT 49 2 ""
// FLAGS "U"
// USE LF_SEZIONI KEY 2
// INPUT DENSEZ F_D_SEZFIN
// DISPLAY "Sezione@25" DENSEZ
// DISPLAY "Sottogruppo@25" DENSOT
// DISPLAY "Cod.sez" CODSEZ
// DISPLAY "Cod.sot." CODSOT
// COPY OUTPUT F_SEZFIN
// CHECKTYPE NORMAL
// HELP "Sezione finale"
//END
//STRING F_SOTFIN 2
//BEGIN
// PROMPT 41 3 " "
// COPY ALL F_SEZFIN
// CHECKTYPE SEARCH
// HELP "Codice sottogruppo finale"
//END
//STRING F_D_SOTFIN 25
//BEGIN
// PROMPT 49 3 ""
// FLAGS "U"
// COPY USE F_D_SEZFIN
// INPUT DENSEZ F_D_SEZFIN
// INPUT DENSOT F_D_SOTFIN
// COPY DISPLAY F_D_SEZFIN
// COPY OUTPUT F_D_SEZFIN
// CHECKTYPE NORMAL
// HELP "Sottogruppo finale"
//END
GROUPBOX DLG_NULL 77 5
BEGIN
PROMPT 1 0 "Primo passaggio di categoria"
PROMPT 1 5 "Selezione dati per la stampa"
END
NUMBER AT_NUMDON1 3
DATA F_DATAINI
BEGIN
PROMPT 2 1 "Donazioni necessarie "
HELP "Numero donazioni necessarie per il passaggio"
FIELD NumDon1
PROMPT 2 6 "Controlli dal "
END
STRING AT_CATINI1 2
DATA F_DATAFIN
BEGIN
PROMPT 2 2 "Categoria di partenza "
HELP "Categoria di partenza per il passaggio (possibile vuota)"
USE CTD
INPUT CODTAB[1,2] AT_CATINI1
DISPLAY "Cat." CODTAB[1,2]
DISPLAY "Descrizione@50" S0
OUTPUT AT_CATINI1 CODTAB[1,2]
OUTPUT AT_D_CATINI1 S0
FIELD CatIni1
CHECKTYPE NORMAL
PROMPT 30 6 "al "
END
STRING AT_CATFIN1 2
STRING F_TIPOCON 2
BEGIN
PROMPT 2 3 "Categoria di arrivo "
HELP "Categoria di arrivo per il passaggio (possibile vuota)"
USE CTD
INPUT CODTAB[1,2] AT_CATFIN1
DISPLAY "Cat." CODTAB[1,2]
DISPLAY "Descrizione@50" S0
OUTPUT AT_CATFIN1 CODTAB[1,2]
OUTPUT AT_D_CATFIN1 S0
FIELD CatFin1
CHECKTYPE NORMAL
END
GROUPBOX DLG_NULL 77 5
BEGIN
PROMPT 1 5 "Secondo passaggio di categoria"
END
NUMBER AT_NUMDON2 3
BEGIN
PROMPT 2 6 "Donazioni necessarie "
HELP "Numero donazioni necessarie per il passaggio"
FIELD NumDon2
END
BOOLEAN AT_STTESS2
BEGIN
PROMPT 30 6 "Passaggio con stampa tessera"
HELP "Eseguire il cambio di categoria al momento della stampa tessera"
FIELD StTess2
END
STRING AT_CATINI2 2
BEGIN
PROMPT 2 7 "Categoria di partenza "
HELP "Categoria di partenza per il passaggio (possibile vuota)"
USE CTD
INPUT CODTAB[1,2] AT_CATINI2
DISPLAY "Cat." CODTAB[1,2]
DISPLAY "Descrizione@50" S0
OUTPUT AT_CATINI2 CODTAB[1,2]
OUTPUT AT_D_CATINI2 S0
FIELD CatIni2
CHECKTYPE NORMAL
END
STRING AT_CATFIN2 2
BEGIN
PROMPT 2 8 "Categoria di arrivo "
HELP "Categoria di arrivo per il passaggio (possibile vuota)"
USE CTD
INPUT CODTAB[1,2] AT_CATFIN2
DISPLAY "Cat." CODTAB[1,2]
DISPLAY "Descrizione@50" S0
OUTPUT AT_CATFIN2 CODTAB[1,2]
OUTPUT AT_D_CATFIN2 S0
FIELD CatFin2
CHECKTYPE NORMAL
END
GROUPBOX DLG_NULL 77 5
BEGIN
PROMPT 1 10 "Intervalli di donazione nelle idoneita' automatiche"
END
NUMBER AT_ETADONNE 3
BEGIN
PROMPT 2 11 "Eta' per la suddivisione delle donne in due fasce "
FIELD EtaDonne
END
NUMBER AT_INTSI_F1 3
BEGIN
PROMPT 2 12 "Intervallo SI per femmine 1ø fascia "
FIELD IntSI_F1
END
NUMBER AT_INTSI_F2 3
BEGIN
PROMPT 2 13 "Intervallo SI per femmine 2ø fascia "
FIELD IntSI_F2
END
NUMBER AT_INTSI_M 3
BEGIN
PROMPT 45 12 "Intervallo SI per maschi "
FIELD IntSI_M
END
NUMBER AT_INTAF_M 3
BEGIN
PROMPT 45 13 "Intervallo AF per tutti "
FIELD IntAF_M
END
BOOLEAN AT_DATAISC
BEGIN
PROMPT 2 16 "Data iscrizione (se vuota) uguale a data prima donazione"
HELP "Data iscrizione automaticamente uguale alla data prima donazione, se vuota"
FIELD DataIsc
END
BOOLEAN AT_NOMESSAGE
BEGIN
PROMPT 2 17 "Disabilita messaggi in giornaliero donazioni"
HELP "Disabilita i messaggi di attenzione in giornaliero donazioni"
FIELD NoMessage
END
BOOLEAN AT_AUTOID
BEGIN
PROMPT 2 18 "Idoneita' automatica"
HELP "Idoneita' automatica in giornaliero donazioni"
FIELD AutoId
MESSAGE TRUE ENABLE,AT_MOTIVOID
MESSAGE FALSE RESET,AT_MOTIVOID|DISABLE,AT_MOTIVOID
END
STRING AT_MOTIVOID 4
BEGIN
PROMPT 30 18 "Motivo "
FIELD MotivoId
PROMPT 2 7 "Tipo controllo "
FLAGS "U"
USE MTC
INPUT CODTAB AT_MOTIVOID
USE TCS
INPUT CODTAB F_TIPOCON
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT AT_MOTIVOID CODTAB
OUTPUT AT_D_MOTIVOID S0
DISPLAY "Descrizione@30" S0
OUTPUT F_TIPOCON CODTAB
OUTPUT F_D_TIPOCON S0
CHECKTYPE NORMAL
WARNING "Codice motivo non presente"
HELP "Motivo del controllo sanitario"
WARNING "Codice non presente"
END
STRING AT_D_MOTIVOID 25
STRING F_D_TIPOCON 30
BEGIN
PROMPT 45 18 ""
PROMPT 26 7 ""
FLAGS "D"
END
BOOLEAN AT_CTRLPASS
RADIOBUTTON F_TIPOSTAMPA 25
BEGIN
PROMPT 2 19 "Accesso ai controlli sanitari con password"
HELP "Permette l'inserimento ai controlli sanitari solo con password"
FIELD CtrlPass
PROMPT 1 10 "Stampa per "
ITEM "D|Data controllo"
ITEM "S|Sezione/Sottogruppo"
END
STRING AT_D_CATINI1 40
RADIOBUTTON F_ORDINAMENTO 25
BEGIN
PROMPT 30 2 ""
FLAGS "D"
PROMPT 40 10 "Ordinamento per "
ITEM "C|Cognome e nome"
ITEM "D|Data controllo"
END
STRING AT_D_CATFIN1 40
BUTTON DLG_OK 9 2
BEGIN
PROMPT 30 3 ""
FLAGS "D"
PROMPT -12 -1 ""
END
STRING AT_D_CATINI2 40
BUTTON DLG_QUIT 9 2
BEGIN
PROMPT 30 7 ""
FLAGS "D"
END
STRING AT_D_CATFIN2 40
BEGIN
PROMPT 30 8 ""
FLAGS "D"
PROMPT -22 -1 ""
END
ENDPAGE
PAGE "Etichette" -1 -1 78 20
GROUPBOX DLG_NULL 77 4
BEGIN
PROMPT 1 0 "Etichette soggetti"
END
STRING AT_ETFORM 8
BEGIN
PROMPT 2 1 "Formato "
FIELD EtFormato
USE LF_FORM
INPUT TIPOPROF AT_ETFORM
DISPLAY "Formato@8" TIPOPROF
DISPLAY "Descrizione@50" DESC
OUTPUT AT_ETFORM TIPOPROF
OUTPUT AT_D_ETFORM DESC
CHECKTYPE SEARCH
END
STRING AT_D_ETFORM 50
BEGIN
PROMPT 23 1 ""
FLAGS "D"
END
NUMBER AT_ETLARG 3
BEGIN
PROMPT 2 2 "Larghezza "
FIELD EtLarghezza
END
NUMBER AT_ETCOL 1
BEGIN
PROMPT 20 2 "Colonne "
FIELD EtColonne
END
GROUPBOX DLG_NULL 77 4
BEGIN
PROMPT 1 4 "Etichette per notiziario"
END
STRING AT_NETFORM 8
BEGIN
PROMPT 2 5 "Formato "
FIELD EtNFormato
USE LF_FORM
INPUT TIPOPROF AT_NETFORM
DISPLAY "Formato@8" TIPOPROF
DISPLAY "Descrizione@50" DESC
OUTPUT AT_NETFORM TIPOPROF
OUTPUT AT_D_NETFORM DESC
CHECKTYPE SEARCH
END
STRING AT_D_NETFORM 50
BEGIN
PROMPT 23 5 ""
FLAGS "D"
END
NUMBER AT_NETLARG 3
BEGIN
PROMPT 2 6 "Larghezza "
FIELD EtNLarghezza
END
NUMBER AT_NETCOL 1
BEGIN
PROMPT 20 6 "Colonne "
FIELD EtNColonne
END
GROUPBOX DLG_NULL 77 4
BEGIN
PROMPT 1 8 "Etichette sezioni"
END
STRING AT_ETSFORM 8
BEGIN
PROMPT 2 9 "Formato "
FIELD EtSFormato
USE LF_FORM
INPUT TIPOPROF AT_ETSFORM
DISPLAY "Formato@8" TIPOPROF
DISPLAY "Descrizione@50" DESC
OUTPUT AT_ETSFORM TIPOPROF
OUTPUT AT_D_ETSFORM DESC
CHECKTYPE SEARCH
END
STRING AT_D_ETSFORM 50
BEGIN
PROMPT 23 9 ""
FLAGS "D"
END
NUMBER AT_ETSLARG 3
BEGIN
PROMPT 2 10 "Larghezza "
FIELD EtSLarghezza
END
NUMBER AT_ETSCOL 1
BEGIN
PROMPT 20 10 "Colonne "
FIELD EtSColonne
END
BOOLEAN AT_ETICTOT
BEGIN
PROMPT 2 13 "Stampa totale etichette stampate"
HELP "Stampa una riga di totale etichette stampate in fondo alla stampa"
FIELD EticTot
END
ENDPAGE
PAGE "Altre stampe" -1 -1 78 20
GROUPBOX DLG_NULL 77 4
BEGIN
PROMPT 1 0 "Scheda soggetti"
END
STRING AT_SCHFORM 8
BEGIN
PROMPT 2 1 "Formato "
FIELD SchFormato
USE LF_FORM
INPUT TIPOPROF AT_SCHFORM
DISPLAY "Formato@8" TIPOPROF
DISPLAY "Descrizione@50" DESC
OUTPUT AT_SCHFORM TIPOPROF
OUTPUT AT_D_SCHFORM DESC
CHECKTYPE SEARCH
END
STRING AT_D_SCHFORM 50
BEGIN
PROMPT 23 1 ""
FLAGS "D"
END
NUMBER AT_SCHXPAG 1
BEGIN
PROMPT 2 2 "Numero schede per pagina "
FIELD SchXPag
END
GROUPBOX DLG_NULL 77 3
BEGIN
PROMPT 1 4 "Elenco personalizzato"
END
STRING AT_ELENCO 8
BEGIN
PROMPT 2 5 "Formato "
FIELD ElencoFormato
USE LF_FORM
INPUT TIPOPROF AT_ELENCO
DISPLAY "Formato@8" TIPOPROF
DISPLAY "Descrizione@50" DESC
OUTPUT AT_ELENCO TIPOPROF
OUTPUT AT_D_ELENCO DESC
CHECKTYPE SEARCH
END
STRING AT_D_ELENCO 50
BEGIN
PROMPT 23 5 ""
FLAGS "D"
END
GROUPBOX DLG_NULL 77 4
BEGIN
PROMPT 1 7 "Cartoline per donazione"
END
STRING AT_CAFORM 8
BEGIN
PROMPT 2 8 "Formato "
FIELD CaFormato
USE LF_FORM
INPUT TIPOPROF AT_CAFORM
DISPLAY "Formato@8" TIPOPROF
DISPLAY "Descrizione@50" DESC
OUTPUT AT_CAFORM TIPOPROF
OUTPUT AT_D_CAFORM DESC
CHECKTYPE SEARCH
END
BOOLEAN AT_CAPARAM
BEGIN
PROMPT 2 9 "Richiesta parametri per stampa cartolina "
HELP "Chiede all'utente i dati da stampare sulla cartolina di convocazione"
FIELD CaParametri
END
STRING AT_D_CAFORM 50
BEGIN
PROMPT 23 8 ""
FLAGS "D"
END
GROUPBOX DLG_NULL 77 3
BEGIN
PROMPT 1 11 "Tessere"
END
STRING AT_TEFORM 8
BEGIN
PROMPT 2 12 "Formato "
FIELD TeFormato
USE LF_FORM
INPUT TIPOPROF AT_TEFORM
DISPLAY "Formato@8" TIPOPROF
DISPLAY "Descrizione@50" DESC
OUTPUT AT_TEFORM TIPOPROF
OUTPUT AT_D_TEFORM DESC
CHECKTYPE SEARCH
END
STRING AT_D_TEFORM 50
BEGIN
PROMPT 23 12 ""
FLAGS "D"
END
BOOLEAN AT_STAMPA80
BEGIN
PROMPT 2 15 "Stampa elenchi a 80 colonne dove previsto"
HELP "Stampa gli elenchi con il formato 80 colonne dove previsto"
FIELD Stampa80
END
ENDPAGE
ENDMASK

View File

@ -1,126 +0,0 @@
#include <applicat.h>
#include <recarray.h>
#include <relation.h>
#include <tabutil.h>
#include <utility.h>
#include "atlib.h"
#include "at5.h"
#include "soggetti.h"
#include "donaz.h"
#include "contsan.h"
#include "idoneita.h"
class TRiordinaSog : public TApplication
{
TLocalisamfile* _soggetti;
TLocalisamfile* _donaz;
TLocalisamfile* _contsan;
TLocalisamfile* _idoneita;
TRecord_array* _sdonazioni;
TRecord_array* _scontrolli;
TRecord_array* _sidoneita;
protected:
virtual bool create();
virtual bool destroy();
public:
TRiordinaSog() {}
virtual ~TRiordinaSog() {}
};
bool TRiordinaSog::create()
{
TApplication::create();
if (argc() < 3)
return error_box("Specificare il codice del soggetto");
long codsog = atol(argv(2));
_soggetti = new TLocalisamfile(LF_SOGGETTI);
_donaz = new TLocalisamfile(LF_DONAZ);
_contsan = new TLocalisamfile(LF_CONTSAN);
_idoneita = new TLocalisamfile(LF_IDONEITA);
_sdonazioni = new TRecord_array(LF_DONAZ,DON_PROGDON);
_scontrolli = new TRecord_array(LF_CONTSAN,CON_PROGCON);
_sidoneita = new TRecord_array(LF_IDONEITA,IDO_PROGIDO);
TConfig config(CONFIG_STUDIO);
const int numdon1 = config.get_int("NumDon1");
const int numdon2 = config.get_int("NumDon2");
TString16 catini1 = config.get("CatIni1");
TString16 catfin1 = config.get("CatFin1");
TString16 catini2 = config.get("CatIni2");
TString16 catfin2 = config.get("CatFin2");
const bool sttess2 = config.get_bool("StTess2");
const bool dataisc = config.get_bool("DataIsc");
const int etadonne = config.get_int("EtaDonne");
const int intsi_f1 = config.get_int("IntSI_F1");
const int intsi_f2 = config.get_int("IntSI_F2");
const int intsi_m = config.get_int("IntSI_M");
const int intaf_m = config.get_int("IntAF_M");
TRectype soggetto(LF_SOGGETTI);
_soggetti->put(SOG_CODICE, codsog);
if (_soggetti->read() == NOERR)
{
TRectype& sog = _soggetti->curr();
TRectype* key = new TRectype(LF_DONAZ);
key->put(DON_CODICE, codsog);
int err = _sdonazioni->read(key);
if (err == NOERR)
{
calcola_donazioni_lib(sog, _sdonazioni);
_soggetti->rewrite();
}
TTable ctd("CTD");
TString16 catdon = sog.get(SOG_CATDON);
const int totdon = sog.get_int(SOG_TOTDON);
ctd.put("CODTAB",catdon);
if (ctd.read() == NOERR)
{
bool dimissione = ctd.get_bool("B0");
if (dimissione)
{
sog.put(SOG_CATDON,ctd.get("S6"));
if (ctd.get("S6").not_empty())
catdon = ctd.get("S6");
}
if ((catdon == catini1 || catini1.empty()) && (totdon==numdon1) && catfin1.not_empty())
sog.put(SOG_CATDON, catfin1);
if ((catdon == catini2 || catini2.empty()) && (totdon>=numdon2) && catfin2.not_empty() && (!sttess2 || dimissione))
sog.put(SOG_CATDON, catfin2);
}
TDate dataiscsog = sog.get_date(SOG_DATAISC);
if (!dataiscsog.ok() && dataisc)
{
if (!sog.get_date(SOG_DATAPRISI) == NULLDATE)
sog.put(SOG_DATAISC,sog.get(SOG_DATAPRISI));
else
{
const TRectype& riga = _sdonazioni->row(1);
sog.put(SOG_DATAISC,riga.get(DON_DATADON));
}
}
_soggetti->rewrite();
}
stop_run();
return TRUE;
}
bool TRiordinaSog::destroy()
{
delete _sidoneita;
delete _scontrolli;
delete _sdonazioni;
delete _idoneita;
delete _contsan;
delete _donaz;
delete _soggetti;
return TApplication::destroy();
}
int at5400(int argc, char* argv[])
{
TRiordinaSog a;
a.run(argc, argv, "Riordina donazioni soggetto");
return 0;
}

View File

@ -1,78 +0,0 @@
#include <applicat.h>
#include <mask.h>
#include <relation.h>
#include <tabutil.h>
#include <progind.h>
#include <recarray.h>
#include "at5.h"
#include "at5800a.h"
// nomi dei campi
#include "soggetti.h"
#include "convoc.h"
#include "rconvoc.h"
class TEliminazioneConv: public TSkeleton_application
{
TRelation* _rel;
TMask* _msk;
TLocalisamfile* _rconvoc;
TLocalisamfile* _soggetti;
TDate _dataini, _datafin;
protected:
virtual bool create(void);
virtual void main_loop();
virtual bool destroy(void) ;
public:
const TMask& msk() const { return *_msk; }
TEliminazioneConv() {}
virtual ~TEliminazioneConv() {}
};
// restituisce un riferimento all' applicazione
inline TEliminazioneConv& app() { return (TEliminazioneConv&) main_app();}
bool TEliminazioneConv::create()
{
_msk = new TMask("at5800a");
_rel = new TRelation(LF_RCONVOC);
_rel->add(LF_SOGGETTI, "CODICE==CODICE");
_rel->add(LF_CONVOC, "NUMERO==NUMERO");
return TSkeleton_application::create();
}
// distruzione dell'applicazione
bool TEliminazioneConv::destroy()
{
delete _rel;
delete _msk;
return TSkeleton_application::destroy();
}
// carica la maschera
void TEliminazioneConv::main_loop()
{
KEY key = K_ENTER;
while (key != K_QUIT)
{
key = _msk->run();
if (key == K_ENTER)
{
TDate dataini = _msk->get_date(F_DATAINI);
TDate datafin = _msk->get_date(F_DATAFIN);
}
}
}
int at5800(int argc, char* argv[])
{
TEliminazioneConv a ;
a.run(argc, argv, "Eliminazione convocazioni");
return 0;
}

View File

@ -1,6 +0,0 @@
// eliminazione convocazioni
// definizione campi per maschera di selezione
#define F_DATAINI 101
#define F_DATAFIN 102
#define F_NONELIMULTIMA 103

View File

@ -1,42 +0,0 @@
#include "at5800a.h"
TOOLBAR "" 0 20 0 2
BUTTON DLG_OK 9 2
BEGIN
PROMPT -12 -11 ""
END
BUTTON DLG_QUIT 9 2
BEGIN
PROMPT -22 -11 ""
END
ENDPAGE
PAGE "Eliminazione convocazioni" -1 -1 78 20
GROUPBOX DLG_NULL 77 4
BEGIN
PROMPT 1 1 "Opzioni per l'eliminazione"
END
DATE F_DATAINI
BEGIN
PROMPT 2 2 "Convocazioni dal "
CHECKTYPE REQUIRED
HELP "Data iniziale"
END
DATE F_DATAFIN
BEGIN
PROMPT 32 2 "al "
CHECKTYPE REQUIRED
HELP "Data finale"
END
BOOLEAN F_NONELIMULTIMA
BEGIN
PROMPT 2 4 "Non eliminare l'ultima convocazione del soggetto"
HELP "Se flaggato, non verra' eliminata l'ultima convocazione del soggetto anche se rientra nell'intervallo di date"
END
ENDPAGE
ENDMASK