Modificato pec.frm. Aggiunta la ricerca per descrizione sul piano dei

conti in sc2201.cpp; corretta la ricerca per ragione sociale su clienti
e fornitori in scselect.cpp. Varie correzioni al form editor dei profili
estratto conto.


git-svn-id: svn://10.65.10.50/trunk@2399 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
angelo 1996-01-05 18:48:17 +00:00
parent c6eb963aeb
commit 2096837511
14 changed files with 1126 additions and 765 deletions

View File

@ -25,7 +25,8 @@ END
END END
SECTION HEADER ODD 12
SECTION HEADER LAST 1
STRINGA 100 STRINGA 100
BEGIN BEGIN
@ -34,6 +35,45 @@ BEGIN
FLAGS "DH" FLAGS "DH"
END END
STRING 301
BEGIN
KEY "Descrizione saldo partita"
PROMPT 2 1 "*** Saldo partita"
FLAGS "DH"
END
STRING 302
BEGIN
KEY "Descrizione abbuoni"
PROMPT 2 1 "*** Abbuoni"
FLAGS "DH"
END
STRING 303
BEGIN
KEY "Descrizione differenza cambi"
PROMPT 2 1 "*** Differenza cambi"
FLAGS "DH"
END
STRING 304
BEGIN
KEY "Ritenute"
PROMPT 2 1 "*** Ritenute"
FLAGS "DH"
END
STRING 400
BEGIN
KEY "Descrizione riporto"
PROMPT 2 1 "*** Riporto"
FLAGS "DH"
END
END
SECTION HEADER ODD 12
STRINGA 1 STRINGA 1
BEGIN BEGIN
KEY "Spettabile/Egregio" KEY "Spettabile/Egregio"
@ -138,7 +178,7 @@ END
END END
SECTION BODY ODD COLUMNWISE 1 SECTION BODY ODD 1 COLUMNWISE
STRINGA 201 STRINGA 201
BEGIN BEGIN
@ -150,82 +190,82 @@ END
STRINGA 202 22 1 STRINGA 202 22 1
BEGIN BEGIN
KEY "Descrizione" KEY "Descrizione"
PROMPT 2 22 "" PROMPT 2 22 "<DES PART>"
END END
DATA 205 DATA 205
BEGIN BEGIN
KEY "Data doc." KEY "Data doc."
PROMPT 2 12 "" PROMPT 3 12 ""
FLAGS "H" FLAGS "H"
END END
STRINGA 206 STRINGA 206
BEGIN BEGIN
KEY "Num.doc." KEY "Num.doc."
PROMPT 2 6 "" PROMPT 4 6 ""
FLAGS "H" FLAGS "H"
END END
NUMERO 207 NUMERO 207
BEGIN BEGIN
KEY "Prot." KEY "Prot."
PROMPT 2 6 "" PROMPT 5 6 ""
FLAGS "H" FLAGS "H"
END END
NUMERO 208 NUMERO 208
BEGIN BEGIN
KEY "Totale documento" KEY "Totale documento"
PROMPT 2 15 "" PROMPT 6 15 ""
FLAGS "H" FLAGS "H"
END END
DATA 209 DATA 209
BEGIN BEGIN
KEY "Data" KEY "Data"
PROMPT 3 12 "" PROMPT 7 12 ""
END END
NUMERO 210 NUMERO 210
BEGIN BEGIN
KEY "Dare" KEY "Dare"
PROMPT 4 17 "" PROMPT 8 17 ""
PICTURE "###.###.###.###" PICTURE "###.###.###.###"
END END
NUMERO 211 NUMERO 211
BEGIN BEGIN
KEY "Avere" KEY "Avere"
PROMPT 5 17 "" PROMPT 9 17 ""
PICTURE "###.###.###.###" PICTURE "###.###.###.###"
END END
NUMERO 212 NUMERO 212
BEGIN BEGIN
KEY "Scaduto" KEY "Scaduto"
PROMPT 6 17 "" PROMPT 10 17 ""
PICTURE "###.###.###.###" PICTURE "###.###.###.###"
END END
NUMERO 213 NUMERO 213
BEGIN BEGIN
KEY "Esposto" KEY "Esposto"
PROMPT 7 17 "" PROMPT 11 17 ""
PICTURE "###.###.###.###" PICTURE "###.###.###.###"
END END
NUMERO 215 NUMERO 215
BEGIN BEGIN
KEY "Importi in lire" KEY "Importi in lire"
PROMPT 8 17 "" PROMPT 12 17 ""
PICTURE "###.###.###.###" PICTURE "###.###.###.###"
END END
NUMERO 216 NUMERO 216
BEGIN BEGIN
KEY "Cambio" KEY "Cambio"
PROMPT 9 17 "" PROMPT 13 17 ""
PICTURE "###.###.###.###" PICTURE "###.###.###.###"
FLAGS "H" FLAGS "H"
END END
@ -233,48 +273,48 @@ END
DATA 217 DATA 217
BEGIN BEGIN
KEY "Data cam." KEY "Data cam."
PROMPT 10 12 "" PROMPT 14 12 ""
FLAGS "H" FLAGS "H"
END END
STRING 301
BEGIN
KEY "Descrizione saldo partita"
PROMPT 2 1 "*** Saldo partita"
FLAGS "DH"
END
STRING 302
BEGIN
KEY "Descrizione abbuoni"
PROMPT 2 1 "*** Abbuoni"
FLAGS "DH"
END
STRING 303
BEGIN
KEY "Descrizione differenza cambi"
PROMPT 2 1 "*** Differenza cambi"
FLAGS "DH"
END
STRING 304
BEGIN
KEY "Ritenute"
PROMPT 2 1 "*** Ritenute"
FLAGS "DH"
END
END // Fine body END // Fine body
SECTION FOOTER ODD 9 SECTION FOOTER ODD 9
STRING 400 NUMERO 210
BEGIN BEGIN
KEY "Descrizione riporto" KEY "Dare"
PROMPT 2 1 "*** Riporto" PROMPT 0 1 ""
FLAGS "DH" PICTURE "###.###.###.###"
END
NUMERO 211
BEGIN
KEY "Avere"
PROMPT 0 1 ""
PICTURE "###.###.###.###"
END
NUMERO 212
BEGIN
KEY "Scaduto"
PROMPT 0 1 ""
PICTURE "###.###.###.###"
END
NUMERO 213
BEGIN
KEY "Esposto"
PROMPT 0 1 ""
PICTURE "###.###.###.###"
END
NUMERO 215
BEGIN
KEY "Importi in lire"
PROMPT 0 1 ""
PICTURE "###.###.###.###"
END END
STRING 401 STRING 401
@ -283,59 +323,24 @@ BEGIN
PROMPT 2 1 "Saldo <VALUTA> al <DATA>" PROMPT 2 1 "Saldo <VALUTA> al <DATA>"
END END
NUMERO 210
BEGIN
KEY "Dare"
PROMPT 0 1 ""
PICTURE "###.###.###.###"
END
NUMERO 211
BEGIN
KEY "Avere"
PROMPT 0 1 ""
PICTURE "###.###.###.###"
END
STRING 402 STRING 402
BEGIN BEGIN
KEY "Descrizione totale scaduto" KEY "Descrizione totale scaduto"
PROMPT 2 2 "Totale scaduto al <DATA SCADUTO>" PROMPT 2 2 "Totale scaduto al <DATA SCADUTO>"
END END
NUMERO 212
BEGIN
KEY "Scaduto"
PROMPT 0 1 ""
PICTURE "###.###.###.###"
END
STRING 403 STRING 403
BEGIN BEGIN
KEY "Descrizione totale esposto" KEY "Descrizione totale esposto"
PROMPT 2 3 "Totale esposto" PROMPT 2 3 "Totale esposto"
END END
NUMERO 213
BEGIN
KEY "Esposto"
PROMPT 0 1 ""
PICTURE "###.###.###.###"
END
STRING 404 STRING 404
BEGIN BEGIN
KEY "Descrizione totale importi in lire" KEY "Descrizione totale importi in lire"
PROMPT 2 4 "Importi in lire della valuta <DESCRIZIONE VALUTA>" PROMPT 2 4 "Importi in lire della valuta <DESCRIZIONE VALUTA>"
END END
NUMERO 215
BEGIN
KEY "Importi in lire"
PROMPT 0 1 ""
PICTURE "###.###.###.###"
END
END // Fine footer END // Fine footer

View File

