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

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

@ -1,177 +1,209 @@
#include "scselmsk.h"
#include "sc2100a.h"
PAGE "Stampa estratti conto" -1 -1 68 17
NUMBER F_CODDITTA 5
BEGIN
PROMPT 1 1 "Cod. "
FLAGS "DFR"
USE LF_NDITTE
INPUT CODDITTA F_CODDITTA
OUTPUT F_RAGSOC RAGSOC
CHECKTYPE REQUIRED
END
STRING F_RAGSOC 50 46
BEGIN
PROMPT 13 1 "R.S. "
FLAGS "D"
END
GROUPBOX DLG_NULL 68 8
BEGIN
PROMPT 0 7 ""
END
NUMBER F_CODPROF 4
BEGIN
PROMPT 1 8 "Profilo "
FLAGS "Z"
USE LF_FORM
INPUT TIPOPROF BASE_EC_PROFILE
INPUT CODPROF[1,4] F_CODPROF
INPUT CODPROF[5,5] F_LINPROF
DISPLAY "Codice" CODPROF
DISPLAY "Descrizione@50" DESC
OUTPUT F_CODPROF CODPROF[1,4]
OUTPUT F_LINPROF CODPROF[5,5]
OUTPUT F_DESPROF DESC
CHECKTYPE REQUIRED
FIELD ANTICLEAR
WARNING "Codice profilo o lingua errato"
END
STRING F_LINPROF 1
BEGIN
PROMPT 18 8 ""
FLAGS "U"
USE %LNG
INPUT CODTAB F_LINPROF
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_LINPROF CODTAB
CHECKTYPE NORMAL
WARNING "Codice profilo o lingua errato"
END
STRING F_DESPROF 50 40
BEGIN
PROMPT 25 8 ""
FLAGS "D"
END
DATE F_DATALIMOP
BEGIN
PROMPT 1 9 "Data limite operazione "
FLAGS "A"
CHECKTYPE REQUIRED
END
DATE F_DATALIMSC
BEGIN
PROMPT 1 10 "Data limite scaduto "
FLAGS "A"
CHECKTYPE REQUIRED
END
NUMBER F_GIORISCH 3
BEGIN
PROMPT 1 11 "Giorni calcolo rischio "
GROUP 1
END
BOOLEAN F_STAMPCHIU
BEGIN
PROMPT 1 12 "Stampa partite chiuse"
MESSAGE FALSE DISABLE,F_DATACHIU
MESSAGE TRUE ENABLE,F_DATACHIU
END
DATE F_DATACHIU
BEGIN
PROMPT 25 12 "dal "
FLAGS "D"
END
STRING F_LUOGOSEND 50 32
BEGIN
PROMPT 1 13 "Luogo d'invio "
END
DATE F_DATASEND
BEGIN
PROMPT 50 13 "data "
FLAGS "A"
CHECKTYPE REQUIRED
END
RADIOBUTTON SC_CLIFO 20
BEGIN
PROMPT 1 2 "Selezione"
ITEM "C|Clienti" MESSAGE ENABLE,1@
ITEM "F|Fornitori" MESSAGE CLEAR,1@
END
RADIOBUTTON SC_SORTCF 20
BEGIN
PROMPT 25 2 "Ordinamento"
ITEM "1|Per codice"
ITEM "2|Per ragione sociale"
END
BUTTON SC_SELECT 10 1
BEGIN
PROMPT 51 3 "~Selezione"
END
BUTTON SC_RESET 10 1
BEGIN
PROMPT 51 4 "~Azzera"
END
NUMBER SC_CFCODFR 5
BEGIN
PROMPT 1 6 "Da codice "
END
NUMBER SC_CFCODTO 5
BEGIN
PROMPT 36 6 "a codice "
END
NUMBER SC_NSEL 3
BEGIN
PROMPT 56 6 "N. "
FLAGS "D"
END
BUTTON SC_CFBUTFR 2 1
BEGIN
PROMPT 31 6 ""
PICTURE 109
END
BUTTON SC_CFBUTTO 2 1
BEGIN
PROMPT 51 6 ""
PICTURE 109
END
BUTTON DLG_PRINT 10 2
BEGIN
PROMPT -12 -1 ""
MESSAGE EXIT,K_ENTER
END
BUTTON DLG_QUIT 10 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK
#include "scselmsk.h"
#include "sc2100a.h"
PAGE "Stampa estratti conto" -1 -1 68 18
NUMBER F_CODDITTA 5
BEGIN
PROMPT 1 1 "Cod. "
FLAGS "DFR"
USE LF_NDITTE
INPUT CODDITTA F_CODDITTA
OUTPUT F_RAGSOC RAGSOC
CHECKTYPE REQUIRED
END
STRING F_RAGSOC 50 46
BEGIN
PROMPT 13 1 "R.S. "
FLAGS "D"
END
GROUPBOX DLG_NULL 68 8
BEGIN
PROMPT 0 2 ""
END
NUMBER F_CODPROF 4
BEGIN
PROMPT 1 3 "Profilo "
FLAGS "Z"
USE LF_FORM
INPUT TIPOPROF BASE_EC_PROFILE
INPUT CODPROF[1,4] F_CODPROF
INPUT CODPROF[5,5] F_LINPROF
DISPLAY "Codice" CODPROF
DISPLAY "Descrizione@50" DESC
OUTPUT F_CODPROF CODPROF[1,4]
OUTPUT F_LINPROF CODPROF[5,5]
OUTPUT F_DESPROF DESC
CHECKTYPE REQUIRED
FIELD ANTICLEAR
WARNING "Codice profilo o lingua errato"
END
STRING F_LINPROF 1
BEGIN
PROMPT 18 3 ""
FLAGS "U"
USE %LNG
INPUT CODTAB F_LINPROF
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_LINPROF CODTAB
CHECKTYPE NORMAL
WARNING "Codice profilo o lingua errato"
END
STRING F_DESPROF 50 40
BEGIN
PROMPT 25 3 ""
FLAGS "D"
END
DATE F_DATALIMOP
BEGIN
PROMPT 1 4 "Data limite operazione "
FLAGS "A"
CHECKTYPE REQUIRED
END
DATE F_DATALIMSC
BEGIN
PROMPT 1 5 "Data limite scaduto "
FLAGS "A"
CHECKTYPE REQUIRED
END
NUMBER F_GIORISCH 3
BEGIN
PROMPT 1 6 "Giorni calcolo rischio "
GROUP 1
END
BOOLEAN F_STAMPCHIU
BEGIN
PROMPT 1 7 "Stampa partite chiuse"
MESSAGE FALSE DISABLE,F_DATACHIU
MESSAGE TRUE ENABLE,F_DATACHIU
END
DATE F_DATACHIU
BEGIN
PROMPT 25 7 "dal "
FLAGS "D"
END
STRING F_LUOGOSEND 50 32
BEGIN
PROMPT 1 8 "Luogo d'invio "
END
DATE F_DATASEND
BEGIN
PROMPT 50 8 "data "
FLAGS "A"
CHECKTYPE REQUIRED
END
RADIOBUTTON SC_CLIFO 20
BEGIN
PROMPT 0 10 "Selezione"
ITEM "C|Clienti" MESSAGE ENABLE,1@
ITEM "F|Fornitori" MESSAGE CLEAR,1@
END
RADIOBUTTON SC_SORTCF 20
BEGIN
PROMPT 25 10 "Ordinamento"
ITEM "1|Per codice" MESSAGE HIDE,2@|SHOW,3@
ITEM "2|Per ragione sociale" MESSAGE HIDE,3@|SHOW,2@
END
BUTTON SC_SELECT 10 1
BEGIN
PROMPT 51 11 "~Selezione"
END
BUTTON SC_RESET 10 1
BEGIN
PROMPT 51 12 "~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 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
BEGIN
PROMPT -12 -1 ""
MESSAGE EXIT,K_ENTER
END
BUTTON DLG_QUIT 10 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK

