diff --git a/ba/ba2100.cpp b/ba/ba2100.cpp index c0a159b63..7e850d4c9 100755 --- a/ba/ba2100.cpp +++ b/ba/ba2100.cpp @@ -60,13 +60,51 @@ bool TForm_editor::create() code = atol(argv(a)); } - if (form) + if ((form && code) || (form && code == 0 && _extra)) { _form = new TForm(form, code, _extra ? 2 : 1); enable_menu_item(M_FILE_PRINT); if (!_extra) dispatch_e_menu(MENU_ITEM(31)); } - else error_box("Specificare il form da modificare!"); + else + { + TMask m("ba2100b"); + + if (form) + { + m.set(F_BASE, form); + m.disable(F_BASE); + } + + if (code) m.set(F_CODE, code); + + // choose form from mask + KEY k; + while ((k = m.run()) != K_ESC) + { + TString fform = m.get(F_BASE); + TString fdesc = m.get(F_DESC); + long fcode = m.get_long(F_CODE); + + if (k == K_ENTER) + { + m.stop_run(K_ENTER); + _form = new TForm(fform, fcode, _extra ? 2 :1, fdesc); + _form->set_description(m.get(F_DESC)); + enable_menu_item(M_FILE_PRINT); + if (!_extra) dispatch_e_menu(MENU_ITEM(31)); + } + else if (k == K_DEL) + { + if (yesno_box("Confermare la cancellazione del " + "profilo %05ld", fcode)) + { + // TBI remove form + } + } + } + // error_box("Specificare il form da modificare!"); + } return form != NULL; } diff --git a/ba/ba2100.h b/ba/ba2100.h index 8af9d14d6..ccf1ac379 100755 --- a/ba/ba2100.h +++ b/ba/ba2100.h @@ -39,6 +39,7 @@ #define F_GROUP23 153 #define F_GROUP24 154 +// date format section #define F_DFORMAT 160 #define F_DDAY 161 #define F_DMONTH 162 @@ -47,6 +48,7 @@ #define F_DEXAMPLE 165 #define F_FILE 166 +// file/field references #define F_FIELDREF1 170 #define F_FILE1 171 #define F_BUT_FILE1 172 @@ -67,3 +69,7 @@ #define F_DECIMALS 206 #define F_CAPTION 301 +// maschera scelta form +#define F_BASE 401 +#define F_CODE 402 +#define F_DESC 403 diff --git a/ba/ba2100b.uml b/ba/ba2100b.uml new file mode 100755 index 000000000..64dc22631 --- /dev/null +++ b/ba/ba2100b.uml @@ -0,0 +1,64 @@ +#include "ba2100.h" + +PAGE "Scelta profilo" -1 -1 67 6 + +STRING F_BASE 8 +BEGIN + PROMPT 2 1 "Profilo base " + HELP "Specificare il nome del profilo di base utilizzato" + CHECKTYPE REQUIRED +END + +NUMBER F_CODE 5 +BEGIN + PROMPT 2 2 "Codice profilo " + FLAGS "Z" + HELP "Codice del profilo utente" + USE LF_FORM +// CHECKTYPE REQUIRED + INPUT TIPOPROF F_BASE + INPUT CODPROF F_CODE + FIELD CODPROF + DISPLAY "Profilo base" TIPOPROF + DISPLAY "Codice" CODPROF + DISPLAY "Descrizione@50" DESC + OUTPUT F_BASE TIPOPROF + OUTPUT F_CODE CODPROF + OUTPUT F_DESC DESC +END + +STRING F_DESC 40 +BEGIN + PROMPT 2 3 "Descrizione " + HELP "Descrizione profilo utente" + COPY USE F_CODE + INPUT TIPOPROF F_BASE + INPUT CODPROF F_CODE + FIELD DESC + DISPLAY "Profilo base" TIPOPROF + DISPLAY "Codice" CODPROF + DISPLAY "Descrizione@50" DESC + OUTPUT F_BASE TIPOPROF + OUTPUT F_CODE CODPROF + OUTPUT F_DESC DESC +END + +BUTTON DLG_OK 10 2 +BEGIN + PROMPT -13 -1 "" +END + +BUTTON DLG_DELREC 10 2 +BEGIN + PROMPT -23 -1 "" + MESSAGE EXIT,K_DEL +END + + +BUTTON DLG_CANCEL 10 2 +BEGIN + PROMPT -33 -1 "" +END + +ENDPAGE +ENDMASK diff --git a/ba/ba2100u.uml b/ba/ba2100u.uml index c5a300691..8d840388a 100755 --- a/ba/ba2100u.uml +++ b/ba/ba2100u.uml @@ -1,14 +1,58 @@ #include "ba2100.h" -PAGE "Modifica sottosezione" -1 -1 52 5 +PAGE "Modifica sottosezione" -1 -1 67 6 -STRING F_CAPTION 40 +STRING F_CAPTION 50 BEGIN - PROMPT 2 1 "Titolo " + PROMPT 2 1 "Titolo " HELP "Specificare il titolo della sottosezione" END + +NUMBER F_WIDTH 2 +BEGIN + PROMPT 2 2 "Larghezza " + HELP "Larghezza della sottosezione" +END + +NUMBER F_HEIGHT 2 +BEGIN + PROMPT 16 2 "Altezza " + HELP "Altezza della sottosezione" +END +NUMBER F_X 2 +BEGIN + PROMPT 28 2 "Spost. orizz. " + HELP "Spostamento orizzontale sottosezione" +END + +NUMBER F_Y 2 +BEGIN + PROMPT 47 2 "Spost. vert. " + HELP "Spostamento verticale sottosezione" +END + + +STRING F_FILE1 50 +BEGIN + PROMPT 2 3 "Archivio " + HELP "Nome dell'archivio su cui iterare la sottosezione" +// FLAGS "D" +END + +BUTTON F_BUT_FILE1 2 1 +BEGIN + PROMPT 63 3 "*" + PICTURE 109 +END + +STRING F_FIELDREF1 16 +BEGIN + PROMPT 0 0 "" + FLAGS "H" +END + BUTTON DLG_OK 10 2 BEGIN