@ -1,7 +1,7 @@
#include "scselmsk.h" #include "scselmsk.h"
#include "sc2100a.h" #include "sc2100a.h"
PAGE "Stampa estratti conto" -1 -1 68 17 PAGE "Stampa estratti conto" -1 -1 68 18
NUMBER F_CODDITTA 5 NUMBER F_CODDITTA 5
BEGIN BEGIN
@ -21,12 +21,12 @@ END
GROUPBOX DLG_NULL 68 8 GROUPBOX DLG_NULL 68 8
BEGIN BEGIN
PROMPT 0 7 "" PROMPT 0 2 ""
END END
NUMBER F_CODPROF 4 NUMBER F_CODPROF 4
BEGIN BEGIN
PROMPT 1 8 "Profilo " PROMPT 1 3 "Profilo "
FLAGS "Z" FLAGS "Z"
USE LF_FORM USE LF_FORM
INPUT TIPOPROF BASE_EC_PROFILE INPUT TIPOPROF BASE_EC_PROFILE
@ -44,7 +44,7 @@ END
STRING F_LINPROF 1 STRING F_LINPROF 1
BEGIN BEGIN
PROMPT 18 8 "" PROMPT 18 3 ""
FLAGS "U" FLAGS "U"
USE %LNG USE %LNG
INPUT CODTAB F_LINPROF INPUT CODTAB F_LINPROF
@ -57,109 +57,141 @@ END
STRING F_DESPROF 50 40 STRING F_DESPROF 50 40
BEGIN BEGIN
PROMPT 25 8 "" PROMPT 25 3 ""
FLAGS "D" FLAGS "D"
END END
DATE F_DATALIMOP DATE F_DATALIMOP
BEGIN BEGIN
PROMPT 1 9 "Data limite operazione " PROMPT 1 4 "Data limite operazione "
FLAGS "A" FLAGS "A"
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END END
DATE F_DATALIMSC DATE F_DATALIMSC
BEGIN BEGIN
PROMPT 1 10 "Data limite scaduto " PROMPT 1 5 "Data limite scaduto "
FLAGS "A" FLAGS "A"
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END END
NUMBER F_GIORISCH 3 NUMBER F_GIORISCH 3
BEGIN BEGIN
PROMPT 1 11 "Giorni calcolo rischio " PROMPT 1 6 "Giorni calcolo rischio "
GROUP 1 GROUP 1
END END
BOOLEAN F_STAMPCHIU BOOLEAN F_STAMPCHIU
BEGIN BEGIN
PROMPT 1 12 "Stampa partite chiuse" PROMPT 1 7 "Stampa partite chiuse"
MESSAGE FALSE DISABLE,F_DATACHIU MESSAGE FALSE DISABLE,F_DATACHIU
MESSAGE TRUE ENABLE,F_DATACHIU MESSAGE TRUE ENABLE,F_DATACHIU
END END
DATE F_DATACHIU DATE F_DATACHIU
BEGIN BEGIN
PROMPT 25 12 "dal " PROMPT 25 7 "dal "
FLAGS "D" FLAGS "D"
END END
STRING F_LUOGOSEND 50 32 STRING F_LUOGOSEND 50 32
BEGIN BEGIN
PROMPT 1 13 "Luogo d'invio " PROMPT 1 8 "Luogo d'invio "
END END
DATE F_DATASEND DATE F_DATASEND
BEGIN BEGIN
PROMPT 50 13 "data " PROMPT 50 8 "data "
FLAGS "A" FLAGS "A"
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END END
RADIOBUTTON SC_CLIFO 20 RADIOBUTTON SC_CLIFO 20
BEGIN BEGIN
PROMPT 1 2 "Selezione" PROMPT 0 10 "Selezione"
ITEM "C|Clienti" MESSAGE ENABLE,1@ ITEM "C|Clienti" MESSAGE ENABLE,1@
ITEM "F|Fornitori" MESSAGE CLEAR,1@ ITEM "F|Fornitori" MESSAGE CLEAR,1@
END END
RADIOBUTTON SC_SORTCF 20 RADIOBUTTON SC_SORTCF 20
BEGIN BEGIN
PROMPT 25 2 "Ordinamento" PROMPT 25 10 "Ordinamento"
ITEM "1|Per codice" ITEM "1|Per codice" MESSAGE HIDE,2@|SHOW,3@
ITEM "2|Per ragione sociale" ITEM "2|Per ragione sociale" MESSAGE HIDE,3@|SHOW,2@
END END
BUTTON SC_SELECT 10 1 BUTTON SC_SELECT 10 1
BEGIN BEGIN
PROMPT 51 3 "~Selezione" PROMPT 51 11 "~Selezione"
END END
BUTTON SC_RESET 10 1 BUTTON SC_RESET 10 1
BEGIN BEGIN
PROMPT 51 4 "~Azzera" PROMPT 51 12 "~Azzera"
END END
NUMBER SC_CFCODFR 5 NUMBER SC_CFCODFR 5
BEGIN BEGIN
PROMPT 1 6 "Da codice " PROMPT 1 14 "Da codice "
END GROUP 3
NUMBER SC_CFCODTO 5
BEGIN
PROMPT 36 6 "a codice "
END
NUMBER SC_NSEL 3
BEGIN
PROMPT 56 6 "N. "
FLAGS "D"
END END
BUTTON SC_CFBUTFR 2 1 BUTTON SC_CFBUTFR 2 1
BEGIN BEGIN
PROMPT 31 6 "" PROMPT 31 14 ""
PICTURE 109 PICTURE 109
GROUP 3
END
NUMBER SC_CFCODTO 5
BEGIN
PROMPT 36 14 "a codice "
GROUP 3
END END
BUTTON SC_CFBUTTO 2 1 BUTTON SC_CFBUTTO 2 1
BEGIN BEGIN
PROMPT 51 6 "" PROMPT 51 14 ""
PICTURE 109 PICTURE 109
GROUP 3
END END
STRING SC_CFDESFR 50 30
BEGIN
PROMPT 1 14 "Da ragione sociale "
GROUP 2
FLAGS "H"
END
BUTTON SC_CFDESBUTFR 2 1
BEGIN
PROMPT 51 14 ""
PICTURE 109
GROUP 2
FLAGS "H"
END
STRING SC_CFDESTO 50 30
BEGIN
PROMPT 1 15 "A ragione sociale "
GROUP 2
FLAGS "H"
END
BUTTON SC_CFDESBUTTO 2 1
BEGIN
PROMPT 51 15 ""
PICTURE 109
GROUP 2
FLAGS "H"
END
NUMBER SC_NSEL 3
BEGIN
PROMPT 56 14 "N. "
FLAGS "D"
END
BUTTON DLG_PRINT 10 2 BUTTON DLG_PRINT 10 2
BEGIN BEGIN

View File

@ -1,6 +1,6 @@
#include "sc2200.h" #include "sc2200.h"
PAGE "Stampa Scadenziario" -1 -1 68 17 PAGE "Stampa Scadenziario" -1 -1 68 18
NUMBER F_CODDITTA 5 NUMBER F_CODDITTA 5
BEGIN BEGIN
@ -18,125 +18,14 @@ BEGIN
FLAGS "D" FLAGS "D"
END END
BUTTON SC_SELECT 10 1 GROUPBOX DLG_NULL 68 7
BEGIN BEGIN
PROMPT 51 3 "~Selezione" PROMPT 0 2 ""
END
BUTTON SC_RESET 10 1
BEGIN
PROMPT 51 4 "~Azzera"
END
RADIOBUTTON SC_CLIFO 20
BEGIN
PROMPT 1 2 "Selezione"
ITEM "C|Clienti" MESSAGE HIDE,2@|SHOW,1@
ITEM "F|Fornitori" MESSAGE HIDE,2@|SHOW,1@
ITEM "P|Conti" MESSAGE HIDE,1@|SHOW,2@
END
RADIOBUTTON SC_SORTCF 20
BEGIN
GROUP 1
PROMPT 25 2 "Ordinamento"
ITEM "1|Per codice"
ITEM "2|Per ragione sociale"
END
RADIOBUTTON SC_SORTCFPCON 20
BEGIN
GROUP 2
PROMPT 25 2 "Ordinamento"
ITEM "1|Per conto"
ITEM "2|Per descrizione"
END
NUMBER SC_CFCODFR 5
BEGIN
PROMPT 1 7 "Da codice "
GROUP 1
END
NUMBER SC_CFCODTO 5
BEGIN
PROMPT 36 7 "a codice "
GROUP 1
END
NUMBER SC_PCONCODFR1 3
BEGIN
PROMPT 1 7 "Da conto "
GROUP 2
END
NUMBER SC_PCONCODFR2 3
BEGIN
PROMPT 16 7 ""
GROUP 2
END
NUMBER SC_PCONCODFR3 6
BEGIN
PROMPT 20 7 ""
GROUP 2
END
NUMBER SC_PCONCODTO1 3
BEGIN
PROMPT 31 7 "a conto "
GROUP 2
END
NUMBER SC_PCONCODTO2 3
BEGIN
PROMPT 43 7 ""
GROUP 2
END
NUMBER SC_PCONCODTO3 6
BEGIN
PROMPT 47 7 ""
GROUP 2
END
NUMBER SC_NSEL 3
BEGIN
PROMPT 60 7 "N. "
FLAGS "D"
END
BUTTON SC_CFBUTFR 2 1
BEGIN
PROMPT 31 7 ""
PICTURE 109
GROUP 1
END
BUTTON SC_CFBUTTO 2 1
BEGIN
PROMPT 51 7 ""
PICTURE 109
GROUP 1
END
BUTTON SC_PCONBUTFR 2 1
BEGIN
PROMPT 26 7 ""
PICTURE 109
GROUP 2
END
BUTTON SC_PCONBUTTO 2 1
BEGIN
PROMPT 53 7 ""
PICTURE 109
GROUP 2
END END
DATE F_DATASTAMPA DATE F_DATASTAMPA
BEGIN BEGIN
PROMPT 1 9 "Data di stampa " PROMPT 1 3 "Data di stampa "
HELP "Data di stampa dello scadenziario" HELP "Data di stampa dello scadenziario"
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
WARNING "Si deve specificare la data di stampa dello scadenziario" WARNING "Si deve specificare la data di stampa dello scadenziario"
@ -145,7 +34,7 @@ END
DATE F_DATASCADENZAI DATE F_DATASCADENZAI
BEGIN BEGIN
PROMPT 1 10 "Data di scadenza dal " PROMPT 1 4 "Data di scadenza dal "
HELP "Data di inizio scadenza" HELP "Data di inizio scadenza"
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
WARNING "Data di inizio scadenza non valida" WARNING "Data di inizio scadenza non valida"
@ -154,7 +43,7 @@ END
DATE F_DATASCADENZAF DATE F_DATASCADENZAF
BEGIN BEGIN
PROMPT 39 10 "al " PROMPT 39 4 "al "
HELP "Data di fine scadenza" HELP "Data di fine scadenza"
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
VALIDATE DATE_CMP_FUNC >= F_DATASCADENZAI VALIDATE DATE_CMP_FUNC >= F_DATASCADENZAI
@ -163,25 +52,196 @@ END
BOOLEAN F_RATESALDATE BOOLEAN F_RATESALDATE
BEGIN BEGIN
PROMPT 1 11 "Stampa rate saldate" PROMPT 1 5 "Stampa rate saldate"
HELP "Include le rate saldate nella stampa" HELP "Include le rate saldate nella stampa"
END END
BOOLEAN F_ORDDATA BOOLEAN F_ORDDATA
BEGIN BEGIN
PROMPT 1 12 "Ordina per data" PROMPT 1 6 "Ordina per data"
HELP "Selezionare se l'ordinamento primario deve essere secondo la data" HELP "Selezionare se l'ordinamento primario deve essere secondo la data"
END END
BOOLEAN F_VALUTA BOOLEAN F_VALUTA
BEGIN BEGIN
PROMPT 1 13 "Stampa in valuta" PROMPT 1 7 "Stampa in valuta"
HELP "Selezionare se si vuole la stampa in valuta" HELP "Selezionare se si vuole la stampa in valuta"
END END
GROUPBOX DLG_NULL 68 7 RADIOBUTTON SC_CLIFO 20
BEGIN BEGIN
PROMPT 0 8 "" PROMPT 0 9 "Selezione"
ITEM "C|Clienti" MESSAGE HIDE,2@|HIDE,5@|HIDE,6@|SHOW,1@|RESET,SC_SORTCF|SHOW,3@|HIDE,4@
ITEM "F|Fornitori" MESSAGE HIDE,2@|HIDE,5@|HIDE,6@|SHOW,1@|RESET,SC_SORTCF|SHOW,3@|HIDE,4@
ITEM "P|Conti" MESSAGE HIDE,1@|HIDE,3@|HIDE,4@|SHOW,2@|RESET,SC_SORTCFPCON|SHOW,5@|HIDE,6@
END
RADIOBUTTON SC_SORTCF 20
BEGIN
GROUP 1
PROMPT 25 9 "Ordinamento"
ITEM "1|Per codice" MESSAGE HIDE,4@|SHOW,3@
ITEM "2|Per ragione sociale" MESSAGE HIDE,3@|SHOW,4@
END
RADIOBUTTON SC_SORTCFPCON 20
BEGIN
GROUP 2
PROMPT 25 9 "Ordinamento"
ITEM "1|Per conto" MESSAGE HIDE,6@|SHOW,5@
ITEM "2|Per descrizione" MESSAGE HIDE,5@|SHOW,6@
END
BUTTON SC_SELECT 10 1
BEGIN
PROMPT 51 10 "~Selezione"
END
BUTTON SC_RESET 10 1
BEGIN
PROMPT 51 11 "~Azzera"
END
NUMBER SC_CFCODFR 5
BEGIN
PROMPT 1 14 "Da codice "
GROUP 3
END
BUTTON SC_CFBUTFR 2 1
BEGIN
PROMPT 31 14 ""
PICTURE 109
GROUP 3
END
NUMBER SC_CFCODTO 5
BEGIN
PROMPT 36 14 "a codice "
GROUP 3
END
BUTTON SC_CFBUTTO 2 1
BEGIN
PROMPT 51 14 ""
PICTURE 109
GROUP 3
END
STRING SC_CFDESFR 50 30
BEGIN
PROMPT 1 14 "Da ragione sociale "
GROUP 4
FLAGS "H"
END
BUTTON SC_CFDESBUTFR 2 1
BEGIN
PROMPT 51 14 ""
PICTURE 109
GROUP 4
FLAGS "H"
END
STRING SC_CFDESTO 50 30
BEGIN
PROMPT 1 15 "A ragione sociale "
GROUP 4
FLAGS "H"
END
BUTTON SC_CFDESBUTTO 2 1
BEGIN
PROMPT 51 15 ""
PICTURE 109
GROUP 4
FLAGS "H"
END
NUMBER SC_PCONCODFR1 3
BEGIN
PROMPT 1 14 "Da conto "
GROUP 5
END
NUMBER SC_PCONCODFR2 3
BEGIN
PROMPT 16 14 ""
GROUP 5
END
NUMBER SC_PCONCODFR3 6
BEGIN
PROMPT 20 14 ""
GROUP 5
END
BUTTON SC_PCONBUTFR 2 1
BEGIN
PROMPT 26 14 ""
PICTURE 109
GROUP 5
END
NUMBER SC_PCONCODTO1 3
BEGIN
PROMPT 31 14 "a conto "
GROUP 5
END
NUMBER SC_PCONCODTO2 3
BEGIN
PROMPT 43 14 ""
GROUP 5
END
NUMBER SC_PCONCODTO3 6
BEGIN
PROMPT 47 14 ""
GROUP 5
END
BUTTON SC_PCONBUTTO 2 1
BEGIN
PROMPT 53 14 ""
PICTURE 109
GROUP 5
END
STRING SC_PCONDESFR 50 30
BEGIN
PROMPT 1 14 "Da descrizione "
GROUP 6
FLAGS "H"
END
BUTTON SC_PCONDESBUTFR 2 1
BEGIN
PROMPT 51 14 ""
PICTURE 109
GROUP 6
FLAGS "H"
END
STRING SC_PCONDESTO 50 30
BEGIN
PROMPT 1 15 "A descrizione "
GROUP 6
FLAGS "H"
END
BUTTON SC_PCONDESBUTTO 2 1
BEGIN
PROMPT 51 15 ""
PICTURE 109
GROUP 6
FLAGS "H"
END
NUMBER SC_NSEL 3
BEGIN
PROMPT 60 14 "N. "
FLAGS "D"
END END
BUTTON DLG_PRINT 10 2 BUTTON DLG_PRINT 10 2