@ -1,6 +1,6 @@
#include "sc2200.h"
PAGE "Stampa Scadenziario" -1 -1 68 17
PAGE "Stampa Scadenziario" -1 -1 68 18
NUMBER F_CODDITTA 5
BEGIN
@ -18,125 +18,14 @@ BEGIN
FLAGS "D"
END
BUTTON SC_SELECT 10 1
BEGIN
PROMPT 51 3 "~Selezione"
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
GROUPBOX DLG_NULL 68 7
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
PROMPT 0 2 ""
END
DATE F_DATASTAMPA
BEGIN
PROMPT 1 9 "Data di stampa "
PROMPT 1 3 "Data di stampa "
HELP "Data di stampa dello scadenziario"
CHECKTYPE REQUIRED
WARNING "Si deve specificare la data di stampa dello scadenziario"
@ -145,7 +34,7 @@ END
DATE F_DATASCADENZAI
BEGIN
PROMPT 1 10 "Data di scadenza dal "
PROMPT 1 4 "Data di scadenza dal "
HELP "Data di inizio scadenza"
CHECKTYPE REQUIRED
WARNING "Data di inizio scadenza non valida"
@ -154,7 +43,7 @@ END
DATE F_DATASCADENZAF
BEGIN
PROMPT 39 10 "al "
PROMPT 39 4 "al "
HELP "Data di fine scadenza"
CHECKTYPE REQUIRED
VALIDATE DATE_CMP_FUNC >= F_DATASCADENZAI
@ -163,27 +52,198 @@ END
BOOLEAN F_RATESALDATE
BEGIN
PROMPT 1 11 "Stampa rate saldate"
PROMPT 1 5 "Stampa rate saldate"
HELP "Include le rate saldate nella stampa"
END
BOOLEAN F_ORDDATA
BEGIN
PROMPT 1 12 "Ordina per data"
PROMPT 1 6 "Ordina per data"
HELP "Selezionare se l'ordinamento primario deve essere secondo la data"
END
BOOLEAN F_VALUTA
BEGIN
PROMPT 1 13 "Stampa in valuta"
PROMPT 1 7 "Stampa in valuta"
HELP "Selezionare se si vuole la stampa in valuta"
END
GROUPBOX DLG_NULL 68 7
BEGIN
PROMPT 0 8 ""
RADIOBUTTON SC_CLIFO 20
BEGIN
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
BUTTON DLG_PRINT 10 2
BEGIN
PROMPT -12 -1 ""

