diff --git a/at/at0.cpp b/at/at0.cpp index b801e038c..55b819d62 100755 --- a/at/at0.cpp +++ b/at/at0.cpp @@ -1,27 +1,27 @@ -#include -#include -#include - -#include "at0.h" - -#define usage "Error - usage : %s -{0|1|2}" - -int main(int argc,char** argv) - -{ - int rt = -1 ; - const int r = (argc > 1) ? atoi(&argv[1][1]) : -1; - - switch (r) - { - case 0: - rt = at0100(argc,argv) ; break; - case 1: - rt = at0200(argc,argv) ; break; - case 2: - rt = at0300(argc,argv) ; break; - default: - error_box(usage, argv[0]) ; break; - } - return rt; -} +#include +#include +#include + +#include "at0.h" + +#define usage "Error - usage : %s -{0|1|2}" + +int main(int argc,char** argv) + +{ + int rt = -1 ; + const int r = (argc > 1) ? atoi(&argv[1][1]) : -1; + + switch (r) + { + case 0: + rt = at0100(argc,argv) ; break; + case 1: + rt = at0200(argc,argv) ; break; + case 2: + rt = at0300(argc,argv) ; break; + default: + error_box(usage, argv[0]) ; break; + } + return rt; +} diff --git a/at/at0100.h b/at/at0100.h index 0fbb7aa76..628f4992c 100755 --- a/at/at0100.h +++ b/at/at0100.h @@ -1,154 +1,157 @@ -// definizione campi della maschera at0100a.msk -// SOGGETTI e dati collegati - -// pagina 1 -#define F_CODICE 101 -#define F_COGNOME 102 -#define F_NOME 103 -#define F_DATANASC 104 -#define F_CODSEZ 105 -#define F_DENSEZ 106 -#define F_CODSOT 107 -#define F_DENSOT 108 -#define F_CATDON 109 -#define F_DESC_CATDON 110 -#define F_DATAISC 111 -#define F_DATADIM 112 -#define F_COMNASC 113 -#define F_DENCOMNASC 114 -#define F_PROVCOMNASC 115 -#define F_INDIRIZZO 116 -#define F_COM 117 -#define F_DENCOM 118 -#define F_CAPCOM 119 -#define F_PROVCOM 120 -#define F_LOCALITA 121 -#define F_DENLOC 122 -#define F_TELABI 123 -#define F_TELLAV 124 -#define F_TELALT 125 -#define F_SESSO 126 -#define F_DATAULTAGG 127 -#define F_UTENULTAGG 128 - -// pagina 2 -#define F_CATNOND1 201 -#define F_DESC_CATNOND1 202 -#define F_CATNOND2 203 -#define F_DESC_CATNOND2 204 -#define F_TITINDIR 205 -#define F_TESSAVIS 206 -#define F_CODCT 207 -#define F_CODCL 208 -#define F_TESSSSN 209 -#define F_DOCID 210 -#define F_CF 211 -#define F_CONDOCC 212 -#define F_POSPROF 213 -#define F_RAMOATT 214 -#define F_TITSTUD 215 -#define F_PROFESS 216 -#define F_DESC_PROF 217 -#define F_LUOGOLAV 218 -#define F_DESC_LUOGO 219 - -// pagina 3 -#define F_STATO 301 -#define F_DESCSTATO 302 -#define F_DATASTATO 303 -#define F_IDON1 304 -#define F_DESC_ID1 305 -#define F_IDON2 306 -#define F_DESC_ID2 307 -#define F_IDON3 308 -#define F_DESC_ID3 309 -#define F_IDON4 310 -#define F_DESC_ID4 311 -#define F_DATAULTID 312 -#define F_TIPOULTID 313 -#define F_INTSI 314 -#define F_INTAF 315 -#define F_TOTDON 316 -#define F_DATAULTDON 317 -#define F_TIPOULTDON 318 -#define F_DESC_ULTDON 319 -#define F_DATAPROSSI 320 -#define F_DATAPROSAF 321 -#define F_DATAULTSI 322 -#define F_DATAULTAF 323 -#define F_TOTDONSI 324 -#define F_TOTDONAF 325 - - -// pagina 4 -#define F_GRUPPOAB0 401 -#define F_RHANTID 402 -#define F_KELL 403 -#define F_FENOTIPORH 404 -#define F_DU 405 -#define F_MODCONV 406 -#define F_GIOPREDON 407 -#define F_GIOPRECON 408 -#define F_ESCLUSO 409 -#define F_TERMESCL 410 -#define F_MOTESCL 411 -#define F_CODMED 412 -#define F_COGNMED 413 -#define F_NOMMED 414 - -// pagina 5 -#define F_DONAZIONI 501 - -// pagina 6 -#define F_CONTROLLI 601 - -// pagina 7 -#define F_BENEMERENZE 701 -#define F_STORICO 702 - -// pagina donazioni -#define F_D_DATADON 101 -#define F_D_TIPODON 102 -#define F_D_LUOGODON 103 -#define F_D_ETICHETTA 104 -#define F_D_CC 105 -#define F_D_PA 106 -#define F_D_HB 107 -#define F_D_SGPT 108 -#define F_D_PROTIDEMIA 109 -//#define F_D_PRIMADON 110 -#define F_D_DESC_TIPODON 211 -#define F_D_DESC_LUOGODON 212 - -// pagina controlli sanitari -#define F_C_DATACON 101 -#define F_C_TIPOCON 102 -#define F_C_IDON1 103 -#define F_C_IDON2 104 -#define F_C_IDON3 105 -#define F_C_IDON4 106 -#define F_C_INTSI 107 -#define F_C_INTAF 108 -#define F_C_DESC_TIPOCON 211 -#define F_C_DESC_IDON1 212 -#define F_C_DESC_IDON2 213 -#define F_C_DESC_IDON3 214 -#define F_C_DESC_IDON4 215 - -// pagina benemerenze -#define F_B_TIPOBEN 101 -#define F_B_DATABEN 102 -#define F_B_RITIRATA 103 -#define F_B_DESC_TIPOBEN 211 - -// pagina storico iscrizioni e dimissioni -#define F_S_DATAISC 101 -#define F_S_DATADIM 102 -#define F_S_CODSEZ 103 -#define F_S_CODSOT 104 -#define F_S_CATISC 105 -#define F_S_MOTDIM 106 -#define F_S_DENSEZ 211 -#define F_S_DENSOT 212 -#define F_S_DESC_CATISC 213 - +// definizione campi della maschera at0100a.msk +// SOGGETTI e dati collegati + +// pagina 1 +#define F_CODICE 101 +#define F_COGNOME 102 +#define F_NOME 103 +#define F_DATANASC 104 +#define F_CODSEZ 105 +#define F_DENSEZ 106 +#define F_CODSOT 107 +#define F_DENSOT 108 +#define F_CATDON 109 +#define F_DESC_CATDON 110 +#define F_DATAISC 111 +#define F_DATADIM 112 +#define F_COMNASC 113 +#define F_DENCOMNASC 114 +#define F_PROVCOMNASC 115 +#define F_INDIRIZZO 116 +#define F_COM 117 +#define F_DENCOM 118 +#define F_CAPCOM 119 +#define F_PROVCOM 120 +#define F_LOCALITA 121 +#define F_DENLOC 122 +#define F_TELABI 123 +#define F_TELLAV 124 +#define F_TELALT 125 +#define F_SESSO 126 +#define F_DATAULTAGG 127 +#define F_UTENULTAGG 128 + +// pagina 2 +#define F_CATNOND1 201 +#define F_DESC_CATNOND1 202 +#define F_CATNOND2 203 +#define F_DESC_CATNOND2 204 +#define F_TITINDIR 205 +#define F_TESSAVIS 206 +#define F_CODCT 207 +#define F_CODCL 208 +#define F_TESSSSN 209 +#define F_DOCID 210 +#define F_CF 211 +#define F_CONDOCC 212 +#define F_POSPROF 213 +#define F_RAMOATT 214 +#define F_TITSTUD 215 +#define F_PROFESS 216 +#define F_DESC_PROF 217 +#define F_LUOGOLAV 218 +#define F_DESC_LUOGO 219 + +// pagina 3 +#define F_STATO 301 +#define F_DESCSTATO 302 +#define F_DATASTATO 303 +#define F_IDON1 304 +#define F_DESC_ID1 305 +#define F_IDON2 306 +#define F_DESC_ID2 307 +#define F_IDON3 308 +#define F_DESC_ID3 309 +#define F_IDON4 310 +#define F_DESC_ID4 311 +#define F_DATAULTID 312 +#define F_TIPOULTID 313 +#define F_INTSI 314 +#define F_INTAF 315 +#define F_TOTDON 316 +#define F_DATAULTDON 317 +#define F_TIPOULTDON 318 +#define F_DESC_ULTDON 319 +#define F_DATAPROSSI 320 +#define F_DATAPROSAF 321 +#define F_DATAULTSI 322 +#define F_DATAULTAF 323 +#define F_TOTDONSI 324 +#define F_TOTDONAF 325 + + +// pagina 4 +#define F_GRUPPOAB0 401 +#define F_RHANTID 402 +#define F_KELL 403 +#define F_FENOTIPORH 404 +#define F_DU 405 +#define F_MODCONV 406 +#define F_GIOPREDON 407 +#define F_GIOPRECON 408 +#define F_ESCLUSO 409 +#define F_TERMESCL 410 +#define F_MOTESCL 411 +#define F_CODMED 412 +#define F_COGNMED 413 +#define F_NOMMED 414 + +// pagina 5 +#define F_DONAZIONI 501 + +// pagina 6 +#define F_CONTROLLI 601 + +// pagina 7 +#define F_BENEMERENZE 701 +#define F_STORICO 702 + +// pagina donazioni +#define F_D_DATADON 101 +#define F_D_TIPODON 102 +#define F_D_LUOGODON 103 +#define F_D_ETICHETTA 104 +#define F_D_CC 105 +#define F_D_PA 106 +#define F_D_HB 107 +#define F_D_SGPT 108 +#define F_D_PROTIDEMIA 109 +//#define F_D_PRIMADON 110 +#define F_D_DESC_TIPODON 211 +#define F_D_DESC_LUOGODON 212 + +// pagina controlli sanitari +#define F_C_DATACON 101 +#define F_C_TIPOCON 102 +#define F_C_IDON1 103 +#define F_C_IDON2 104 +#define F_C_IDON3 105 +#define F_C_IDON4 106 +#define F_C_INTSI 107 +#define F_C_INTAF 108 +#define F_C_PROSSTIPO 109 +#define F_C_PROSSDATA 110 +#define F_C_DESC_TIPOCON 211 +#define F_C_DESC_IDON1 212 +#define F_C_DESC_IDON2 213 +#define F_C_DESC_IDON3 214 +#define F_C_DESC_IDON4 215 +#define F_C_DESC_PROSSTIPO 216 + +// pagina benemerenze +#define F_B_TIPOBEN 101 +#define F_B_DATABEN 102 +#define F_B_RITIRATA 103 +#define F_B_DESC_TIPOBEN 211 + +// pagina storico iscrizioni e dimissioni +#define F_S_DATAISC 101 +#define F_S_DATADIM 102 +#define F_S_CODSEZ 103 +#define F_S_CODSOT 104 +#define F_S_CATISC 105 +#define F_S_MOTDIM 106 +#define F_S_DENSEZ 211 +#define F_S_DENSOT 212 +#define F_S_DESC_CATISC 213 + diff --git a/at/at0100a.uml b/at/at0100a.uml index cc3bf0140..33b9c8076 100755 --- a/at/at0100a.uml +++ b/at/at0100a.uml @@ -1,1683 +1,1726 @@ -#include "at0100.h" -#include "lf.h" - -TOOLBAR "" 0 20 0 2 -#include -ENDPAGE - -PAGE "Sogg. 1" -1 -1 78 20 - -GROUPBOX DLG_NULL 77 5 -BEGIN - PROMPT 1 0 "" - FLAGS "R" -END - -NUMBER F_CODICE 6 -BEGIN - PROMPT 2 1 "Codice " - FIELD CODICE - FLAGS "RG" - KEY 1 - USE LF_SOGGETTI - INPUT CODICE F_CODICE - DISPLAY "Codice@6" CODICE - DISPLAY "Cognome@25" COGNOME - DISPLAY "Nome@25" NOME - DISPLAY "Nato il@10" DATANASC - DISPLAY "Sez." CODSEZ - DISPLAY "Sot." CODSOT - DISPLAY "C." CATDON - DISPLAY "Tessera" TESSAVIS - OUTPUT F_CODICE CODICE - OUTPUT F_COGNOME COGNOME - OUTPUT F_NOME NOME - OUTPUT F_DATANASC DATANASC - MESSAGE COPY,1@ - CHECKTYPE REQUIRED -END - -STRING F_COGNOME 25 -BEGIN - PROMPT 2 2 "Cognome e nome " - FIELD COGNOME - KEY 2 - USE LF_SOGGETTI KEY 2 - INPUT COGNOME F_COGNOME - INPUT NOME F_NOME - DISPLAY "Cognome@25" COGNOME - DISPLAY "Nome@25" NOME - DISPLAY "Nato il@10" DATANASC - DISPLAY "Codice@6" CODICE - DISPLAY "Sez." CODSEZ - DISPLAY "Sot." CODSOT - DISPLAY "C." CATDON - DISPLAY "Tessera" TESSAVIS - OUTPUT F_CODICE CODICE - OUTPUT F_COGNOME COGNOME - OUTPUT F_NOME NOME - OUTPUT F_DATANASC DATANASC - //COPY OUTPUT F_CODICE - MESSAGE COPY,2@ - CHECKTYPE REQUIRED - //VALIDATE NOT_EMPTY_CHECK_FIELD - HELP "Cognome del soggetto" -END - -STRING F_NOME 25 -BEGIN - PROMPT 46 2 "" - FIELD NOME - KEY 2 - COPY ALL F_COGNOME - MESSAGE COPY,3@ - CHECKTYPE REQUIRED - //VALIDATE NOT_EMPTY_CHECK_FIELD - HELP "Nome del soggetto" -END - -DATE F_DATANASC -BEGIN - PROMPT 2 3 "Nato il " - FIELD DATANASC - //KEY 2 - //COPY ALL F_COGNOME - MESSAGE COPY,4@ - CHECKTYPE REQUIRED - VALIDATE NOT_EMPTY_CHECK_FIELD - HELP "Data di nascita" -END - -GROUPBOX DLG_NULL 77 4 -BEGIN - PROMPT 1 5 "Dati associativi" -END - -STRING F_CODSEZ 2 -BEGIN - PROMPT 2 6 "Sez. " - FIELD CODSEZ - FLAGS "U" - USE LF_SEZIONI - INPUT CODSEZ F_CODSEZ - INPUT CODSOT F_CODSOT - DISPLAY "Cod.sez" CODSEZ - DISPLAY "Cod.sot." CODSOT - DISPLAY "Sezione@25" DENSEZ - DISPLAY "Sottogruppo@25" DENSOT - OUTPUT F_CODSEZ CODSEZ - OUTPUT F_DENSEZ DENSEZ - OUTPUT F_CODSOT CODSOT - OUTPUT F_DENSOT DENSOT - //CHECKTYPE NORMAL - CHECKTYPE SEARCH - HELP "Codice sezione di appartenenza" - ADD MASK at0700a -END - -STRING F_DENSEZ 25 -BEGIN - PROMPT 13 6 "" - FLAGS "U" - USE LF_SEZIONI KEY 2 - INPUT DENSEZ F_DENSEZ - DISPLAY "Sezione@25" DENSEZ - DISPLAY "Sottogruppo@25" DENSOT - DISPLAY "Cod.sez" CODSEZ - DISPLAY "Cod.sot." CODSOT - COPY OUTPUT F_CODSEZ - CHECKTYPE NORMAL - HELP "Denominazione sezione di appartenenza" - ADD MASK at0700a -END - -STRING F_CODSOT 2 -BEGIN - PROMPT 2 7 "Sot. " - FIELD CODSOT - COPY ALL F_CODSEZ - CHECKTYPE NORMAL - HELP "Codice sottogruppo di appartenenza" - ADD MASK at0700a -END - -STRING F_DENSOT 25 -BEGIN - PROMPT 13 7 "" - FLAGS "U" - COPY USE F_DENSEZ - INPUT DENSEZ F_DENSEZ - INPUT DENSOT F_DENSOT - COPY DISPLAY F_DENSEZ - COPY OUTPUT F_DENSEZ - CHECKTYPE NORMAL - HELP "Sottogruppo di appartenenza" - ADD MASK at0700a -END - -STRING F_CATDON 2 -BEGIN - PROMPT 43 6 "Cat. " - FIELD CATDON - FLAGS "U" - USE CTD - INPUT CODTAB F_CATDON - DISPLAY "Codice" CODTAB - DISPLAY "Descrizione@30" S0 - OUTPUT F_CATDON CODTAB - OUTPUT F_DESC_CATDON S0 - CHECKTYPE NORMAL - WARNING "Codice non presente" - HELP "Categoria di appartenenza" -END - -STRING F_DESC_CATDON 22 -BEGIN - PROMPT 54 6 "" - FLAGS "D" -END - -DATE F_DATAISC -BEGIN - PROMPT 43 7 "Isc. " - FIELD DATAISC - HELP "Data di iscrizione alla sezione/categoria" -END - -DATE F_DATADIM -BEGIN - PROMPT 61 7 "Dim. " - FIELD DATADIM - HELP "Data di dimissione alla sezione/categoria" -END - -GROUPBOX DLG_NULL 77 7 -BEGIN - PROMPT 1 9 "Dati anagrafici" -END - -STRING F_COMNASC 4 -BEGIN - PROMPT 2 10 "Nato a " - FIELD COMNASC - FLAGS "U" - USE LF_COMUNI - INPUT STATO "" - INPUT COM F_COMNASC -#include - OUTPUT F_COMNASC COM - OUTPUT F_DENCOMNASC DENCOM - OUTPUT F_PROVCOMNASC PROVCOM - CHECKTYPE NORMAL - HELP "Codice comune di nascita" - WARNING "Comune assente" -END - -STRING F_DENCOMNASC 48 -BEGIN - PROMPT 19 10 "" - USE LF_COMUNI KEY 2 - INPUT DENCOM F_DENCOMNASC -#include - COPY OUTPUT F_COMNASC - CHECKTYPE NORMAL - HELP "Comune di nascita" -END - -STRING F_PROVCOMNASC 5 -BEGIN - PROMPT 71 10 "" - FLAGS "D" -END - -STRING F_INDIRIZZO 50 -BEGIN - PROMPT 2 11 "Indirizzo " - FIELD INDIRIZZO -END - -STRING F_COM 4 -BEGIN - PROMPT 2 12 "Comune " - FIELD COM - FLAGS "U" - USE LF_COMUNI - INPUT STATO "" - INPUT COM F_COM -#include - OUTPUT F_COM COM - OUTPUT F_DENCOM DENCOM - OUTPUT F_PROVCOM PROVCOM - OUTPUT F_CAPCOM CAPCOM - CHECKTYPE NORMAL - WARNING "Comune assente" - HELP "Codice comune di residenza" -END - -STRING F_DENCOM 48 -BEGIN - PROMPT 19 12 "" - USE LF_COMUNI KEY 2 - INPUT DENCOM F_DENCOM -#include - COPY OUTPUT F_COM - CHECKTYPE NORMAL - HELP "Comune di residenza" -END - -STRING F_LOCALITA 4 -BEGIN - PROMPT 2 13 "Località " - FIELD LOCALITA - FLAGS "U" - USE LCP SELECT S7=#F_COM - INPUT CODTAB F_LOCALITA - DISPLAY "Codice" CODTAB - DISPLAY "Località@30" S0 - DISPLAY "CAP@5" S6 - OUTPUT F_LOCALITA CODTAB - OUTPUT F_DENLOC S0 - OUTPUT F_CAPCOM S6 - OUTPUT F_COM S7 - CHECKTYPE NORMAL - HELP "Codice localit… postale se diversa dal comune" -END - -STRING F_DENLOC 30 -BEGIN - PROMPT 19 13 "" - COPY USE F_LOCALITA - INPUT S0 F_DENLOC - DISPLAY "Località@30" S0 - DISPLAY "CAP@5" S6 - DISPLAY "Codice" CODTAB - COPY OUTPUT F_LOCALITA - CHECKTYPE NORMAL - HELP "Localit… postale se diversa dal comune" -END - -STRING F_PROVCOM 5 -BEGIN - PROMPT 71 12 "" - FLAGS "D" -END - -STRING F_CAPCOM 5 -BEGIN - PROMPT 67 13 "CAP " - FIELD CAPCOM -END - -STRING F_TELABI 15 -BEGIN - PROMPT 2 14 "Telefoni: Abit. " - FIELD TELABI - HELP "Telefono abitazione" -END - -STRING F_TELLAV 15 -BEGIN - PROMPT 37 14 "Lav. " - FIELD TELLAV - HELP "Telefono lavoro" -END - -STRING F_TELALT 15 -BEGIN - PROMPT 59 14 "3 " - FIELD TELALT - HELP "Altro numero telefonico per reperibilit…" -END - -RADIOBUTTON F_SESSO 25 -BEGIN - PROMPT 1 16 "Sesso" - FIELD SESSO - FLAGS "Z" - ITEM "M|Maschio" - ITEM "F|Femmina" -END - -GROUPBOX DLG_NULL 43 3 -BEGIN - PROMPT 35 16 "Ultimo aggiornamento" -END - -DATE F_DATAULTAGG -BEGIN - PROMPT 36 17 "Data " - FIELD DATAULTAGG - FLAGS "D" -END - -STRING F_UTENULTAGG 8 -BEGIN - PROMPT 60 17 "Utente " - FIELD UTENULTAGG - FLAGS "D" -END - -ENDPAGE - -PAGE "Sogg. 2" -1 -1 78 20 - -GROUPBOX DLG_NULL 77 5 -BEGIN - PROMPT 1 0 "" - FLAGS "R" -END - -NUMBER DLG_NULL 6 -BEGIN - PROMPT 2 1 "Codice " - FLAGS "D" - GROUP 1 -END - -STRING DLG_NULL 25 -BEGIN - PROMPT 2 2 "Cognome e nome " - FLAGS "D" - GROUP 2 -END - -STRING DLG_NULL 25 -BEGIN - PROMPT 46 2 "" - FLAGS "D" - GROUP 3 -END - -DATE DLG_NULL -BEGIN - PROMPT 2 3 "Nato il " - FLAGS "D" - GROUP 4 -END - -GROUPBOX DLG_NULL 77 4 -BEGIN - PROMPT 1 5 "Altri dati associativi" -END - -STRING F_CATNOND1 2 -BEGIN - PROMPT 2 6 "Categorie non don. " - FIELD CATNOND1 - FLAGS "U" - USE CTN - INPUT CODTAB F_CATNOND1 - DISPLAY "Codice" CODTAB - DISPLAY "Descrizione@30" S0 - OUTPUT F_CATNOND1 CODTAB - OUTPUT F_DESC_CATNOND1 S0 - CHECKTYPE NORMAL - WARNING "Codice non presente" - HELP "Altra categoria non donatori" -END - -STRING F_DESC_CATNOND1 20 -BEGIN - PROMPT 26 6 "" - FLAGS "D" -END - -STRING F_CATNOND2 2 -BEGIN - PROMPT 50 6 "" - FIELD CATNOND2 - FLAGS "U" - COPY USE F_CATNOND1 - INPUT CODTAB F_CATNOND2 - COPY DISPLAY F_CATNOND1 - OUTPUT F_CATNOND2 CODTAB - OUTPUT F_DESC_CATNOND2 S0 - CHECKTYPE NORMAL - WARNING "Codice non presente" - HELP "Altra categoria non donatori" -END - -STRING F_DESC_CATNOND2 20 -BEGIN - PROMPT 55 6 "" - FLAGS "D" -END - -STRING F_TITINDIR 10 -BEGIN - PROMPT 2 7 "Titolo personale " - FIELDS TESSSSN - HELP "Eventuale titolo da stampare prima del nome sull'indirizzo" -END - -GROUPBOX DLG_NULL 77 4 -BEGIN - PROMPT 1 9 "Codici di identificazione" -END -STRING F_CODCT 6 -BEGIN - PROMPT 2 10 "Codice CT " - FIELDS CODCT - FLAGS "U" - HELP "Codice Centro Trasfusionale" -END - -STRING F_CODCL 6 -BEGIN - PROMPT 25 10 "Cartella clinica " - FIELDS CODCL - FLAGS "U" - HELP "Numero cartella clinica" -END - -STRING F_TESSAVIS 10 -BEGIN - PROMPT 53 10 "Tessera AVIS " - FIELDS TESSAVIS - FLAGS "U" - HELP "Numero tessera associativa AVIS" -END - -STRING F_DOCID 20 -BEGIN - PROMPT 2 11 "Doc. iden. " - FIELDS DOCID - FLAGS "U" - HELP "Documento di identit…: tipo e numero" -END - - -STRING F_CF 16 -BEGIN - PROMPT 38 11 "CF " - FIELD CF - FLAGS "U" - HELP "Codice fiscale" -END - -STRING F_TESSSSN 10 -BEGIN - PROMPT 62 11 "SSN " - FIELDS TESSSSN - FLAGS "U" - HELP "Numero tessera Servizio Sanitario Nazionale" -END - - -GROUPBOX DLG_NULL 77 6 -BEGIN - PROMPT 1 13 "Dati statistici" -END - -LISTBOX F_CONDOCC 25 -BEGIN - PROMPT 2 14 "Cond. occ. " - FIELD CONDOCC - FLAGS "U" -#include "condocc.h" -END - -LISTBOX F_POSPROF 20 -BEGIN - PROMPT 43 14 "Pos. prof. " - FIELD POSPROF - FLAGS "U" -#include "posprof.h" -END - -LISTBOX F_RAMOATT 25 -BEGIN - PROMPT 2 15 "Ramo att. " - FIELD RAMOATT - FLAGS "U" -#include "ramoatt.h" -END - -LISTBOX F_TITSTUD 20 -BEGIN - PROMPT 43 15 "Tit. stud. " - FIELD TITSTUD - FLAGS "U" -#include "titstud.h" -END - -STRING F_PROFESS 4 -BEGIN - PROMPT 2 16 "Professione " - FIELD PROFESS - FLAGS "D" -// USE IDO -// INPUT CODTAB F_IDON1 -// OUTPUT F_DESC_ID1 S0 -// CHECKTYPE NORMAL -END - -STRING F_DESC_PROF 40 -BEGIN - PROMPT 21 16 "" - FLAGS "D" -END - -STRING F_LUOGOLAV 4 -BEGIN - PROMPT 2 17 "Luogo lav. " - FLAGS "D" -END - -STRING F_DESC_LUOGO 40 -BEGIN - PROMPT 21 17 "" - FLAGS "D" -END - -ENDPAGE - -PAGE "Sogg. 3" -1 -1 78 20 - -GROUPBOX DLG_NULL 77 5 -BEGIN - PROMPT 1 0 "" - FLAGS "R" -END - -NUMBER DLG_NULL 6 -BEGIN - PROMPT 2 1 "Codice " - FLAGS "D" - GROUP 1 -END - -STRING DLG_NULL 25 -BEGIN - PROMPT 2 2 "Cognome e nome " - FLAGS "D" - GROUP 2 -END - -STRING DLG_NULL 25 -BEGIN - PROMPT 46 2 "" - FLAGS "D" - GROUP 3 -END - -DATE DLG_NULL -BEGIN - PROMPT 2 3 "Nato il " - FLAGS "D" - GROUP 4 -END - -GROUPBOX DLG_NULL 77 7 -BEGIN - PROMPT 1 5 "Situazione sanitaria" -END - -STRING F_STATO 2 -BEGIN - PROMPT 2 6 "Stato attuale " - FIELD STATO - FLAGS "D" - USE TCS - INPUT CODTAB F_STATO - OUTPUT F_DESCSTATO S3 - CHECKTYPE NORMAL -END - -STRING F_DESCSTATO 20 -BEGIN - PROMPT 20 6 "" - FLAGS "D" -END - -DATE F_DATASTATO -BEGIN - PROMPT 55 6 "Data stato " - FIELD DATASTATO - FLAGS "D" -END - -STRING F_IDON1 2 -BEGIN - PROMPT 2 8 "Tipi di idon. " - FIELD IDON1 - FLAGS "D" - USE IDO - INPUT CODTAB F_IDON1 - OUTPUT F_DESC_ID1 S0 - CHECKTYPE NORMAL -END - -STRING F_DESC_ID1 25 -BEGIN - PROMPT 20 8 "" - FLAGS "D" -END - -STRING F_IDON2 2 -BEGIN - PROMPT 47 8 "" - FIELD IDON2 - FLAGS "D" - USE IDO - INPUT CODTAB F_IDON2 - OUTPUT F_DESC_ID2 S0 - CHECKTYPE NORMAL -END - -STRING F_DESC_ID2 25 -BEGIN - PROMPT 51 8 "" - FLAGS "D" -END - -STRING F_IDON3 2 -BEGIN - PROMPT 2 9 " " - FIELD IDON3 - FLAGS "D" - USE IDO - INPUT CODTAB F_IDON3 - OUTPUT F_DESC_ID3 S0 - CHECKTYPE NORMAL -END - -STRING F_DESC_ID3 25 -BEGIN - PROMPT 20 9 "" - FLAGS "D" -END - -STRING F_IDON4 2 -BEGIN - PROMPT 47 9 "" - FIELD IDON4 - FLAGS "D" - USE IDO - INPUT CODTAB F_IDON4 - OUTPUT F_DESC_ID4 S0 - CHECKTYPE NORMAL -END - -STRING F_DESC_ID4 25 -BEGIN - PROMPT 51 9 "" - FLAGS "D" -END - -DATE F_DATAULTID -BEGIN - PROMPT 2 10 "Data ult. id. " - FIELD DATAULTID - FLAGS "D" -END - -STRING F_TIPOULTID 2 -BEGIN - PROMPT 30 10 "Tipo " - FIELD TIPOULTID - FLAGS "D" -END - -GROUPBOX DLG_NULL 77 7 -BEGIN - PROMPT 1 12 "Situazione donazioni" -END - -NUMBER F_TOTDON 3 -BEGIN - PROMPT 2 13 "Totale " - FIELD TOTDON - FLAGS "D" -END - -DATE F_DATAULTDON -BEGIN - PROMPT 15 13 "Data/tipo ultima " - FIELD DATAULTDON - FLAGS "D" -END - -STRING F_TIPOULTDON 2 -BEGIN - PROMPT 44 13 "" - FIELD TIPOULTDON - FLAGS "D" - USE TDN - INPUT CODTAB F_TIPOULTDON - OUTPUT F_DESC_ULTDON S0 - CHECKTYPE NORMAL -END - -STRING F_DESC_ULTDON 25 -BEGIN - PROMPT 48 13 "" - FLAGS "D" -END - -NUMBER F_TOTDONSI 3 -BEGIN - PROMPT 2 14 "Totale don. : Sangue intero " - FIELD TOTDONSI - FLAGS "D" -END - -NUMBER F_TOTDONAF 3 -BEGIN - PROMPT 48 14 "Aferesi " - FIELD TOTDONAF - FLAGS "D" -END - -DATE F_DATAULTSI -BEGIN - PROMPT 2 15 "Date ultima : Sangue intero " - FIELD DATAULTSI - FLAGS "D" -END - -DATE F_DATAULTAF -BEGIN - PROMPT 48 15 "Aferesi " - FIELD DATAULTAF - FLAGS "D" -END - -NUMBER F_INTSI 3 -BEGIN - PROMPT 2 16 "Intervalli : Sangue intero " - FIELD INTSI - FLAGS "D" -END - -NUMBER F_INTAF 3 -BEGIN - PROMPT 48 16 "Aferesi " - FIELD INTAF - FLAGS "D" -END - -DATE F_DATAPROSSI -BEGIN - PROMPT 2 17 "Date prossima : Sangue intero " - FIELD DATAPROSSI - FLAGS "D" -END - -DATE F_DATAPROSAF -BEGIN - PROMPT 48 17 "Aferesi " - FIELD DATAPROSAF - FLAGS "D" -END - -ENDPAGE - -PAGE "Sogg. 4" -1 -1 78 20 - -GROUPBOX DLG_NULL 77 5 -BEGIN - PROMPT 1 0 "" - FLAGS "R" -END - -NUMBER DLG_NULL 6 -BEGIN - PROMPT 2 1 "Codice " - FLAGS "D" - GROUP 1 -END - -STRING DLG_NULL 25 -BEGIN - PROMPT 2 2 "Cognome e nome " - FLAGS "D" - GROUP 2 -END - -STRING DLG_NULL 25 -BEGIN - PROMPT 46 2 "" - FLAGS "D" - GROUP 3 -END - -DATE DLG_NULL -BEGIN - PROMPT 2 3 "Nato il " - FLAGS "D" - GROUP 4 -END - - -GROUPBOX DLG_NULL 77 3 -BEGIN - PROMPT 1 5 "Tipizzazione" -END - -LISTBOX F_GRUPPOAB0 5 -BEGIN - PROMPT 2 6 "Gruppo AB0 " - FIELD GRUPPOAB0 - FLAGS "U" -#include "gruppo.h" -END - -LISTBOX F_RHANTID 5 -BEGIN - PROMPT 22 6 "Rh/AntiD " - FIELD RHANTID - FLAGS "U" -#include "rh.h" -END - -STRING F_FENOTIPORH 6 -BEGIN - PROMPT 39 6 "Fen.Rh " - FIELD FENOTIPORH -END - -LISTBOX F_KELL 5 -BEGIN - PROMPT 55 6 "Kell " - FIELD KELL - FLAGS "U" -#include "rh.h" -END - -LISTBOX F_DU 5 -BEGIN - PROMPT 68 6 "Du " - FIELD DU - FLAGS "U" -#include "rh.h" -END - -GROUPBOX DLG_NULL 77 3 -BEGIN - PROMPT 1 8 "Medico di base" -END - -NUMBER F_CODMED 6 -BEGIN - PROMPT 2 9 "Medico " - FIELD CODMED - FLAGS "U" - USE LF_MEDICI - INPUT CODMED F_CODMED - DISPLAY "Codice" CODMED - DISPLAY "Cognome@25" COGNOME - DISPLAY "Nome@25" NOME - OUTPUT F_CODMED CODMED - OUTPUT F_COGNMED COGNOME - OUTPUT F_NOMMED NOME - CHECKTYPE NORMAL - HELP "Codice medico di base" - WARNING "Codice medico assente" - ADD MASK at0800a -END - -STRING F_COGNMED 25 -BEGIN - PROMPT 19 9 "" - USE LF_MEDICI KEY 2 - INPUT COGNOME F_COGNMED - DISPLAY "Cognome@25" COGNOME - DISPLAY "Nome@25" NOME - DISPLAY "Codice" CODMED - COPY OUTPUT F_CODMED - CHECKTYPE NORMAL - HELP "Medico di base" - WARNING "Medico assente" - ADD MASK at0800a -END - -STRING F_NOMMED 25 -BEGIN - PROMPT 48 9 "" - USE LF_MEDICI KEY 2 - INPUT COGNOME F_COGNMED - INPUT NOME F_NOMNMED - DISPLAY "Cognome@25" COGNOME - DISPLAY "Nome@25" NOME - DISPLAY "Codice" CODMED - COPY OUTPUT F_COGNMED - CHECKTYPE NORMAL - HELP "Medico di base" - WARNING "Medico assente" - ADD MASK at0800a -END - -GROUPBOX DLG_NULL 35 5 -BEGIN - PROMPT 1 11 "Preferenze" -END - -LISTBOX F_MODCONV 13 -BEGIN - PROMPT 2 12 "Modalità convoc. " - FIELD MODCONV -#include "modalita.h" -END - -LISTBOX F_GIOPREDON 13 -BEGIN - PROMPT 2 13 "Giorno donazione " - FIELD GIOPREDON -#include "giorni.h" -END - -LISTBOX F_GIOPRECON 13 -BEGIN - PROMPT 2 14 "Giorno controlli " - FIELD GIOPRECON -#include "giorni.h" -END - -GROUPBOX DLG_NULL 41 5 -BEGIN - PROMPT 37 11 "Esclusione non sanitaria" -END - -LISTBOX F_ESCLUSO 20 -BEGIN - PROMPT 38 12 "Tipo " - FIELD ESCLUSO - ITEM " | " - MESSAGE CLEAR, F_TERMESCL - MESSAGE CLEAR, F_MOTESCL - MESSAGE DISABLE, F_TERMESCL - MESSAGE DISABLE, F_MOTESCL - ITEM "TI|Tempo indeterminato" - MESSAGE CLEAR, F_TERMESCL - MESSAGE DISABLE, F_TERMESCL - MESSAGE ENABLE, F_MOTESCL - ITEM "TD|Tempo determinato" - MESSAGE ENABLE, F_TERMESCL - MESSAGE ENABLE, F_MOTESCL -END - -DATE F_TERMESCL -BEGIN - PROMPT 38 13 "Termine " - FIELD TERMESCL -END - -STRING F_MOTESCL 30 -BEGIN - PROMPT 38 14 "Motivo " - FIELD MOTESCL -END - -ENDPAGE - -PAGE "Donazioni" -1 -1 78 20 - -GROUPBOX DLG_NULL 77 5 -BEGIN - PROMPT 1 0 "" - FLAGS "R" -END - -NUMBER DLG_NULL 6 -BEGIN - PROMPT 2 1 "Codice " - FLAGS "D" - GROUP 1 -END - -STRING DLG_NULL 25 -BEGIN - PROMPT 2 2 "Cognome e nome " - FLAGS "D" - GROUP 2 -END - -STRING DLG_NULL 25 -BEGIN - PROMPT 46 2 "" - FLAGS "D" - GROUP 3 -END - -DATE DLG_NULL -BEGIN - PROMPT 2 3 "Nato il " - FLAGS "D" - GROUP 4 -END - -GROUPBOX DLG_NULL 77 13 -BEGIN - PROMPT 1 5 "Donazioni" -END - -SPREADSHEET F_DONAZIONI 75 11 -BEGIN - PROMPT 2 6 "" - ITEM "Data@10" - ITEM "Tipo" - ITEM "Luogo" - ITEM "Etichetta" - ITEM "CC@3" - ITEM "P.A.@7" - ITEM "Hb@4" - ITEM "SGPT" - ITEM "Prot." - //ITEM "Prima" -END - -ENDPAGE - -PAGE "Controlli" -1 -1 78 20 - -GROUPBOX DLG_NULL 77 5 -BEGIN - PROMPT 1 0 "" - FLAGS "R" -END - -NUMBER DLG_NULL 6 -BEGIN - PROMPT 2 1 "Codice " - FLAGS "D" - GROUP 1 -END - -STRING DLG_NULL 25 -BEGIN - PROMPT 2 2 "Cognome e nome " - FLAGS "D" - GROUP 2 -END - -STRING DLG_NULL 25 -BEGIN - PROMPT 46 2 "" - FLAGS "D" - GROUP 3 -END - -DATE DLG_NULL -BEGIN - PROMPT 2 3 "Nato il " - FLAGS "D" - GROUP 4 -END - -GROUPBOX DLG_NULL 77 13 -BEGIN - PROMPT 1 5 "Controlli sanitari" -END - -SPREADSHEET F_CONTROLLI 75 11 -BEGIN - PROMPT 2 6 "" - ITEM "Data@10" - ITEM "Tipo" - ITEM "Id. 1" - ITEM "Id. 2" - ITEM "Id. 3" - ITEM "Id. 4" - ITEM "Int. SI" - ITEM "Int. AF" -END - -ENDPAGE - -PAGE "Ben./Sto." -1 -1 78 20 - -GROUPBOX DLG_NULL 77 5 -BEGIN - PROMPT 1 0 "" - FLAGS "R" -END - -NUMBER DLG_NULL 6 -BEGIN - PROMPT 2 1 "Codice " - FLAGS "D" - GROUP 1 -END - -STRING DLG_NULL 25 -BEGIN - PROMPT 2 2 "Cognome e nome " - FLAGS "D" - GROUP 2 -END - -STRING DLG_NULL 25 -BEGIN - PROMPT 46 2 "" - FLAGS "D" - GROUP 3 -END - -DATE DLG_NULL -BEGIN - PROMPT 2 3 "Nato il " - FLAGS "D" - GROUP 4 -END - -GROUPBOX DLG_NULL 77 8 -BEGIN - PROMPT 1 5 "Benemerenze" -END - -SPREADSHEET F_BENEMERENZE 75 6 -BEGIN - PROMPT 2 6 "" - ITEM "Tipo" - ITEM "Data@10" - ITEM "Ritirata?" -END - -GROUPBOX DLG_NULL 77 5 -BEGIN - PROMPT 1 13 "Storico iscrizioni e dimissioni" -END - -SPREADSHEET F_STORICO 75 3 -BEGIN - PROMPT 2 14 "" - ITEM "Dal@10" - ITEM "Al@10" - ITEM "Sezione" - ITEM "Sottogruppo" - ITEM "Cat. Isc." - ITEM "Motivo dim." -END - -ENDPAGE - -ENDMASK - -PAGE "Donazioni" -1 -1 75 13 - -DATE F_D_DATADON -BEGIN - PROMPT 2 1 "Data donazione " - FIELD LF_DONAZ->DATADON - CHECKTYPE REQUIRED - VALIDATE NOT_EMPTY_FUNC - HELP "Data donazione" -END - -STRING F_D_TIPODON 2 -BEGIN - PROMPT 2 2 "Tipo donazione " - FIELD LF_DONAZ->TIPODON - FLAGS "U" - USE TDN - INPUT CODTAB F_D_TIPODON - DISPLAY "Codice" CODTAB - DISPLAY "Descrizione@30" S0 - OUTPUT F_D_TIPODON CODTAB - OUTPUT F_D_DESC_TIPODON S0 - CHECKTYPE REQUIRED - VALIDATE NOT_EMPTY_FUNC - WARNING "Codice non presente" - HELP "Tipo donazione" -END - -STRING F_D_LUOGODON 4 -BEGIN - PROMPT 2 3 "Luogo donazione " - FIELD LF_DONAZ->LUOGODON - FLAGS "U" - USE LDN - INPUT CODTAB F_D_LUOGODON - DISPLAY "Codice" CODTAB - DISPLAY "Descrizione@30" S0 - OUTPUT F_D_LUOGODON CODTAB - OUTPUT F_D_DESC_LUOGODON S0 - CHECKTYPE NORMAL - WARNING "Codice non presente" - HELP "Luogo donazione" -END - -NUMBER F_D_ETICHETTA 9 -BEGIN - PROMPT 2 5 "Etichetta sacca " - FIELD LF_DONAZ->ETICHETTA -END - -NUMBER F_D_CC 3 -BEGIN - PROMPT 30 5 "CC " - FIELD LF_DONAZ->CC - FLAGS "U" -END - -GROUPBOX DLG_NULL 70 3 -BEGIN - PROMPT 1 7 "Dati sanitari" -END - -STRING F_D_PA 7 -BEGIN - PROMPT 2 8 "PA " - FIELD LF_DONAZ->PA -END - -NUMBER F_D_HB 4 1 -BEGIN - PROMPT 17 8 "Hb " - FIELD LF_DONAZ->HB - FLAGS "U" -END - -NUMBER F_D_SGPT 3 -BEGIN - PROMPT 32 8 "SGPT " - FIELD LF_DONAZ->SGPT - FLAGS "U" -END - -NUMBER F_D_PROTIDEMIA 3 1 -BEGIN - PROMPT 47 8 "Protidemia " - FIELD LF_DONAZ->PROTIDEMIA - FLAGS "U" -END - -//BOOLEAN F_D_PRIMADON -//BEGIN -// PROMPT 2 10 "Prima donazione " -// FIELD LF_DONAZ->PRIMADON -//END - -STRING F_D_DESC_TIPODON 25 -BEGIN - PROMPT 30 2 "" - FLAGS "D" -END - -STRING F_D_DESC_LUOGODON 25 -BEGIN - PROMPT 30 3 "" - FLAGS "D" -END - -BUTTON DLG_OK 9 2 -BEGIN - PROMPT -13 -1 "" -END - -BUTTON DLG_CANCEL 9 2 -BEGIN - PROMPT -23 -1 "" -END - -BUTTON DLG_DELREC 9 2 -BEGIN - PROMPT -33 -1 "" - MESSAGE EXIT, K_DEL -END - -ENDPAGE - -ENDMASK - -PAGE "Controlli sanitari" -1 -1 75 14 - -DATE F_C_DATACON -BEGIN - PROMPT 2 1 "Data controllo " - FIELD LF_CONTSAN->DATACON - CHECKTYPE REQUIRED - VALIDATE NOT_EMPTY_FUNC - HELP "Data controllo" -END - -STRING F_C_TIPOCON 2 -BEGIN - PROMPT 2 2 "Tipo controllo " - FIELD LF_CONTSAN->TIPOCON - FLAGS "U" - USE TCS - INPUT CODTAB F_C_TIPOCON - DISPLAY "Codice" CODTAB - DISPLAY "Descrizione@30" S0 - OUTPUT F_C_TIPOCON CODTAB - OUTPUT F_C_DESC_TIPOCON S0 - CHECKTYPE REQUIRED - VALIDATE NOT_EMPTY_FUNC - WARNING "Codice non presente" - HELP "Tipo/Esito controllo sanitario" -END - -GRUPBOX DLG_NULL 70 7 -BEGIN - PROMPT 1 4 "Dati da compilare se si tratta di idoneita'" -END - -TEXT DLG_NULL -BEGIN - PROMPT 2 5 "Tipi donazione ammessi" -END - -STRING F_C_IDON1 2 -BEGIN - PROMPT 2 6 "" - FIELD LF_CONTSAN->IDON1 - FLAGS "U" - USE IDO - INPUT CODTAB F_C_IDON1 - DISPLAY "Codice" CODTAB - DISPLAY "Descrizione@30" S0 - OUTPUT F_C_IDON1 CODTAB - OUTPUT F_C_DESC_IDON1 S0 - CHECKTYPE NORMAL - WARNING "Codice non presente" - HELP "Idoneita' alla donazione" -END - -STRING F_C_IDON2 2 -BEGIN - PROMPT 2 7 "" - FIELD LF_CONTSAN->IDON2 - FLAGS "U" - USE IDO - INPUT CODTAB F_C_IDON2 - DISPLAY "Codice" CODTAB - DISPLAY "Descrizione@30" S0 - OUTPUT F_C_IDON2 CODTAB - OUTPUT F_C_DESC_IDON2 S0 - CHECKTYPE NORMAL - WARNING "Codice non presente" - HELP "Idoneita' alla donazione" -END - -STRING F_C_IDON3 2 -BEGIN - PROMPT 2 8 "" - FIELD LF_CONTSAN->IDON3 - FLAGS "U" - USE IDO - INPUT CODTAB F_C_IDON3 - DISPLAY "Codice" CODTAB - DISPLAY "Descrizione@30" S0 - OUTPUT F_C_IDON3 CODTAB - OUTPUT F_C_DESC_IDON3 S0 - CHECKTYPE NORMAL - WARNING "Codice non presente" - HELP "Idoneita' alla donazione" -END - -STRING F_C_IDON4 2 -BEGIN - PROMPT 2 9 "" - FIELD LF_CONTSAN->IDON4 - FLAGS "U" - USE IDO - INPUT CODTAB F_C_IDON4 - DISPLAY "Codice" CODTAB - DISPLAY "Descrizione@30" S0 - OUTPUT F_C_IDON4 CODTAB - OUTPUT F_C_DESC_IDON4 S0 - CHECKTYPE NORMAL - WARNING "Codice non presente" - HELP "Idoneita' alla donazione" -END - -TEXT DLG_NULL -BEGIN - PROMPT 40 5 "Intervalli" -END - -NUMBER F_C_INTSI 3 0 -BEGIN - PROMPT 40 6 "Sangue intero " - FIELD LF_CONTSAN->INTSI - FLAGS "U" -END - -NUMBER F_C_INTAF 3 0 -BEGIN - PROMPT 40 7 "Aferesi " - FIELD LF_CONTSAN->INTAF - FLAGS "U" -END - - -STRING F_C_DESC_TIPOCON 25 -BEGIN - PROMPT 25 2 "" - FLAGS "D" -END - -STRING F_C_DESC_IDON1 25 -BEGIN - PROMPT 10 6 "" - FLAGS "D" -END - -STRING F_C_DESC_IDON2 25 -BEGIN - PROMPT 10 7 "" - FLAGS "D" -END - -STRING F_C_DESC_IDON3 25 -BEGIN - PROMPT 10 8 "" - FLAGS "D" -END - -STRING F_C_DESC_IDON4 25 -BEGIN - PROMPT 10 9 "" - FLAGS "D" -END - -BUTTON DLG_OK 9 2 -BEGIN - PROMPT -13 -1 "" -END - -BUTTON DLG_CANCEL 9 2 -BEGIN - PROMPT -23 -1 "" -END - -BUTTON DLG_DELREC 9 2 -BEGIN - PROMPT -33 -1 "" - MESSAGE EXIT, K_DEL -END - - -ENDPAGE - -ENDMASK - -PAGE "Benemerenze" -1 -1 75 14 - -STRING F_B_TIPOBEN 2 -BEGIN - PROMPT 2 1 "Benemerenza " - FIELD LF_BENEM->TIPOBEN - FLAGS "U" - USE BNZ - INPUT CODTAB F_B_TIPOBEN - DISPLAY "Codice" CODTAB - DISPLAY "Descrizione@30" S0 - OUTPUT F_B_TIPOBEN CODTAB - OUTPUT F_B_DESC_TIPOBEN S0 - CHECKTYPE REQUIRED - VALIDATE NOT_EMPTY_FUNC - WARNING "Codice non presente" - HELP "Benemerenza assegnata" -END - -DATE F_B_DATABEN -BEGIN - PROMPT 2 2 "Data assegnazione " - FIELD LF_BENEM->DATABEN - CHECKTYPE REQUIRED - VALIDATE NOT_EMPTY_FUNC - HELP "Data assegnazione benemerenza" -END - -BOOLEAN F_B_RITIRATA -BEGIN - PROMPT 40 2 "Ritirata " - FIELD LF_BENEM->RITIRATA -END - - -STRING F_B_DESC_TIPOBEN 25 -BEGIN - PROMPT 26 1 "" - FLAGS "D" -END - -BUTTON DLG_OK 9 2 -BEGIN - PROMPT -13 -1 "" -END - -BUTTON DLG_CANCEL 9 2 -BEGIN - PROMPT -23 -1 "" -END - -BUTTON DLG_DELREC 9 2 -BEGIN - PROMPT -33 -1 "" - MESSAGE EXIT, K_DEL -END - -ENDPAGE - -ENDMASK - -PAGE "Storico iscrizioni e dimissioni" -1 -1 60 12 - -DATE F_S_DATAISC -BEGIN - PROMPT 2 1 " Dal " - FIELD LF_STORICO->DATAISC - HELP "Data di iscrizione alla sezione/categoria" -END - -DATE F_S_DATADIM -BEGIN - PROMPT 2 2 " Al " - FIELD LF_STORICO->DATADIM - HELP "Data di dimissione alla sezione/categoria" -END - -STRING F_S_CODSEZ 2 -BEGIN - PROMPT 2 4 "Sezione " - FIELD LF_STORICO->CODSEZ - FLAGS "U" - USE LF_SEZIONI - INPUT CODSEZ F_S_CODSEZ - INPUT CODSOT F_S_CODSOT - DISPLAY "Cod.sez" CODSEZ - DISPLAY "Cod.sot." CODSOT - DISPLAY "Sezione@25" DENSEZ - DISPLAY "Sottogruppo@25" DENSOT - OUTPUT F_S_CODSEZ CODSEZ - OUTPUT F_S_DENSEZ DENSEZ - OUTPUT F_S_CODSOT CODSOT - OUTPUT F_S_DENSOT DENSOT - CHECKTYPE SEARCH - HELP "Codice sezione di iscrizione" -END - -STRING F_S_DENSEZ 25 -BEGIN - PROMPT 20 4 "" - FLAGS "U" - USE LF_SEZIONI KEY 2 - INPUT DENSEZ F_S_DENSEZ - DISPLAY "Sezione@25" DENSEZ - DISPLAY "Sottogruppo@25" DENSOT - DISPLAY "Cod.sez" CODSEZ - DISPLAY "Cod.sot." CODSOT - COPY OUTPUT F_S_CODSEZ - CHECKTYPE NORMAL - HELP "Denominazione sezione di iscrizione" -END - -STRING F_S_CODSOT 2 -BEGIN - PROMPT 2 5 "Sottogruppo " - FIELD LF_STORICO->CODSOT - COPY ALL F_S_CODSEZ - //CHECKTYPE NORMAL - CHECKTYPE SEARCH - HELP "Codice sottogruppo di iscrizione" -END - -STRING F_S_DENSOT 25 -BEGIN - PROMPT 20 5 "" - FLAGS "U" - COPY USE F_S_DENSEZ - INPUT DENSEZ F_S_DENSEZ - INPUT DENSOT F_S_DENSOT - COPY DISPLAY F_S_DENSEZ - COPY OUTPUT F_S_DENSEZ - CHECKTYPE NORMAL - HELP "Sottogruppo di iscrizione" -END - -STRING F_S_CATISC 2 -BEGIN - PROMPT 2 7 "Cat. iscriz. " - FIELD LF_STORICO->CATISC - FLAGS "U" - USE CTD - INPUT CODTAB F_S_CATISC - DISPLAY "Codice" CODTAB - DISPLAY "Descrizione@30" S0 - OUTPUT F_S_CATISC CODTAB - OUTPUT F_S_DESC_CATISC S0 - CHECKTYPE NORMAL - WARNING "Codice non presente" - HELP "Categoria di iscrizione" -END - - -STRING F_S_DESC_CATISC 25 -BEGIN - PROMPT 20 7 "" - FLAGS "D" -END - - -LISTBOX F_S_MOTDIM 25 -BEGIN - PROMPT 2 9 "Motivo dim. " - FIELD MOTDIM - FLAGS "U" -#include "motdim.h" -END - -BUTTON DLG_OK 9 2 -BEGIN - PROMPT -13 -1 "" -END - -BUTTON DLG_CANCEL 9 2 -BEGIN - PROMPT -23 -1 "" -END - -BUTTON DLG_DELREC 9 2 -BEGIN - PROMPT -33 -1 "" - MESSAGE EXIT, K_DEL -END - - -ENDPAGE - -ENDMASK +#include "at0100.h" +#include "lf.h" + +TOOLBAR "" 0 20 0 2 +#include +ENDPAGE + +PAGE "Sogg. 1" -1 -1 78 20 + +GROUPBOX DLG_NULL 77 5 +BEGIN + PROMPT 1 0 "" + FLAGS "R" +END + +NUMBER F_CODICE 6 +BEGIN + PROMPT 2 1 "Codice " + FIELD CODICE + FLAGS "RG" + KEY 1 + USE LF_SOGGETTI + INPUT CODICE F_CODICE + DISPLAY "Codice@6" CODICE + DISPLAY "Cognome@25" COGNOME + DISPLAY "Nome@25" NOME + DISPLAY "Nato il@10" DATANASC + DISPLAY "Sez." CODSEZ + DISPLAY "Sot." CODSOT + DISPLAY "C." CATDON + DISPLAY "Tessera" TESSAVIS + OUTPUT F_CODICE CODICE + OUTPUT F_COGNOME COGNOME + OUTPUT F_NOME NOME + OUTPUT F_DATANASC DATANASC + MESSAGE COPY,1@ + CHECKTYPE REQUIRED +END + +STRING F_COGNOME 25 +BEGIN + PROMPT 2 2 "Cognome e nome " + FIELD COGNOME + KEY 2 + USE LF_SOGGETTI KEY 2 + INPUT COGNOME F_COGNOME + INPUT NOME F_NOME + DISPLAY "Cognome@25" COGNOME + DISPLAY "Nome@25" NOME + DISPLAY "Nato il@10" DATANASC + DISPLAY "Codice@6" CODICE + DISPLAY "Sez." CODSEZ + DISPLAY "Sot." CODSOT + DISPLAY "C." CATDON + DISPLAY "Tessera" TESSAVIS + OUTPUT F_CODICE CODICE + OUTPUT F_COGNOME COGNOME + OUTPUT F_NOME NOME + OUTPUT F_DATANASC DATANASC + //COPY OUTPUT F_CODICE + MESSAGE COPY,2@ + CHECKTYPE REQUIRED + //VALIDATE NOT_EMPTY_CHECK_FIELD + HELP "Cognome del soggetto" +END + +STRING F_NOME 25 +BEGIN + PROMPT 46 2 "" + FIELD NOME + KEY 2 + COPY ALL F_COGNOME + MESSAGE COPY,3@ + CHECKTYPE REQUIRED + //VALIDATE NOT_EMPTY_CHECK_FIELD + HELP "Nome del soggetto" +END + +DATE F_DATANASC +BEGIN + PROMPT 2 3 "Nato il " + FIELD DATANASC + //KEY 2 + //COPY ALL F_COGNOME + MESSAGE COPY,4@ + CHECKTYPE REQUIRED + VALIDATE NOT_EMPTY_CHECK_FIELD + HELP "Data di nascita" +END + +GROUPBOX DLG_NULL 77 4 +BEGIN + PROMPT 1 5 "Dati associativi" +END + +STRING F_CODSEZ 2 +BEGIN + PROMPT 2 6 "Sez. " + FIELD CODSEZ + FLAGS "U" + USE LF_SEZIONI + INPUT CODSEZ F_CODSEZ + INPUT CODSOT F_CODSOT + DISPLAY "Cod.sez" CODSEZ + DISPLAY "Cod.sot." CODSOT + DISPLAY "Sezione@25" DENSEZ + DISPLAY "Sottogruppo@25" DENSOT + OUTPUT F_CODSEZ CODSEZ + OUTPUT F_DENSEZ DENSEZ + OUTPUT F_CODSOT CODSOT + OUTPUT F_DENSOT DENSOT + //CHECKTYPE NORMAL + CHECKTYPE SEARCH + HELP "Codice sezione di appartenenza" + ADD MASK at0700a +END + +STRING F_DENSEZ 25 +BEGIN + PROMPT 13 6 "" + FLAGS "U" + USE LF_SEZIONI KEY 2 + INPUT DENSEZ F_DENSEZ + DISPLAY "Sezione@25" DENSEZ + DISPLAY "Sottogruppo@25" DENSOT + DISPLAY "Cod.sez" CODSEZ + DISPLAY "Cod.sot." CODSOT + COPY OUTPUT F_CODSEZ + CHECKTYPE NORMAL + HELP "Denominazione sezione di appartenenza" + ADD MASK at0700a +END + +STRING F_CODSOT 2 +BEGIN + PROMPT 2 7 "Sot. " + FIELD CODSOT + COPY ALL F_CODSEZ + CHECKTYPE NORMAL + HELP "Codice sottogruppo di appartenenza" + ADD MASK at0700a +END + +STRING F_DENSOT 25 +BEGIN + PROMPT 13 7 "" + FLAGS "U" + COPY USE F_DENSEZ + INPUT DENSEZ F_DENSEZ + INPUT DENSOT F_DENSOT + COPY DISPLAY F_DENSEZ + COPY OUTPUT F_DENSEZ + CHECKTYPE NORMAL + HELP "Sottogruppo di appartenenza" + ADD MASK at0700a +END + +STRING F_CATDON 2 +BEGIN + PROMPT 43 6 "Cat. " + FIELD CATDON + FLAGS "U" + USE CTD + INPUT CODTAB F_CATDON + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@30" S0 + OUTPUT F_CATDON CODTAB + OUTPUT F_DESC_CATDON S0 + CHECKTYPE NORMAL + WARNING "Codice non presente" + HELP "Categoria di appartenenza" +END + +STRING F_DESC_CATDON 22 +BEGIN + PROMPT 54 6 "" + FLAGS "D" +END + +DATE F_DATAISC +BEGIN + PROMPT 43 7 "Isc. " + FIELD DATAISC + HELP "Data di iscrizione alla sezione/categoria" +END + +DATE F_DATADIM +BEGIN + PROMPT 61 7 "Dim. " + FIELD DATADIM + HELP "Data di dimissione alla sezione/categoria" +END + +GROUPBOX DLG_NULL 77 7 +BEGIN + PROMPT 1 9 "Dati anagrafici" +END + +STRING F_COMNASC 4 +BEGIN + PROMPT 2 10 "Nato a " + FIELD COMNASC + FLAGS "U" + USE LF_COMUNI + INPUT STATO "" + INPUT COM F_COMNASC +#include + OUTPUT F_COMNASC COM + OUTPUT F_DENCOMNASC DENCOM + OUTPUT F_PROVCOMNASC PROVCOM + CHECKTYPE NORMAL + HELP "Codice comune di nascita" + WARNING "Comune assente" +END + +STRING F_DENCOMNASC 48 +BEGIN + PROMPT 19 10 "" + USE LF_COMUNI KEY 2 + INPUT DENCOM F_DENCOMNASC +#include + COPY OUTPUT F_COMNASC + CHECKTYPE NORMAL + HELP "Comune di nascita" +END + +STRING F_PROVCOMNASC 5 +BEGIN + PROMPT 71 10 "" + FLAGS "D" +END + +STRING F_INDIRIZZO 50 +BEGIN + PROMPT 2 11 "Indirizzo " + FIELD INDIRIZZO +END + +STRING F_COM 4 +BEGIN + PROMPT 2 12 "Comune " + FIELD COM + FLAGS "U" + USE LF_COMUNI + INPUT STATO "" + INPUT COM F_COM +#include + OUTPUT F_COM COM + OUTPUT F_DENCOM DENCOM + OUTPUT F_PROVCOM PROVCOM + OUTPUT F_CAPCOM CAPCOM + CHECKTYPE NORMAL + WARNING "Comune assente" + HELP "Codice comune di residenza" +END + +STRING F_DENCOM 48 +BEGIN + PROMPT 19 12 "" + USE LF_COMUNI KEY 2 + INPUT DENCOM F_DENCOM +#include + COPY OUTPUT F_COM + CHECKTYPE NORMAL + HELP "Comune di residenza" +END + +STRING F_LOCALITA 4 +BEGIN + PROMPT 2 13 "Località " + FIELD LOCALITA + FLAGS "U" + USE LCP SELECT S7=#F_COM + INPUT CODTAB F_LOCALITA + DISPLAY "Codice" CODTAB + DISPLAY "Località@30" S0 + DISPLAY "CAP@5" S6 + OUTPUT F_LOCALITA CODTAB + OUTPUT F_DENLOC S0 + OUTPUT F_CAPCOM S6 + OUTPUT F_COM S7 + CHECKTYPE NORMAL + HELP "Codice localit… postale se diversa dal comune" +END + +STRING F_DENLOC 30 +BEGIN + PROMPT 19 13 "" + COPY USE F_LOCALITA + INPUT S0 F_DENLOC + DISPLAY "Località@30" S0 + DISPLAY "CAP@5" S6 + DISPLAY "Codice" CODTAB + COPY OUTPUT F_LOCALITA + CHECKTYPE NORMAL + HELP "Localit… postale se diversa dal comune" +END + +STRING F_PROVCOM 5 +BEGIN + PROMPT 71 12 "" + FLAGS "D" +END + +STRING F_CAPCOM 5 +BEGIN + PROMPT 67 13 "CAP " + FIELD CAPCOM +END + +STRING F_TELABI 15 +BEGIN + PROMPT 2 14 "Telefoni: Abit. " + FIELD TELABI + HELP "Telefono abitazione" +END + +STRING F_TELLAV 15 +BEGIN + PROMPT 37 14 "Lav. " + FIELD TELLAV + HELP "Telefono lavoro" +END + +STRING F_TELALT 15 +BEGIN + PROMPT 59 14 "3 " + FIELD TELALT + HELP "Altro numero telefonico per reperibilit…" +END + +RADIOBUTTON F_SESSO 25 +BEGIN + PROMPT 1 16 "Sesso" + FIELD SESSO + FLAGS "Z" + ITEM "M|Maschio" + ITEM "F|Femmina" +END + +GROUPBOX DLG_NULL 43 3 +BEGIN + PROMPT 35 16 "Ultimo aggiornamento" +END + +DATE F_DATAULTAGG +BEGIN + PROMPT 36 17 "Data " + FIELD DATAULTAGG + FLAGS "D" +END + +STRING F_UTENULTAGG 8 +BEGIN + PROMPT 60 17 "Utente " + FIELD UTENULTAGG + FLAGS "D" +END + +ENDPAGE + +PAGE "Sogg. 2" -1 -1 78 20 + +GROUPBOX DLG_NULL 77 5 +BEGIN + PROMPT 1 0 "" + FLAGS "R" +END + +NUMBER DLG_NULL 6 +BEGIN + PROMPT 2 1 "Codice " + FLAGS "D" + GROUP 1 +END + +STRING DLG_NULL 25 +BEGIN + PROMPT 2 2 "Cognome e nome " + FLAGS "D" + GROUP 2 +END + +STRING DLG_NULL 25 +BEGIN + PROMPT 46 2 "" + FLAGS "D" + GROUP 3 +END + +DATE DLG_NULL +BEGIN + PROMPT 2 3 "Nato il " + FLAGS "D" + GROUP 4 +END + +GROUPBOX DLG_NULL 77 4 +BEGIN + PROMPT 1 5 "Altri dati associativi" +END + +STRING F_CATNOND1 2 +BEGIN + PROMPT 2 6 "Categorie non don. " + FIELD CATNOND1 + FLAGS "U" + USE CTN + INPUT CODTAB F_CATNOND1 + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@30" S0 + OUTPUT F_CATNOND1 CODTAB + OUTPUT F_DESC_CATNOND1 S0 + CHECKTYPE NORMAL + WARNING "Codice non presente" + HELP "Altra categoria non donatori" +END + +STRING F_DESC_CATNOND1 20 +BEGIN + PROMPT 26 6 "" + FLAGS "D" +END + +STRING F_CATNOND2 2 +BEGIN + PROMPT 50 6 "" + FIELD CATNOND2 + FLAGS "U" + COPY USE F_CATNOND1 + INPUT CODTAB F_CATNOND2 + COPY DISPLAY F_CATNOND1 + OUTPUT F_CATNOND2 CODTAB + OUTPUT F_DESC_CATNOND2 S0 + CHECKTYPE NORMAL + WARNING "Codice non presente" + HELP "Altra categoria non donatori" +END + +STRING F_DESC_CATNOND2 20 +BEGIN + PROMPT 55 6 "" + FLAGS "D" +END + +STRING F_TITINDIR 10 +BEGIN + PROMPT 2 7 "Titolo personale " + FIELDS TESSSSN + HELP "Eventuale titolo da stampare prima del nome sull'indirizzo" +END + +GROUPBOX DLG_NULL 77 4 +BEGIN + PROMPT 1 9 "Codici di identificazione" +END +STRING F_CODCT 6 +BEGIN + PROMPT 2 10 "Codice CT " + FIELDS CODCT + FLAGS "U" + HELP "Codice Centro Trasfusionale" +END + +STRING F_CODCL 6 +BEGIN + PROMPT 25 10 "Cartella clinica " + FIELDS CODCL + FLAGS "U" + HELP "Numero cartella clinica" +END + +STRING F_TESSAVIS 10 +BEGIN + PROMPT 53 10 "Tessera AVIS " + FIELDS TESSAVIS + FLAGS "U" + HELP "Numero tessera associativa AVIS" +END + +STRING F_DOCID 20 +BEGIN + PROMPT 2 11 "Doc. iden. " + FIELDS DOCID + FLAGS "U" + HELP "Documento di identit…: tipo e numero" +END + + +STRING F_CF 16 +BEGIN + PROMPT 38 11 "CF " + FIELD CF + FLAGS "U" + HELP "Codice fiscale" +END + +STRING F_TESSSSN 10 +BEGIN + PROMPT 62 11 "SSN " + FIELDS TESSSSN + FLAGS "U" + HELP "Numero tessera Servizio Sanitario Nazionale" +END + + +GROUPBOX DLG_NULL 77 6 +BEGIN + PROMPT 1 13 "Dati statistici" +END + +LISTBOX F_CONDOCC 25 +BEGIN + PROMPT 2 14 "Cond. occ. " + FIELD CONDOCC + FLAGS "U" +#include "condocc.h" +END + +LISTBOX F_POSPROF 20 +BEGIN + PROMPT 43 14 "Pos. prof. " + FIELD POSPROF + FLAGS "U" +#include "posprof.h" +END + +LISTBOX F_RAMOATT 25 +BEGIN + PROMPT 2 15 "Ramo att. " + FIELD RAMOATT + FLAGS "U" +#include "ramoatt.h" +END + +LISTBOX F_TITSTUD 20 +BEGIN + PROMPT 43 15 "Tit. stud. " + FIELD TITSTUD + FLAGS "U" +#include "titstud.h" +END + +STRING F_PROFESS 4 +BEGIN + PROMPT 2 16 "Professione " + FIELD PROFESS + FLAGS "D" +// USE IDO +// INPUT CODTAB F_IDON1 +// OUTPUT F_DESC_ID1 S0 +// CHECKTYPE NORMAL +END + +STRING F_DESC_PROF 40 +BEGIN + PROMPT 21 16 "" + FLAGS "D" +END + +STRING F_LUOGOLAV 4 +BEGIN + PROMPT 2 17 "Luogo lav. " + FLAGS "D" +END + +STRING F_DESC_LUOGO 40 +BEGIN + PROMPT 21 17 "" + FLAGS "D" +END + +ENDPAGE + +PAGE "Sogg. 3" -1 -1 78 20 + +GROUPBOX DLG_NULL 77 5 +BEGIN + PROMPT 1 0 "" + FLAGS "R" +END + +NUMBER DLG_NULL 6 +BEGIN + PROMPT 2 1 "Codice " + FLAGS "D" + GROUP 1 +END + +STRING DLG_NULL 25 +BEGIN + PROMPT 2 2 "Cognome e nome " + FLAGS "D" + GROUP 2 +END + +STRING DLG_NULL 25 +BEGIN + PROMPT 46 2 "" + FLAGS "D" + GROUP 3 +END + +DATE DLG_NULL +BEGIN + PROMPT 2 3 "Nato il " + FLAGS "D" + GROUP 4 +END + +GROUPBOX DLG_NULL 77 7 +BEGIN + PROMPT 1 5 "Situazione sanitaria" +END + +STRING F_STATO 2 +BEGIN + PROMPT 2 6 "Stato attuale " + FIELD STATO + FLAGS "D" + USE TCS + INPUT CODTAB F_STATO + OUTPUT F_DESCSTATO S3 + CHECKTYPE NORMAL +END + +STRING F_DESCSTATO 20 +BEGIN + PROMPT 20 6 "" + FLAGS "D" +END + +DATE F_DATASTATO +BEGIN + PROMPT 55 6 "Data stato " + FIELD DATASTATO + FLAGS "D" +END + +STRING F_IDON1 2 +BEGIN + PROMPT 2 8 "Tipi di idon. " + FIELD IDON1 + FLAGS "D" + USE IDO + INPUT CODTAB F_IDON1 + OUTPUT F_DESC_ID1 S0 + CHECKTYPE NORMAL +END + +STRING F_DESC_ID1 25 +BEGIN + PROMPT 20 8 "" + FLAGS "D" +END + +STRING F_IDON2 2 +BEGIN + PROMPT 47 8 "" + FIELD IDON2 + FLAGS "D" + USE IDO + INPUT CODTAB F_IDON2 + OUTPUT F_DESC_ID2 S0 + CHECKTYPE NORMAL +END + +STRING F_DESC_ID2 25 +BEGIN + PROMPT 51 8 "" + FLAGS "D" +END + +STRING F_IDON3 2 +BEGIN + PROMPT 2 9 " " + FIELD IDON3 + FLAGS "D" + USE IDO + INPUT CODTAB F_IDON3 + OUTPUT F_DESC_ID3 S0 + CHECKTYPE NORMAL +END + +STRING F_DESC_ID3 25 +BEGIN + PROMPT 20 9 "" + FLAGS "D" +END + +STRING F_IDON4 2 +BEGIN + PROMPT 47 9 "" + FIELD IDON4 + FLAGS "D" + USE IDO + INPUT CODTAB F_IDON4 + OUTPUT F_DESC_ID4 S0 + CHECKTYPE NORMAL +END + +STRING F_DESC_ID4 25 +BEGIN + PROMPT 51 9 "" + FLAGS "D" +END + +DATE F_DATAULTID +BEGIN + PROMPT 2 10 "Data ult. id. " + FIELD DATAULTID + FLAGS "D" +END + +STRING F_TIPOULTID 2 +BEGIN + PROMPT 30 10 "Tipo " + FIELD TIPOULTID + FLAGS "D" +END + +GROUPBOX DLG_NULL 77 7 +BEGIN + PROMPT 1 12 "Situazione donazioni" +END + +NUMBER F_TOTDON 3 +BEGIN + PROMPT 2 13 "Totale " + FIELD TOTDON + FLAGS "D" +END + +DATE F_DATAULTDON +BEGIN + PROMPT 15 13 "Data/tipo ultima " + FIELD DATAULTDON + FLAGS "D" +END + +STRING F_TIPOULTDON 2 +BEGIN + PROMPT 44 13 "" + FIELD TIPOULTDON + FLAGS "D" + USE TDN + INPUT CODTAB F_TIPOULTDON + OUTPUT F_DESC_ULTDON S0 + CHECKTYPE NORMAL +END + +STRING F_DESC_ULTDON 25 +BEGIN + PROMPT 48 13 "" + FLAGS "D" +END + +NUMBER F_TOTDONSI 3 +BEGIN + PROMPT 2 14 "Totale don. : Sangue intero " + FIELD TOTDONSI + FLAGS "D" +END + +NUMBER F_TOTDONAF 3 +BEGIN + PROMPT 48 14 "Aferesi " + FIELD TOTDONAF + FLAGS "D" +END + +DATE F_DATAULTSI +BEGIN + PROMPT 2 15 "Date ultima : Sangue intero " + FIELD DATAULTSI + FLAGS "D" +END + +DATE F_DATAULTAF +BEGIN + PROMPT 48 15 "Aferesi " + FIELD DATAULTAF + FLAGS "D" +END + +NUMBER F_INTSI 3 +BEGIN + PROMPT 2 16 "Intervalli : Sangue intero " + FIELD INTSI + FLAGS "D" +END + +NUMBER F_INTAF 3 +BEGIN + PROMPT 48 16 "Aferesi " + FIELD INTAF + FLAGS "D" +END + +DATE F_DATAPROSSI +BEGIN + PROMPT 2 17 "Date prossima : Sangue intero " + FIELD DATAPROSSI + FLAGS "D" +END + +DATE F_DATAPROSAF +BEGIN + PROMPT 48 17 "Aferesi " + FIELD DATAPROSAF + FLAGS "D" +END + +ENDPAGE + +PAGE "Sogg. 4" -1 -1 78 20 + +GROUPBOX DLG_NULL 77 5 +BEGIN + PROMPT 1 0 "" + FLAGS "R" +END + +NUMBER DLG_NULL 6 +BEGIN + PROMPT 2 1 "Codice " + FLAGS "D" + GROUP 1 +END + +STRING DLG_NULL 25 +BEGIN + PROMPT 2 2 "Cognome e nome " + FLAGS "D" + GROUP 2 +END + +STRING DLG_NULL 25 +BEGIN + PROMPT 46 2 "" + FLAGS "D" + GROUP 3 +END + +DATE DLG_NULL +BEGIN + PROMPT 2 3 "Nato il " + FLAGS "D" + GROUP 4 +END + + +GROUPBOX DLG_NULL 77 3 +BEGIN + PROMPT 1 5 "Tipizzazione" +END + +LISTBOX F_GRUPPOAB0 5 +BEGIN + PROMPT 2 6 "Gruppo AB0 " + FIELD GRUPPOAB0 + FLAGS "U" +#include "gruppo.h" +END + +LISTBOX F_RHANTID 5 +BEGIN + PROMPT 22 6 "Rh/AntiD " + FIELD RHANTID + FLAGS "U" +#include "rh.h" +END + +STRING F_FENOTIPORH 6 +BEGIN + PROMPT 39 6 "Fen.Rh " + FIELD FENOTIPORH +END + +LISTBOX F_KELL 5 +BEGIN + PROMPT 55 6 "Kell " + FIELD KELL + FLAGS "U" +#include "rh.h" +END + +LISTBOX F_DU 5 +BEGIN + PROMPT 68 6 "Du " + FIELD DU + FLAGS "U" +#include "rh.h" +END + +GROUPBOX DLG_NULL 77 3 +BEGIN + PROMPT 1 8 "Medico di base" +END + +NUMBER F_CODMED 6 +BEGIN + PROMPT 2 9 "Medico " + FIELD CODMED + FLAGS "U" + USE LF_MEDICI + INPUT CODMED F_CODMED + DISPLAY "Codice" CODMED + DISPLAY "Cognome@25" COGNOME + DISPLAY "Nome@25" NOME + OUTPUT F_CODMED CODMED + OUTPUT F_COGNMED COGNOME + OUTPUT F_NOMMED NOME + CHECKTYPE NORMAL + HELP "Codice medico di base" + WARNING "Codice medico assente" + ADD MASK at0800a +END + +STRING F_COGNMED 25 +BEGIN + PROMPT 19 9 "" + USE LF_MEDICI KEY 2 + INPUT COGNOME F_COGNMED + DISPLAY "Cognome@25" COGNOME + DISPLAY "Nome@25" NOME + DISPLAY "Codice" CODMED + COPY OUTPUT F_CODMED + CHECKTYPE NORMAL + HELP "Medico di base" + WARNING "Medico assente" + ADD MASK at0800a +END + +STRING F_NOMMED 25 +BEGIN + PROMPT 48 9 "" + USE LF_MEDICI KEY 2 + INPUT COGNOME F_COGNMED + INPUT NOME F_NOMNMED + DISPLAY "Cognome@25" COGNOME + DISPLAY "Nome@25" NOME + DISPLAY "Codice" CODMED + COPY OUTPUT F_COGNMED + CHECKTYPE NORMAL + HELP "Medico di base" + WARNING "Medico assente" + ADD MASK at0800a +END + +GROUPBOX DLG_NULL 35 5 +BEGIN + PROMPT 1 11 "Preferenze" +END + +LISTBOX F_MODCONV 13 +BEGIN + PROMPT 2 12 "Modalità convoc. " + FIELD MODCONV +#include "modalita.h" +END + +LISTBOX F_GIOPREDON 13 +BEGIN + PROMPT 2 13 "Giorno donazione " + FIELD GIOPREDON +#include "giorni.h" +END + +LISTBOX F_GIOPRECON 13 +BEGIN + PROMPT 2 14 "Giorno controlli " + FIELD GIOPRECON +#include "giorni.h" +END + +GROUPBOX DLG_NULL 41 5 +BEGIN + PROMPT 37 11 "Esclusione non sanitaria" +END + +LISTBOX F_ESCLUSO 20 +BEGIN + PROMPT 38 12 "Tipo " + FIELD ESCLUSO + ITEM " | " + MESSAGE CLEAR, F_TERMESCL + MESSAGE CLEAR, F_MOTESCL + MESSAGE DISABLE, F_TERMESCL + MESSAGE DISABLE, F_MOTESCL + ITEM "TI|Tempo indeterminato" + MESSAGE CLEAR, F_TERMESCL + MESSAGE DISABLE, F_TERMESCL + MESSAGE ENABLE, F_MOTESCL + ITEM "TD|Tempo determinato" + MESSAGE ENABLE, F_TERMESCL + MESSAGE ENABLE, F_MOTESCL +END + +DATE F_TERMESCL +BEGIN + PROMPT 38 13 "Termine " + FIELD TERMESCL +END + +STRING F_MOTESCL 30 +BEGIN + PROMPT 38 14 "Motivo " + FIELD MOTESCL +END + +ENDPAGE + +PAGE "Donazioni" -1 -1 78 20 + +GROUPBOX DLG_NULL 77 5 +BEGIN + PROMPT 1 0 "" + FLAGS "R" +END + +NUMBER DLG_NULL 6 +BEGIN + PROMPT 2 1 "Codice " + FLAGS "D" + GROUP 1 +END + +STRING DLG_NULL 25 +BEGIN + PROMPT 2 2 "Cognome e nome " + FLAGS "D" + GROUP 2 +END + +STRING DLG_NULL 25 +BEGIN + PROMPT 46 2 "" + FLAGS "D" + GROUP 3 +END + +DATE DLG_NULL +BEGIN + PROMPT 2 3 "Nato il " + FLAGS "D" + GROUP 4 +END + +GROUPBOX DLG_NULL 77 14 +BEGIN + PROMPT 1 5 "Donazioni" +END + +SPREADSHEET F_DONAZIONI 75 12 +BEGIN + PROMPT 2 6 "" + ITEM "Data@10" + ITEM "Tipo" + ITEM "Luogo" + ITEM "Etichetta" + ITEM "CC@3" + ITEM "P.A.@7" + ITEM "Hb@4" + ITEM "SGPT" + ITEM "Prot." + //ITEM "Prima" +END + +ENDPAGE + +PAGE "Controlli" -1 -1 78 20 + +GROUPBOX DLG_NULL 77 5 +BEGIN + PROMPT 1 0 "" + FLAGS "R" +END + +NUMBER DLG_NULL 6 +BEGIN + PROMPT 2 1 "Codice " + FLAGS "D" + GROUP 1 +END + +STRING DLG_NULL 25 +BEGIN + PROMPT 2 2 "Cognome e nome " + FLAGS "D" + GROUP 2 +END + +STRING DLG_NULL 25 +BEGIN + PROMPT 46 2 "" + FLAGS "D" + GROUP 3 +END + +DATE DLG_NULL +BEGIN + PROMPT 2 3 "Nato il " + FLAGS "D" + GROUP 4 +END + +GROUPBOX DLG_NULL 77 14 +BEGIN + PROMPT 1 5 "Controlli sanitari" +END + +SPREADSHEET F_CONTROLLI 75 12 +BEGIN + PROMPT 2 6 "" + ITEM "Data@10" + ITEM "Tipo" + ITEM "Id.1" + ITEM "Id.2" + ITEM "Id.3" + ITEM "Id.4" + ITEM "Int.SI" + ITEM "Int.AF" + ITEM "Pr.tipo" + ITEM "Pr.data" +END + +ENDPAGE + +PAGE "Ben./Sto." -1 -1 78 20 + +GROUPBOX DLG_NULL 77 5 +BEGIN + PROMPT 1 0 "" + FLAGS "R" +END + +NUMBER DLG_NULL 6 +BEGIN + PROMPT 2 1 "Codice " + FLAGS "D" + GROUP 1 +END + +STRING DLG_NULL 25 +BEGIN + PROMPT 2 2 "Cognome e nome " + FLAGS "D" + GROUP 2 +END + +STRING DLG_NULL 25 +BEGIN + PROMPT 46 2 "" + FLAGS "D" + GROUP 3 +END + +DATE DLG_NULL +BEGIN + PROMPT 2 3 "Nato il " + FLAGS "D" + GROUP 4 +END + +GROUPBOX DLG_NULL 77 8 +BEGIN + PROMPT 1 5 "Benemerenze" +END + +SPREADSHEET F_BENEMERENZE 75 6 +BEGIN + PROMPT 2 6 "" + ITEM "Tipo" + ITEM "Data@10" + ITEM "Ritirata?" +END + +GROUPBOX DLG_NULL 77 6 +BEGIN + PROMPT 1 13 "Storico iscrizioni e dimissioni" +END + +SPREADSHEET F_STORICO 75 4 +BEGIN + PROMPT 2 14 "" + ITEM "Dal@10" + ITEM "Al@10" + ITEM "Sezione" + ITEM "Sottogruppo" + ITEM "Cat. Isc." + ITEM "Motivo dim." +END + +ENDPAGE + +ENDMASK + +PAGE "Donazioni" -1 -1 75 13 + +DATE F_D_DATADON +BEGIN + PROMPT 2 1 "Data donazione " + FIELD LF_DONAZ->DATADON + CHECKTYPE REQUIRED + VALIDATE NOT_EMPTY_FUNC + HELP "Data donazione" +END + +STRING F_D_TIPODON 2 +BEGIN + PROMPT 2 2 "Tipo donazione " + FIELD LF_DONAZ->TIPODON + FLAGS "U" + USE TDN + INPUT CODTAB F_D_TIPODON + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@30" S0 + OUTPUT F_D_TIPODON CODTAB + OUTPUT F_D_DESC_TIPODON S0 + CHECKTYPE REQUIRED + VALIDATE NOT_EMPTY_FUNC + WARNING "Codice non presente" + HELP "Tipo donazione" +END + +STRING F_D_LUOGODON 4 +BEGIN + PROMPT 2 3 "Luogo donazione " + FIELD LF_DONAZ->LUOGODON + FLAGS "U" + USE LDN + INPUT CODTAB F_D_LUOGODON + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@30" S0 + OUTPUT F_D_LUOGODON CODTAB + OUTPUT F_D_DESC_LUOGODON S0 + CHECKTYPE NORMAL + WARNING "Codice non presente" + HELP "Luogo donazione" +END + +NUMBER F_D_ETICHETTA 9 +BEGIN + PROMPT 2 5 "Etichetta sacca " + FIELD LF_DONAZ->ETICHETTA +END + +NUMBER F_D_CC 3 +BEGIN + PROMPT 30 5 "CC " + FIELD LF_DONAZ->CC + FLAGS "U" +END + +GROUPBOX DLG_NULL 70 3 +BEGIN + PROMPT 1 7 "Dati sanitari" +END + +STRING F_D_PA 7 +BEGIN + PROMPT 2 8 "PA " + FIELD LF_DONAZ->PA +END + +NUMBER F_D_HB 4 1 +BEGIN + PROMPT 17 8 "Hb " + FIELD LF_DONAZ->HB + FLAGS "U" +END + +NUMBER F_D_SGPT 3 +BEGIN + PROMPT 32 8 "SGPT " + FIELD LF_DONAZ->SGPT + FLAGS "U" +END + +NUMBER F_D_PROTIDEMIA 3 1 +BEGIN + PROMPT 47 8 "Protidemia " + FIELD LF_DONAZ->PROTIDEMIA + FLAGS "U" +END + +//BOOLEAN F_D_PRIMADON +//BEGIN +// PROMPT 2 10 "Prima donazione " +// FIELD LF_DONAZ->PRIMADON +//END + +STRING F_D_DESC_TIPODON 25 +BEGIN + PROMPT 30 2 "" + FLAGS "D" +END + +STRING F_D_DESC_LUOGODON 25 +BEGIN + PROMPT 30 3 "" + FLAGS "D" +END + +BUTTON DLG_OK 9 2 +BEGIN + PROMPT -13 -1 "" +END + +BUTTON DLG_CANCEL 9 2 +BEGIN + PROMPT -23 -1 "" +END + +BUTTON DLG_DELREC 9 2 +BEGIN + PROMPT -33 -1 "" + MESSAGE EXIT, K_DEL +END + +ENDPAGE + +ENDMASK + +PAGE "Controlli sanitari" -1 -1 75 18 + +GRUPBOX DLG_NULL 70 4 +BEGIN + PROMPT 1 1 "Dati fondamentali del controllo" +END + +DATE F_C_DATACON +BEGIN + PROMPT 2 2 "Data controllo " + FIELD LF_CONTSAN->DATACON + CHECKTYPE REQUIRED + VALIDATE NOT_EMPTY_FUNC + HELP "Data controllo" +END + +STRING F_C_TIPOCON 2 +BEGIN + PROMPT 2 3 "Tipo controllo " + FIELD LF_CONTSAN->TIPOCON + FLAGS "U" + USE TCS + INPUT CODTAB F_C_TIPOCON + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@30" S0 + OUTPUT F_C_TIPOCON CODTAB + OUTPUT F_C_DESC_TIPOCON S0 + CHECKTYPE REQUIRED + VALIDATE NOT_EMPTY_FUNC + WARNING "Codice non presente" + HELP "Tipo/Esito controllo sanitario" +END + +GRUPBOX DLG_NULL 70 7 +BEGIN + PROMPT 1 5 "Dati da compilare se si tratta di idoneita'" +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 6 "Tipi donazione ammessi" +END + +STRING F_C_IDON1 2 +BEGIN + PROMPT 2 7 "" + FIELD LF_CONTSAN->IDON1 + FLAGS "U" + USE IDO + INPUT CODTAB F_C_IDON1 + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@30" S0 + OUTPUT F_C_IDON1 CODTAB + OUTPUT F_C_DESC_IDON1 S0 + CHECKTYPE NORMAL + WARNING "Codice non presente" + HELP "Idoneita' alla donazione" +END + +STRING F_C_IDON2 2 +BEGIN + PROMPT 2 8 "" + FIELD LF_CONTSAN->IDON2 + FLAGS "U" + USE IDO + INPUT CODTAB F_C_IDON2 + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@30" S0 + OUTPUT F_C_IDON2 CODTAB + OUTPUT F_C_DESC_IDON2 S0 + CHECKTYPE NORMAL + WARNING "Codice non presente" + HELP "Idoneita' alla donazione" +END + +STRING F_C_IDON3 2 +BEGIN + PROMPT 2 9 "" + FIELD LF_CONTSAN->IDON3 + FLAGS "U" + USE IDO + INPUT CODTAB F_C_IDON3 + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@30" S0 + OUTPUT F_C_IDON3 CODTAB + OUTPUT F_C_DESC_IDON3 S0 + CHECKTYPE NORMAL + WARNING "Codice non presente" + HELP "Idoneita' alla donazione" +END + +STRING F_C_IDON4 2 +BEGIN + PROMPT 2 10 "" + FIELD LF_CONTSAN->IDON4 + FLAGS "U" + USE IDO + INPUT CODTAB F_C_IDON4 + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@30" S0 + OUTPUT F_C_IDON4 CODTAB + OUTPUT F_C_DESC_IDON4 S0 + CHECKTYPE NORMAL + WARNING "Codice non presente" + HELP "Idoneita' alla donazione" +END + +TEXT DLG_NULL +BEGIN + PROMPT 40 6 "Intervalli" +END + +NUMBER F_C_INTSI 3 0 +BEGIN + PROMPT 40 7 "Sangue intero " + FIELD LF_CONTSAN->INTSI + FLAGS "U" +END + +NUMBER F_C_INTAF 3 0 +BEGIN + PROMPT 40 8 "Aferesi " + FIELD LF_CONTSAN->INTAF + FLAGS "U" +END + +GROUPBOX DLG_NULL 70 4 +BEGIN + PROMPT 1 12 "Prossimo tipo/esito" +END + + +STRING F_C_PROSSTIPO 2 +BEGIN + PROMPT 2 13 "Tipo controllo " + FIELD LF_CONTSAN->PROSSTIPO + FLAGS "U" + USE TCS + INPUT CODTAB F_C_PROSSTIPO + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@30" S0 + OUTPUT F_C_PROSSTIPO CODTAB + OUTPUT F_C_DESC_PROSSTIPO S0 + CHECKTYPE REQUIRED + WARNING "Codice non presente" + HELP "Tipo/Esito controllo sanitario" +END + + +DATE F_C_PROSSDATA +BEGIN + PROMPT 2 14 "Data prevista " + FIELD LF_CONTSAN->PROSSDATA + HELP "Data controllo" +END + + +STRING F_C_DESC_TIPOCON 25 +BEGIN + PROMPT 25 3 "" + FLAGS "D" +END + +STRING F_C_DESC_IDON1 25 +BEGIN + PROMPT 10 7 "" + FLAGS "D" +END + +STRING F_C_DESC_IDON2 25 +BEGIN + PROMPT 10 8 "" + FLAGS "D" +END + +STRING F_C_DESC_IDON3 25 +BEGIN + PROMPT 10 9 "" + FLAGS "D" +END + +STRING F_C_DESC_IDON4 25 +BEGIN + PROMPT 10 10 "" + FLAGS "D" +END + +STRING F_C_DESC_PROSSTIPO 25 +BEGIN + PROMPT 25 13 "" + FLAGS "D" +END + +BUTTON DLG_OK 9 2 +BEGIN + PROMPT -13 -1 "" +END + +BUTTON DLG_CANCEL 9 2 +BEGIN + PROMPT -23 -1 "" +END + +BUTTON DLG_DELREC 9 2 +BEGIN + PROMPT -33 -1 "" + MESSAGE EXIT, K_DEL +END + + +ENDPAGE + +ENDMASK + +PAGE "Benemerenze" -1 -1 75 14 + +STRING F_B_TIPOBEN 2 +BEGIN + PROMPT 2 1 "Benemerenza " + FIELD LF_BENEM->TIPOBEN + FLAGS "U" + USE BNZ + INPUT CODTAB F_B_TIPOBEN + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@30" S0 + OUTPUT F_B_TIPOBEN CODTAB + OUTPUT F_B_DESC_TIPOBEN S0 + CHECKTYPE REQUIRED + VALIDATE NOT_EMPTY_FUNC + WARNING "Codice non presente" + HELP "Benemerenza assegnata" +END + +DATE F_B_DATABEN +BEGIN + PROMPT 2 2 "Data assegnazione " + FIELD LF_BENEM->DATABEN + CHECKTYPE REQUIRED + VALIDATE NOT_EMPTY_FUNC + HELP "Data assegnazione benemerenza" +END + +BOOLEAN F_B_RITIRATA +BEGIN + PROMPT 40 2 "Ritirata " + FIELD LF_BENEM->RITIRATA +END + + +STRING F_B_DESC_TIPOBEN 25 +BEGIN + PROMPT 26 1 "" + FLAGS "D" +END + +BUTTON DLG_OK 9 2 +BEGIN + PROMPT -13 -1 "" +END + +BUTTON DLG_CANCEL 9 2 +BEGIN + PROMPT -23 -1 "" +END + +BUTTON DLG_DELREC 9 2 +BEGIN + PROMPT -33 -1 "" + MESSAGE EXIT, K_DEL +END + +ENDPAGE + +ENDMASK + +PAGE "Storico iscrizioni e dimissioni" -1 -1 60 12 + +DATE F_S_DATAISC +BEGIN + PROMPT 2 1 " Dal " + FIELD LF_STORICO->DATAISC + HELP "Data di iscrizione alla sezione/categoria" +END + +DATE F_S_DATADIM +BEGIN + PROMPT 2 2 " Al " + FIELD LF_STORICO->DATADIM + HELP "Data di dimissione alla sezione/categoria" +END + +STRING F_S_CODSEZ 2 +BEGIN + PROMPT 2 4 "Sezione " + FIELD LF_STORICO->CODSEZ + FLAGS "U" + USE LF_SEZIONI + INPUT CODSEZ F_S_CODSEZ + INPUT CODSOT F_S_CODSOT + DISPLAY "Cod.sez" CODSEZ + DISPLAY "Cod.sot." CODSOT + DISPLAY "Sezione@25" DENSEZ + DISPLAY "Sottogruppo@25" DENSOT + OUTPUT F_S_CODSEZ CODSEZ + OUTPUT F_S_DENSEZ DENSEZ + OUTPUT F_S_CODSOT CODSOT + OUTPUT F_S_DENSOT DENSOT + CHECKTYPE SEARCH + HELP "Codice sezione di iscrizione" +END + +STRING F_S_DENSEZ 25 +BEGIN + PROMPT 20 4 "" + FLAGS "U" + USE LF_SEZIONI KEY 2 + INPUT DENSEZ F_S_DENSEZ + DISPLAY "Sezione@25" DENSEZ + DISPLAY "Sottogruppo@25" DENSOT + DISPLAY "Cod.sez" CODSEZ + DISPLAY "Cod.sot." CODSOT + COPY OUTPUT F_S_CODSEZ + CHECKTYPE NORMAL + HELP "Denominazione sezione di iscrizione" +END + +STRING F_S_CODSOT 2 +BEGIN + PROMPT 2 5 "Sottogruppo " + FIELD LF_STORICO->CODSOT + COPY ALL F_S_CODSEZ + //CHECKTYPE NORMAL + CHECKTYPE SEARCH + HELP "Codice sottogruppo di iscrizione" +END + +STRING F_S_DENSOT 25 +BEGIN + PROMPT 20 5 "" + FLAGS "U" + COPY USE F_S_DENSEZ + INPUT DENSEZ F_S_DENSEZ + INPUT DENSOT F_S_DENSOT + COPY DISPLAY F_S_DENSEZ + COPY OUTPUT F_S_DENSEZ + CHECKTYPE NORMAL + HELP "Sottogruppo di iscrizione" +END + +STRING F_S_CATISC 2 +BEGIN + PROMPT 2 7 "Cat. iscriz. " + FIELD LF_STORICO->CATISC + FLAGS "U" + USE CTD + INPUT CODTAB F_S_CATISC + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@30" S0 + OUTPUT F_S_CATISC CODTAB + OUTPUT F_S_DESC_CATISC S0 + CHECKTYPE NORMAL + WARNING "Codice non presente" + HELP "Categoria di iscrizione" +END + + +STRING F_S_DESC_CATISC 25 +BEGIN + PROMPT 20 7 "" + FLAGS "D" +END + + +LISTBOX F_S_MOTDIM 25 +BEGIN + PROMPT 2 9 "Motivo dim. " + FIELD MOTDIM + FLAGS "U" +#include "motdim.h" +END + +BUTTON DLG_OK 9 2 +BEGIN + PROMPT -13 -1 "" +END + +BUTTON DLG_CANCEL 9 2 +BEGIN + PROMPT -23 -1 "" +END + +BUTTON DLG_DELREC 9 2 +BEGIN + PROMPT -33 -1 "" + MESSAGE EXIT, K_DEL +END + + +ENDPAGE + +ENDMASK diff --git a/at/at0200.cpp b/at/at0200.cpp index 6dcf6c4e8..b7c976466 100755 --- a/at/at0200.cpp +++ b/at/at0200.cpp @@ -1,512 +1,528 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "at0.h" -#include "lf.h" // se non lo metto non riesco a usare gli LF - -// nomi campi maschera -#include "at0200a.h" - -// nomi dei campi -#include "soggetti.h" -#include "donaz.h" -#include "contsan.h" - -#include "atlib1.cpp" - -#define ALIAS_CTD 100 - -class TDonaz_app : public TApplication -{ - TMask* _msk; - TRelation* _rel; - - TLocalisamfile* _soggetti; - TLocalisamfile* _donaz; - TLocalisamfile* _contsan; - TRecord_array* _sdonazioni; - TRecord_array* _scontrolli; - TAssoc_array* _asoggetti; // array dei soggetti inseriti per controllare doppio ins. - - -protected: - virtual bool create(); - virtual bool destroy(); - virtual bool menu(MENU_TAG m); - virtual TMask& get_mask() { return *_msk; } - virtual TRelation* get_relation() const { return _rel; } - - virtual TAssoc_array& get_array_sogg() { return *_asoggetti; } - virtual int write(TSheet_field& s); - - static bool check_sog_sheet(const char* codsog); - //static bool codice_handler(TMask_field& f, KEY k); - static bool nome_handler(TMask_field& f, KEY k); - static bool soggetti_notify(TSheet_field& s, int r, KEY k); - static void add_rows_soggetti(TSheet_field& s, int count = 10, int start = 1); - static bool ins_controlli_handler(TMask_field& f, KEY k); - -public: - TDonaz_app() {} - -}; - -HIDDEN inline TDonaz_app& app() { return (TDonaz_app&) main_app(); } - -bool TDonaz_app::ins_controlli_handler(TMask_field& f, KEY k) -{ - if (k == K_SPACE) - { - TMask& m = f.mask(); - TSheet_field& s = (TSheet_field&)m.field(F_SOGGETTI); - const bool ins_controlli = m.get_bool(F_INS_CONTROLLI); - s.enable_column(3,ins_controlli); - } - return TRUE; -} - - -void TDonaz_app::add_rows_soggetti(TSheet_field& s, int count, int start) -{ - if (start == 1) - s.destroy(); - for (int r=start; r<=start+count; r++) - TToken_string& row = s.row(r-1); -} - -bool TDonaz_app::create() -{ - _msk = new TMask("at0200a"); - _rel = new TRelation(LF_SOGGETTI); - _rel->add("CTD", "CODTAB==CATDON",1,0,ALIAS_CTD); - _donaz = new TLocalisamfile(LF_DONAZ); - _contsan = new TLocalisamfile(LF_CONTSAN); - _sdonazioni = new TRecord_array(LF_DONAZ,DON_PROGDON); - _scontrolli = new TRecord_array(LF_CONTSAN,CON_PROGCON); - _asoggetti = new TAssoc_array(); - - _msk->set_handler(F_INS_CONTROLLI,ins_controlli_handler); - TSheet_field& ss = (TSheet_field&)_msk->field(F_SOGGETTI); - ss.set_notify(soggetti_notify); - - //ss.sheet_mask().set_handler(F_S_CODICE,codice_handler); - ss.sheet_mask().set_handler(F_S_NOME,nome_handler); - - dispatch_e_menu(BAR_ITEM(1)); - - return TRUE; -} - -bool TDonaz_app::destroy() -{ - delete _rel; - delete _msk; - delete _donaz; - delete _contsan; - delete _sdonazioni; - delete _scontrolli; - delete _asoggetti; - return TRUE; -} - -bool TDonaz_app::menu(MENU_TAG m) -{ - TMask& msk = get_mask(); - const TDate oggi(TODAY); - KEY tasto; - do - { - TSheet_field& s = (TSheet_field&)msk.field(F_SOGGETTI); - add_rows_soggetti(s,12); - _asoggetti->destroy(); - msk.set(F_DATADON,oggi); - tasto = msk.run(); - switch (tasto) - { - case K_ESC: // annulla - msk.reset(); - break; - case K_SAVE: // registra - { - TDonaz_app::write(s); - msk.reset(); - } - break; - case K_INS: // nuovo - { - TDonaz_app::write(s); - msk.reset(); - } - break; - } - } - while (tasto != K_QUIT); - return FALSE; -} - -int TDonaz_app::write(TSheet_field& s) -{ - - const TMask& m = s.mask(); - const TDate data = m.get(F_DATADON); - for (int r=1; r<=s.items(); r++) - { - TToken_string& row = s.row(r-1); - const long codsog = row.get_long(0); - if (codsog != 0) - { - TLocalisamfile& sog = get_relation()->lfile(); - sog.zero(); - sog.put(SOG_CODICE, codsog); - int err = sog.read(); - if (err == NOERR) - { - TString tipocon = row.get(3); - if (!tipocon.blank()) - { - TRectype* recc = new TRectype(LF_CONTSAN); - recc->put(CON_CODICE, row.get(0)); - recc->put(CON_DATACON, m.get(F_DATADON)); - recc->put(CON_TIPOCON, row.get(3)); - bool insert = FALSE; - bool exist = FALSE; - TRectype* keyc = new TRectype(LF_CONTSAN); - keyc->put(CON_CODICE, row.get(0)); - int err = _scontrolli->read(keyc); - if (err == NOERR) - { - int r=_scontrolli->rows(); - while (r>=1 && !insert && !exist) - { - const TRectype& riga = _scontrolli->row(r); - const TDate d = riga.get(CON_DATACON); - if (data==d) // esiste già un controllo in questa data - { - exist=TRUE; - r=0; - } - else - if (data > d) - { - recc->put(CON_PROGCON,r+1); - _scontrolli->insert_row(recc); - insert=TRUE; - } - r--; - } - if (!exist && !insert) - { - recc->put(CON_PROGCON,1); - _scontrolli->insert_row(recc); - } - } - else - if (err == _iseof || err == _isemptyfile) - { - recc->put(CON_PROGCON,1); - _scontrolli->insert_row(recc); - } - if (!exist) - _scontrolli->write(TRUE); - } - - TRectype* rec = new TRectype(LF_DONAZ); - rec->put(DON_CODICE, row.get(0)); - rec->put(DON_DATADON, m.get(F_DATADON)); - rec->put(DON_TIPODON, m.get(F_TIPODON)); - rec->put(DON_LUOGODON, m.get(F_LUOGODON)); - - bool insert = FALSE; - bool exist = FALSE; - - TRectype* key = new TRectype(LF_DONAZ); - key->put(DON_CODICE, row.get(0)); - //int err = _sdonazioni->read(key); - err = _sdonazioni->read(key); - if (err == NOERR) - { - int r=_sdonazioni->rows(); - while (r>=1 && !insert && !exist) - { - const TRectype& riga = _sdonazioni->row(r); - const TDate d = riga.get(DON_DATADON); - if (data==d) // esiste già una donazione in questa data - { - exist=TRUE; - r=0; - } - else - if (data > d) - { - rec->put(DON_PROGDON,r+1); - _sdonazioni->insert_row(rec); - insert=TRUE; - } - r--; - } - if (!exist && !insert) - { - rec->put(DON_PROGDON,1); - _sdonazioni->insert_row(rec); - } - } - else - if (err == _iseof || err == _isemptyfile) - { - rec->put(DON_PROGDON,1); - _sdonazioni->insert_row(rec); - } - if (!exist) - { - _sdonazioni->write(TRUE); - - - TDate dataultdon = sog.get_date(SOG_DATAULTDON); - const TString tipo = m.get(F_TIPODON); - int totdon = sog.get_int(SOG_TOTDON); - sog.put(SOG_TOTDON,totdon+1); - if (data > dataultdon) - { - sog.put(SOG_DATAULTDON,data); - sog.put(SOG_TIPOULTDON,tipo); - } - if (xis_donaz(tipo,XIDON_SI)) - { - totdon = sog.get_int(SOG_TOTDONSI); - sog.put(SOG_TOTDONSI,totdon+1); - dataultdon = sog.get_date(SOG_DATAULTSI); - if (data>dataultdon) - sog.put(SOG_DATAULTSI,data); - } - if (xis_donaz(tipo,XIDON_AF)) - { - totdon = sog.get_int(SOG_TOTDONAF); - sog.put(SOG_TOTDONAF,totdon+1); - dataultdon = sog.get_date(SOG_DATAULTAF); - if (data>dataultdon) - sog.put(SOG_DATAULTAF,data); - } - char modstato = ' '; - const TString stato = sog.get(SOG_STATO); // stato attuale - const TString id1 = sog.get(SOG_IDON1); // idon. 1 - const TString id2 = sog.get(SOG_IDON2); // idon. 2 - const TString id3 = sog.get(SOG_IDON3); // idon. 3 - const TString id4 = sog.get(SOG_IDON4); // idon. 4 - const int intsi = sog.get_int(SOG_INTSI); // intervallo per SI - const int intaf = sog.get_int(SOG_INTAF); // intervallo per AF - dataultdon = sog.get_date(SOG_DATAULTDON); // data ultima donazione - const TString tipoultdon(sog.get(SOG_TIPOULTDON)); // tipo ultima donazione - TDate datasi(NULLDATE); // data prossima si calcolata - TDate dataaf(NULLDATE); // data prossima af calcolata - TDate dataultsi(NULLDATE); // data ultima donazione si - - bool id_si = FALSE; // il soggetto è idoneo per si? - bool id_af = FALSE; // il soggetto è idoneo per af? - - modstato = xmodstato_tcs(stato); - if (modstato == 'I' || modstato == 'F') // il soggetto è idoneo - { - id_si = (xis_idon(id1,id2,id3,id4,XIDON_SI) && intsi != 0); // il soggetto è idoneo SI - id_af = (xis_idon(id1,id2,id3,id4,XIDON_AF) && intaf != 0); // il soggetto è idoneo AF - - if (dataultdon.ok()) // se ha fatto almeno una donazione - { - if (xis_donaz(tipoultdon,XIDON_SI)) // se l'ultima donazione è una SI - { - if (id_si) - { - datasi=dataultdon; - datasi+=intsi; - } - if (id_af) - { - dataaf=dataultdon; - dataaf+=intaf; - } - } - if (xis_donaz(tipoultdon,XIDON_AF)) // se l'ultima donazione è una AF - { - dataultsi = sog.get_date(SOG_DATAULTSI); - // cerco l'ultima donazione SI - /* - for (int r=s.items(); r>0; r--) - { - TToken_string& row = s.row(r-1); - const TString tipo = row.get(1); - if (is_donaz(tipo,IDON_SI) && !dataultsi.ok()) - dataultsi = TDate(row.get(0)); - } - */ - if (id_si) - { - if (intaf != 0) - { - datasi=dataultdon; - datasi+=intaf; - } - else - { - datasi=dataultdon; - datasi+=intsi; - } - if (dataultsi.ok()) - dataultsi+=intsi; - if (dataultsi > datasi) - datasi = dataultsi; - } - if (id_af) - { - dataaf=dataultdon; - dataaf+=intaf; - } - } - } - else - { - if (id_si) - datasi=sog.get_date(SOG_DATAULTID); - if (id_af) - dataaf=sog.get_date(SOG_DATAULTID); - } - } - sog.put(SOG_DATAPROSSI,datasi); - sog.put(SOG_DATAPROSAF,dataaf); - - // controllo la sua categoria - - TTable ctd("CTD"); - TString catdon = sog.get(SOG_CATDON); - ctd.put("CODTAB",catdon); - if (ctd.read() == NOERR) - { - bool dimissione = ctd.get_bool("B0"); - if (dimissione) - sog.put(SOG_CATDON,ctd.get("S6")); - } - - // controllo se è idoneo - - sog.rewrite(); - } - } - } - } - return NOERR; -} - -bool TDonaz_app::check_sog_sheet(const char* codsog) -{ - TAssoc_array& array_sogg = app().get_array_sogg(); - if (array_sogg.is_key(codsog)) - return FALSE; - else - { - array_sogg.add(codsog); - return TRUE; - } -} - -bool TDonaz_app::soggetti_notify(TSheet_field& s, int r, KEY k) -{ - bool ok = TRUE; - switch (k) - { - case K_TAB: - // entrata riga - { - TToken_string& row = s.row(r); - const char* codsog = row.get(0); - if (codsog != NULL) - { - TAssoc_array& array_sogg = app().get_array_sogg(); - if (array_sogg.is_key(codsog)) - array_sogg.remove(codsog); - } - if ((r == s.items()-1) && (r == s.first_empty())) - { - add_rows_soggetti(s,10,r+1); - s.select(r); - } - } - break; - case K_CTRL+K_TAB: - // uscita riga - { - TToken_string& row = s.row(r); - const char* codice = row.get(0); - if (codice != NULL) - { - ok = check_sog_sheet(codice); - if (!ok) - return s.error_box("Soggetto già inserito"); - else - // controllare che sia idoneo a quel tipo di donazione - // il controllo sull'esistenza della donazione viene fatto - // al momento della registrazione (write) - { - const long codsog = row.get_long(0); - - //TLocalisamfile& sog = get_relation()->lfile(); - //sog.zero(); - //sog.put(SOG_CODICE, codsog); - //int err = sog.read(); - //if (err == NOERR) - //{ - //} - } - } - if ((r == s.items()-1) && (r == s.first_empty())) - { - add_rows_soggetti(s,10,r+1); - s.select(r); - } - } - break; - } - return ok; -} - -/* -bool TDonaz_app::codice_handler(TMask_field& f, KEY k) -{ - bool ok = TRUE; - if (k == K_TAB && f.focusdirty() && f.get().not_empty()) - { - const TMask& m = f.mask(); - const char* codsog = m.get(F_S_CODICE); - ok = check_sog_sheet(codsog); // controllo che il sog. non sia già inserito - if (!ok) - f.error_box("Soggetto già inserito"); - } - return ok; -} -*/ - -bool TDonaz_app::nome_handler(TMask_field& f, KEY k) -{ - bool ok = TRUE; - if (k == K_TAB && f.focusdirty()) - { - TMask& m = f.mask(); - long codsog = m.get_long(F_S_CODICE); - if (codsog == 0) - m.send_key(K_F9,F_S_NOME); - } - //f.message_box("sono in nome_handler"); - return ok; -} - - -int at0200(int argc, char* argv[]) -{ - TDonaz_app a; - a.run(argc, argv, "Giornaliero donazioni/controlli"); - return 0; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "at0.h" +#include "lf.h" // se non lo metto non riesco a usare gli LF + +// nomi campi maschera +#include "at0200a.h" + +// nomi dei campi +#include "soggetti.h" +#include "donaz.h" +#include "contsan.h" + +#include "atlib1.cpp" + +#define ALIAS_CTD 100 + +class TDonaz_app : public TApplication +{ + TMask* _msk; + TRelation* _rel; + + TLocalisamfile* _soggetti; + TLocalisamfile* _donaz; + TLocalisamfile* _contsan; + TRecord_array* _sdonazioni; + TRecord_array* _scontrolli; + TAssoc_array* _asoggetti; // array dei soggetti inseriti per controllare doppio ins. + + +protected: + virtual bool create(); + virtual bool destroy(); + virtual bool menu(MENU_TAG m); + virtual TMask& get_mask() { return *_msk; } + virtual TRelation* get_relation() const { return _rel; } + + virtual TAssoc_array& get_array_sogg() { return *_asoggetti; } + virtual int write(TSheet_field& s); + + static bool check_sog_sheet(const char* codsog); + //static bool codice_handler(TMask_field& f, KEY k); + static bool nome_handler(TMask_field& f, KEY k); + static bool soggetti_notify(TSheet_field& s, int r, KEY k); + static void add_rows_soggetti(TSheet_field& s, int count = 10, int start = 1); + static bool ins_controlli_handler(TMask_field& f, KEY k); + +public: + TDonaz_app() {} + +}; + +HIDDEN inline TDonaz_app& app() { return (TDonaz_app&) main_app(); } + +bool TDonaz_app::ins_controlli_handler(TMask_field& f, KEY k) +{ + if (k == K_SPACE) + { + TMask& m = f.mask(); + TSheet_field& s = (TSheet_field&)m.field(F_SOGGETTI); + const bool ins_controlli = m.get_bool(F_INS_CONTROLLI); + s.enable_column(3,ins_controlli); + } + return TRUE; +} + + +void TDonaz_app::add_rows_soggetti(TSheet_field& s, int count, int start) +{ + if (start == 1) + s.destroy(); + for (int r=start; r<=start+count; r++) + TToken_string& row = s.row(r-1); +} + +bool TDonaz_app::create() +{ + _msk = new TMask("at0200a"); + _rel = new TRelation(LF_SOGGETTI); + _rel->add("CTD", "CODTAB==CATDON",1,0,ALIAS_CTD); + _donaz = new TLocalisamfile(LF_DONAZ); + _contsan = new TLocalisamfile(LF_CONTSAN); + _sdonazioni = new TRecord_array(LF_DONAZ,DON_PROGDON); + _scontrolli = new TRecord_array(LF_CONTSAN,CON_PROGCON); + _asoggetti = new TAssoc_array(); + + _msk->set_handler(F_INS_CONTROLLI,ins_controlli_handler); + TSheet_field& ss = (TSheet_field&)_msk->field(F_SOGGETTI); + ss.set_notify(soggetti_notify); + + //ss.sheet_mask().set_handler(F_S_CODICE,codice_handler); + ss.sheet_mask().set_handler(F_S_NOME,nome_handler); + + dispatch_e_menu(BAR_ITEM(1)); + + return TRUE; +} + +bool TDonaz_app::destroy() +{ + delete _rel; + delete _msk; + delete _donaz; + delete _contsan; + delete _sdonazioni; + delete _scontrolli; + delete _asoggetti; + return TRUE; +} + +bool TDonaz_app::menu(MENU_TAG m) +{ + TMask& msk = get_mask(); + const TDate oggi(TODAY); + KEY tasto; + do + { + TSheet_field& s = (TSheet_field&)msk.field(F_SOGGETTI); + add_rows_soggetti(s,12); + _asoggetti->destroy(); + msk.set(F_DATADON,oggi); + tasto = msk.run(); + switch (tasto) + { + case K_ESC: // annulla + msk.reset(); + break; + case K_SAVE: // registra + { + TDonaz_app::write(s); + msk.reset(); + } + break; + case K_INS: // nuovo + { + TDonaz_app::write(s); + msk.reset(); + } + break; + } + } + while (tasto != K_QUIT); + return FALSE; +} + +int TDonaz_app::write(TSheet_field& s) +{ + + const TMask& m = s.mask(); + const TDate data = m.get(F_DATADON); + + int items = s.items(); + TProgind *pi; + pi = new TProgind(items,"Registrazione donazioni e controlli", FALSE, TRUE, 10); + pi->setstatus(1); + + for (int r=1; r<=s.items(); r++) + { + + pi->addstatus(1); + + TToken_string& row = s.row(r-1); + const long codsog = row.get_long(0); + if (codsog != 0) + { + TLocalisamfile& sog = get_relation()->lfile(); + sog.zero(); + sog.put(SOG_CODICE, codsog); + int err = sog.read(); + if (err == NOERR) + { + TString tipocon = row.get(3); + if (!tipocon.blank()) + { + TRectype* recc = new TRectype(LF_CONTSAN); + recc->put(CON_CODICE, row.get(0)); + recc->put(CON_DATACON, m.get(F_DATADON)); + recc->put(CON_TIPOCON, row.get(3)); + bool insert = FALSE; + bool exist = FALSE; + TRectype* keyc = new TRectype(LF_CONTSAN); + keyc->put(CON_CODICE, row.get(0)); + int err = _scontrolli->read(keyc); + if (err == NOERR) + { + int r=_scontrolli->rows(); + while (r>=1 && !insert && !exist) + { + const TRectype& riga = _scontrolli->row(r); + const TDate d = riga.get(CON_DATACON); + if (data==d) // esiste già un controllo in questa data + { + exist=TRUE; + r=0; + } + else + if (data > d) + { + recc->put(CON_PROGCON,r+1); + _scontrolli->insert_row(recc); + insert=TRUE; + } + r--; + } + if (!exist && !insert) + { + recc->put(CON_PROGCON,1); + _scontrolli->insert_row(recc); + } + } + else + if (err == _iseof || err == _isemptyfile) + { + recc->put(CON_PROGCON,1); + _scontrolli->insert_row(recc); + } + if (!exist) + _scontrolli->write(TRUE); + } + + TRectype* rec = new TRectype(LF_DONAZ); + rec->put(DON_CODICE, row.get(0)); + rec->put(DON_DATADON, m.get(F_DATADON)); + rec->put(DON_TIPODON, m.get(F_TIPODON)); + rec->put(DON_LUOGODON, m.get(F_LUOGODON)); + + bool insert = FALSE; + bool exist = FALSE; + + TRectype* key = new TRectype(LF_DONAZ); + key->put(DON_CODICE, row.get(0)); + //int err = _sdonazioni->read(key); + err = _sdonazioni->read(key); + if (err == NOERR) + { + int r=_sdonazioni->rows(); + while (r>=1 && !insert && !exist) + { + const TRectype& riga = _sdonazioni->row(r); + const TDate d = riga.get(DON_DATADON); + if (data==d) // esiste già una donazione in questa data + { + exist=TRUE; + r=0; + } + else + if (data > d) + { + rec->put(DON_PROGDON,r+1); + _sdonazioni->insert_row(rec); + insert=TRUE; + } + r--; + } + if (!exist && !insert) + { + rec->put(DON_PROGDON,1); + _sdonazioni->insert_row(rec); + } + } + else + if (err == _iseof || err == _isemptyfile) + { + rec->put(DON_PROGDON,1); + _sdonazioni->insert_row(rec); + } + if (!exist) + { + _sdonazioni->write(TRUE); + + + TDate dataultdon = sog.get_date(SOG_DATAULTDON); + const TString tipo = m.get(F_TIPODON); + int totdon = sog.get_int(SOG_TOTDON); + sog.put(SOG_TOTDON,totdon+1); + if (data > dataultdon) + { + sog.put(SOG_DATAULTDON,data); + sog.put(SOG_TIPOULTDON,tipo); + } + if (xis_donaz(tipo,XIDON_SI)) + { + totdon = sog.get_int(SOG_TOTDONSI); + sog.put(SOG_TOTDONSI,totdon+1); + dataultdon = sog.get_date(SOG_DATAULTSI); + if (data>dataultdon) + sog.put(SOG_DATAULTSI,data); + } + if (xis_donaz(tipo,XIDON_AF)) + { + totdon = sog.get_int(SOG_TOTDONAF); + sog.put(SOG_TOTDONAF,totdon+1); + dataultdon = sog.get_date(SOG_DATAULTAF); + if (data>dataultdon) + sog.put(SOG_DATAULTAF,data); + } + char modstato = ' '; + const TString stato = sog.get(SOG_STATO); // stato attuale + const TString id1 = sog.get(SOG_IDON1); // idon. 1 + const TString id2 = sog.get(SOG_IDON2); // idon. 2 + const TString id3 = sog.get(SOG_IDON3); // idon. 3 + const TString id4 = sog.get(SOG_IDON4); // idon. 4 + const int intsi = sog.get_int(SOG_INTSI); // intervallo per SI + const int intaf = sog.get_int(SOG_INTAF); // intervallo per AF + dataultdon = sog.get_date(SOG_DATAULTDON); // data ultima donazione + const TString tipoultdon(sog.get(SOG_TIPOULTDON)); // tipo ultima donazione + TDate datasi(NULLDATE); // data prossima si calcolata + TDate dataaf(NULLDATE); // data prossima af calcolata + TDate dataultsi(NULLDATE); // data ultima donazione si + + bool id_si = FALSE; // il soggetto è idoneo per si? + bool id_af = FALSE; // il soggetto è idoneo per af? + + modstato = xmodstato_tcs(stato); + if (modstato == 'I' || modstato == 'F') // il soggetto è idoneo + { + id_si = (xis_idon(id1,id2,id3,id4,XIDON_SI) && intsi != 0); // il soggetto è idoneo SI + id_af = (xis_idon(id1,id2,id3,id4,XIDON_AF) && intaf != 0); // il soggetto è idoneo AF + + if (dataultdon.ok()) // se ha fatto almeno una donazione + { + if (xis_donaz(tipoultdon,XIDON_SI)) // se l'ultima donazione è una SI + { + if (id_si) + { + datasi=dataultdon; + datasi+=intsi; + } + if (id_af) + { + dataaf=dataultdon; + dataaf+=intaf; + } + } + if (xis_donaz(tipoultdon,XIDON_AF)) // se l'ultima donazione è una AF + { + dataultsi = sog.get_date(SOG_DATAULTSI); + // cerco l'ultima donazione SI + /* + for (int r=s.items(); r>0; r--) + { + TToken_string& row = s.row(r-1); + const TString tipo = row.get(1); + if (is_donaz(tipo,IDON_SI) && !dataultsi.ok()) + dataultsi = TDate(row.get(0)); + } + */ + if (id_si) + { + if (intaf != 0) + { + datasi=dataultdon; + datasi+=intaf; + } + else + { + datasi=dataultdon; + datasi+=intsi; + } + if (dataultsi.ok()) + dataultsi+=intsi; + if (dataultsi > datasi) + datasi = dataultsi; + } + if (id_af) + { + dataaf=dataultdon; + dataaf+=intaf; + } + } + } + else + { + if (id_si) + datasi=sog.get_date(SOG_DATAULTID); + if (id_af) + dataaf=sog.get_date(SOG_DATAULTID); + } + } + sog.put(SOG_DATAPROSSI,datasi); + sog.put(SOG_DATAPROSAF,dataaf); + + // controllo la sua categoria + + TTable ctd("CTD"); + TString catdon = sog.get(SOG_CATDON); + ctd.put("CODTAB",catdon); + if (ctd.read() == NOERR) + { + bool dimissione = ctd.get_bool("B0"); + if (dimissione) + sog.put(SOG_CATDON,ctd.get("S6")); + } + + // controllo se è idoneo + + sog.rewrite(); + } + } + } + } + + delete pi; + + return NOERR; +} + +bool TDonaz_app::check_sog_sheet(const char* codsog) +{ + TAssoc_array& array_sogg = app().get_array_sogg(); + if (array_sogg.is_key(codsog)) + return FALSE; + else + { + array_sogg.add(codsog); + return TRUE; + } +} + +bool TDonaz_app::soggetti_notify(TSheet_field& s, int r, KEY k) +{ + bool ok = TRUE; + switch (k) + { + case K_CTRL+K_DEL: + // avvenuta cancellazione riga + + case K_TAB: + // entrata riga + { + TToken_string& row = s.row(r); + const char* codsog = row.get(0); + if (codsog != NULL) + { + TAssoc_array& array_sogg = app().get_array_sogg(); + if (array_sogg.is_key(codsog)) + array_sogg.remove(codsog); + } + if ((r == s.items()-1) && (r == s.first_empty())) + { + add_rows_soggetti(s,10,r+1); + s.select(r); + } + } + break; + case K_CTRL+K_TAB: + // uscita riga + { + TToken_string& row = s.row(r); + const char* codice = row.get(0); + if (codice != NULL) + { + ok = check_sog_sheet(codice); + if (!ok) + return s.error_box("Soggetto già inserito"); + else + // controllare che sia idoneo a quel tipo di donazione + // il controllo sull'esistenza della donazione viene fatto + // al momento della registrazione (write) + { + const long codsog = row.get_long(0); + + //TLocalisamfile& sog = get_relation()->lfile(); + //sog.zero(); + //sog.put(SOG_CODICE, codsog); + //int err = sog.read(); + //if (err == NOERR) + //{ + //} + } + } + if ((r == s.items()-1) && (r == s.first_empty())) + { + add_rows_soggetti(s,10,r+1); + s.select(r); + } + } + break; + } + return ok; +} + +/* +bool TDonaz_app::codice_handler(TMask_field& f, KEY k) +{ + bool ok = TRUE; + if (k == K_TAB && f.focusdirty() && f.get().not_empty()) + { + const TMask& m = f.mask(); + const char* codsog = m.get(F_S_CODICE); + ok = check_sog_sheet(codsog); // controllo che il sog. non sia già inserito + if (!ok) + f.error_box("Soggetto già inserito"); + } + return ok; +} +*/ + +bool TDonaz_app::nome_handler(TMask_field& f, KEY k) +{ + bool ok = TRUE; + if (k == K_TAB && f.focusdirty()) + { + TMask& m = f.mask(); + long codsog = m.get_long(F_S_CODICE); + if (codsog == 0) + m.send_key(K_F9,F_S_NOME); + } + //f.message_box("sono in nome_handler"); + return ok; +} + + +int at0200(int argc, char* argv[]) +{ + TDonaz_app a; + a.run(argc, argv, "Giornaliero donazioni/controlli"); + return 0; } \ No newline at end of file diff --git a/at/at1.cpp b/at/at1.cpp index ce388444f..c2ea79883 100755 --- a/at/at1.cpp +++ b/at/at1.cpp @@ -1,24 +1,23 @@ -#include - -#include - -#include "at1.h" - -#define usage "Error - usage : %s -[0,1]" - -int main(int argc, char** argv) -{ - int rt = 0 ; - const int r = (argc > 1) ? atoi(&argv[1][1]) : -1; - - switch (r) - { - case 0: - rt = at1100(argc, argv); break; - case 1: - rt = at1200(argc, argv); break; -default: - error_box(usage, argv[0]) ; rt = 1; break; - } - return rt; -} +#include +#include + +#include "at1.h" + +#define usage "Error - usage : %s -[0,1]" + +int main(int argc, char** argv) +{ + int rt = 0 ; + const int r = (argc > 1) ? atoi(&argv[1][1]) : -1; + + switch (r) + { + case 0: + rt = at1100(argc, argv); break; + case 1: + rt = at1200(argc, argv); break; +default: + error_box(usage, argv[0]) ; rt = 1; break; + } + return rt; +} diff --git a/at/at2.cpp b/at/at2.cpp index 5acfe9922..9631fc6a4 100755 --- a/at/at2.cpp +++ b/at/at2.cpp @@ -1,32 +1,31 @@ -#include - -#include - -#include "at2.h" - -#define usage "Error - usage : %s -[0,1,2,3,4,5]" - -int main(int argc, char** argv) -{ - int rt = 0 ; - const int r = (argc > 1) ? atoi(&argv[1][1]) : -1; - - switch (r) - { - case 0: - rt = at2100(argc, argv); break; - case 1: - rt = at2200(argc, argv); break; - case 2: - rt = at2300(argc, argv); break; - case 3: - rt = at2400(argc, argv); break; - case 4: - rt = at2500(argc, argv); break; - case 5: - rt = at2600(argc, argv); break; -default: - error_box(usage, argv[0]) ; rt = 1; break; - } - return rt; -} +#include +#include + +#include "at2.h" + +#define usage "Error - usage : %s -[0,1,2,3,4,5]" + +int main(int argc, char** argv) +{ + int rt = 0 ; + const int r = (argc > 1) ? atoi(&argv[1][1]) : -1; + + switch (r) + { + case 0: + rt = at2100(argc, argv); break; + case 1: + rt = at2200(argc, argv); break; + case 2: + rt = at2300(argc, argv); break; + case 3: + rt = at2400(argc, argv); break; + case 4: + rt = at2500(argc, argv); break; + case 5: + rt = at2600(argc, argv); break; +default: + error_box(usage, argv[0]) ; rt = 1; break; + } + return rt; +} diff --git a/at/at2100.cpp b/at/at2100.cpp index 5906ecce4..e27e94338 100755 --- a/at/at2100.cpp +++ b/at/at2100.cpp @@ -1,332 +1,333 @@ -#include -#include -#include -#include - -#include "lf.h" -#include "soggetti.h" -#include "sezioni.h" - -#include "at2.h" -#include "at2100a.h" - -#define ALIAS_LCP 100 -#define ALIAS_TCS 200 - -enum ts { undefined = 0, elenco = 1, etichette = 2 }; - -// definizione form per etichette -class TEti_sospesi_form : public TForm -{ -public: - - virtual TCursor* cursor() const; - virtual TRelation* relation() const; - TPrint_section& get_body() { return section('B'); } ; - TEti_sospesi_form(): TForm() {}; - TEti_sospesi_form(const char* form, const char * code = "", int editlevel = 0, const char* desc = "") - : TForm(form,code,editlevel,desc) {}; - virtual ~TEti_sospesi_form() {}; -}; - -class TSospesi_application : public TPrintapp -{ - TRelation* _rel; - TMask* _msk; - TEti_sospesi_form* _form_eti; - - int _cur1, _cur2, _cur3, _cur4; - TParagraph_string _cognome_nome; - TDate _data_stampa; - ts _tipo_stampa; - TString _codsez, _codsot; - - static bool filter_func_sospesi(const TRelation *); - -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: - void crea_intestazione(); - void filtra_sezioni(); - void header_sezione(TString codsez, TString codsot); - TMask& app_mask() { return *_msk; } - TSospesi_application() : _data_stampa(TODAY), _cognome_nome("",25) {} -}; - -HIDDEN inline TSospesi_application& app() { return (TSospesi_application&) main_app(); } - -TCursor* TEti_sospesi_form::cursor() const { return app().current_cursor(); } - -TRelation* TEti_sospesi_form::relation() const { return cursor()->relation(); } - -void TSospesi_application::filtra_sezioni() -{ - TString sezini = _msk->get(F_SEZINI); - TString sotini = _msk->get(F_SOTINI); - TString sezfin = _msk->get(F_SEZFIN); - TString sotfin = _msk->get(F_SOTFIN); - select_cursor(_cur4); - TLocalisamfile& fl = current_cursor()->file(LF_SOGGETTI); - TRectype da(fl.curr()); - TRectype a(fl.curr()); - da.zero(); - a.zero(); - if ((sezini.not_empty()) && (sezini.ok())) - da.put(SOG_CODSEZ, sezini); - if ((sotini.not_empty()) && (sotini.ok())) - da.put(SOG_CODSOT, sotini); - if ((sezfin.not_empty()) && (sezfin.ok())) - a.put(SOG_CODSEZ, sezfin); - if ((sotfin.not_empty()) && (sotfin.ok())) - a.put(SOG_CODSOT, sotfin); - current_cursor()->setregion(da, a); -} - -void TSospesi_application::set_page(int file, int cnt) -{ - // costruzione etichette - switch (_tipo_stampa) - { - case etichette: - { - TPrint_section& corpo = _form_eti->get_body(); - corpo.reset(); - corpo.update(); - for (int i = 0; i < corpo.height(); i++) - { - TPrintrow& riga = corpo.row(i); - set_row(i+1,riga); - } - force_setpage(TRUE); // serve perchè alla prossima etichetta rifaccia la setpage - // altrimenti stampa sempre la stessa etichetta - } - break; - case elenco: - { - set_row(1,"@0g@pn", FLD(LF_SOGGETTI,SOG_CODICE,"######")); - set_row(1,"@7g@S", FLD(LF_SOGGETTI,SOG_CATDON)); - set_row(1,"@10g#a", &_cognome_nome); - set_row(1,"@36g@ld", FLD(LF_SOGGETTI,SOG_DATANASC)); - set_row(1,"@47g@ld", FLD(LF_SOGGETTI,SOG_DATASTATO)); - set_row(1,"@58g@S", FLD(LF_SOGGETTI,SOG_STATO)); - set_row(1,"@61g@ld", FLD(LF_SOGGETTI,SOG_DATAULTID)); - set_row(1,"@72g@S", FLD(LF_SOGGETTI,SOG_TIPOULTID)); - set_row(1,"@75g@pn", FLD(LF_SOGGETTI,SOG_INTSI,"###")); - set_row(1,"@79g@pn", FLD(LF_SOGGETTI,SOG_INTAF,"###")); - set_row(1,"@86g@ld", FLD(LF_SOGGETTI,SOG_DATAULTDON)); - set_row(1,"@97g@S", FLD(LF_SOGGETTI,SOG_TIPOULTDON)); - } - break; - } -} - -bool TSospesi_application::filter_func_sospesi(const TRelation * rel) -{ - - bool filtrato = TRUE; - - TLocalisamfile* sog = &(rel->lfile(LF_SOGGETTI)); - - TAssoc_array categorie; - - TMask& msk = app().app_mask(); - - TString catpri = msk.get(F_CAT1); - TString catsec = msk.get(F_CAT2); - TString catter = msk.get(F_CAT3); - TString catqua = msk.get(F_CAT4); - TString catqui = msk.get(F_CAT5); - TString catses = msk.get(F_CAT6); - - if (catpri.not_empty() && catpri.ok()) - categorie.add((const char*) catpri); - if (catsec.not_empty() && catsec.ok()) - categorie.add((const char*) catsec); - if (catter.not_empty() && catter.ok()) - categorie.add((const char*) catter); - if (catqua.not_empty() && catqua.ok()) - categorie.add((const char*) catqua); - if (catqui.not_empty() && catqui.ok()) - categorie.add((const char*) catqui); - if (catses.not_empty() && catses.ok()) - categorie.add((const char*) catses); - - if (categorie.items() != 0) - { - TString cat = sog->curr().get(SOG_CATDON); - if (categorie.is_key((const char*) cat)) - filtrato = TRUE; - else - filtrato = FALSE; - } - return filtrato; -} - -bool TSospesi_application::preprocess_page(int file, int counter) -{ - // contatore soggetti stampati - // per ora non c'è - if (_tipo_stampa == elenco) - { - TString nome = current_cursor()->curr().get(SOG_COGNOME); - nome << " "; - nome << current_cursor()->curr().get(SOG_NOME); - _cognome_nome = nome; - - // salto pagina se cambio sezione - TString codsez = current_cursor()->curr().get(SOG_CODSEZ); - TString codsot = current_cursor()->curr().get(SOG_CODSOT); - if ((_codsez!=codsez)||(_codsot!=codsot)) - { - //if (!_codsez.blank()) - if (_codsez != "**") - printer().formfeed(); - _codsez = codsez; - _codsot = codsot; - header_sezione(codsez, codsot); - } - } - return TRUE; -} - -void TSospesi_application::header_sezione(TString codsez, TString codsot) -{ - TString densez = current_cursor()->curr(LF_SEZIONI).get(SEZ_DENSEZ); - TString densot = current_cursor()->curr(LF_SEZIONI).get(SEZ_DENSOT); - TString intestazione(132); - intestazione = "Sezione: "; - intestazione << codsez; - intestazione << "/"; - intestazione << codsot; - intestazione << " "; - intestazione << densez; - if ((densot.ok())&& (densot.not_empty())) - { - intestazione << "/"; - intestazione << densot; - } - intestazione.center_just(); - set_header(1,"@0g%s", (const char*) intestazione); - return; -} - -bool TSospesi_application::set_print(int m) -{ - _tipo_stampa = undefined; - KEY tasto; - tasto = _msk->run(); - switch (tasto) - { - case F_ELENCO: - _tipo_stampa = elenco; - //_codsez.spaces(2); - //_codsot.spaces(2); - _codsez = "**"; - _codsot = "**"; - break; - case F_ETICHETTE: - _tipo_stampa = etichette; - break; - } - if (_tipo_stampa != undefined) - { - reset_files(); - add_file(LF_SOGGETTI); - - // filtro per sezioni selezionati - filtra_sezioni(); - - // filtro per tipo sospensione - TString tiposo = _msk->get(F_TIPO); - if (tiposo.not_empty() && tiposo.ok()) - current_cursor()->setfilter(format("STATO == \"%s\"",(const char*)tiposo)); - else - current_cursor()->setfilter("TCS->S6 == \"S\"", TRUE); - - // filtro per categorie - current_cursor()->set_filterfunction(filter_func_sospesi); - reset_print(); - crea_intestazione(); - return TRUE; - } - else - return FALSE; -} - -void TSospesi_application::crea_intestazione() -{ - reset_header(); - - if (_tipo_stampa == elenco) - { - TString sep(132); - sep = "ELENCO SOSPESI"; - TString tipo = _msk->get(F_TIPO); - if ((tipo.ok()) && (tipo.not_empty())) - { - sep << ": tipo "; - sep << tipo; - TString dtipo = _msk->get(F_D_TIPO); - sep << " "; - sep << dtipo; - } - sep.center_just(); - set_header(2, "@0g%s", (const char*) sep); - TString data_stampa = _data_stampa.string(); - set_header(2,"@0g%10s", (const char*) data_stampa); - sep = ""; - sep << "Pag. @#"; - set_header(2, "@120g%s", (const char*) sep); - - sep = ""; - sep.fill('-'); - set_header(3, (const char *) sep); - - set_header(4,"@0gCod.@7gC.@10gCognome e nome@36gNato il@47gSospensione@61gUltima id.@75gIntervalli@86gUltima donaz.@100gUlt. controllo"); - set_header(6,"@0g------@7g--@10g-------------------------@36g----------@47g-------------@61g-------------@75g----------@86g-------------@100g-------------"); - } -} - -bool TSospesi_application::user_create() -{ - _rel = new TRelation(LF_SOGGETTI); - _rel->add("TCS", "CODTAB==STATO",1,0,ALIAS_TCS); - _rel->add("LCP", "CODTAB==LOCALITA",1,0,ALIAS_LCP); - _rel->add(LF_COMUNI, "COM==COM"); - // per stampare nell'intestazione la denominazione della sezione - _rel->add(LF_SEZIONI, "CODSEZ==CODSEZ|CODSOT==CODSOT"); - - _cur1 = add_cursor(new TCursor(_rel, "", 1)); //cursore ordinamento per codice - _cur2 = add_cursor(new TCursor(_rel, "", 2)); //cursore ordinamento per cognome e nome - _cur3 = add_cursor(new TCursor(_rel, "", 3)); //cursore ordinamento per sezione+sottogruppo+codice - _cur4 = add_cursor(new TCursor(_rel, "", 4)); //cursore ordinamento per sezione+sottogruppo+cognome e nome - - _msk = new TMask("at2100a"); - - _form_eti = new TEti_sospesi_form("AT_ETSOG"); - - return TRUE; -} - -bool TSospesi_application::user_destroy() -{ - delete _msk; - delete _rel; - delete _form_eti; - return TRUE; -} - -int at2100(int argc, char* argv[]) -{ - - TSospesi_application a; - - a.run(argc, argv, "Elenco sospesi"); - - return 0; -} +#include +#include +#include +#include + +#include "lf.h" +#include "soggetti.h" +#include "sezioni.h" + +#include "at2.h" +#include "at2100a.h" + +#define ALIAS_LCP 100 +#define ALIAS_TCS 200 + +enum ts { undefined = 0, elenco = 1, etichette = 2 }; + +// definizione form per etichette +class TEti_sospesi_form : public TForm +{ +public: + + virtual TCursor* cursor() const; + virtual TRelation* relation() const; + TPrint_section& get_body() { return section('B'); } ; + TEti_sospesi_form(): TForm() {}; + TEti_sospesi_form(const char* form, const char * code = "", int editlevel = 0, const char* desc = "") + : TForm(form,code,editlevel,desc) {}; + virtual ~TEti_sospesi_form() {}; +}; + +class TSospesi_application : public TPrintapp +{ + TRelation* _rel; + TMask* _msk; + TEti_sospesi_form* _form_eti; + + int _cur1, _cur2, _cur3, _cur4; + TParagraph_string _cognome_nome; + TDate _data_stampa; + ts _tipo_stampa; + TString _codsez, _codsot; + + static bool filter_func_sospesi(const TRelation *); + +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: + void crea_intestazione(); + void filtra_sezioni(); + void header_sezione(TString codsez, TString codsot); + TMask& app_mask() { return *_msk; } + TSospesi_application() : _data_stampa(TODAY), _cognome_nome("",25) {} +}; + +HIDDEN inline TSospesi_application& app() { return (TSospesi_application&) main_app(); } + +TCursor* TEti_sospesi_form::cursor() const { return app().current_cursor(); } + +TRelation* TEti_sospesi_form::relation() const { return cursor()->relation(); } + +void TSospesi_application::filtra_sezioni() +{ + TString sezini = _msk->get(F_SEZINI); + TString sotini = _msk->get(F_SOTINI); + TString sezfin = _msk->get(F_SEZFIN); + TString sotfin = _msk->get(F_SOTFIN); + select_cursor(_cur4); + TLocalisamfile& fl = current_cursor()->file(LF_SOGGETTI); + TRectype da(fl.curr()); + TRectype a(fl.curr()); + da.zero(); + a.zero(); + if ((sezini.not_empty()) && (sezini.ok())) + da.put(SOG_CODSEZ, sezini); + if ((sotini.not_empty()) && (sotini.ok())) + da.put(SOG_CODSOT, sotini); + if ((sezfin.not_empty()) && (sezfin.ok())) + a.put(SOG_CODSEZ, sezfin); + if ((sotfin.not_empty()) && (sotfin.ok())) + a.put(SOG_CODSOT, sotfin); + current_cursor()->setregion(da, a); +} + +void TSospesi_application::set_page(int file, int cnt) +{ + // costruzione etichette + switch (_tipo_stampa) + { + case etichette: + { + TPrint_section& corpo = _form_eti->get_body(); + corpo.reset(); + corpo.update(); + for (int i = 0; i < corpo.height(); i++) + { + TPrintrow& riga = corpo.row(i); + set_row(i+1,riga); + } + force_setpage(TRUE); // serve perchè alla prossima etichetta rifaccia la setpage + // altrimenti stampa sempre la stessa etichetta + } + break; + case elenco: + { + set_row(1,"@0g@pn", FLD(LF_SOGGETTI,SOG_CODICE,"######")); + set_row(1,"@7g@S", FLD(LF_SOGGETTI,SOG_CATDON)); + set_row(1,"@10g#a", &_cognome_nome); + set_row(1,"@36g@ld", FLD(LF_SOGGETTI,SOG_DATANASC)); + set_row(1,"@47g@ld", FLD(LF_SOGGETTI,SOG_DATASTATO)); + set_row(1,"@58g@S", FLD(LF_SOGGETTI,SOG_STATO)); + set_row(1,"@61g@ld", FLD(LF_SOGGETTI,SOG_DATAULTID)); + set_row(1,"@72g@S", FLD(LF_SOGGETTI,SOG_TIPOULTID)); + set_row(1,"@75g@pn", FLD(LF_SOGGETTI,SOG_INTSI,"###")); + set_row(1,"@79g@pn", FLD(LF_SOGGETTI,SOG_INTAF,"###")); + set_row(1,"@86g@ld", FLD(LF_SOGGETTI,SOG_DATAULTDON)); + set_row(1,"@97g@S", FLD(LF_SOGGETTI,SOG_TIPOULTDON)); + } + break; + } +} + +bool TSospesi_application::filter_func_sospesi(const TRelation * rel) +{ + + bool filtrato = TRUE; + + TLocalisamfile* sog = &(rel->lfile(LF_SOGGETTI)); + + TAssoc_array categorie; + + TMask& msk = app().app_mask(); + + TString catpri = msk.get(F_CAT1); + TString catsec = msk.get(F_CAT2); + TString catter = msk.get(F_CAT3); + TString catqua = msk.get(F_CAT4); + TString catqui = msk.get(F_CAT5); + TString catses = msk.get(F_CAT6); + + if (catpri.not_empty() && catpri.ok()) + categorie.add((const char*) catpri); + if (catsec.not_empty() && catsec.ok()) + categorie.add((const char*) catsec); + if (catter.not_empty() && catter.ok()) + categorie.add((const char*) catter); + if (catqua.not_empty() && catqua.ok()) + categorie.add((const char*) catqua); + if (catqui.not_empty() && catqui.ok()) + categorie.add((const char*) catqui); + if (catses.not_empty() && catses.ok()) + categorie.add((const char*) catses); + + if (categorie.items() != 0) + { + TString cat = sog->curr().get(SOG_CATDON); + if (categorie.is_key((const char*) cat)) + filtrato = TRUE; + else + filtrato = FALSE; + } + return filtrato; +} + +bool TSospesi_application::preprocess_page(int file, int counter) +{ + // contatore soggetti stampati + // per ora non c'è + if (_tipo_stampa == elenco) + { + TString nome = current_cursor()->curr().get(SOG_COGNOME); + nome << " "; + nome << current_cursor()->curr().get(SOG_NOME); + _cognome_nome = nome; + + // salto pagina se cambio sezione + TString codsez = current_cursor()->curr().get(SOG_CODSEZ); + TString codsot = current_cursor()->curr().get(SOG_CODSOT); + if ((_codsez!=codsez)||(_codsot!=codsot)) + { + //if (!_codsez.blank()) + if (_codsez != "**") + printer().formfeed(); + _codsez = codsez; + _codsot = codsot; + header_sezione(codsez, codsot); + } + } + return TRUE; +} + +void TSospesi_application::header_sezione(TString codsez, TString codsot) +{ + TString densez = current_cursor()->curr(LF_SEZIONI).get(SEZ_DENSEZ); + TString densot = current_cursor()->curr(LF_SEZIONI).get(SEZ_DENSOT); + TString intestazione(132); + intestazione = "Sezione: "; + intestazione << codsez; + intestazione << "/"; + intestazione << codsot; + intestazione << " "; + intestazione << densez; + if ((densot.ok())&& (densot.not_empty())) + { + intestazione << "/"; + intestazione << densot; + } + intestazione.center_just(); + set_header(1,"@0g%s", (const char*) intestazione); + return; +} + +bool TSospesi_application::set_print(int m) +{ + _tipo_stampa = undefined; + KEY tasto; + tasto = _msk->run(); + switch (tasto) + { + case F_ELENCO: + _tipo_stampa = elenco; + //_codsez.spaces(2); + //_codsot.spaces(2); + _codsez = "**"; + _codsot = "**"; + break; + case F_ETICHETTE: + _tipo_stampa = etichette; + break; + } + if (_tipo_stampa != undefined) + { + reset_files(); + add_file(LF_SOGGETTI); + + // filtro per sezioni selezionati + filtra_sezioni(); + + // filtro per tipo sospensione + TString tiposo = _msk->get(F_TIPO); + if (tiposo.not_empty() && tiposo.ok()) + current_cursor()->setfilter(format("STATO == \"%s\"",(const char*)tiposo)); + else + current_cursor()->setfilter("TCS->S6 == \"S\"", TRUE); + + // filtro per categorie + current_cursor()->set_filterfunction(filter_func_sospesi); + reset_print(); + crea_intestazione(); + return TRUE; + } + else + return FALSE; +} + +void TSospesi_application::crea_intestazione() +{ + reset_header(); + + if (_tipo_stampa == elenco) + { + TString sep(132); + sep = "ELENCO SOSPESI"; + TString tipo = _msk->get(F_TIPO); + if ((tipo.ok()) && (tipo.not_empty())) + { + sep << ": tipo "; + sep << tipo; + TString dtipo = _msk->get(F_D_TIPO); + sep << " "; + sep << dtipo; + } + sep.center_just(); + set_header(2, "@0g%s", (const char*) sep); + TString data_stampa = _data_stampa.string(); + set_header(2,"@0g%10s", (const char*) data_stampa); + sep = ""; + sep << "Pag. @#"; + set_header(2, "@120g%s", (const char*) sep); + + sep = ""; + sep.fill('-'); + set_header(3, (const char *) sep); + + set_header(4,"@0gCod.@7gC.@10gCognome e nome@36gNato il@47gSospensione@61gUltima idon.@75gIntervalli@86gUltima donaz.@100gUlt.controllo@114gPross.contr."); + set_header(5,"@76gSI AF"); + set_header(6,"@0g------@7g--@10g-------------------------@36g----------@47g-------------@61g-------------@75g----------@86g-------------@100g-------------@114g-------------"); + } +} + +bool TSospesi_application::user_create() +{ + _rel = new TRelation(LF_SOGGETTI); + _rel->add("TCS", "CODTAB==STATO",1,0,ALIAS_TCS); + _rel->add("LCP", "CODTAB==LOCALITA",1,0,ALIAS_LCP); + _rel->add(LF_COMUNI, "COM==COM"); + // per stampare nell'intestazione la denominazione della sezione + _rel->add(LF_SEZIONI, "CODSEZ==CODSEZ|CODSOT==CODSOT"); + + _cur1 = add_cursor(new TCursor(_rel, "", 1)); //cursore ordinamento per codice + _cur2 = add_cursor(new TCursor(_rel, "", 2)); //cursore ordinamento per cognome e nome + _cur3 = add_cursor(new TCursor(_rel, "", 3)); //cursore ordinamento per sezione+sottogruppo+codice + _cur4 = add_cursor(new TCursor(_rel, "", 4)); //cursore ordinamento per sezione+sottogruppo+cognome e nome + + _msk = new TMask("at2100a"); + + _form_eti = new TEti_sospesi_form("AT_ETSOG"); + + return TRUE; +} + +bool TSospesi_application::user_destroy() +{ + delete _msk; + delete _rel; + delete _form_eti; + return TRUE; +} + +int at2100(int argc, char* argv[]) +{ + + TSospesi_application a; + + a.run(argc, argv, "Elenco sospesi"); + + return 0; +} diff --git a/at/at2300.cpp b/at/at2300.cpp index 4a3af766d..30d79cf5b 100755 --- a/at/at2300.cpp +++ b/at/at2300.cpp @@ -1,332 +1,337 @@ -#include -#include -#include -#include - -#include "lf.h" -#include "soggetti.h" -#include "sezioni.h" - -#include "at2.h" -#include "at2300a.h" - -#define ALIAS_LCP 100 -#define ALIAS_TCS 200 - -enum ts { undefined = 0, elenco = 1, etichette = 2 }; - -// definizione form per etichette -class TEti_esclusi_form : public TForm -{ -public: - - virtual TCursor* cursor() const; - virtual TRelation* relation() const; - TPrint_section& get_body() { return section('B'); } ; - TEti_esclusi_form(): TForm() {}; - TEti_esclusi_form(const char* form, const char * code = "", int editlevel = 0, const char* desc = "") - : TForm(form,code,editlevel,desc) {}; - virtual ~TEti_esclusi_form() {}; -}; - -class TEsclusi_application : public TPrintapp -{ - static bool filter_func_esclusi(const TRelation *); - - TRelation* _rel; - TMask* _msk; - TEti_esclusi_form* _form_eti; - - int _cur1, _cur2, _cur3, _cur4; - TParagraph_string _cognome_nome; - TDate _data_stampa; - ts _tipo_stampa; - TString _codsez, _codsot; - -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: - void crea_intestazione(); - void filtra_sezioni(); - void header_sezione(TString codsez, TString codsot); - TMask& app_mask() { return *_msk; } - TEsclusi_application() : _data_stampa(TODAY), _cognome_nome("",25) {} -}; - -HIDDEN inline TEsclusi_application& app() { return (TEsclusi_application&) main_app(); } - -TCursor* TEti_esclusi_form::cursor() const { return app().current_cursor(); } - -TRelation* TEti_esclusi_form::relation() const { return cursor()->relation(); } - -void TEsclusi_application::filtra_sezioni() -{ - TString sezini = _msk->get(F_SEZINI); - TString sotini = _msk->get(F_SOTINI); - TString sezfin = _msk->get(F_SEZFIN); - TString sotfin = _msk->get(F_SOTFIN); - select_cursor(_cur4); - TLocalisamfile& fl = current_cursor()->file(LF_SOGGETTI); - TRectype da(fl.curr()); - TRectype a(fl.curr()); - da.zero(); - a.zero(); - if ((sezini.not_empty()) && (sezini.ok())) - da.put(SOG_CODSEZ, sezini); - if ((sotini.not_empty()) && (sotini.ok())) - da.put(SOG_CODSOT, sotini); - if ((sezfin.not_empty()) && (sezfin.ok())) - a.put(SOG_CODSEZ, sezfin); - if ((sotfin.not_empty()) && (sotfin.ok())) - a.put(SOG_CODSOT, sotfin); - current_cursor()->setregion(da, a); -} - -void TEsclusi_application::set_page(int file, int cnt) -{ - // costruzione etichette - switch (_tipo_stampa) - { - case etichette: - { - TPrint_section& corpo = _form_eti->get_body(); - corpo.reset(); - corpo.update(); - for (int i = 0; i < corpo.height(); i++) - { - TPrintrow& riga = corpo.row(i); - set_row(i+1,riga); - } - force_setpage(TRUE); // serve perchè alla prossima etichetta rifaccia la setpage - // altrimenti stampa sempre la stessa etichetta - } - break; - case elenco: - { - set_row(1,"@0g@pn", FLD(LF_SOGGETTI,SOG_CODICE,"######")); - set_row(1,"@7g@S", FLD(LF_SOGGETTI,SOG_CATDON)); - set_row(1,"@10g#a", &_cognome_nome); - set_row(1,"@36g@ld", FLD(LF_SOGGETTI,SOG_DATANASC)); - set_row(1,"@50g@S", FLD(LF_SOGGETTI,SOG_ESCLUSO)); - set_row(1,"@58g@S", FLD(LF_SOGGETTI,SOG_MOTESCL)); - set_row(2,"@47g@ld", FLD(LF_SOGGETTI,SOG_TERMESCL)); - } - break; - } -} - -bool TEsclusi_application::filter_func_esclusi(const TRelation * rel) -{ - bool filtrato = TRUE; - - TLocalisamfile* sog = &(rel->lfile(LF_SOGGETTI)); - - //filtro per categorie - - TMask& msk = app().app_mask(); - TString catpri = msk.get(F_CAT1); - TString catsec = msk.get(F_CAT2); - TString catter = msk.get(F_CAT3); - TString catqua = msk.get(F_CAT4); - TString catqui = msk.get(F_CAT5); - TString catses = msk.get(F_CAT6); - - TAssoc_array categorie; - if (catpri.not_empty() && catpri.ok()) - categorie.add((const char*) catpri); - if (catsec.not_empty() && catsec.ok()) - categorie.add((const char*) catsec); - if (catter.not_empty() && catter.ok()) - categorie.add((const char*) catter); - if (catqua.not_empty() && catqua.ok()) - categorie.add((const char*) catqua); - if (catqui.not_empty() && catqui.ok()) - categorie.add((const char*) catqui); - if (catses.not_empty() && catses.ok()) - categorie.add((const char*) catses); - - if (categorie.items() != 0) - { - TString cat = sog->curr().get(SOG_CATDON); - if (categorie.is_key((const char*) cat)) - filtrato = TRUE; - else - filtrato = FALSE; - } - TDate termine = msk.get_date(F_DATA); - TDate terminesog = sog->curr().get_date(SOG_TERMESCL); - if ((filtrato) && (termine.ok())) - if (terminesog > termine) - filtrato = FALSE; - return filtrato; -} - -bool TEsclusi_application::preprocess_page(int file, int counter) -{ - // contatore soggetti stampati - // per ora non c'è - if (_tipo_stampa == elenco) - { - TString nome = current_cursor()->curr().get(SOG_COGNOME); - nome << " "; - nome << current_cursor()->curr().get(SOG_NOME); - _cognome_nome = nome; - // salto pagina se cambio sezione - TString codsez = current_cursor()->curr().get(SOG_CODSEZ); - TString codsot = current_cursor()->curr().get(SOG_CODSOT); - if ((_codsez!=codsez)||(_codsot!=codsot)) - { - //if (!_codsez.blank()) - if (_codsez != "**") - printer().formfeed(); - _codsez = codsez; - _codsot = codsot; - header_sezione(codsez, codsot); - } - } - return TRUE; -} - -void TEsclusi_application::header_sezione(TString codsez, TString codsot) -{ - TString densez = current_cursor()->curr(LF_SEZIONI).get(SEZ_DENSEZ); - TString densot = current_cursor()->curr(LF_SEZIONI).get(SEZ_DENSOT); - TString intestazione(132); - intestazione = "Sezione: "; - intestazione << codsez; - intestazione << "/"; - intestazione << codsot; - intestazione << " "; - intestazione << densez; - if ((densot.ok())&& (densot.not_empty())) - { - intestazione << "/"; - intestazione << densot; - } - intestazione.center_just(); - set_header(1,"@0g%s", (const char*) intestazione); - return; -} - -bool TEsclusi_application::set_print(int) -{ - _tipo_stampa = undefined; - KEY tasto; - tasto = _msk->run(); - switch (tasto) - { - case F_ELENCO: - _tipo_stampa = elenco; - //_codsez.spaces(2); - //_codsot.spaces(2); - _codsez = "**"; - _codsot = "**"; - break; - case F_ETICHETTE: - _tipo_stampa = etichette; - break; - } - if (_tipo_stampa != undefined) - { - reset_files(); - add_file(LF_SOGGETTI); - - TString tipoesc = _msk->get(F_TIPO); - TDate termineesc = _msk->get(F_DATA); - - filtra_sezioni(); - - if (tipoesc.not_empty() && tipoesc.ok()) - current_cursor()->setfilter(format("ESCLUSO == \"%s\"",(const char*)tipoesc)); - else - current_cursor()->setfilter("ESCLUSO != \"\""); - - current_cursor()->set_filterfunction(filter_func_esclusi); - reset_print(); - crea_intestazione(); - return TRUE; - } - else - return FALSE; -} - -void TEsclusi_application::crea_intestazione() -{ - reset_header(); - - if (_tipo_stampa == elenco) - { - TString sep(132); - sep = "ELENCO ESCLUSI"; - TString tipo = _msk->get(F_TIPO); - if ((tipo.ok()) && (tipo.not_empty())) - { - sep << " "; - sep << tipo; - } - TDate data = _msk->get(F_DATA); - if (data.ok()) - { - sep << " termine fino al "; - sep << data.string(); - } - sep.center_just(); - set_header(2, "@0g%s", (const char*) sep); - TString data_stampa = _data_stampa.string(); - set_header(2,"@0g%10s", (const char*) data_stampa); - sep = ""; - sep << "Pag. @#"; - set_header(2, "@120g%s", (const char*) sep); - - sep = ""; - sep.fill('-'); - set_header(3, (const char *) sep); - - set_header(4,"@0gCod.@7gC.@10gCognome e nome@36gNato il@47gTipo escl.@58gMotivo"); - set_header(5,"47gTermine"); - set_header(6,"@0g------@7g--@10g-------------------------@36g----------@47g----------@58g------------------------------"); - } -} - -bool TEsclusi_application::user_create() -{ - _rel = new TRelation(LF_SOGGETTI); - _rel->add("TCS", "CODTAB==STATO",1,0,ALIAS_TCS); - _rel->add("LCP", "CODTAB==LOCALITA",1,0,ALIAS_LCP); - _rel->add(LF_COMUNI, "COM==COM"); - // per stampare le denominazione della sezione nell'intestazione - _rel->add(LF_SEZIONI, "CODSEZ==CODSEZ|CODSOT==CODSOT"); - - _cur1 = add_cursor(new TCursor(_rel, "", 1)); //cursore ordinamento per codice - _cur2 = add_cursor(new TCursor(_rel, "", 2)); //cursore ordinamento per cognome e nome - _cur3 = add_cursor(new TCursor(_rel, "", 3)); //cursore ordinamento per sezione+sottogruppo+codice - _cur4 = add_cursor(new TCursor(_rel, "", 4)); //cursore ordinamento per sezione+sottogruppo+cognome e nome - - _msk = new TMask("at2300a"); - _form_eti = new TEti_esclusi_form("AT_ETSOG"); - - return TRUE; -} - -bool TEsclusi_application::user_destroy() -{ - delete _msk; - delete _rel; - delete _form_eti; - return TRUE; -} - -int at2300(int argc, char* argv[]) -{ - - TEsclusi_application a; - - a.run(argc, argv, "Elenco esclusi"); - - return 0; -} +#include +#include +#include +#include + +#include "lf.h" +#include "soggetti.h" +#include "sezioni.h" + +#include "at2.h" +#include "at2300a.h" + +#define ALIAS_LCP 100 +#define ALIAS_TCS 200 + +enum ts { undefined = 0, elenco = 1, etichette = 2 }; + +// definizione form per etichette +class TEti_esclusi_form : public TForm +{ +public: + + virtual TCursor* cursor() const; + virtual TRelation* relation() const; + TPrint_section& get_body() { return section('B'); } ; + TEti_esclusi_form(): TForm() {}; + TEti_esclusi_form(const char* form, const char * code = "", int editlevel = 0, const char* desc = "") + : TForm(form,code,editlevel,desc) {}; + virtual ~TEti_esclusi_form() {}; +}; + +class TEsclusi_application : public TPrintapp +{ + static bool filter_func_esclusi(const TRelation *); + + TRelation* _rel; + TMask* _msk; + TEti_esclusi_form* _form_eti; + + int _cur1, _cur2, _cur3, _cur4; + TParagraph_string _cognome_nome; + TDate _data_stampa; + ts _tipo_stampa; + TString _codsez, _codsot; + +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: + void crea_intestazione(); + void filtra_sezioni(); + void header_sezione(TString codsez, TString codsot); + TMask& app_mask() { return *_msk; } + TEsclusi_application() : _data_stampa(TODAY), _cognome_nome("",25) {} +}; + +HIDDEN inline TEsclusi_application& app() { return (TEsclusi_application&) main_app(); } + +TCursor* TEti_esclusi_form::cursor() const { return app().current_cursor(); } + +TRelation* TEti_esclusi_form::relation() const { return cursor()->relation(); } + +void TEsclusi_application::filtra_sezioni() +{ + TString sezini = _msk->get(F_SEZINI); + TString sotini = _msk->get(F_SOTINI); + TString sezfin = _msk->get(F_SEZFIN); + TString sotfin = _msk->get(F_SOTFIN); + select_cursor(_cur4); + TLocalisamfile& fl = current_cursor()->file(LF_SOGGETTI); + TRectype da(fl.curr()); + TRectype a(fl.curr()); + da.zero(); + a.zero(); + if ((sezini.not_empty()) && (sezini.ok())) + da.put(SOG_CODSEZ, sezini); + if ((sotini.not_empty()) && (sotini.ok())) + da.put(SOG_CODSOT, sotini); + if ((sezfin.not_empty()) && (sezfin.ok())) + a.put(SOG_CODSEZ, sezfin); + if ((sotfin.not_empty()) && (sotfin.ok())) + a.put(SOG_CODSOT, sotfin); + current_cursor()->setregion(da, a); +} + +void TEsclusi_application::set_page(int file, int cnt) +{ + // costruzione etichette + switch (_tipo_stampa) + { + case etichette: + { + TPrint_section& corpo = _form_eti->get_body(); + corpo.reset(); + corpo.update(); + for (int i = 0; i < corpo.height(); i++) + { + TPrintrow& riga = corpo.row(i); + set_row(i+1,riga); + } + force_setpage(TRUE); // serve perchè alla prossima etichetta rifaccia la setpage + // altrimenti stampa sempre la stessa etichetta + } + break; + case elenco: + { + set_row(1,"@0g@pn", FLD(LF_SOGGETTI,SOG_CODICE,"######")); + set_row(1,"@7g@S", FLD(LF_SOGGETTI,SOG_CATDON)); + set_row(1,"@10g#a", &_cognome_nome); + set_row(1,"@36g@ld", FLD(LF_SOGGETTI,SOG_DATANASC)); + set_row(1,"@47g@S", FLD(LF_SOGGETTI,SOG_ESCLUSO)); + set_row(1,"@50g@ld", FLD(LF_SOGGETTI,SOG_TERMESCL)); + set_row(1,"@61g@S", FLD(LF_SOGGETTI,SOG_MOTESCL)); + } + break; + } +} + +bool TEsclusi_application::filter_func_esclusi(const TRelation * rel) +{ + bool filtrato = TRUE; + + TLocalisamfile* sog = &(rel->lfile(LF_SOGGETTI)); + + //filtro per categorie + + TMask& msk = app().app_mask(); + TString catpri = msk.get(F_CAT1); + TString catsec = msk.get(F_CAT2); + TString catter = msk.get(F_CAT3); + TString catqua = msk.get(F_CAT4); + TString catqui = msk.get(F_CAT5); + TString catses = msk.get(F_CAT6); + + TAssoc_array categorie; + if (catpri.not_empty() && catpri.ok()) + categorie.add((const char*) catpri); + if (catsec.not_empty() && catsec.ok()) + categorie.add((const char*) catsec); + if (catter.not_empty() && catter.ok()) + categorie.add((const char*) catter); + if (catqua.not_empty() && catqua.ok()) + categorie.add((const char*) catqua); + if (catqui.not_empty() && catqui.ok()) + categorie.add((const char*) catqui); + if (catses.not_empty() && catses.ok()) + categorie.add((const char*) catses); + + if (categorie.items() != 0) + { + TString cat = sog->curr().get(SOG_CATDON); + if (categorie.is_key((const char*) cat)) + filtrato = TRUE; + else + filtrato = FALSE; + } + TDate termine = msk.get_date(F_DATA); + TDate terminesog = sog->curr().get_date(SOG_TERMESCL); + if ((filtrato) && (termine.ok())) + if (terminesog > termine) + filtrato = FALSE; + return filtrato; +} + +bool TEsclusi_application::preprocess_page(int file, int counter) +{ + // contatore soggetti stampati + // per ora non c'è + if (_tipo_stampa == elenco) + { + TString nome = current_cursor()->curr().get(SOG_COGNOME); + nome << " "; + nome << current_cursor()->curr().get(SOG_NOME); + _cognome_nome = nome; + // salto pagina se cambio sezione + TString codsez = current_cursor()->curr().get(SOG_CODSEZ); + TString codsot = current_cursor()->curr().get(SOG_CODSOT); + if ((_codsez!=codsez)||(_codsot!=codsot)) + { + //if (!_codsez.blank()) + if (_codsez != "**") + printer().formfeed(); + _codsez = codsez; + _codsot = codsot; + header_sezione(codsez, codsot); + } + } + return TRUE; +} + +void TEsclusi_application::header_sezione(TString codsez, TString codsot) +{ + TString densez = current_cursor()->curr(LF_SEZIONI).get(SEZ_DENSEZ); + TString densot = current_cursor()->curr(LF_SEZIONI).get(SEZ_DENSOT); + TString intestazione(132); + intestazione = "Sezione: "; + intestazione << codsez; + intestazione << "/"; + intestazione << codsot; + intestazione << " "; + intestazione << densez; + if ((densot.ok())&& (densot.not_empty())) + { + intestazione << "/"; + intestazione << densot; + } + intestazione.center_just(); + set_header(1,"@0g%s", (const char*) intestazione); + return; +} + +bool TEsclusi_application::set_print(int) +{ + _tipo_stampa = undefined; + KEY tasto; + tasto = _msk->run(); + switch (tasto) + { + case F_ELENCO: + _tipo_stampa = elenco; + //_codsez.spaces(2); + //_codsot.spaces(2); + _codsez = "**"; + _codsot = "**"; + break; + case F_ETICHETTE: + _tipo_stampa = etichette; + break; + } + if (_tipo_stampa != undefined) + { + reset_files(); + add_file(LF_SOGGETTI); + + TString tipoesc = _msk->get(F_TIPO); + TDate termineesc = _msk->get(F_DATA); + + filtra_sezioni(); + + if (tipoesc.not_empty() && tipoesc.ok()) + current_cursor()->setfilter(format("ESCLUSO == \"%s\"",(const char*)tipoesc)); + else + current_cursor()->setfilter("ESCLUSO != \"\""); + + current_cursor()->set_filterfunction(filter_func_esclusi); + reset_print(); + crea_intestazione(); + return TRUE; + } + else + return FALSE; +} + +void TEsclusi_application::crea_intestazione() +{ + reset_header(); + + if (_tipo_stampa == elenco) + { + TString sep(132); + sep = "ELENCO ESCLUSI"; + TString tipo = _msk->get(F_TIPO); + if ((tipo.ok()) && (tipo.not_empty())) + { + sep << " "; + sep << tipo; + } + TDate data = _msk->get(F_DATA); + if (data.ok()) + { + sep << " termine fino al "; + sep << data.string(); + } + sep.center_just(); + set_header(2, "@0g%s", (const char*) sep); + TString data_stampa = _data_stampa.string(); + set_header(2,"@0g%10s", (const char*) data_stampa); + sep = ""; + sep << "Pag. @#"; + set_header(2, "@120g%s", (const char*) sep); + + sep = ""; + sep.fill('-'); + set_header(3, (const char *) sep); + + set_header(4,"@0gCod.@7gC.@10gCognome e nome@36gNato il@47gEsclusione@61gMotivo"); + set_header(5,"@47gTipo Termine"); + set_header(6,"@0g------@7g--@10g-------------------------@36g----------@47g-------------@61g------------------------------"); + + //set_header(4,"@0gCod.@7gC.@10gCognome e nome@36gNato il@47gSospensione@61gUltima idon.@75gIntervalli@86gUltima donaz.@100gUlt.controllo@114gPross.contr."); + //set_header(5,"@76gSI AF"); + //set_header(6,"@0g------@7g--@10g-------------------------@36g----------@47g-------------@61g-------------@75g----------@86g-------------@100g-------------@114g-------------"); + + } +} + +bool TEsclusi_application::user_create() +{ + _rel = new TRelation(LF_SOGGETTI); + _rel->add("TCS", "CODTAB==STATO",1,0,ALIAS_TCS); + _rel->add("LCP", "CODTAB==LOCALITA",1,0,ALIAS_LCP); + _rel->add(LF_COMUNI, "COM==COM"); + // per stampare le denominazione della sezione nell'intestazione + _rel->add(LF_SEZIONI, "CODSEZ==CODSEZ|CODSOT==CODSOT"); + + _cur1 = add_cursor(new TCursor(_rel, "", 1)); //cursore ordinamento per codice + _cur2 = add_cursor(new TCursor(_rel, "", 2)); //cursore ordinamento per cognome e nome + _cur3 = add_cursor(new TCursor(_rel, "", 3)); //cursore ordinamento per sezione+sottogruppo+codice + _cur4 = add_cursor(new TCursor(_rel, "", 4)); //cursore ordinamento per sezione+sottogruppo+cognome e nome + + _msk = new TMask("at2300a"); + _form_eti = new TEti_esclusi_form("AT_ETSOG"); + + return TRUE; +} + +bool TEsclusi_application::user_destroy() +{ + delete _msk; + delete _rel; + delete _form_eti; + return TRUE; +} + +int at2300(int argc, char* argv[]) +{ + + TEsclusi_application a; + + a.run(argc, argv, "Elenco esclusi"); + + return 0; +} diff --git a/at/at3.cpp b/at/at3.cpp index 8af252212..a580874b6 100755 --- a/at/at3.cpp +++ b/at/at3.cpp @@ -1,30 +1,29 @@ -#include - -#include - -#include "at3.h" - -#define usage "Error - usage : %s -[0,1,2,3,4]" - -int main(int argc, char** argv) -{ - int rt = 0 ; - const int r = (argc > 1) ? atoi(&argv[1][1]) : -1; - - switch (r) - { - case 0: - rt = at3100(argc, argv); break; - case 1: - rt = at3200(argc, argv); break; - case 2: - rt = at3300(argc, argv); break; - case 3: - rt = at3400(argc, argv); break; - case 4: - rt = at3500(argc, argv); break; -default: - error_box(usage, argv[0]) ; rt = 1; break; - } - return rt; -} +#include +#include + +#include "at3.h" + +#define usage "Error - usage : %s -[0,1,2,3,4]" + +int main(int argc, char** argv) +{ + int rt = 0 ; + const int r = (argc > 1) ? atoi(&argv[1][1]) : -1; + + switch (r) + { + case 0: + rt = at3100(argc, argv); break; + case 1: + rt = at3200(argc, argv); break; + case 2: + rt = at3300(argc, argv); break; + case 3: + rt = at3400(argc, argv); break; + case 4: + rt = at3500(argc, argv); break; +default: + error_box(usage, argv[0]) ; rt = 1; break; + } + return rt; +} diff --git a/at/at4.cpp b/at/at4.cpp index 7fe74ecf8..9b751deb9 100755 --- a/at/at4.cpp +++ b/at/at4.cpp @@ -1,22 +1,21 @@ -#include - -#include - -#include "at4.h" - -#define usage "Error - usage : %s -[0]" - -int main(int argc, char** argv) -{ - int rt = 0 ; - const int r = (argc > 1) ? atoi(&argv[1][1]) : -1; - - switch (r) - { - case 0: - rt = at4100(argc, argv); break; -default: - error_box(usage, argv[0]) ; rt = 1; break; - } - return rt; -} +#include +#include + +#include "at4.h" + +#define usage "Error - usage : %s -[0]" + +int main(int argc, char** argv) +{ + int rt = 0 ; + const int r = (argc > 1) ? atoi(&argv[1][1]) : -1; + + switch (r) + { + case 0: + rt = at4100(argc, argv); break; +default: + error_box(usage, argv[0]) ; rt = 1; break; + } + return rt; +} diff --git a/at/contsan.h b/at/contsan.h index 9d17d6894..da628f6cf 100755 --- a/at/contsan.h +++ b/at/contsan.h @@ -1,12 +1,14 @@ -// definizione campi dell'archivio CONTSAN - -#define CON_CODICE "CODICE" -#define CON_PROGCON "PROGCON" -#define CON_DATACON "DATACON" -#define CON_TIPOCON "TIPOCON" -#define CON_IDON1 "IDON1" -#define CON_IDON2 "IDON2" -#define CON_IDON3 "IDON3" -#define CON_IDON4 "IDON4" -#define CON_INTSI "INTSI" -#define CON_INTAF "INTAF" +// definizione campi dell'archivio CONTSAN + +#define CON_CODICE "CODICE" +#define CON_PROGCON "PROGCON" +#define CON_DATACON "DATACON" +#define CON_TIPOCON "TIPOCON" +#define CON_IDON1 "IDON1" +#define CON_IDON2 "IDON2" +#define CON_IDON3 "IDON3" +#define CON_IDON4 "IDON4" +#define CON_INTSI "INTSI" +#define CON_INTAF "INTAF" +#define CON_PROSSTIPO "PROSSTIPO" +#define CON_PROSSDATA "PROSSDATA"