View File

@ -35,6 +35,10 @@ TSelection_ext_mask::TSelection_ext_mask(const char* name) : TSelection_mask(nam
set_handler(SC_RESET, bresetpcon_handler); // Redefined handler... set_handler(SC_RESET, bresetpcon_handler); // Redefined handler...
set_handler(SC_PCONCODFR3, ffrompcon_handler); // New handler... set_handler(SC_PCONCODFR3, ffrompcon_handler); // New handler...
set_handler(SC_PCONCODTO3, ftopcon_handler); // New handler... set_handler(SC_PCONCODTO3, ftopcon_handler); // New handler...
set_handler(SC_PCONDESBUTFR, bdfrompcon_handler); // New handler...
set_handler(SC_PCONDESBUTTO, bdtopcon_handler); // New handler...
set_handler(SC_PCONDESFR, fdfrompcon_handler); // New handler...
set_handler(SC_PCONDESTO, fdtopcon_handler); // New handler...
} }
TSelection_ext_mask::~TSelection_ext_mask() TSelection_ext_mask::~TSelection_ext_mask()
@ -69,27 +73,47 @@ void TSelection_ext_mask::reset_sheets()
reset(SC_PCONCODTO1); reset(SC_PCONCODTO1);
reset(SC_PCONCODTO2); reset(SC_PCONCODTO2);
reset(SC_PCONCODTO3); reset(SC_PCONCODTO3);
reset(SC_PCONDESFR);
reset(SC_PCONDESTO);
} }
void TSelection_ext_mask::select_pcon_range(TString& desfr, TString& desto) void TSelection_ext_mask::select_des_pcon_range(const TString& from, const TString& to)
{ {
TCursor_sheet& c = cur_sheet(); TCursor_sheet& c = cur_sheet();
const long items = c.items(); const long items = c.items();
const int key = get_key(); const int key = get_key();
CHECK(key == 2, "La chiave deve essere la 2");
TString s_from(from), s_to(to);
if (s_to.empty() && items)
s_to = c.row(items-1).get(1);
s_from.upper();
s_to.upper();
if (s_from > s_to) // Controlla limiti
{
s_to = from;
s_from = to;
set(SC_PCONDESFR, to);
set(SC_PCONDESTO, from);
}
else
{
if (to.not_empty()) s_to = to;
s_from = from;
}
TString last;
TString firs;
TCursor* crs = c.cursor(); TCursor* crs = c.cursor();
TRectype& rec = crs->file().curr(); TRectype& rec = crs->file().curr();
rec.zero(); rec.zero();
rec.put(PCN_DESCR,desfr); rec.put(PCN_DESCR,s_from);
const TRecnotype start = crs->read(_isgteq); const TRecnotype start = crs->read(_isgteq);
int grf = rec.get_int(PCN_GRUPPO); firs = rec.get(PCN_DESCR);
int cof = rec.get_int(PCN_CONTO);
long sof = rec.get_long(PCN_SOTTOCONTO);
int grt, cot;
long sot;
rec.zero(); rec.zero();
rec.put(PCN_DESCR,desto); rec.put(PCN_DESCR,s_to);
TRectype recx(rec); TRectype recx(rec);
TRecnotype end = crs->read(_isgteq); TRecnotype end = crs->read(_isgteq);
if (rec != recx) if (rec != recx)
@ -97,19 +121,55 @@ void TSelection_ext_mask::select_pcon_range(TString& desfr, TString& desto)
end--; end--;
(*crs)-=1; (*crs)-=1;
} }
grt = rec.get_int(PCN_GRUPPO); last = rec.get(PCN_DESCR);
cot = rec.get_int(PCN_CONTO);
sot = rec.get_long(PCN_SOTTOCONTO);
c.uncheck(-1); c.uncheck(-1);
for (long i = start; i <= end; i++) for (long i = start; i <= end; i++)
//if (!c.checked(i))
c.check(i); c.check(i);
set(SC_PCONCODFR1, grf); if (get(SC_PCONDESFR).not_empty())
set(SC_PCONCODFR2, cof); set(SC_PCONDESFR, firs);
set(SC_PCONCODFR3, sof); if (get(SC_PCONDESTO).not_empty())
set(SC_PCONCODTO1, grt); set(SC_PCONDESTO, last);
set(SC_PCONCODTO2, cot); set(SC_NSEL, c.checked());
set(SC_PCONCODTO3, sot); }
void TSelection_ext_mask::set_des_pcon_limits()
{
long first=-1, last=-1;
TString from,to;
TCursor_sheet& c = cur_sheet();
const long items = c.items();
const int key = get_key();
CHECK(key == 2, "La chiave deve essere la 2");
for (long i = 0; i < items; i++)
if (c.checked(i))
{
if (first == -1)
first = i;
}
if (first != -1)
for (long j = (items-1); j >= 0 ; j--)
if (c.checked(j))
if (last == -1)
{
last = j;
break;
}
if (first!= -1 && last != -1)
{
TToken_string fitem(c.row(first));
TToken_string litem(c.row(last));
from = fitem.get(1);
to = litem.get(1);
if (from>to)
{
TString temp(to);
to=from;
from=temp;
}
}
set(SC_PCONDESFR, from);
set(SC_PCONDESTO, to);
set(SC_NSEL, c.checked()); set(SC_NSEL, c.checked());
} }
@ -118,9 +178,22 @@ void TSelection_ext_mask::select_pcon_range(int grf, int cof,long sof,int grt,in
TCursor_sheet& c = cur_sheet(); TCursor_sheet& c = cur_sheet();
const long items = c.items(); const long items = c.items();
const int key = get_key(); const int key = get_key();
TString desfr,desto;
TCursor* crs = c.cursor(); TCursor* crs = c.cursor();
if (grt==0 && cot==0 && sot==0 && items)
{
TToken_string& t = c.row(items-1);
grt = t.get_int(key);
cot = t.get_int(key+1);
sot = t.get_long(key+2);
}
if (grf > grt || (grf==grt && cof > cot) || (grf==grt && cof==cot && sof>sot))
{ // Swap them...
int t1 = grf,t2 = cof;long t3 = sof;
grf=grt;cof=cot;sof=sot;
grt=t1;cot=t2;sot=t3;
}
TRectype& rec = crs->file().curr(); TRectype& rec = crs->file().curr();
rec.zero(); rec.zero();
rec.put(PCN_GRUPPO,grf); rec.put(PCN_GRUPPO,grf);
@ -132,13 +205,6 @@ void TSelection_ext_mask::select_pcon_range(int grf, int cof,long sof,int grt,in
cof = rec.get_int(PCN_CONTO); cof = rec.get_int(PCN_CONTO);
sof = rec.get_long(PCN_SOTTOCONTO); sof = rec.get_long(PCN_SOTTOCONTO);
rec.zero(); rec.zero();
if (grt==0 && cot==0 && sot==0)
{
TToken_string& t = c.row(items-1);
grt = t.get_int(key);
cot = t.get_int(key+1);
sot = t.get_long(key+2);
}
rec.put(PCN_GRUPPO,grt); rec.put(PCN_GRUPPO,grt);
rec.put(PCN_CONTO,cot); rec.put(PCN_CONTO,cot);
rec.put(PCN_SOTTOCONTO,sot); rec.put(PCN_SOTTOCONTO,sot);
@ -154,7 +220,6 @@ void TSelection_ext_mask::select_pcon_range(int grf, int cof,long sof,int grt,in
sot = rec.get_long(PCN_SOTTOCONTO); sot = rec.get_long(PCN_SOTTOCONTO);
c.uncheck(-1); c.uncheck(-1);
for (long i = start; i <= end; i++) for (long i = start; i <= end; i++)
//if (!c.checked(i))
c.check(i); c.check(i);
set(SC_PCONCODFR1, grf); set(SC_PCONCODFR1, grf);
set(SC_PCONCODFR2, cof); set(SC_PCONCODFR2, cof);
@ -174,7 +239,6 @@ void TSelection_ext_mask::set_pcon_limits()
const long items = c.items(); const long items = c.items();
const int key = get_key(); const int key = get_key();
long first = -1, last = -1; long first = -1, last = -1;
long nsel = 0L;
// Ricerca veloce di estremi (vale solo su GR/CO/SO) // Ricerca veloce di estremi (vale solo su GR/CO/SO)
for (long i = 0; i < items; i++) for (long i = 0; i < items; i++)
@ -182,7 +246,6 @@ void TSelection_ext_mask::set_pcon_limits()
{ {
if (first == -1) if (first == -1)
first = i; first = i;
nsel ++;
} }
if (first != -1) //Optimization... If nothing was found previously skip this test. if (first != -1) //Optimization... If nothing was found previously skip this test.
for (long j = (items-1); j >= 0 ; j--) for (long j = (items-1); j >= 0 ; j--)
@ -215,7 +278,7 @@ void TSelection_ext_mask::set_pcon_limits()
set(SC_PCONCODTO1, gl); set(SC_PCONCODTO1, gl);
set(SC_PCONCODTO2, cl); set(SC_PCONCODTO2, cl);
set(SC_PCONCODTO3, sl); set(SC_PCONCODTO3, sl);
set(SC_NSEL, nsel); set(SC_NSEL, c.checked());
} }
bool TSelection_ext_mask::bfrompcon_handler(TMask_field& f, KEY k) bool TSelection_ext_mask::bfrompcon_handler(TMask_field& f, KEY k)
@ -240,19 +303,7 @@ bool TSelection_ext_mask::bfrompcon_handler(TMask_field& f, KEY k)
m.set(SC_PCONCODFR1, grf); m.set(SC_PCONCODFR1, grf);
m.set(SC_PCONCODFR2, cof); m.set(SC_PCONCODFR2, cof);
m.set(SC_PCONCODFR3, sof); m.set(SC_PCONCODFR3, sof);
if (m.get_key() == 2) m.select_pcon_range(grf,cof,sof,grt,cot,sot);
{
TLocalisamfile pcon(LF_PCON);
pcon.zero();
pcon.put(PCN_GRUPPO,grf);
pcon.put(PCN_CONTO,cof);
pcon.put(PCN_SOTTOCONTO,sof);
pcon.read();
TString d1(t.get(1)),d2(pcon.get(PCN_DESCR));
m.select_pcon_range(d1,d2);
}
else
m.select_pcon_range(grf,cof,sof,grt,cot,sot);
} }
} }
return TRUE; return TRUE;
@ -280,19 +331,7 @@ bool TSelection_ext_mask::btopcon_handler(TMask_field& f, KEY k)
m.set(SC_PCONCODTO1, grt); m.set(SC_PCONCODTO1, grt);
m.set(SC_PCONCODTO2, cot); m.set(SC_PCONCODTO2, cot);
m.set(SC_PCONCODTO3, sot); m.set(SC_PCONCODTO3, sot);
if (m.get_key() == 2) m.select_pcon_range(grf,cof,sof,grt,cot,sot);
{
TLocalisamfile pcon(LF_PCON);
pcon.zero();
pcon.put(PCN_GRUPPO,grf);
pcon.put(PCN_CONTO,cof);
pcon.put(PCN_SOTTOCONTO,sof);
pcon.read();
TString d1(pcon.get(PCN_DESCR)),d2(t.get(1));
m.select_pcon_range(d1,d2);
}
else
m.select_pcon_range(grf,cof,sof,grt,cot,sot);
} }
} }
return TRUE; return TRUE;
@ -312,25 +351,7 @@ bool TSelection_ext_mask::ffrompcon_handler(TMask_field& f, KEY k)
grt = m.get_int(SC_PCONCODTO1); grt = m.get_int(SC_PCONCODTO1);
cot = m.get_int(SC_PCONCODTO2); cot = m.get_int(SC_PCONCODTO2);
sot = m.get_long(SC_PCONCODTO3); sot = m.get_long(SC_PCONCODTO3);
if (m.get_key() == 2) m.select_pcon_range(grf,cof,sof,grt,cot,sot);
{
TLocalisamfile pcon(LF_PCON);
TString dfr,dto;
pcon.zero();
pcon.put(PCN_GRUPPO,grf);
pcon.put(PCN_CONTO,cof);
pcon.put(PCN_SOTTOCONTO,sof);
pcon.read();
dfr = pcon.get(PCN_DESCR);
pcon.put(PCN_GRUPPO,grf);
pcon.put(PCN_CONTO,cof);
pcon.put(PCN_SOTTOCONTO,sof);
pcon.read();
dto = pcon.get(PCN_DESCR);
m.select_pcon_range(dfr,dto);
}
else
m.select_pcon_range(grf,cof,sof,grt,cot,sot);
} }
else else
if (k == K_F9) if (k == K_F9)
@ -356,25 +377,7 @@ bool TSelection_ext_mask::ftopcon_handler(TMask_field& f, KEY k)
grt = m.get_int(SC_PCONCODTO1); grt = m.get_int(SC_PCONCODTO1);
cot = m.get_int(SC_PCONCODTO2); cot = m.get_int(SC_PCONCODTO2);
sot = m.get_long(SC_PCONCODTO3); sot = m.get_long(SC_PCONCODTO3);
if (m.get_key() == 2) m.select_pcon_range(grf,cof,sof,grt,cot,sot);
{
TLocalisamfile pcon(LF_PCON);
TString dfr,dto;
pcon.zero();
pcon.put(PCN_GRUPPO,grf);
pcon.put(PCN_CONTO,cof);
pcon.put(PCN_SOTTOCONTO,sof);
pcon.read();
dfr = pcon.get(PCN_DESCR);
pcon.put(PCN_GRUPPO,grf);
pcon.put(PCN_CONTO,cof);
pcon.put(PCN_SOTTOCONTO,sof);
pcon.read();
dto = pcon.get(PCN_DESCR);
m.select_pcon_range(dfr,dto);
}
else
m.select_pcon_range(grf,cof,sof,grt,cot,sot);
} }
else else
if (k == K_F9) if (k == K_F9)
@ -385,6 +388,85 @@ bool TSelection_ext_mask::ftopcon_handler(TMask_field& f, KEY k)
return TRUE; return TRUE;
} }
bool TSelection_ext_mask::bdfrompcon_handler(TMask_field& f, KEY k)
{
if (k == K_SPACE)
{
TSelection_ext_mask& m = (TSelection_ext_mask&)f.mask();
TCursor_sheet& c = m.cur_sheet();
c.disable_check();
if (c.run() == K_ENTER)
{
TToken_string& t = c.row(c.selected());
const TString des1(t.get(3 - m.get_key()));
const TString des2 = m.get(SC_PCONDESTO);
m.set(SC_PCONDESFR, des1);
m.select_des_pcon_range(des1, des2);
}
}
return TRUE;
}
bool TSelection_ext_mask::bdtopcon_handler(TMask_field& f, KEY k)
{
if (k == K_SPACE)
{
TSelection_ext_mask& m = (TSelection_ext_mask&)f.mask();
TCursor_sheet& c = m.cur_sheet();
c.disable_check();
if (c.run() == K_ENTER)
{
TToken_string& t = c.row(c.selected());
const TString des1(m.get(SC_PCONDESFR));
const TString des2(t.get(3 - m.get_key()));
m.set(SC_PCONDESTO, des2);
m.select_des_pcon_range(des1, des2);
}
}
return TRUE;
}
bool TSelection_ext_mask::fdfrompcon_handler(TMask_field& f, KEY k)
{
TSelection_ext_mask& m = (TSelection_ext_mask&)f.mask();
if (k == K_TAB && f.focusdirty())
{
const TString des1(f.get());
const TString des2(m.get(SC_PCONDESTO));
m.select_des_pcon_range(des1, des2);
}
else
if (k == K_F9)
{
TMask_field& f = m.field(SC_PCONDESBUTFR);
f.on_hit();
}
return TRUE;
}
bool TSelection_ext_mask::fdtopcon_handler(TMask_field& f, KEY k)
{
TSelection_ext_mask& m = (TSelection_ext_mask&)f.mask();
if (k == K_TAB && f.focusdirty())
{
const TString des2(f.get());
const TString des1(m.get(SC_PCONDESFR));
m.select_des_pcon_range(des1, des2);
}
else
if (k == K_F9)
{
TMask_field& f = m.field(SC_PCONDESBUTTO);
f.on_hit();
}
return TRUE;
}
bool TSelection_ext_mask::bresetpcon_handler(TMask_field& f, KEY k) bool TSelection_ext_mask::bresetpcon_handler(TMask_field& f, KEY k)
{ {
if (k == K_SPACE) if (k == K_SPACE)
@ -403,10 +485,18 @@ bool TSelection_ext_mask::bselectpcon_handler(TMask_field& f, KEY k)
TCursor_sheet& c = m.cur_sheet(); TCursor_sheet& c = m.cur_sheet();
c.enable_check(); c.enable_check();
c.run(); c.run();
if (m.get_who() =='P') char who = m.get_who();
m.set_pcon_limits(); int key = m.get_key();
if (who =='P')
if (key == 2)
m.set_des_pcon_limits();
else
m.set_pcon_limits();
else else
m.set_clifo_limits(); if (key == 2)
m.set_des_clifo_limits();
else
m.set_clifo_limits();
} }
return TRUE; return TRUE;
} }
@ -417,9 +507,11 @@ bool TSelection_ext_mask::rpcon_handler(TMask_field& f, KEY k)
{ {
TSelection_ext_mask& m = (TSelection_ext_mask&)f.mask(); TSelection_ext_mask& m = (TSelection_ext_mask&)f.mask();
char who = f.get()[0]; char who = f.get()[0];
m.set_who(who); if (who != m.get_who())
if (who == 'P') {
m.set_key(1); m.set_key(1);
m.set_who(who);
}
m.reset_sheets(); m.reset_sheets();
} }
return TRUE; return TRUE;