@ -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_PCONCODFR3, ffrompcon_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()
@ -69,27 +73,47 @@ void TSelection_ext_mask::reset_sheets()
reset(SC_PCONCODTO1);
reset(SC_PCONCODTO2);
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();
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();
TRectype& rec = crs->file().curr();
rec.zero();
rec.put(PCN_DESCR,desfr);
rec.put(PCN_DESCR,s_from);
const TRecnotype start = crs->read(_isgteq);
int grf = rec.get_int(PCN_GRUPPO);
int cof = rec.get_int(PCN_CONTO);
long sof = rec.get_long(PCN_SOTTOCONTO);
int grt, cot;
long sot;
firs = rec.get(PCN_DESCR);
rec.zero();
rec.put(PCN_DESCR,desto);
rec.put(PCN_DESCR,s_to);
TRectype recx(rec);
TRecnotype end = crs->read(_isgteq);
if (rec != recx)
@ -97,19 +121,55 @@ void TSelection_ext_mask::select_pcon_range(TString& desfr, TString& desto)
end--;
(*crs)-=1;
}
grt = rec.get_int(PCN_GRUPPO);
cot = rec.get_int(PCN_CONTO);
sot = rec.get_long(PCN_SOTTOCONTO);
last = rec.get(PCN_DESCR);
c.uncheck(-1);
for (long i = start; i <= end; i++)
//if (!c.checked(i))
c.check(i);
set(SC_PCONCODFR1, grf);
set(SC_PCONCODFR2, cof);
set(SC_PCONCODFR3, sof);
set(SC_PCONCODTO1, grt);
set(SC_PCONCODTO2, cot);
set(SC_PCONCODTO3, sot);
if (get(SC_PCONDESFR).not_empty())
set(SC_PCONDESFR, firs);
if (get(SC_PCONDESTO).not_empty())
set(SC_PCONDESTO, last);
set(SC_NSEL, c.checked());
}
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());
}
@ -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();
const long items = c.items();
const int key = get_key();
TString desfr,desto;
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();
rec.zero();
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);
sof = rec.get_long(PCN_SOTTOCONTO);
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_CONTO,cot);
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);
c.uncheck(-1);
for (long i = start; i <= end; i++)
//if (!c.checked(i))
c.check(i);
set(SC_PCONCODFR1, grf);
set(SC_PCONCODFR2, cof);
@ -174,7 +239,6 @@ void TSelection_ext_mask::set_pcon_limits()
const long items = c.items();
const int key = get_key();
long first = -1, last = -1;
long nsel = 0L;
// Ricerca veloce di estremi (vale solo su GR/CO/SO)
for (long i = 0; i < items; i++)
@ -182,7 +246,6 @@ void TSelection_ext_mask::set_pcon_limits()
{
if (first == -1)
first = i;
nsel ++;
}
if (first != -1) //Optimization... If nothing was found previously skip this test.
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_PCONCODTO2, cl);
set(SC_PCONCODTO3, sl);
set(SC_NSEL, nsel);
set(SC_NSEL, c.checked());
}
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_PCONCODFR2, cof);
m.set(SC_PCONCODFR3, sof);
if (m.get_key() == 2)
{
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);
m.select_pcon_range(grf,cof,sof,grt,cot,sot);
}
}
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_PCONCODTO2, cot);
m.set(SC_PCONCODTO3, sot);
if (m.get_key() == 2)
{
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);
m.select_pcon_range(grf,cof,sof,grt,cot,sot);
}
}
return TRUE;
@ -312,25 +351,7 @@ bool TSelection_ext_mask::ffrompcon_handler(TMask_field& f, KEY k)
grt = m.get_int(SC_PCONCODTO1);
cot = m.get_int(SC_PCONCODTO2);
sot = m.get_long(SC_PCONCODTO3);
if (m.get_key() == 2)
{
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);
m.select_pcon_range(grf,cof,sof,grt,cot,sot);
}
else
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);
cot = m.get_int(SC_PCONCODTO2);
sot = m.get_long(SC_PCONCODTO3);
if (m.get_key() == 2)
{
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);
m.select_pcon_range(grf,cof,sof,grt,cot,sot);
}
else
if (k == K_F9)
@ -385,6 +388,85 @@ bool TSelection_ext_mask::ftopcon_handler(TMask_field& f, KEY k)
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)
{
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();
c.enable_check();
c.run();
if (m.get_who() =='P')
m.set_pcon_limits();
char who = m.get_who();
int key = m.get_key();
if (who =='P')
if (key == 2)
m.set_des_pcon_limits();
else
m.set_pcon_limits();
else
m.set_clifo_limits();
if (key == 2)
m.set_des_clifo_limits();
else
m.set_clifo_limits();
}
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();
char who = f.get()[0];
m.set_who(who);
if (who == 'P')
if (who != m.get_who())
{
m.set_key(1);
m.set_who(who);
}
m.reset_sheets();
}
return TRUE;

