diff --git a/at/at0100a.uml b/at/at0100a.uml index 2c9d263a9..61e4780eb 100755 --- a/at/at0100a.uml +++ b/at/at0100a.uml @@ -29,11 +29,13 @@ BEGIN DISPLAY "Sot." CODSOT DISPLAY "C." CATDON DISPLAY "Tessera" TESSAVIS + DISPLAY "Cod.CT" CODCT OUTPUT F_CODICE CODICE OUTPUT F_COGNOME COGNOME OUTPUT F_NOME NOME OUTPUT F_DATANASC DATANASC OUTPUT F_TESSAVIS TESSAVIS + OUTPUT F_CODCT CODCT MESSAGE COPY,1@ CHECKTYPE REQUIRED END @@ -60,6 +62,7 @@ BEGIN DISPLAY "Sot." CODSOT DISPLAY "C." CATDON DISPLAY "Tessera" TESSAVIS + DISPLAY "Cod.CT" CODCT OUTPUT F_CODICE CODICE MESSAGE COPY,2@ CHECKTYPE REQUIRED @@ -105,6 +108,7 @@ BEGIN DISPLAY "Sez." CODSEZ DISPLAY "Sot." CODSOT DISPLAY "C." CATDON + DISPLAY "Cod.CT" CODCT OUTPUT F_CODICE CODICE HELP "Numero tessera associativa AVIS" END @@ -698,19 +702,19 @@ BEGIN PROMPT 25 8 "Cod. CT " FIELDS CODCT FLAGS "U" - //KEY 7 - //MESSAGE COPY,5@ - //USE LF_SOGGETTI KEY 7 - //INPUT CODCT F_CODCT - //DISPLAY "Codice CT" CODCT - //DISPLAY "Codice@8" CODICE - //DISPLAY "Cognome@25" COGNOME - //DISPLAY "Nome@25" NOME - //DISPLAY "Nato il@10" DATANASC - //DISPLAY "Sez." CODSEZ - //DISPLAY "Sot." CODSOT - //DISPLAY "C." CATDON - //OUTPUT F_CODICE CODICE + KEY 7 + MESSAGE COPY,5@ + USE LF_SOGGETTI KEY 7 + INPUT CODCT F_CODCT + DISPLAY "Codice CT" CODCT + DISPLAY "Codice@8" CODICE + DISPLAY "Cognome@25" COGNOME + DISPLAY "Nome@25" NOME + DISPLAY "Nato il@10" DATANASC + DISPLAY "Sez." CODSEZ + DISPLAY "Sot." CODSOT + DISPLAY "C." CATDON + OUTPUT F_CODICE CODICE HELP "Codice Centro Trasfusionale" END diff --git a/at/at0200.cpp b/at/at0200.cpp index 568140f30..30f8ac420 100755 --- a/at/at0200.cpp +++ b/at/at0200.cpp @@ -67,6 +67,7 @@ protected: bool check_sog_sheet(const char* codsog); static bool nome_handler(TMask_field& f, KEY k); static bool codice_handler(TMask_field& f, KEY k); + static bool codct_handler(TMask_field& f, KEY k); static bool tipodon_handler(TMask_field& f, KEY k); static bool soggetti_notify(TSheet_field& s, int r, KEY k); void add_rows_soggetti(TSheet_field& s, int count = 20, int start = 0); @@ -121,6 +122,7 @@ bool TGiornalieroDC::create() ss.sheet_mask().set_handler(F_S_NOME,nome_handler); ss.sheet_mask().set_handler(F_S_TESSAVIS,nome_handler); ss.sheet_mask().set_handler(F_S_CODICE,codice_handler); + ss.sheet_mask().set_handler(F_S_CODCT,codct_handler); ss.sheet_mask().set_handler(F_S_TIPODON,tipodon_handler); TConfig config(CONFIG_STUDIO); _autoid = config.get_bool("AutoId"); @@ -905,6 +907,41 @@ bool TGiornalieroDC::codice_handler(TMask_field& f, KEY k) return ok; } +bool TGiornalieroDC::codct_handler(TMask_field& f, KEY k) +{ + bool ok = TRUE; + if ((k==K_TAB) && (f.to_check(k))) + { + TString256 messaggio = ""; + TMask& m = f.mask(); + TString16 codsog = m.get(F_S_CODCT); + if (codsog[0] == '0') + codsog = ""; + if (codsog.not_empty() ) + { + TLocalisamfile& sog = app().get_relation()->lfile(); + sog.setkey(7); + sog.zero(); + sog.put(SOG_CODCT, codsog); + int err = sog.read(); + if (err == NOERR) + { + m.set(F_S_CODICE, sog.get(SOG_CODICE)); + m.set(F_S_COGNOME, sog.get(SOG_COGNOME)); + m.set(F_S_NOME, sog.get(SOG_NOME)); + m.set(F_S_DATANASC, sog.get(SOG_DATANASC)); + m.set(F_S_TESSAVIS, sog.get(SOG_TESSAVIS)); + m.set(F_S_CODSEZ, sog.get(SOG_CODSEZ)); + m.set(F_S_CODSOT, sog.get(SOG_CODSOT)); + m.set(F_S_CATDON, sog.get(SOG_CATDON)); + } + else + ok = FALSE; // codice non esistente + } + } + return ok; +} + bool TGiornalieroDC::tipodon_handler(TMask_field& f, KEY k) { bool ok = TRUE; diff --git a/at/at0200a.h b/at/at0200a.h index 73c7f118a..69d398820 100755 --- a/at/at0200a.h +++ b/at/at0200a.h @@ -17,24 +17,25 @@ // pagina soggetti #define F_S_CODICE 101 -#define F_S_COGNOME 102 -#define F_S_NOME 103 -#define F_S_TESSAVIS 104 -#define F_S_TIPODON 105 -#define F_S_TIPOCON 106 -#define F_S_ETICHETTA 107 -#define F_S_PRIMADON 108 -#define F_S_DATADON 109 -#define F_S_DATANASC 110 -#define F_S_CODSEZ 111 -#define F_S_CODSOT 112 -#define F_S_CATDON 113 -#define F_S_INTSI 114 -#define F_S_CC 115 -#define F_S_PA 116 -#define F_S_HB 117 -#define F_S_SGPT 118 -#define F_S_PROTIDEMIA 119 +#define F_S_CODCT 102 +#define F_S_COGNOME 103 +#define F_S_NOME 104 +#define F_S_TESSAVIS 105 +#define F_S_TIPODON 106 +#define F_S_TIPOCON 107 +#define F_S_ETICHETTA 108 +#define F_S_PRIMADON 109 +#define F_S_DATADON 110 +#define F_S_DATANASC 111 +#define F_S_CODSEZ 112 +#define F_S_CODSOT 113 +#define F_S_CATDON 114 +#define F_S_INTSI 115 +#define F_S_CC 116 +#define F_S_PA 117 +#define F_S_HB 118 +#define F_S_SGPT 119 +#define F_S_PROTIDEMIA 120 #define F_S_DENSEZ 151 #define F_S_DENSOT 152 diff --git a/at/at0200a.uml b/at/at0200a.uml index 08c37e1ae..7865cfee4 100755 --- a/at/at0200a.uml +++ b/at/at0200a.uml @@ -160,6 +160,7 @@ SPREADSHEET F_SOGGETTI BEGIN PROMPT 2 6 "Soggetti" ITEM "Codice@8" + ITEM "Cod.CT@6" ITEM "Cognome@25" ITEM "Nome@25" ITEM "Tessera" @@ -209,6 +210,7 @@ BEGIN DISPLAY "Gr.AB0" GRUPPOAB0 DISPLAY "Rh " RHANTID DISPLAY "Int.SI" INTSI + DISPLAY "Cod.CT@6" CODCT OUTPUT F_S_CODICE CODICE OUTPUT F_S_COGNOME COGNOME OUTPUT F_S_NOME NOME @@ -218,6 +220,38 @@ BEGIN OUTPUT F_S_CATDON CATDON OUTPUT F_S_TESSAVIS TESSAVIS OUTPUT F_S_INTSI INTSI + OUTPUT F_S_CODCT CODCT + ADD RUN at0 -0 +END + +STRING F_S_CODCT 6 +BEGIN + PROMPT 25 1 "Cod. CT " + FLAGS "U" + USE LF_SOGGETTI KEY 7 + INPUT CODCT F_S_CODCT + DISPLAY "Cod.CT@6" CODCT + DISPLAY "Codice@8" 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 + DISPLAY "Gr.AB0" GRUPPOAB0 + DISPLAY "Rh " RHANTID + DISPLAY "Int.SI" INTSI + OUTPUT F_S_CODICE CODICE + OUTPUT F_S_COGNOME COGNOME + OUTPUT F_S_NOME NOME + OUTPUT F_S_DATANASC DATANASC + OUTPUT F_S_CODSEZ CODSEZ + OUTPUT F_S_CODSOT CODSOT + OUTPUT F_S_CATDON CATDON + OUTPUT F_S_TESSAVIS TESSAVIS + OUTPUT F_S_INTSI INTSI + OUTPUT F_S_CODCT CODCT ADD RUN at0 -0 END @@ -239,6 +273,7 @@ BEGIN DISPLAY "Gr.AB0" GRUPPOAB0 DISPLAY "Rh " RHANTID DISPLAY "Int.SI" INTSI + DISPLAY "Cod.CT@6" CODCT OUTPUT F_S_CODICE CODICE OUTPUT F_S_COGNOME COGNOME OUTPUT F_S_NOME NOME @@ -248,6 +283,7 @@ BEGIN OUTPUT F_S_CATDON CATDON OUTPUT F_S_TESSAVIS TESSAVIS OUTPUT F_S_INTSI INTSI + OUTPUT F_S_CODCT CODCT HELP "Cognome del soggetto" ADD RUN at0 -0 END @@ -276,6 +312,7 @@ BEGIN DISPLAY "Gr.AB0" GRUPPOAB0 DISPLAY "Rh " RHANTID DISPLAY "Int.SI" INTSI + DISPLAY "Cod.CT@6" CODCT OUTPUT F_S_CODICE CODICE OUTPUT F_S_COGNOME COGNOME OUTPUT F_S_NOME NOME @@ -285,6 +322,7 @@ BEGIN OUTPUT F_S_CATDON CATDON OUTPUT F_S_TESSAVIS TESSAVIS OUTPUT F_S_INTSI INTSI + OUTPUT F_S_CODCT CODCT HELP "Cognome del soggetto" ADD RUN at0 -0 END diff --git a/at/at0300.cpp b/at/at0300.cpp index 1a041a39f..71dad82b3 100755 --- a/at/at0300.cpp +++ b/at/at0300.cpp @@ -55,6 +55,7 @@ protected: bool check_sog_sheet(const char* codsog); static bool nome_handler(TMask_field& f, KEY k); static bool codice_handler(TMask_field& f, KEY k); + static bool codct_handler(TMask_field& f, KEY k); static bool tipocon_handler(TMask_field& f, KEY k); static bool soggetti_notify(TSheet_field& s, int r, KEY k); void add_rows_soggetti(TSheet_field& s, int count = 20, int start = 0); @@ -94,7 +95,7 @@ bool TGiornalieroC::create() ss.sheet_mask().set_handler(F_S_NOME,nome_handler); ss.sheet_mask().set_handler(F_S_CODICE,codice_handler); - + ss.sheet_mask().set_handler(F_S_CODCT,codct_handler); ss.sheet_mask().set_handler(F_S_TIPOCON,tipocon_handler); dispatch_e_menu(BAR_ITEM(1)); @@ -481,6 +482,53 @@ bool TGiornalieroC::codice_handler(TMask_field& f, KEY k) m.set(F_S_CODSEZ, sog.get(SOG_CODSEZ)); m.set(F_S_CODSOT, sog.get(SOG_CODSOT)); m.set(F_S_CATDON, sog.get(SOG_CATDON)); + m.set(F_S_CODCT, sog.get(SOG_CODCT)); + m.set(F_S_TOTDON, sog.get(SOG_TOTDON)); + TString16 tipogen = app()._msk->get(F_TIPOCON); + if (tipogen == "ID") + { + m.set(F_S_IDON1, sog.get(SOG_IDON1)); + m.set(F_S_IDON2, sog.get(SOG_IDON2)); + m.set(F_S_IDON3, sog.get(SOG_IDON3)); + m.set(F_S_IDON4, sog.get(SOG_IDON4)); + m.set(F_S_INTSI, sog.get(SOG_INTSI)); + m.set(F_S_INTAF, sog.get(SOG_INTAF)); + } + } + else + ok = FALSE; // codice non esistente + } + } + return ok; +} + +bool TGiornalieroC::codct_handler(TMask_field& f, KEY k) +{ + bool ok = TRUE; + if ((k==K_TAB) && (f.to_check(k))) + { + TMask& m = f.mask(); + TString16 codsog = m.get(F_S_CODCT); + if (codsog[0] == '0') + codsog = ""; + if (codsog.not_empty() ) + { + TLocalisamfile& sog = app().get_relation()->lfile(); + sog.setkey(7); + sog.zero(); + sog.put(SOG_CODCT, codsog); + int err = sog.read(); + if (err == NOERR) + { + m.set(F_S_CODICE, sog.get(SOG_CODICE)); + m.set(F_S_COGNOME, sog.get(SOG_COGNOME)); + m.set(F_S_NOME, sog.get(SOG_NOME)); + m.set(F_S_DATANASC, sog.get(SOG_DATANASC)); + m.set(F_S_TESSAVIS, sog.get(SOG_TESSAVIS)); + m.set(F_S_CODSEZ, sog.get(SOG_CODSEZ)); + m.set(F_S_CODSOT, sog.get(SOG_CODSOT)); + m.set(F_S_CATDON, sog.get(SOG_CATDON)); + m.set(F_S_TOTDON, sog.get(SOG_TOTDON)); TString16 tipogen = app()._msk->get(F_TIPOCON); if (tipogen == "ID") { @@ -502,7 +550,6 @@ bool TGiornalieroC::codice_handler(TMask_field& f, KEY k) bool TGiornalieroC::tipocon_handler(TMask_field& f, KEY k) { bool ok = TRUE; - //if (k == K_TAB && !f.focusdirty()) if ((k==K_TAB) && (f.to_check(k))) { TMask& m = f.mask(); diff --git a/at/at0300a.h b/at/at0300a.h index 336d331f4..0504851da 100755 --- a/at/at0300a.h +++ b/at/at0300a.h @@ -17,25 +17,26 @@ // pagina soggetti #define F_S_CODICE 101 -#define F_S_COGNOME 102 -#define F_S_NOME 103 -#define F_S_TIPOCON 104 -#define F_S_IDON1 105 -#define F_S_IDON2 106 -#define F_S_IDON3 107 -#define F_S_IDON4 108 -#define F_S_INTSI 109 -#define F_S_INTAF 110 -#define F_S_PROSSTIPO 111 -#define F_S_PROSSDATA 112 -#define F_S_MOTIVO 113 -#define F_S_RESPONSAB 114 -#define F_S_DATANASC 115 -#define F_S_TOTDON 116 -#define F_S_CODSEZ 117 -#define F_S_CODSOT 118 -#define F_S_CATDON 119 -#define F_S_TESSAVIS 120 +#define F_S_CODCT 102 +#define F_S_COGNOME 103 +#define F_S_NOME 104 +#define F_S_TIPOCON 105 +#define F_S_IDON1 106 +#define F_S_IDON2 107 +#define F_S_IDON3 108 +#define F_S_IDON4 109 +#define F_S_INTSI 110 +#define F_S_INTAF 111 +#define F_S_PROSSTIPO 112 +#define F_S_PROSSDATA 113 +#define F_S_MOTIVO 114 +#define F_S_RESPONSAB 115 +#define F_S_DATANASC 116 +#define F_S_TOTDON 117 +#define F_S_CODSEZ 118 +#define F_S_CODSOT 119 +#define F_S_CATDON 120 +#define F_S_TESSAVIS 121 #define F_S_DENSEZ 151 #define F_S_DENSOT 152 diff --git a/at/at0300a.uml b/at/at0300a.uml index 4719992b2..c490848b6 100755 --- a/at/at0300a.uml +++ b/at/at0300a.uml @@ -130,6 +130,7 @@ SPREADSHEET F_SOGGETTI BEGIN PROMPT 2 6 "Soggetti" ITEM "Codice@8" + ITEM "Cod.CT@6" ITEM "Cognome@25" ITEM "Nome@25" ITEM "Tipo" @@ -178,6 +179,36 @@ BEGIN DISPLAY "Sot." CODSOT DISPLAY "C." CATDON DISPLAY "Tessera" TESSAVIS + DISPLAY "Cod.CT@6" CODCT + OUTPUT F_S_CODICE CODICE + OUTPUT F_S_COGNOME COGNOME + OUTPUT F_S_NOME NOME + OUTPUT F_S_DATANASC DATANASC + OUTPUT F_S_CODSEZ CODSEZ + OUTPUT F_S_CODSOT CODSOT + OUTPUT F_S_CATDON CATDON + OUTPUT F_S_TESSAVIS TESSAVIS + OUTPUT F_S_TOTDON TOTDON + OUTPUT F_S_CODCT CODCT + ADD RUN at0 -0 +END + +STRING F_S_CODCT 6 +BEGIN + PROMPT 35 1 "Cod. CT " + FLAGS "U" + USE LF_SOGGETTI KEY 7 + INPUT CODCT F_S_CODCT + DISPLAY "Cod.CT@6" CODCT + DISPLAY "Codice@8" CODICE + DISPLAY "Cognome@25" COGNOME + DISPLAY "Nome@25" NOME + DISPLAY "Nato il@10" DATANASC + DISPLAY "Don." TOTDON + DISPLAY "Sez." CODSEZ + DISPLAY "Sot." CODSOT + DISPLAY "C." CATDON + DISPLAY "Tessera" TESSAVIS OUTPUT F_S_CODICE CODICE OUTPUT F_S_COGNOME COGNOME OUTPUT F_S_NOME NOME @@ -206,6 +237,7 @@ BEGIN DISPLAY "Sot." CODSOT DISPLAY "C." CATDON DISPLAY "Tessera" TESSAVIS + DISPLAY "Cod.CT@6" CODCT OUTPUT F_S_CODICE CODICE OUTPUT F_S_COGNOME COGNOME OUTPUT F_S_NOME NOME @@ -215,6 +247,7 @@ BEGIN OUTPUT F_S_CATDON CATDON OUTPUT F_S_TESSAVIS TESSAVIS OUTPUT F_S_TOTDON TOTDON + OUTPUT F_S_CODCT CODCT HELP "Cognome del soggetto" ADD RUN at0 -0 END @@ -224,7 +257,6 @@ BEGIN PROMPT 46 2 "" COPY ALL F_S_COGNOME HELP "Nome del soggetto" - //CHECKTYPE SEARCH ADD RUN at0 -0 END