View File

@ -16,8 +16,9 @@ class TSelection_ext_mask : public TSelection_mask
protected: protected:
void select_pcon_range(int grf, int cof,long sof,int grt,int cot, long sot); void select_pcon_range(int grf, int cof,long sof,int grt,int cot, long sot);
void select_pcon_range(TString& desfr, TString& desto); void select_des_pcon_range(const TString& from, const TString& to);
void set_pcon_limits(); void set_pcon_limits();
void set_des_pcon_limits();
virtual void reset_sheets(); virtual void reset_sheets();
static bool bfrompcon_handler(TMask_field& f, KEY k); static bool bfrompcon_handler(TMask_field& f, KEY k);
@ -28,6 +29,10 @@ protected:
static bool bselectpcon_handler(TMask_field& f, KEY k); static bool bselectpcon_handler(TMask_field& f, KEY k);
static bool rpcon_handler(TMask_field& f, KEY k); static bool rpcon_handler(TMask_field& f, KEY k);
static bool rsortpcon_handler(TMask_field& f, KEY k); static bool rsortpcon_handler(TMask_field& f, KEY k);
static bool bdfrompcon_handler(TMask_field& f, KEY k);
static bool bdtopcon_handler(TMask_field& f, KEY k);
static bool fdfrompcon_handler(TMask_field& f, KEY k);
static bool fdtopcon_handler(TMask_field& f, KEY k);
public: public:
virtual TCursor_sheet& cur_sheet(); virtual TCursor_sheet& cur_sheet();