@ -16,8 +16,9 @@ class TSelection_ext_mask : public TSelection_mask
protected:
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_des_pcon_limits();
virtual void reset_sheets();
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 rpcon_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:
virtual TCursor_sheet& cur_sheet();

@ -1,6 +1,6 @@
#include "sc2300.h"
PAGE "Stampa Scaduto" -1 -1 68 16
PAGE "Stampa Scaduto" -1 -1 68 18
NUMBER F_CODDITTA 5
BEGIN
@ -18,125 +18,14 @@ BEGIN
FLAGS "D"
END
BUTTON SC_SELECT 10 1
BEGIN
PROMPT 51 3 "~Selezione"
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
GROUPBOX DLG_NULL 68 7
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
PROMPT 0 2 ""
END
DATE F_DATASTAMPA
BEGIN
PROMPT 1 9 "Data di stampa "
PROMPT 1 3 "Data di stampa "
HELP "Data di stampa"
CHECKTYPE REQUIRED
WARNING "Si deve specificare la data di stampa"
@ -145,7 +34,7 @@ END
DATE F_DATAOPERAZIONE
BEGIN
PROMPT 1 10 "Data limite operazione "
PROMPT 1 4 "Data limite operazione "
HELP "Data limite operazione"
CHECKTYPE REQUIRED
VALIDATE DATE_CMP_FUNC >= F_DATASCADUTO
@ -155,7 +44,7 @@ END
DATE F_DATASCADUTO
BEGIN
PROMPT 1 11 "Data limite scaduto "
PROMPT 1 5 "Data limite scaduto "
HELP "Data limite scaduto"
CHECKTYPE REQUIRED
WARNING "Data limite scaduto non valida"
@ -163,21 +52,192 @@ END
NUMBER F_GIORNI 3
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"
END
BOOLEAN F_VALUTA
BEGIN
PROMPT 1 13 "Stampa in valuta"
PROMPT 1 7 "Stampa in valuta"
HELP "Selezionare se si vuole la stampa in valuta"
END
GROUPBOX DLG_NULL 68 7
BEGIN
PROMPT 0 8 ""
RADIOBUTTON SC_CLIFO 20
BEGIN
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
BUTTON DLG_PRINT 10 2
BEGIN
PROMPT -12 -1 ""

