Modifiche per far andare definitavamente il programma di visualizzazione
saldi. Aggiunto l'ordinamento per data d'inizio esercizio. git-svn-id: svn://10.65.10.50/trunk@3127 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
a1e1ab0994
commit
b3cbac9621
156
cg/cg5200.cpp
156
cg/cg5200.cpp
@ -111,8 +111,9 @@ class TSaldibrowse_application : public TBrowse_application
|
||||
TMask* _msk;
|
||||
TCursor * _cur;
|
||||
TRelation * _rel,* _rel1;
|
||||
TTable * _esc;
|
||||
TRiga_array _riga;
|
||||
int _anno, _g, _c;
|
||||
int _anno, _annop, _g, _c;
|
||||
long _s;
|
||||
bool _saldo_conto, _saldo_gruppo, _saldo_sottoc, _scarongly;
|
||||
|
||||
@ -126,6 +127,9 @@ protected:
|
||||
virtual void init_query_mode(TMask&);
|
||||
virtual void init_modify_mode(TMask&);
|
||||
|
||||
static int compare_rows(const TObject **o1, const TObject** o2);
|
||||
static bool anno_handler (TMask_field& f, KEY k);
|
||||
static bool flsca_handler (TMask_field& f, KEY k);
|
||||
static bool sottoc_handler (TMask_field& f, KEY k);
|
||||
static bool sheet_action(TSheet_field& s, int r, KEY k);
|
||||
public:
|
||||
@ -148,58 +152,26 @@ bool TSaldibrowse_application::sheet_action(TSheet_field& s, int r, KEY k)
|
||||
|
||||
void TSaldibrowse_application::init_query_mode(TMask& m)
|
||||
{
|
||||
_anno = 0;
|
||||
_scarongly = FALSE;
|
||||
m.disable(DLG_FINDREC);
|
||||
TString t(m.get(F_TIPOCF));
|
||||
if (t == "C")
|
||||
{
|
||||
m.show(F_DESCR_CLIENTE);
|
||||
m.enable(F_DESCR_CLIENTE);
|
||||
m.hide(F_DESCR_FORN);
|
||||
m.hide(F_DESCR_CONTO);
|
||||
}
|
||||
else
|
||||
if (t == "F")
|
||||
{
|
||||
m.hide(F_DESCR_CLIENTE);
|
||||
m.show(F_DESCR_FORN);
|
||||
m.enable(F_DESCR_FORN);
|
||||
m.hide(F_DESCR_CONTO);
|
||||
}
|
||||
else
|
||||
{
|
||||
m.hide(F_DESCR_CLIENTE);
|
||||
m.hide(F_DESCR_FORN);
|
||||
m.show(F_DESCR_CONTO);
|
||||
m.enable(F_DESCR_CONTO);
|
||||
}
|
||||
m.enable(F_DESCR_CONTO);
|
||||
m.enable(F_ANNO);
|
||||
m.enable(F_SCARICATO);
|
||||
}
|
||||
|
||||
void TSaldibrowse_application::init_modify_mode(TMask& m)
|
||||
{
|
||||
TString t(m.get(F_TIPOCF));
|
||||
m.disable(DLG_FINDREC);
|
||||
if (t == "C")
|
||||
{
|
||||
m.show(F_DESCR_CLIENTE);
|
||||
m.disable(F_ANNO);
|
||||
m.disable(F_SCARICATO);
|
||||
TString tipo(m.get(F_TIPOCF));
|
||||
|
||||
if (tipo=="C")
|
||||
m.disable(F_DESCR_CLIENTE);
|
||||
m.hide(F_DESCR_FORN);
|
||||
m.hide(F_DESCR_CONTO);
|
||||
}
|
||||
else
|
||||
if (t == "F")
|
||||
{
|
||||
m.hide(F_DESCR_CLIENTE);
|
||||
m.show(F_DESCR_FORN);
|
||||
else if (tipo=="F")
|
||||
m.disable(F_DESCR_FORN);
|
||||
m.hide(F_DESCR_CONTO);
|
||||
}
|
||||
else
|
||||
{
|
||||
m.hide(F_DESCR_CLIENTE);
|
||||
m.hide(F_DESCR_FORN);
|
||||
m.show(F_DESCR_CONTO);
|
||||
m.disable(F_DESCR_CONTO);
|
||||
}
|
||||
else m.disable(F_DESCR_CONTO);
|
||||
}
|
||||
|
||||
bool TSaldibrowse_application::fai_filtro()
|
||||
@ -211,7 +183,10 @@ bool TSaldibrowse_application::fai_filtro()
|
||||
_saldo_gruppo = _saldo_conto = _saldo_sottoc = FALSE;
|
||||
TMask& m = curr_mask();
|
||||
tipo = m.get(F_TIPOCF)[0];
|
||||
_anno = m.get_int(F_ANNO);
|
||||
if (_anno != 0)
|
||||
_annop = EsePre(_anno);
|
||||
else
|
||||
_annop = 0;
|
||||
_g = m.get_int(F_GRUPPO);
|
||||
_c = m.get_int(F_CONTO);
|
||||
|
||||
@ -232,14 +207,6 @@ bool TSaldibrowse_application::fai_filtro()
|
||||
from.zero();
|
||||
to.zero();
|
||||
|
||||
if (_anno != 0)
|
||||
annop = EsePre(_anno);
|
||||
|
||||
if (annop != 0)
|
||||
from.put(SLD_ANNOES,annop);
|
||||
else if (_anno != 0)
|
||||
from.put(SLD_ANNOES,_anno);
|
||||
else from.put(SLD_ANNOES,0);
|
||||
|
||||
from.put(SLD_GRUPPO,_g);
|
||||
if (_c != 0)
|
||||
@ -247,28 +214,43 @@ bool TSaldibrowse_application::fai_filtro()
|
||||
if (_s != 0l)
|
||||
from.put(SLD_SOTTOCONTO, _s);
|
||||
|
||||
if (_anno != 0)
|
||||
to.put(SLD_ANNOES,_anno);
|
||||
else to.put(SLD_ANNOES, 9999);
|
||||
to.put(SLD_GRUPPO,_g);
|
||||
if (_c != 0)
|
||||
to.put(SLD_CONTO,_c);
|
||||
if (_s != 0l)
|
||||
to.put(SLD_SOTTOCONTO,_s);
|
||||
|
||||
_scarongly = m.get_bool(F_SCARICATO);
|
||||
|
||||
if ( _saldo_gruppo || _saldo_conto )
|
||||
_cur->setkey(1);
|
||||
|
||||
if (_saldo_sottoc)
|
||||
_cur->setkey(2);
|
||||
_cur->setkey(2);
|
||||
|
||||
_cur->setregion(from,to);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TSaldibrowse_application::anno_handler(TMask_field& f, KEY key)
|
||||
{
|
||||
if (key == K_TAB && f.focusdirty())
|
||||
{
|
||||
TString cod(f.get());
|
||||
app()._anno = atoi(cod);
|
||||
app()._esc->zero();
|
||||
app()._esc->put("CODTAB",cod);
|
||||
if (cod.not_empty() && app()._esc->read() != NOERR)
|
||||
{
|
||||
f.error_box("Esercizio %s non presente.",(const char*) cod);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TSaldibrowse_application::flsca_handler(TMask_field& f, KEY key)
|
||||
{
|
||||
if (key == K_SPACE)
|
||||
app()._scarongly = f.get() == "" ? FALSE : TRUE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TSaldibrowse_application::sottoc_handler(TMask_field& f, KEY key)
|
||||
{
|
||||
bool ok = TRUE;
|
||||
@ -306,6 +288,7 @@ bool TSaldibrowse_application::sottoc_handler(TMask_field& f, KEY key)
|
||||
clifo.setkey(1);
|
||||
clifo.put(CLI_TIPOCF,tipo);
|
||||
clifo.put(CLI_CODCF, sottoconto) ;
|
||||
app()._s = sottoconto;
|
||||
ok = stop = clifo.read() == NOERR;
|
||||
if (ok && (gruppo == 0 || conto == 0))
|
||||
{
|
||||
@ -337,11 +320,14 @@ bool TSaldibrowse_application::sottoc_handler(TMask_field& f, KEY key)
|
||||
|
||||
bool TSaldibrowse_application::user_create()
|
||||
{
|
||||
_rel = new TRelation(LF_SALDI);
|
||||
_rel = new TRelation(LF_PCON);
|
||||
_rel1 = new TRelation(LF_SALDI);
|
||||
_cur = new TCursor(_rel1, "", 2);
|
||||
|
||||
_esc = new TTable("ESC");
|
||||
_rel->add(LF_CLIFO,"TIPOCF=TMCF");
|
||||
_msk = new TMask("cg5200a");
|
||||
_msk->set_handler(F_ANNO, anno_handler);
|
||||
_msk->set_handler(F_SCARICATO, flsca_handler);
|
||||
_msk->set_handler(F_SOTTOCONTO, sottoc_handler);
|
||||
_msk->set_handler(F_SOTTOC_CLIENTE, sottoc_handler);
|
||||
_msk->set_handler(F_SOTTOC_FORN, sottoc_handler);
|
||||
@ -359,6 +345,7 @@ bool TSaldibrowse_application::user_destroy()
|
||||
delete _rel;
|
||||
delete _rel1;
|
||||
delete _cur;
|
||||
delete _esc;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@ -366,6 +353,13 @@ bool TSaldibrowse_application::user_destroy()
|
||||
int TSaldibrowse_application::read(TMask& m)
|
||||
{
|
||||
m.autoload(*_rel);
|
||||
m.set(F_ANNO,_anno);
|
||||
m.set(F_SCARICATO,_scarongly ? "X" : " ");
|
||||
TString tipo(m.get(F_TIPOCF));
|
||||
if (tipo == "C")
|
||||
m.set(F_SOTTOC_CLIENTE,_s);
|
||||
else if (tipo == "F")
|
||||
m.set(F_SOTTOC_FORN,_s);
|
||||
fai_filtro();
|
||||
compilasheet();
|
||||
|
||||
@ -425,6 +419,29 @@ void TSaldibrowse_application::add_r(int numrig,int a,real& slf,char sff,real& s
|
||||
riga.add(asc.string(),18);
|
||||
}
|
||||
|
||||
int TSaldibrowse_application::compare_rows(const TObject** o1, const TObject** o2)
|
||||
{
|
||||
TToken_string* r1 = ( TToken_string*)*o1;
|
||||
TToken_string* r2 = ( TToken_string*)*o2;
|
||||
int rt = 0;
|
||||
TDate d1,d2;
|
||||
TString c1,c2;
|
||||
c1.format("%04d", r1->get_int(0));
|
||||
c2.format("%04d", r2->get_int(0));
|
||||
app()._esc->zero();
|
||||
app()._esc->put("CODTAB",c1);
|
||||
if (app()._esc->read() == NOERR) d1 = app()._esc->get_date("D0");
|
||||
else d1 = botime;
|
||||
app()._esc->put("CODTAB",c2);
|
||||
if (app()._esc->read() == NOERR) d2 = app()._esc->get_date("D0");
|
||||
else d2 = botime;
|
||||
|
||||
if (d1 < d2) rt = -1;
|
||||
else if (d1 > d2) rt = +1;
|
||||
|
||||
return rt;
|
||||
}
|
||||
|
||||
void TSaldibrowse_application::compilasheet()
|
||||
{
|
||||
char flagsal = ' ';
|
||||
@ -451,7 +468,6 @@ void TSaldibrowse_application::compilasheet()
|
||||
|
||||
// nuova struttura archivio saldi
|
||||
|
||||
ss().reset();
|
||||
_riga.destroy();
|
||||
|
||||
TRecnotype items = _cur->items();
|
||||
@ -469,6 +485,8 @@ void TSaldibrowse_application::compilasheet()
|
||||
conto = _cur->curr().get_int(SLD_CONTO);
|
||||
sottoconto = _cur->curr().get_long(SLD_SOTTOCONTO);
|
||||
|
||||
if (_anno != 0 && _anno != anno && _annop != anno) continue;
|
||||
|
||||
if (gruppo != _g) continue;
|
||||
|
||||
if (_saldo_conto && conto != _c) continue;
|
||||
@ -546,6 +564,10 @@ void TSaldibrowse_application::compilasheet()
|
||||
}
|
||||
_riga.destroy();
|
||||
}
|
||||
|
||||
// Ora ordina le righe dello sheet per ordine della data inizio esercizio
|
||||
TString_array& righe_sheet = ss().rows_array();
|
||||
righe_sheet.TArray::sort(compare_rows);
|
||||
}
|
||||
|
||||
int cg5200(int argc, char* argv[])
|
||||
|
@ -13,23 +13,18 @@ BEGIN
|
||||
PROMPT 4 1 "Cod. esercizio "
|
||||
HELP "Codice esercizio a cui si riferiscono i saldi"
|
||||
WARNING "Codice esercizio inesistente"
|
||||
FIELD LF_SALDI->ANNOES
|
||||
KEY 1
|
||||
USE ESC
|
||||
INPUT CODTAB[1,4] F_ANNO
|
||||
DISPLAY "Codice" CODTAB[1,4]
|
||||
DISPLAY "Data inizio esercizio" D0
|
||||
DISPLAY "Data fine esercizio" D1
|
||||
OUTPUT F_ANNO CODTAB[1,4]
|
||||
CHECKTYPE FORCED
|
||||
FLAGS "Z"
|
||||
END
|
||||
|
||||
BOOLEAN F_SCARICATO
|
||||
BEGIN
|
||||
PROMPT 40 1 "Solo saldi dei movimenti scaricati"
|
||||
KEY 1
|
||||
FIELD LF_SALDI->FLSCA
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 73 4
|
||||
@ -41,10 +36,10 @@ LIST F_TIPOCF 9
|
||||
BEGIN
|
||||
PROMPT 4 3 "Tipo "
|
||||
HELP "Tipo del conto da visualizzare"
|
||||
FLAGS "U"
|
||||
ITEM " |Conto" MESSAGE HIDE,2@|HIDE,3@|SHOW,1@
|
||||
ITEM "C|Cliente" MESSAGE HIDE,1@|HIDE,3@|SHOW,2@
|
||||
ITEM "F|Fornitore" MESSAGE HIDE,1@|HIDE,2@|SHOW,3@
|
||||
ITEM " |Conto" MESSAGE HIDE,2@|HIDE,3@|SHOW,1@|ENABLE,F_DESCR_CONTO
|
||||
ITEM "C|Cliente" MESSAGE HIDE,1@|HIDE,3@|SHOW,2@|ENABLE,F_DESCR_CLIENTE
|
||||
ITEM "F|Fornitore" MESSAGE HIDE,1@|HIDE,2@|SHOW,3@|ENABLE,F_DESCR_FORN
|
||||
FIELD TMCF
|
||||
KEY 1
|
||||
END
|
||||
|
||||
@ -53,17 +48,17 @@ BEGIN
|
||||
PROMPT 26 3 "Gruppo "
|
||||
HELP "Codice del conto da visualizzare"
|
||||
WARNING "Gruppo inesistente"
|
||||
USE LF_PCON KEY 1 SELECT CONTO=""
|
||||
FIELD LF_SALDI->GRUPPO
|
||||
FLAGS "R"
|
||||
KEY 1
|
||||
FIELD GRUPPO
|
||||
USE LF_PCON KEY 1 SELECT CONTO=""
|
||||
INPUT GRUPPO F_GRUPPO
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_GRUPPO GRUPPO
|
||||
OUTPUT F_DESCR_CONTO DESCR
|
||||
CHECKTYPE NORMAL
|
||||
CHECKTYPE REQUIRED
|
||||
VALIDATE CHECK_FIELD F_GRUPPO
|
||||
FLAGS "R"
|
||||
END
|
||||
|
||||
NUMBER F_CONTO 3
|
||||
@ -72,7 +67,8 @@ BEGIN
|
||||
HELP "Codice del conto da visualizzare"
|
||||
WARNING "Conto inesistente"
|
||||
USE LF_PCON SELECT (CONTO!="") && (SOTTOCONTO="")
|
||||
FIELD LF_SALDI->CONTO
|
||||
FIELD CONTO
|
||||
FLAGS "R"
|
||||
KEY 1
|
||||
INPUT GRUPPO F_GRUPPO
|
||||
INPUT CONTO F_CONTO
|
||||
@ -84,7 +80,6 @@ BEGIN
|
||||
OUTPUT F_GRUPPO GRUPPO
|
||||
OUTPUT F_CONTO CONTO
|
||||
OUTPUT F_DESCR_CONTO DESCR
|
||||
FLAGS "R"
|
||||
CHECKTYPE NORMAL
|
||||
VALIDATE CHECK_FIELD F_CONTO
|
||||
WARNING "Conto inesistente o mancante"
|
||||
@ -94,9 +89,9 @@ NUMBER F_SOTTOCONTO 6
|
||||
BEGIN
|
||||
PROMPT 54 3 "Sottoconto "
|
||||
HELP "Codice del conto da visualizzare"
|
||||
WARNING "Sottoconto inesistente"
|
||||
USE LF_PCON SELECT SOTTOCONTO!=""
|
||||
FIELD LF_SALDI->SOTTOCONTO
|
||||
FIELD SOTTOCONTO
|
||||
FLAGS "R"
|
||||
KEY 1
|
||||
INPUT GRUPPO F_GRUPPO
|
||||
INPUT CONTO F_CONTO
|
||||
@ -109,19 +104,19 @@ BEGIN
|
||||
OUTPUT F_CONTO CONTO
|
||||
OUTPUT F_SOTTOCONTO SOTTOCONTO
|
||||
OUTPUT F_DESCR_CONTO DESCR
|
||||
FLAGS "R"
|
||||
CHECKTYPE NORMAL
|
||||
VALIDATE CHECK_FIELD F_SOTTOCONTO
|
||||
GROUP 1
|
||||
WARNING "Conto inesistente"
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
NUMBER F_SOTTOC_CLIENTE 6
|
||||
BEGIN
|
||||
PROMPT 54 3 "Cliente "
|
||||
HELP "Codice del conto da visualizzare"
|
||||
WARNING "Cliente inesistente"
|
||||
FIELD LF_SALDI->SOTTOCONTO
|
||||
FLAGS "R"
|
||||
KEY 1
|
||||
FIELD LF_CLIFO->CODCF
|
||||
USE LF_CLIFO
|
||||
INPUT TIPOCF "C"
|
||||
INPUT CODCF F_SOTTOC_CLIENTE
|
||||
@ -131,10 +126,8 @@ BEGIN
|
||||
DISPLAY "Conto" CONTO
|
||||
OUTPUT F_SOTTOC_CLIENTE CODCF
|
||||
OUTPUT F_DESCR_CLIENTE RAGSOC
|
||||
FLAGS "R"
|
||||
VALIDATE CHECK_FIELD F_SOTTOC_CLIENTE
|
||||
CHECKTYPE NORMAL
|
||||
KEY 1
|
||||
VALIDATE CHECK_FIELD F_SOTTOC_CLIENTE
|
||||
WARNING "Cliente inesistente"
|
||||
GROUP 2
|
||||
END
|
||||
@ -143,8 +136,8 @@ NUMBER F_SOTTOC_FORN 6
|
||||
BEGIN
|
||||
PROMPT 54 3 "Fornitore "
|
||||
HELP "Codice del conto da visualizzare"
|
||||
WARNING "Fornitore inesistente"
|
||||
FIELD LF_SALDI->SOTTOCONTO
|
||||
FLAGS "R"
|
||||
KEY 1
|
||||
USE LF_CLIFO
|
||||
INPUT TIPOCF "F"
|
||||
INPUT CODCF F_SOTTOC_FORN
|
||||
@ -154,10 +147,8 @@ BEGIN
|
||||
DISPLAY "Conto" CONTO
|
||||
OUTPUT F_SOTTOC_FORN CODCF
|
||||
OUTPUT F_DESCR_FORN RAGSOC
|
||||
VALIDATE CHECK_FIELD F_SOTTOC_FORN
|
||||
FLAGS "R"
|
||||
CHECKTYPE NORMAL
|
||||
KEY 1
|
||||
VALIDATE CHECK_FIELD F_SOTTOC_FORN
|
||||
WARNING "Fornitore inesistente"
|
||||
GROUP 3
|
||||
END
|
||||
@ -166,13 +157,17 @@ STRING F_DESCR_CONTO 50
|
||||
BEGIN
|
||||
PROMPT 4 4 "Descrizione "
|
||||
HELP "Descrizione del conto da visualizzare"
|
||||
FIELD DESCR
|
||||
USE LF_PCON KEY 2
|
||||
INPUT DESCR F_DESCR_CONTO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Sottoconto" SOTTOCONTO
|
||||
COPY OUTPUT F_SOTTOCONTO
|
||||
OUTPUT F_GRUPPO GRUPPO
|
||||
OUTPUT F_CONTO CONTO
|
||||
OUTPUT F_SOTTOCONTO SOTTOCONTO
|
||||
OUTPUT F_DESCR_CONTO DESCR
|
||||
CHECKTYPE REQUIRED
|
||||
KEY 2
|
||||
GROUP 1
|
||||
@ -182,6 +177,7 @@ STRING F_DESCR_CLIENTE 50
|
||||
BEGIN
|
||||
PROMPT 4 4 "Cliente "
|
||||
HELP "Ragione sociale del cliente da visualizzare"
|
||||
KEY 4
|
||||
USE LF_CLIFO KEY 2
|
||||
INPUT TIPOCF "C"
|
||||
INPUT RAGSOC F_DESCR_CLIENTE
|
||||
@ -190,7 +186,6 @@ BEGIN
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Codice" CODCF
|
||||
COPY OUTPUT F_SOTTOC_CLIENTE
|
||||
KEY 3
|
||||
CHECKTYPE REQUIRED
|
||||
GROUP 2
|
||||
END
|
||||
@ -199,6 +194,7 @@ STRING F_DESCR_FORN 50
|
||||
BEGIN
|
||||
PROMPT 4 4 "Fornitore "
|
||||
HELP "Ragione sociale del fornitore da visualizzare"
|
||||
KEY 4
|
||||
USE LF_CLIFO KEY 2
|
||||
INPUT TIPOCF "F"
|
||||
INPUT RAGSOC F_DESCR_FORN
|
||||
@ -207,7 +203,6 @@ BEGIN
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Codice" CODCF
|
||||
COPY OUTPUT F_SOTTOC_FORN
|
||||
KEY 4
|
||||
CHECKTYPE REQUIRED
|
||||
GROUP 3
|
||||
END
|
||||
|
Loading…
x
Reference in New Issue
Block a user