View File

@ -1,6 +1,6 @@
#include "sc2300.h" #include "sc2300.h"
PAGE "Stampa Scaduto" -1 -1 68 16 PAGE "Stampa Scaduto" -1 -1 68 18
NUMBER F_CODDITTA 5 NUMBER F_CODDITTA 5
BEGIN BEGIN
@ -18,125 +18,14 @@ BEGIN
FLAGS "D" FLAGS "D"
END END
BUTTON SC_SELECT 10 1 GROUPBOX DLG_NULL 68 7
BEGIN BEGIN
PROMPT 51 3 "~Selezione" PROMPT 0 2 ""
END
BUTTON SC_RESET 10 1
BEGIN
PROMPT 51 4 "~Azzera"
END
RADIOBUTTON SC_CLIFO 20
BEGIN
PROMPT 1 2 "Selezione"
ITEM "C|Clienti" MESSAGE ENABLE, F_GIORNI|HIDE,2@|SHOW,1@
ITEM "F|Fornitori" MESSAGE DISABLE, F_GIORNI|HIDE,2@|SHOW,1@
ITEM "P|Conti" MESSAGE DISABLE, F_GIORNI|HIDE,1@|SHOW,2@
END
RADIOBUTTON SC_SORTCF 20
BEGIN
GROUP 1
PROMPT 25 2 "Ordinamento"
ITEM "1|Per codice"
ITEM "2|Per ragione sociale"
END
RADIOBUTTON SC_SORTCFPCON 20
BEGIN
GROUP 2
PROMPT 25 2 "Ordinamento"
ITEM "1|Per conto"
ITEM "2|Per descrizione"
END
NUMBER SC_CFCODFR 5
BEGIN
PROMPT 1 7 "Da codice "
GROUP 1
END
NUMBER SC_CFCODTO 5
BEGIN
PROMPT 36 7 "a codice "
GROUP 1
END
NUMBER SC_PCONCODFR1 3
BEGIN
PROMPT 1 7 "Da conto "
GROUP 2
END
NUMBER SC_PCONCODFR2 3
BEGIN
PROMPT 16 7 ""
GROUP 2
END
NUMBER SC_PCONCODFR3 6
BEGIN
PROMPT 20 7 ""
GROUP 2
END
NUMBER SC_PCONCODTO1 3
BEGIN
PROMPT 31 7 "a conto "
GROUP 2
END
NUMBER SC_PCONCODTO2 3
BEGIN
PROMPT 43 7 ""
GROUP 2
END
NUMBER SC_PCONCODTO3 6
BEGIN
PROMPT 47 7 ""
GROUP 2
END
NUMBER SC_NSEL 3
BEGIN
PROMPT 60 7 "N. "
FLAGS "D"
END
BUTTON SC_CFBUTFR 2 1
BEGIN
PROMPT 31 7 ""
PICTURE 109
GROUP 1
END
BUTTON SC_CFBUTTO 2 1
BEGIN
PROMPT 51 7 ""
PICTURE 109
GROUP 1
END
BUTTON SC_PCONBUTFR 2 1
BEGIN
PROMPT 26 7 ""
PICTURE 109
GROUP 2
END
BUTTON SC_PCONBUTTO 2 1
BEGIN
PROMPT 53 7 ""
PICTURE 109
GROUP 2
END END
DATE F_DATASTAMPA DATE F_DATASTAMPA
BEGIN BEGIN
PROMPT 1 9 "Data di stampa " PROMPT 1 3 "Data di stampa "
HELP "Data di stampa" HELP "Data di stampa"
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
WARNING "Si deve specificare la data di stampa" WARNING "Si deve specificare la data di stampa"
@ -145,7 +34,7 @@ END
DATE F_DATAOPERAZIONE DATE F_DATAOPERAZIONE
BEGIN BEGIN
PROMPT 1 10 "Data limite operazione " PROMPT 1 4 "Data limite operazione "
HELP "Data limite operazione" HELP "Data limite operazione"
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
VALIDATE DATE_CMP_FUNC >= F_DATASCADUTO VALIDATE DATE_CMP_FUNC >= F_DATASCADUTO
@ -155,7 +44,7 @@ END
DATE F_DATASCADUTO DATE F_DATASCADUTO
BEGIN BEGIN
PROMPT 1 11 "Data limite scaduto " PROMPT 1 5 "Data limite scaduto "
HELP "Data limite scaduto" HELP "Data limite scaduto"
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
WARNING "Data limite scaduto non valida" WARNING "Data limite scaduto non valida"
@ -163,19 +52,190 @@ END
NUMBER F_GIORNI 3 NUMBER F_GIORNI 3
BEGIN BEGIN
PROMPT 1 12 "Giorni per calcolo rischio " PROMPT 1 6 "Giorni per calcolo rischio "
HELP "Inserire il numero di giorni per il calcolo del rischio" HELP "Inserire il numero di giorni per il calcolo del rischio"
END END
BOOLEAN F_VALUTA BOOLEAN F_VALUTA
BEGIN BEGIN
PROMPT 1 13 "Stampa in valuta" PROMPT 1 7 "Stampa in valuta"
HELP "Selezionare se si vuole la stampa in valuta" HELP "Selezionare se si vuole la stampa in valuta"
END END
GROUPBOX DLG_NULL 68 7 RADIOBUTTON SC_CLIFO 20
BEGIN BEGIN
PROMPT 0 8 "" PROMPT 0 9 "Selezione"
ITEM "C|Clienti" MESSAGE ENABLE, F_GIORNI|HIDE,2@|HIDE,5@|HIDE,6@|SHOW,1@|RESET,SC_SORTCF|SHOW,3@|HIDE,4@
ITEM "F|Fornitori" MESSAGE DISABLE, F_GIORNI|HIDE,2@|HIDE,5@|HIDE,6@|SHOW,1@|RESET,SC_SORTCF|SHOW,3@|HIDE,4@
ITEM "P|Conti" MESSAGE DISABLE, F_GIORNI|HIDE,1@|HIDE,3@|HIDE,4@|SHOW,2@|RESET,SC_SORTCFPCON|SHOW,5@|HIDE,6@
END
RADIOBUTTON SC_SORTCF 20
BEGIN
GROUP 1
PROMPT 25 9 "Ordinamento"
ITEM "1|Per codice" MESSAGE HIDE,4@|SHOW,3@
ITEM "2|Per ragione sociale" MESSAGE HIDE,3@|SHOW,4@
END
RADIOBUTTON SC_SORTCFPCON 20
BEGIN
GROUP 2
PROMPT 25 9 "Ordinamento"
ITEM "1|Per conto" MESSAGE HIDE,6@|SHOW,5@
ITEM "2|Per descrizione" MESSAGE HIDE,5@|SHOW,6@
END
BUTTON SC_SELECT 10 1
BEGIN
PROMPT 51 10 "~Selezione"
END
BUTTON SC_RESET 10 1
BEGIN
PROMPT 51 11 "~Azzera"
END
NUMBER SC_CFCODFR 5
BEGIN
PROMPT 1 14 "Da codice "
GROUP 3
END
BUTTON SC_CFBUTFR 2 1
BEGIN
PROMPT 31 14 ""
PICTURE 109
GROUP 3
END
NUMBER SC_CFCODTO 5
BEGIN
PROMPT 36 14 "a codice "
GROUP 3
END
BUTTON SC_CFBUTTO 2 1
BEGIN
PROMPT 51 14 ""
PICTURE 109
GROUP 3
END
STRING SC_CFDESFR 50 30
BEGIN
PROMPT 1 14 "Da ragione sociale "
GROUP 4
FLAGS "H"
END
BUTTON SC_CFDESBUTFR 2 1
BEGIN
PROMPT 51 14 ""
PICTURE 109
GROUP 4
FLAGS "H"
END
STRING SC_CFDESTO 50 30
BEGIN
PROMPT 1 15 "A ragione sociale "
GROUP 4
FLAGS "H"
END
BUTTON SC_CFDESBUTTO 2 1
BEGIN
PROMPT 51 15 ""
PICTURE 109
GROUP 4
FLAGS "H"
END
NUMBER SC_PCONCODFR1 3
BEGIN
PROMPT 1 14 "Da conto "
GROUP 5
END
NUMBER SC_PCONCODFR2 3
BEGIN
PROMPT 16 14 ""
GROUP 5
END
NUMBER SC_PCONCODFR3 6
BEGIN
PROMPT 20 14 ""
GROUP 5
END
BUTTON SC_PCONBUTFR 2 1
BEGIN
PROMPT 26 14 ""
PICTURE 109
GROUP 5
END
NUMBER SC_PCONCODTO1 3
BEGIN
PROMPT 31 14 "a conto "
GROUP 5
END
NUMBER SC_PCONCODTO2 3
BEGIN
PROMPT 43 14 ""
GROUP 5
END
NUMBER SC_PCONCODTO3 6
BEGIN
PROMPT 47 14 ""
GROUP 5
END
BUTTON SC_PCONBUTTO 2 1
BEGIN
PROMPT 53 14 ""
PICTURE 109
GROUP 5
END
STRING SC_PCONDESFR 50 30
BEGIN
PROMPT 1 14 "Da descrizione "
GROUP 6
FLAGS "H"
END
BUTTON SC_PCONDESBUTFR 2 1
BEGIN
PROMPT 51 14 ""
PICTURE 109
GROUP 6
FLAGS "H"
END
STRING SC_PCONDESTO 50 30
BEGIN
PROMPT 1 15 "A descrizione "
GROUP 6
FLAGS "H"
END
BUTTON SC_PCONDESBUTTO 2 1
BEGIN
PROMPT 51 15 ""
PICTURE 109
GROUP 6
FLAGS "H"
END
NUMBER SC_NSEL 3
BEGIN
PROMPT 60 14 "N. "
FLAGS "D"
END END
BUTTON DLG_PRINT 10 2 BUTTON DLG_PRINT 10 2