@ -32,11 +32,16 @@ class TForm_EC_editor : public TForm_editor
protected:
static bool cpy_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 change_pos(char sc, pagetype pt);
bool recalculate_positions(const char* name, int size);
void hook_footer_to_body(TPrint_section* f, TPrint_section* b);
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 bool ask_profile();
virtual bool edit(char s, pagetype p);
@ -65,13 +70,53 @@ BOOLEAN XVT_CALLCONV1 wprms (long data)
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)
{
if (k==K_SPACE)
{
TLocalisamfile frm(LF_FORM),rfr(LF_RFORM);
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 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)
{
error_box("Il profilo specificato come destinazione e' gia' esistente.");
return TRUE;
continue;
}
//Effettua la copia dei record.
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)
{
error_box("Errore %d in scrittura testata profilo.",frm.status());
return TRUE;
break;
}
TProgind pi(50,"Copia in corso...",FALSE,FALSE,10);
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)
{
error_box("Errore %d in scrittura righe profilo.",rfr_to_write.status());
return TRUE;
break ;
}
} else
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;
}
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)
{
if (key == K_SPACE)
@ -207,7 +291,7 @@ void TForm_EC_editor::change_pos(char sc, pagetype pt)
real x_pos;
x_pos = value * _prm.ratio;
x_pos.round();
fi.x() = (short)x_pos.integer();
fi.set_x((short)x_pos.integer());
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++)
{
TForm_item& fi = f->field(i);
if (fi.x()>0) continue;
const TForm_item& fb = b->find_field(fi.id());
const int x = fb.x()+b->ofspc();
fi.x() = x;
if (fi.x()>0 || !fi.shown()) continue;
short id = fi.id();
if (id >= PEC_TSALDO && id <= PEC_TIMPLIRE) id = PEC_DESCR1;
TForm_item& fb = b->find_field(id);
int x = fb.x()+b->ofspc();
fi.set_x(x);
fi.ofs() = 999;
}
}
@ -263,7 +349,7 @@ void TForm_EC_editor::unhook_footer(TPrint_section* f)
if (fi.ofs()==999)
{
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.width() = _msk->get_int(F_BACKWIDTH);
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);
form().section('G',odd_page).set_dirty();
pict.set_dirty();
@ -433,7 +519,16 @@ bool TForm_EC_editor::edit(char s, pagetype p)
}
else
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;
_msk = NULL;
disable_menu_item(M_FILE_PRINT);
@ -464,13 +559,13 @@ void TForm_EC_editor::print()
pict.set_prompt(_msk->get(F_BACKGROUND));
pict.width() = _msk->get_int(F_BACKWIDTH);
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);
form().offset_y() = _msk->get_int(F_SY);
form().offset_x() = _msk->get_int(F_SX);
form()._background_mode = (bkg_mode)_msk->get_int(F_FINK);
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
// 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()
{
KEY k;
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);
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))
{
TProgind pi(50,"Cancellazione in corso...",FALSE,FALSE,10);
frm.zero();
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();
}
remove_form(frm,rfr,fform,cod);
pi.cancel();
mask().set(F_BASE,"");
mask().set(F_CODE,"");
mask().set(F_CODEL,"");
mask().set(F_DESC,"");

@ -7,15 +7,7 @@ PAGE "Scelta profilo" -1 -1 75 6
STRING F_BASE 8
BEGIN
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"
DISPLAY "Profilo base" TIPOPROF
DISPLAY "Descrizione@50" DESC
OUTPUT F_BASE TIPOPROF
OUTPUT F_DESC DESC
END
NUMBER F_CODE 4