View File

@ -32,11 +32,16 @@ class TForm_EC_editor : public TForm_editor
protected: protected:
static bool cpy_handler(TMask_field& f, KEY k); static bool cpy_handler(TMask_field& f, KEY k);
static bool font_handler(TMask_field& f, KEY k); static bool font_handler(TMask_field& f, KEY k);
static bool code_handler(TMask_field& f, KEY k);
static bool lng_handler(TMask_field& f, KEY k);
static bool ccodes_handler(TMask_field& f, KEY k);
static bool clngs_handler(TMask_field& f, KEY k);
void load_fonts(); void load_fonts();
void change_pos(char sc, pagetype pt); void change_pos(char sc, pagetype pt);
bool recalculate_positions(const char* name, int size); bool recalculate_positions(const char* name, int size);
void hook_footer_to_body(TPrint_section* f, TPrint_section* b); void hook_footer_to_body(TPrint_section* f, TPrint_section* b);
void unhook_footer(TPrint_section* f); void unhook_footer(TPrint_section* f);
void remove_form(TLocalisamfile& frm, TLocalisamfile& rfr,const TString& t,const TString& c);
virtual const char* selection_mask() const { return "sc3100a"; } virtual const char* selection_mask() const { return "sc3100a"; }
virtual bool ask_profile(); virtual bool ask_profile();
virtual bool edit(char s, pagetype p); virtual bool edit(char s, pagetype p);
@ -65,13 +70,53 @@ BOOLEAN XVT_CALLCONV1 wprms (long data)
return FALSE; return FALSE;
} }
bool TForm_EC_editor::ccodes_handler(TMask_field& f, KEY k)
{
TMask& m = f.mask();
if (f.dirty() && m.get(F_CBASE).empty())
m.set(F_CBASE,BASE_EC_PROFILE);
if (k==K_TAB)
{
TString base(m.get(F_CBASE));
TString code(f.get());
code << m.get(F_CCODELS);
TLocalisamfile frm(LF_FORM);
frm.zero();
frm.put("TIPOPROF",base);
frm.put("CODPROF",code);
if (frm.read(_isequal)== NOERR)
m.set(F_CDESCS,frm.get("DESC"));
}
return TRUE;
}
bool TForm_EC_editor::clngs_handler(TMask_field& f, KEY key)
{
if (key==K_TAB)
{
TMask& m = f.mask();
TString base(m.get(F_CBASE));
TString code(m.get(F_CCODES));
code << f.get();
TLocalisamfile frm(LF_FORM);
frm.zero();
frm.put("TIPOPROF",base);
frm.put("CODPROF",code);
if (frm.read(_isequal)== NOERR)
m.set(F_CDESCS,frm.get("DESC"));
}
return TRUE;
}
bool TForm_EC_editor::cpy_handler(TMask_field& f, KEY k) bool TForm_EC_editor::cpy_handler(TMask_field& f, KEY k)
{ {
if (k==K_SPACE) if (k==K_SPACE)
{ {
TLocalisamfile frm(LF_FORM),rfr(LF_RFORM); TLocalisamfile frm(LF_FORM),rfr(LF_RFORM);
TMask mm("sc3100b"); TMask mm("sc3100b");
if (mm.run() == K_ENTER) // Prende in input il nome del profilo sorgente mm.set_handler(F_CCODES,ccodes_handler);
mm.set_handler(F_CCODELS,clngs_handler);
while (mm.run() == K_ENTER) // Prende in input il nome del profilo sorgente
{ {
long scode = mm.get_long(F_CCODES); long scode = mm.get_long(F_CCODES);
long dcode = mm.get_long(F_CCODED); long dcode = mm.get_long(F_CCODED);
@ -87,7 +132,7 @@ bool TForm_EC_editor::cpy_handler(TMask_field& f, KEY k)
if (frm.read()==NOERR) if (frm.read()==NOERR)
{ {
error_box("Il profilo specificato come destinazione e' gia' esistente."); error_box("Il profilo specificato come destinazione e' gia' esistente.");
return TRUE; continue;
} }
//Effettua la copia dei record. //Effettua la copia dei record.
frm.zero(); frm.put("TIPOPROF",form); // Questo vale per tutti frm.zero(); frm.put("TIPOPROF",form); // Questo vale per tutti
@ -102,7 +147,7 @@ bool TForm_EC_editor::cpy_handler(TMask_field& f, KEY k)
if (frm.status() != NOERR) if (frm.status() != NOERR)
{ {
error_box("Errore %d in scrittura testata profilo.",frm.status()); error_box("Errore %d in scrittura testata profilo.",frm.status());
return TRUE; break;
} }
TProgind pi(50,"Copia in corso...",FALSE,FALSE,10); TProgind pi(50,"Copia in corso...",FALSE,FALSE,10);
rfr.zero();rfr.put("TIPOPROF",form); rfr.zero();rfr.put("TIPOPROF",form);
@ -120,7 +165,7 @@ bool TForm_EC_editor::cpy_handler(TMask_field& f, KEY k)
if (rfr_to_write.status() != NOERR) if (rfr_to_write.status() != NOERR)
{ {
error_box("Errore %d in scrittura righe profilo.",rfr_to_write.status()); error_box("Errore %d in scrittura righe profilo.",rfr_to_write.status());
return TRUE; break ;
} }
} else } else
error_box("Non esiste il profilo sorgente specificato."); error_box("Non esiste il profilo sorgente specificato.");
@ -129,6 +174,45 @@ bool TForm_EC_editor::cpy_handler(TMask_field& f, KEY k)
return TRUE; return TRUE;
} }
bool TForm_EC_editor::code_handler(TMask_field& f, KEY key)
{
TMask& m = f.mask();
if (f.dirty() && m.get(F_BASE).empty())
m.set(F_BASE,BASE_EC_PROFILE);
if (key==K_TAB)
{
TString base(m.get(F_BASE));
TString code(f.get());
code << m.get(F_CODEL);
TLocalisamfile frm(LF_FORM);
frm.zero();
frm.put("TIPOPROF",base);
frm.put("CODPROF",code);
if (frm.read(_isequal)== NOERR)
m.set(F_DESC,frm.get("DESC"));
}
return TRUE;
}
bool TForm_EC_editor::lng_handler(TMask_field& f, KEY key)
{
if (key==K_TAB)
{
TMask& m = f.mask();
TString base(m.get(F_BASE));
TString code(m.get(F_CODE));
code << f.get();
TLocalisamfile frm(LF_FORM);
frm.zero();
frm.put("TIPOPROF",base);
frm.put("CODPROF",code);
if (frm.read(_isequal)== NOERR)
m.set(F_DESC,frm.get("DESC"));
}
return TRUE;
}
bool TForm_EC_editor::font_handler(TMask_field& f, KEY key) bool TForm_EC_editor::font_handler(TMask_field& f, KEY key)
{ {
if (key == K_SPACE) if (key == K_SPACE)
@ -207,7 +291,7 @@ void TForm_EC_editor::change_pos(char sc, pagetype pt)
real x_pos; real x_pos;
x_pos = value * _prm.ratio; x_pos = value * _prm.ratio;
x_pos.round(); x_pos.round();
fi.x() = (short)x_pos.integer(); fi.set_x((short)x_pos.integer());
fi.set_dirty(); fi.set_dirty();
} }
} }
@ -246,10 +330,12 @@ void TForm_EC_editor::hook_footer_to_body(TPrint_section* f, TPrint_section* b)
for (word i=0;i<items;i++) for (word i=0;i<items;i++)
{ {
TForm_item& fi = f->field(i); TForm_item& fi = f->field(i);
if (fi.x()>0) continue; if (fi.x()>0 || !fi.shown()) continue;
const TForm_item& fb = b->find_field(fi.id()); short id = fi.id();
const int x = fb.x()+b->ofspc(); if (id >= PEC_TSALDO && id <= PEC_TIMPLIRE) id = PEC_DESCR1;
fi.x() = x; TForm_item& fb = b->find_field(id);
int x = fb.x()+b->ofspc();
fi.set_x(x);
fi.ofs() = 999; fi.ofs() = 999;
} }
} }
@ -263,7 +349,7 @@ void TForm_EC_editor::unhook_footer(TPrint_section* f)
if (fi.ofs()==999) if (fi.ofs()==999)
{ {
fi.ofs() = 0; fi.ofs() = 0;
fi.x() = 0; fi.set_x(0);
} }
} }
} }
@ -412,7 +498,7 @@ bool TForm_EC_editor::edit(char s, pagetype p)
pict.set_prompt(_msk->get(F_BACKGROUND)); pict.set_prompt(_msk->get(F_BACKGROUND));
pict.width() = _msk->get_int(F_BACKWIDTH); pict.width() = _msk->get_int(F_BACKWIDTH);
pict.height() = _msk->get_int(F_BACKHEIGHT); pict.height() = _msk->get_int(F_BACKHEIGHT);
pict.x() = _msk->get_int(F_BACKX); pict.set_x(_msk->get_int(F_BACKX));
pict.y() = _msk->get_int(F_BACKY); pict.y() = _msk->get_int(F_BACKY);
form().section('G',odd_page).set_dirty(); form().section('G',odd_page).set_dirty();
pict.set_dirty(); pict.set_dirty();
@ -434,6 +520,15 @@ bool TForm_EC_editor::edit(char s, pagetype p)
else else
form().write_profile(); form().write_profile();
} }
else
if (k==K_ESC && form()._isnew)
{
TLocalisamfile f(LF_FORM),r(LF_RFORM);
remove_form(f,r,form().name(),form().code());
mask().reset(F_CODE);
mask().reset(F_CODEL);
mask().reset(F_DESC);
}
if (_msk!=NULL) delete _msk; if (_msk!=NULL) delete _msk;
_msk = NULL; _msk = NULL;
disable_menu_item(M_FILE_PRINT); disable_menu_item(M_FILE_PRINT);
@ -464,13 +559,13 @@ void TForm_EC_editor::print()
pict.set_prompt(_msk->get(F_BACKGROUND)); pict.set_prompt(_msk->get(F_BACKGROUND));
pict.width() = _msk->get_int(F_BACKWIDTH); pict.width() = _msk->get_int(F_BACKWIDTH);
pict.height() = _msk->get_int(F_BACKHEIGHT); pict.height() = _msk->get_int(F_BACKHEIGHT);
pict.x() = _msk->get_int(F_BACKX); pict.set_x(_msk->get_int(F_BACKX));
pict.y() = _msk->get_int(F_BACKY); pict.y() = _msk->get_int(F_BACKY);
form().offset_y() = _msk->get_int(F_SY); form().offset_y() = _msk->get_int(F_SY);
form().offset_x() = _msk->get_int(F_SX); form().offset_x() = _msk->get_int(F_SX);
form()._background_mode = (bkg_mode)_msk->get_int(F_FINK); form()._background_mode = (bkg_mode)_msk->get_int(F_FINK);
if (form()._background_mode == none) gen_fink = FALSE; if (form()._background_mode == none) gen_fink = FALSE;
if (printer().is_generic() && form()._background_mode == graphics) form()._background_mode = texto; if (printer().is_generic() && form()._background_mode == graphics) form()._background_mode = testo;
} }
// Schiaffa dentro le stringhe di esempio per ogni campo che non ha prompt o riferimenti sul file // Schiaffa dentro le stringhe di esempio per ogni campo che non ha prompt o riferimenti sul file
// per i campi memo si copia _memo in _prompt // per i campi memo si copia _memo in _prompt
@ -496,10 +591,29 @@ void TForm_EC_editor::print()
} }
} }
void TForm_EC_editor::remove_form(TLocalisamfile& frm, TLocalisamfile& rfr,const TString& t,const TString& c)
{
frm.zero();
frm.put("TIPOPROF", t);
if (c.not_empty())
frm.put("CODPROF", c);
if (frm.read() == NOERR)
frm.remove();
rfr.zero();
rfr.put("TIPOPROF", t);
rfr.put("CODPROF", c);
if (rfr.read(_isgteq) == NOERR)
{
for ( ; rfr.get("CODPROF") == c && rfr.get("TIPOPROF") == t; rfr.next())
rfr.remove();
}
}
bool TForm_EC_editor::ask_profile() bool TForm_EC_editor::ask_profile()
{ {
KEY k; KEY k;
mask().set_handler(DLG_COPY,cpy_handler); mask().set_handler(DLG_COPY,cpy_handler);
mask().set_handler(F_CODE,code_handler);
mask().set_handler(F_CODEL,lng_handler);
disable_menu_item(M_FILE_PRINT); disable_menu_item(M_FILE_PRINT);
while ((k = mask().run()) != K_QUIT) while ((k = mask().run()) != K_QUIT)
{ {
@ -529,21 +643,9 @@ bool TForm_EC_editor::ask_profile()
yesno_box("Confermare la cancellazione del profilo %04ld%c", fcode,flng)) yesno_box("Confermare la cancellazione del profilo %04ld%c", fcode,flng))
{ {
TProgind pi(50,"Cancellazione in corso...",FALSE,FALSE,10); TProgind pi(50,"Cancellazione in corso...",FALSE,FALSE,10);
frm.zero(); remove_form(frm,rfr,fform,cod);
frm.put("TIPOPROF", fform);
if (fcode != 0 )
frm.put("CODPROF", cod);
if (frm.read() == NOERR)
frm.remove();
rfr.zero();
rfr.put("TIPOPROF", fform);
rfr.put("CODPROF", cod);
if (rfr.read(_isgteq) == NOERR)
{
for ( ; rfr.get("CODPROF") == cod && rfr.get("TIPOPROF") == fform; rfr.next())
rfr.remove();
}
pi.cancel(); pi.cancel();
mask().set(F_BASE,"");
mask().set(F_CODE,""); mask().set(F_CODE,"");
mask().set(F_CODEL,""); mask().set(F_CODEL,"");
mask().set(F_DESC,""); mask().set(F_DESC,"");

View File

@ -7,15 +7,7 @@ PAGE "Scelta profilo" -1 -1 75 6
STRING F_BASE 8 STRING F_BASE 8
BEGIN BEGIN
PROMPT 2 1 "Profilo base " PROMPT 2 1 "Profilo base "
HELP "Specificare il nome del profilo di base utilizzato"
USE LF_FORM SELECT (TIPOPROF==BASE_EC_PROFILE)
INPUT TIPOPROF F_BASE
INPUT CODPROF ""
FLAGS "D" FLAGS "D"
DISPLAY "Profilo base" TIPOPROF
DISPLAY "Descrizione@50" DESC
OUTPUT F_BASE TIPOPROF
OUTPUT F_DESC DESC
END END
NUMBER F_CODE 4 NUMBER F_CODE 4

View File

@ -7,14 +7,6 @@ STRING F_CBASE 8
BEGIN BEGIN
PROMPT 2 1 "Profilo base " PROMPT 2 1 "Profilo base "
FLAGS "D" FLAGS "D"
HELP "Specificare il nome del profilo di base utilizzato"
USE LF_FORM SELECT (TIPOPROF==BASE_EC_PROFILE)
INPUT TIPOPROF F_CBASE
INPUT CODPROF ""
DISPLAY "Profilo base" TIPOPROF
DISPLAY "Descrizione@50" DESC
OUTPUT F_CBASE TIPOPROF
OUTPUT F_CDESCS DESCS
END END
GROUPBOX DLG_NULL 73 4 GROUPBOX DLG_NULL 73 4

View File

@ -18,52 +18,50 @@ END
GROUPBOX DLG_NULL 19 4 GROUPBOX DLG_NULL 19 4
BEGIN BEGIN
PROMPT 31 1 "Spostamento" PROMPT 32 1 "Spostamento"
END END
NUMBER F_SX 3 NUMBER F_SX 3
BEGIN BEGIN
PROMPT 32 2 "Orizzontale " PROMPT 33 2 "Orizzontale "
END END
NUMBER F_SY 3 NUMBER F_SY 3
BEGIN BEGIN
PROMPT 32 3 "Verticale " PROMPT 33 3 "Verticale "
END END
GROUPBOX DLG_NULL 22 4 GROUPBOX DLG_NULL 22 4
BEGIN BEGIN
PROMPT 54 1 "Posizionamento" PROMPT 55 1 "Posizionamento"
END END
STRING F_SCTP 1 STRING F_SCTP 1
BEGIN BEGIN
PROMPT 55 2 "Carattere " PROMPT 56 2 "Carattere "
HELP "Carattere da utilizzare per il posizionamento del modulo" HELP "Carattere da utilizzare per il posizionamento del modulo"
END END
NUMBER F_SIPX 3 NUMBER F_SIPX 3
BEGIN BEGIN
PROMPT 55 3 "Coordinate " PROMPT 56 3 "Coordinate "
HELP "Coordinata X di posizionamento iniziale" HELP "Coordinata X di posizionamento iniziale"
END END
NUMBER F_SIPY 3 NUMBER F_SIPY 3
BEGIN BEGIN
PROMPT 71 3 "" PROMPT 72 3 ""
HELP "Coordinata Y di posizionamento" HELP "Coordinata Y di posizionamento"
END END
BOOLEAN F_SVALUTA BOOLEAN F_SVALUTA
BEGIN BEGIN
PROMPT 1 5 " E.C. in valuta" PROMPT 1 5 " E.C. in valuta"
MESSAGE TRUE ENABLE, F_MAXTOT
MESSAGE FALSE CLEAR, F_MAXTOT
END END
NUMBER F_MAXTOT 2 NUMBER F_MAXTOT 2
BEGIN BEGIN
PROMPT 1 6 "Totali in valuta " PROMPT 1 6 "N.ro max. totali in valuta "
NUM_EXPR {(#THIS_FIELD >=0) && (#THIS_FIELD <=#F_FOOT_H)} NUM_EXPR {(#THIS_FIELD >=0) && (#THIS_FIELD <=#F_FOOT_H)}
WARNING "Il numero massimo di totali in valuta deve essere positivo e minore dell'altezza del piede" WARNING "Il numero massimo di totali in valuta deve essere positivo e minore dell'altezza del piede"
END END
@ -76,7 +74,7 @@ END
LIST F_FINK 2 10 LIST F_FINK 2 10
BEGIN BEGIN
PROMPT 1 7 "Fincatura " PROMPT 1 7 "Fincatura "
ITEM "0|Nessuna" MESSAGE CLEAR,5@ ITEM "0|Nessuna" MESSAGE CLEAR,5@
ITEM "1|Testo" MESSAGE CLEAR,5@ ITEM "1|Testo" MESSAGE CLEAR,5@
ITEM "2|Grafica" MESSAGE ENABLE,5@ ITEM "2|Grafica" MESSAGE ENABLE,5@
@ -84,12 +82,12 @@ END
GROUPBOX DLG_NULL 45 5 GROUPBOX DLG_NULL 45 5
BEGIN BEGIN
PROMPT 31 5 "Sfondo" PROMPT 32 5 "Sfondo"
END END
STRING F_BACKGROUND 50 30 STRING F_BACKGROUND 50 30
BEGIN BEGIN
PROMPT 32 6 "Nome file " PROMPT 33 6 "Nome file "
VALIDATE REQIF_FUNC 4 F_BACKX F_BACKY F_BACKWIDTH F_BACKHEIGHT VALIDATE REQIF_FUNC 4 F_BACKX F_BACKY F_BACKWIDTH F_BACKHEIGHT
WARNING "Il nome del file e' richiesto se specificati gli altri campi" WARNING "Il nome del file e' richiesto se specificati gli altri campi"
GROUP 5 GROUP 5
@ -97,7 +95,7 @@ END
NUMBER F_BACKX 3 NUMBER F_BACKX 3
BEGIN BEGIN
PROMPT 32 7 "Posizione X " PROMPT 33 7 "Posizione X "
VALIDATE REQIF_FUNC 4 F_BACKGROUND F_BACKY F_BACKWIDTH F_BACKHEIGHT VALIDATE REQIF_FUNC 4 F_BACKGROUND F_BACKY F_BACKWIDTH F_BACKHEIGHT
WARNING "La posizione X e' richiesta se specificati gli altri campi" WARNING "La posizione X e' richiesta se specificati gli altri campi"
GROUP 5 GROUP 5
@ -105,7 +103,7 @@ END
NUMBER F_BACKY 3 NUMBER F_BACKY 3
BEGIN BEGIN
PROMPT 63 7 "Y " PROMPT 64 7 "Y "
VALIDATE REQIF_FUNC 4 F_BACKX F_BACKGROUND F_BACKWIDTH F_BACKHEIGHT VALIDATE REQIF_FUNC 4 F_BACKX F_BACKGROUND F_BACKWIDTH F_BACKHEIGHT
WARNING "La posizione Y e' richiesta se specificati gli altri campi" WARNING "La posizione Y e' richiesta se specificati gli altri campi"
GROUP 5 GROUP 5
@ -113,7 +111,7 @@ END
NUMBER F_BACKWIDTH 3 NUMBER F_BACKWIDTH 3
BEGIN BEGIN
PROMPT 32 8 "Larghezza " PROMPT 33 8 "Larghezza "
VALIDATE REQIF_FUNC 4 F_BACKX F_BACKY F_BACKGROUND F_BACKHEIGHT VALIDATE REQIF_FUNC 4 F_BACKX F_BACKY F_BACKGROUND F_BACKHEIGHT
WARNING "La larghezza e' richiesta se specificati gli altri campi" WARNING "La larghezza e' richiesta se specificati gli altri campi"
GROUP 5 GROUP 5
@ -121,7 +119,7 @@ END
NUMBER F_BACKHEIGHT 3 NUMBER F_BACKHEIGHT 3
BEGIN BEGIN
PROMPT 63 8 "Altezza " PROMPT 64 8 "Altezza "
VALIDATE REQIF_FUNC 4 F_BACKX F_BACKY F_BACKWIDTH F_BACKGROUND VALIDATE REQIF_FUNC 4 F_BACKX F_BACKY F_BACKWIDTH F_BACKGROUND
WARNING "L'altezza e' richiesta se specificati gli altri campi" WARNING "L'altezza e' richiesta se specificati gli altri campi"
GROUP 5 GROUP 5

View File

@ -108,8 +108,8 @@ void TSelection_mask::select_clifo_range(long from, long to)
TCursor_sheet& c = cur_sheet(); TCursor_sheet& c = cur_sheet();
const long items = c.items(); const long items = c.items();
const int key = get_key(); const int key = get_key();
TString s_from(50), s_to(50);
TCursor* crs = c.cursor();
if (to == 0 && items) if (to == 0 && items)
to = c.row(items-1).get_long(key); to = c.row(items-1).get_long(key);
@ -119,46 +119,33 @@ void TSelection_mask::select_clifo_range(long from, long to)
to = from; to = from;
from = tmp; from = tmp;
} }
s_from = c.row(from).get(3-key); // Legge ragione sociale iniziale
s_to = c.row(to).get(3-key); // ... e finale
bool cod1ok = FALSE, cod2ok = FALSE;
long last = 0; long last = 0;
long firs = 0; long firs = 0;
for (long i = 0; i < items; i++) TRectype& rec = crs->file().curr();
rec.zero();
rec.put(CLI_TIPOCF,get_who());
rec.put(CLI_CODCF,from);
const TRecnotype start = crs->read(_isgteq);
firs = rec.get_long(CLI_CODCF);
rec.zero();
rec.put(CLI_TIPOCF,get_who());
rec.put(CLI_CODCF,to);
TRectype recx(rec);
TRecnotype end = crs->read(_isgteq);
if (rec != recx)
{ {
TToken_string& tt = c.row(i); end--;
const long cod = tt.get_long(key); (*crs)-=1;
bool add;
if (key == 2)
{
const char* s = tt.get(1);
add = s_from <= s && s_to >= s;
}
else
add = cod >= from && cod <= to;
if (add)
{
c.check(i);
if (firs == 0)
firs = cod;
last = cod;
}
else
c.uncheck(i);
// if (cod == from) cod1ok = TRUE;
// if (cod == to) cod2ok = TRUE;
} }
last = rec.get_long(CLI_CODCF);
c.uncheck(-1);
for (long i = start; i <= end; i++)
c.check(i);
if (get(SC_CFCODFR).not_empty()) if (get(SC_CFCODFR).not_empty())
// if (!cod1ok)
set(SC_CFCODFR, firs); set(SC_CFCODFR, firs);
if (get(SC_CFCODTO).not_empty()) if (get(SC_CFCODTO).not_empty())
// if (!cod2ok)
set(SC_CFCODTO, last); set(SC_CFCODTO, last);
set(SC_NSEL, c.checked()); set(SC_NSEL, c.checked());
@ -179,35 +166,40 @@ void TSelection_mask::select_des_clifo_range(const TString& from, const TString
if (s_from > s_to) // Controlla limiti if (s_from > s_to) // Controlla limiti
{ {
const TString tmp(s_to); s_to = from;
s_to = s_from; s_from = to;// ripristina i valori originali (!upper)
s_from = tmp;
set(SC_CFDESFR, to); set(SC_CFDESFR, to);
set(SC_CFDESTO, from); set(SC_CFDESTO, from);
} } else
{
if (to.not_empty()) s_to = to;
s_from = from; // ripristina i valori originali (!upper)
}
TString last; TString last;
TString firs; TString firs;
for (long i = 0; i < items; i++) TCursor* crs = c.cursor();
TRectype& rec = crs->file().curr();
rec.zero();
rec.put(CLI_TIPOCF,get_who());
rec.put(CLI_RAGSOC,s_from);
const TRecnotype start = crs->read(_isgteq);
firs = rec.get(CLI_RAGSOC);
rec.zero();
rec.put(CLI_TIPOCF,get_who());
rec.put(CLI_RAGSOC,s_to);
TRectype recx(rec);
TRecnotype end = crs->read(_isgteq);
if (rec != recx)
{ {
TToken_string& tt = c.row(i); end--;
TString s(tt.get(1)); (*crs)-=1;
s.upper();
const bool add = s_from <= s && s_to >= s;
if (add)
{
c.check(i);
if (firs.empty())
firs = tt.get(1);
last = tt.get(1);
}
else
c.uncheck(i);
} }
last = rec.get(CLI_RAGSOC);
c.uncheck(-1);
for (long i = start; i <= end; i++)
c.check(i);
if (get(SC_CFDESFR).not_empty()) if (get(SC_CFDESFR).not_empty())
set(SC_CFDESFR, firs); set(SC_CFDESFR, firs);
if (get(SC_CFDESTO).not_empty()) if (get(SC_CFDESTO).not_empty())
@ -218,62 +210,84 @@ void TSelection_mask::select_des_clifo_range(const TString& from, const TString
// Cerca il primo e l'ultimo cliente selezionati // Cerca il primo e l'ultimo cliente selezionati
void TSelection_mask::set_clifo_limits() void TSelection_mask::set_clifo_limits()
{ {
long first = 0, last = 0, nsel = 0; long from = 0, to = 0;
TCursor_sheet& c = cur_sheet(); TCursor_sheet& c = cur_sheet();
const long items = c.items(); const long items = c.items();
const int key = get_key(); const int key = get_key();
long first = -1, last = -1;
for (int i = 0; i < items; i++) if (c.checked(i)) for (long i = 0; i < items; i++)
if (c.checked(i))
{
if (first == -1)
first = i;
}
if (first != -1) //Optimization... If nothing was found previously skip this test.
for (long j = (items-1); j >= 0 ; j--)
if (c.checked(j))
if (last == -1)
{
last = j;
break;
}
if (first!= -1 && last != -1) // Something selected?
{ {
TToken_string& t = c.row(i); TToken_string fitem(c.row(first));
const long kod = t.get_long(key); TToken_string litem(c.row(last));
if (first == 0) from = fitem.get_long(key);
to = litem.get_long(key);
if (from>to)
{ {
first = last = kod; long t = to;
to=from;
from=t;
} }
else
{
if (first > kod) first = kod;
if (last < kod) last = kod;
}
nsel++;
} }
set(SC_CFCODFR, first); set(SC_CFCODFR, from);
set(SC_CFCODTO, last); set(SC_CFCODTO, to);
set(SC_NSEL, nsel); set(SC_NSEL, c.checked());
} }
void TSelection_mask::set_des_clifo_limits() void TSelection_mask::set_des_clifo_limits()
{ {
TString first, last; long first=-1, last=-1;
long nsel = 0; TString from,to;
TCursor_sheet& c = cur_sheet(); TCursor_sheet& c = cur_sheet();
const long items = c.items(); const long items = c.items();
const int key = get_key(); const int key = get_key();
CHECK(key == 2, "La chiave deve essere la 2"); CHECK(key == 2, "La chiave deve essere la 2");
for (int i = 0; i < items; i++) if (c.checked(i)) for (long i = 0; i < items; i++)
if (c.checked(i))
{
if (first == -1)
first = i;
}
if (first != -1)
for (long j = (items-1); j >= 0 ; j--)
if (c.checked(j))
if (last == -1)
{
last = j;
break;
}
if (first!= -1 && last != -1)
{ {
TToken_string& t = c.row(i); TToken_string fitem(c.row(first));
const TString des(t.get(1)); TToken_string litem(c.row(last));
if (first.empty()) from = fitem.get(1);
to = litem.get(1);
if (from>to)
{ {
first = last = des; TString temp(to);
to=from;
from=temp;
} }
else
{
if (first > des) first = des;
if (last < des) last = des;
}
nsel++;
} }
set(SC_CFDESFR, first); set(SC_CFDESFR, from);
set(SC_CFDESTO, last); set(SC_CFDESTO, to);
set(SC_NSEL, nsel); set(SC_NSEL, c.checked());
} }
// handlers // handlers

View File

@ -17,6 +17,10 @@
#include "scselmsk.h" #include "scselmsk.h"
#endif #endif
#ifndef __CLIFO_H
#include <clifo.h>
#endif
class TSelection_mask : public TMask class TSelection_mask : public TMask
{ {
TRelation* _clifo_rel; TRelation* _clifo_rel;

View File

@ -21,8 +21,13 @@
#define SC_PCONCODTO3 318 #define SC_PCONCODTO3 318
#define SC_PCONBUTFR 319 #define SC_PCONBUTFR 319
#define SC_PCONBUTTO 320 #define SC_PCONBUTTO 320
#define SC_CFDESBUTFR 319 #define SC_CFDESBUTFR 321
#define SC_CFDESBUTTO 320 #define SC_CFDESBUTTO 322
#define SC_PCONDESBUTFR 323
#define SC_PCONDESBUTTO 324
#define SC_PCONDESFR 325
#define SC_PCONDESTO 326
#define BASE_EC_PROFILE "PEC" #define BASE_EC_PROFILE "PEC"