@ -7,14 +7,6 @@ STRING F_CBASE 8
BEGIN
PROMPT 2 1 "Profilo base "
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
GROUPBOX DLG_NULL 73 4

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

@ -179,12 +179,12 @@ END
BOOLEAN 104
BEGIN
PROMPT 1 4 "Non Stampare "
PROMPT 1 4 "Non Stampare "
END
NUMBER 105 2
BEGIN
PROMPT 1 7 "Y "
PROMPT 1 7 "Y "
FLAGS "G"
END

@ -108,8 +108,8 @@ void TSelection_mask::select_clifo_range(long from, long to)
TCursor_sheet& c = cur_sheet();
const long items = c.items();
const int key = get_key();
TString s_from(50), s_to(50);
TCursor* crs = c.cursor();
if (to == 0 && items)
to = c.row(items-1).get_long(key);
@ -119,46 +119,33 @@ void TSelection_mask::select_clifo_range(long from, long to)
to = from;
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 firs = 0;
for (long i = 0; i < items; i++)
{
TToken_string& tt = c.row(i);
const long cod = tt.get_long(key);
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;
}
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)
{
end--;
(*crs)-=1;
}
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 (!cod1ok)
set(SC_CFCODFR, firs);
if (get(SC_CFCODTO).not_empty())
// if (!cod2ok)
set(SC_CFCODTO, last);
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
{
const TString tmp(s_to);
s_to = s_from;
s_from = tmp;
s_to = from;
s_from = to;// ripristina i valori originali (!upper)
set(SC_CFDESFR, to);
set(SC_CFDESTO, from);
}
} else
{
if (to.not_empty()) s_to = to;
s_from = from; // ripristina i valori originali (!upper)
}
TString last;
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);
TString s(tt.get(1));
s.upper();
const bool add = s_from <= s && s_to >= s;
if (add)
{
end--;
(*crs)-=1;
}
last = rec.get(CLI_RAGSOC);
c.uncheck(-1);
for (long i = start; i <= end; i++)
c.check(i);
if (firs.empty())
firs = tt.get(1);
last = tt.get(1);
}
else
c.uncheck(i);
}
if (get(SC_CFDESFR).not_empty())
set(SC_CFDESFR, firs);
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
void TSelection_mask::set_clifo_limits()
{
long first = 0, last = 0, nsel = 0;
long from = 0, to = 0;
TCursor_sheet& c = cur_sheet();
const long items = c.items();
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);
const long kod = t.get_long(key);
if (first == 0)
TToken_string fitem(c.row(first));
TToken_string litem(c.row(last));
from = fitem.get_long(key);
to = litem.get_long(key);
if (from>to)
{
first = last = kod;
}
else
{
if (first > kod) first = kod;
if (last < kod) last = kod;
}
nsel++;
}
set(SC_CFCODFR, first);
set(SC_CFCODTO, last);
set(SC_NSEL, nsel);
long t = to;
to=from;
from=t;
}
}
set(SC_CFCODFR, from);
set(SC_CFCODTO, to);
set(SC_NSEL, c.checked());
}
void TSelection_mask::set_des_clifo_limits()
{
TString first, last;
long nsel = 0;
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 (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);
const TString des(t.get(1));
if (first.empty())
TToken_string fitem(c.row(first));
TToken_string litem(c.row(last));
from = fitem.get(1);
to = litem.get(1);
if (from>to)
{
first = last = des;
}
else
{
if (first > des) first = des;
if (last < des) last = des;
}
nsel++;
}
set(SC_CFDESFR, first);
set(SC_CFDESTO, last);
set(SC_NSEL, nsel);
TString temp(to);
to=from;
from=temp;
}
}
set(SC_CFDESFR, from);
set(SC_CFDESTO, to);
set(SC_NSEL, c.checked());
}
// handlers

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

@ -21,8 +21,13 @@
#define SC_PCONCODTO3 318
#define SC_PCONBUTFR 319
#define SC_PCONBUTTO 320
#define SC_CFDESBUTFR 319
#define SC_CFDESBUTTO 320
#define SC_CFDESBUTFR 321
#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"