Aggiunta la funzione setfiler.

Aggiornato l'uso della funzione filter e setregion


git-svn-id: svn://10.65.10.50/trunk@72 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 1994-08-26 14:06:07 +00:00
parent fe146577cf
commit 10cb8b20f6
17 changed files with 4639 additions and 4555 deletions

View File

@ -69,7 +69,7 @@ bool BA3200_application::set_print(int)
} }
} }
_cur->filter ("", from.empty() ? NULL : &from, to.empty() ? NULL : &to); _cur->setregion (from, to);
return TRUE; return TRUE;
} }
return FALSE; return FALSE;

View File

@ -43,7 +43,7 @@ BEGIN
INPUT TIPOA "G" INPUT TIPOA "G"
INPUT CODANAGR FLD_CODANAGR INPUT CODANAGR FLD_CODANAGR
DISPLAY "Codice" CODANAGR DISPLAY "Codice" CODANAGR
DISPLAY "Denominazione@50" RAGSOC DISPLAY "Ragione sociale@50" RAGSOC
DISPLAY "Codice Fiscale@16" COFI DISPLAY "Codice Fiscale@16" COFI
OUTPUT FLD_CODANAGR CODANAGR OUTPUT FLD_CODANAGR CODANAGR
OUTPUT FLD_AG1_RAGSOC RAGSOC OUTPUT FLD_AG1_RAGSOC RAGSOC
@ -64,7 +64,7 @@ BEGIN
INPUT TIPOA "G" INPUT TIPOA "G"
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
INPUT RAGSOC FLD_AG1_RAGSOC INPUT RAGSOC FLD_AG1_RAGSOC
DISPLAY "Denominazione@50" RAGSOC DISPLAY "Ragione sociale@50" RAGSOC
DISPLAY "Codice" CODANAGR DISPLAY "Codice" CODANAGR
DISPLAY "Codice Fiscale " COFI DISPLAY "Codice Fiscale " COFI
COPY OUTPUT FLD_CODANAGR COPY OUTPUT FLD_CODANAGR
@ -115,7 +115,7 @@ BEGIN
INPUT TIPOA "G" INPUT TIPOA "G"
INPUT COFI FLD_AG1_COFI INPUT COFI FLD_AG1_COFI
DISPLAY "Codice Fiscale@16" COFI DISPLAY "Codice Fiscale@16" COFI
DISPLAY "Denominazione@50" RAGSOC DISPLAY "Ragione sociale@50" RAGSOC
DISPLAY "Codice" CODANAGR DISPLAY "Codice" CODANAGR
COPY OUTPUT FLD_CODANAGR COPY OUTPUT FLD_CODANAGR
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
@ -1071,7 +1071,7 @@ END
STRING F_IMP_PROVCOM 5 STRING F_IMP_PROVCOM 5
BEGIN BEGIN
PROMPT 64 6 "Prov." PROMPT 62 6 "Prov."
FLAGS "D" FLAGS "D"
END END
@ -1092,10 +1092,15 @@ BEGIN
WARNING "Ufficio imposte assente" WARNING "Ufficio imposte assente"
END END
STRINF F_DENUFFIIDD 50 STRINF F_DENUFFIIDD 50 48
BEGIN BEGIN
PROMPT 23 7 " " PROMPT 23 7 " "
FLAGS "D" USE %UID KEY 2
INPUT S0 F_DENUFFIIDD
DISPLAY "Denominazione@50" S0
DISPLAY "Ufficio" CODTAB
DISPLAY "C.C.@8" S4
COPY OUTPUT F_UFFIIDD
END END
STRING F_CC_ESATTORIA 8 STRING F_CC_ESATTORIA 8
@ -1115,7 +1120,7 @@ BEGIN
FLAGS "UDG" FLAGS "UDG"
END END
STRING F_DENUFFREG 50 STRING F_DENUFFREG 50 48
BEGIN BEGIN
PROMPT 24 9 "" PROMPT 24 9 ""
FLAGS "D" FLAGS "D"
@ -1132,7 +1137,7 @@ BEGIN
CHECKTYPE NORMAL CHECKTYPE NORMAL
END END
STRING F_DENUFFCONC 50 STRING F_DENUFFCONC 50 48
BEGIN BEGIN
PROMPT 24 10 "" PROMPT 24 10 ""
FLAGS "D" FLAGS "D"
@ -1149,7 +1154,7 @@ BEGIN
CHECKTYPE NORMAL CHECKTYPE NORMAL
END END
STRING F_DENUFFSERV 50 STRING F_DENUFFSERV 50 48
BEGIN BEGIN
PROMPT 24 11 "" PROMPT 24 11 ""
FLAGS "D" FLAGS "D"

View File

@ -309,7 +309,7 @@ STRING FLD_GD1_COMAA_COMUNI_DESCR 50
BEGIN BEGIN
PROMPT 8 12 ": Nome " PROMPT 8 12 ": Nome "
USE LF_COMUNI KEY 2 SELECT STATO="" USE LF_COMUNI KEY 2 SELECT STATO=""
INPUT COM FLD_GD1_COMAA_COMUNI_DESCR INPUT DENCOM FLD_GD1_COMAA_COMUNI_DESCR
#include <comdden.h> #include <comdden.h>
OUTPUT FLD_GD1_COMAA COM OUTPUT FLD_GD1_COMAA COM
OUTPUT FLD_GD1_COMAA_COMUNI_DESCR DENCOM OUTPUT FLD_GD1_COMAA_COMUNI_DESCR DENCOM

View File

@ -407,7 +407,7 @@ bool BA6100_App::set_print(int)
} }
} }
} }
current_cursor()->setregion(&tr1, &tr2); current_cursor()->setregion(tr1, tr2);
} }
break; break;
case nditte: case nditte:
@ -438,8 +438,7 @@ bool BA6100_App::set_print(int)
tr1.put("RAGSOC",cod_from); tr1.put("RAGSOC",cod_from);
tr2.put("RAGSOC",cod_to); tr2.put("RAGSOC",cod_to);
} }
current_cursor()->setregion(cod_from.empty() ? NULL : &tr1, current_cursor()->setregion(tr1, tr2);
cod_to.empty() ? NULL : &tr2);
} }
break; break;
} }

View File

@ -183,7 +183,7 @@ bool BA6200_application::set_print(int)
a.put(COM_STATO,statofine); a.put(COM_STATO,statofine);
a.put(COM_COM ,codicefine); a.put(COM_COM ,codicefine);
current_cursor()->setregion(&da, &a); current_cursor()->setregion(da, a);
} }
else else
if (scelta == 2) if (scelta == 2)
@ -207,7 +207,7 @@ bool BA6200_application::set_print(int)
a.put (COM_DENCOM, denomfine); a.put (COM_DENCOM, denomfine);
current_cursor()->setregion(&da, &a); current_cursor()->setregion(da, a);
} }
//set_print_zero(); //set_print_zero();

View File

@ -288,14 +288,13 @@ HIDDEN bool sottoc_handler(TMask_field& f, KEY key)
{ {
if (key == K_TAB) if (key == K_TAB)
{ {
TString gruppo(f.mask().get(FLD_CM1_GRUPPO)); int gruppo = f.mask().get_int(FLD_CM1_GRUPPO);
if (gruppo.empty()) return TRUE; if (gruppo == 0) return TRUE;
TString conto(f.mask().get(FLD_CM1_CONTO)); int conto = f.mask().get_int(FLD_CM1_CONTO);
TString sottoconto(f.mask().get(FLD_CM1_SOTTOCONTO)); long sottoconto = f.mask().get_long(FLD_CM1_SOTTOCONTO);
if (sottoconto.not_empty() && conto.empty()) return f.error_box("Manca il CONTO"); if (sottoconto != 0 && conto == 0) return f.error_box("Manca il CONTO");
dispatch_e_char(f.parent(), K_AUTO_ENTER); f.mask().stop_run(K_AUTO_ENTER);
} }
return TRUE; return TRUE;
} }

View File

@ -50,7 +50,7 @@ HIDDEN bool key_handler (TMask_field& f, KEY k)
if (m.get(F_ANNO).not_empty() && m.get(F_CODATT).not_empty() && if (m.get(F_ANNO).not_empty() && m.get(F_CODATT).not_empty() &&
m.get(F_CODCF).not_empty()) m.get(F_CODCF).not_empty())
m.send_key(K_AUTO_ENTER, 0); m.stop_run(K_AUTO_ENTER);
} }
return TRUE; return TRUE;
} }

View File

@ -2813,9 +2813,9 @@ bool CG1500_application::set_print(int)
_cur->setkey(3); _cur->setkey(3);
if (_situazione.not_empty()) if (_situazione.not_empty())
_cur->filter(format("TIPOCF = \"%s\"",(const char*)_situazione)); _cur->setfilter(format("TIPOCF = \"%s\"",(const char*)_situazione));
else else
_cur->filter(""); _cur->setfilter("");
_prog = new TProgind(_cur->items(),"Elaborazione in corso... prego attendere",FALSE); _prog = new TProgind(_cur->items(),"Elaborazione in corso... prego attendere",FALSE);

View File

@ -1336,8 +1336,8 @@ bool CG3100_application::set_print(int m)
{ {
select_cursor(_cur1); select_cursor(_cur1);
if (!provvis) if (!provvis)
_curr1->filter("(PROVVIS=\"\")"); _curr1->setfilter("(PROVVIS=\"\")");
else _curr1->filter(""); else _curr1->setfilter("");
fl = current_cursor()->file(LF_MOV); fl = current_cursor()->file(LF_MOV);
TRectype da (fl->curr()); TRectype da (fl->curr());
TRectype a (fl->curr()); TRectype a (fl->curr());
@ -1345,7 +1345,7 @@ bool CG3100_application::set_print(int m)
a.zero(); a.zero();
da.put(MOV_NUMREG, _numreg_ini); da.put(MOV_NUMREG, _numreg_ini);
a.put(MOV_NUMREG, _numreg_fin); a.put(MOV_NUMREG, _numreg_fin);
current_cursor()->setregion(&da,&a); current_cursor()->setregion(da,a);
add_file(LF_MOV); add_file(LF_MOV);
add_file(LF_RMOV,LF_MOV); add_file(LF_RMOV,LF_MOV);
add_file(LF_RMOVIVA,LF_MOV); add_file(LF_RMOVIVA,LF_MOV);
@ -1354,7 +1354,7 @@ bool CG3100_application::set_print(int m)
{ {
select_cursor(_cur2); select_cursor(_cur2);
if (!provvis) if (!provvis)
_curr2->filter("(PROVVIS=\"\")"); else _curr2->filter(""); _curr2->setfilter("(PROVVIS=\"\")"); else _curr2->setfilter("");
fl = current_cursor()->file(LF_MOV); fl = current_cursor()->file(LF_MOV);
TRectype da (fl->curr()); TRectype da (fl->curr());
TRectype a (fl->curr()); TRectype a (fl->curr());
@ -1362,7 +1362,7 @@ bool CG3100_application::set_print(int m)
a.zero(); a.zero();
da.put(MOV_DATAREG, _data_ini); da.put(MOV_DATAREG, _data_ini);
a.put(MOV_DATAREG, _data_fin); a.put(MOV_DATAREG, _data_fin);
current_cursor()->setregion(&da,&a); current_cursor()->setregion(da,a);
add_file(LF_MOV); add_file(LF_MOV);
add_file(LF_RMOV,LF_MOV); add_file(LF_RMOV,LF_MOV);
add_file(LF_RMOVIVA,LF_MOV); add_file(LF_RMOVIVA,LF_MOV);
@ -1399,8 +1399,8 @@ bool CG3100_application::set_print(int m)
} }
select_cursor(_cur3); select_cursor(_cur3);
if (!movprov) if (!movprov)
_curr3->filter("(PROVVIS=\"\")"); _curr3->setfilter("(PROVVIS=\"\")");
else _curr3->filter(""); else _curr3->setfilter("");
TRectype da (fl->curr()); TRectype da (fl->curr());
TRectype a (fl->curr()); TRectype a (fl->curr());
da.zero(); da.zero();
@ -1413,7 +1413,7 @@ bool CG3100_application::set_print(int m)
da.put(MOV_DATAREG, _data_ini); da.put(MOV_DATAREG, _data_ini);
a.put(MOV_DATAREG, _data_fin); a.put(MOV_DATAREG, _data_fin);
da.put(MOV_TIPO, _tipo_ini); da.put(MOV_TIPO, _tipo_ini);
current_cursor()->setregion(&da,&a); current_cursor()->setregion(da,a);
add_file(LF_MOV); add_file(LF_MOV);
add_file(LF_RMOVIVA,LF_MOV); add_file(LF_RMOVIVA,LF_MOV);

View File

@ -996,7 +996,7 @@ bool CG3200_application::set_print(int)
a.put(PCN_CONTO,contofine); a.put(PCN_CONTO,contofine);
a.put(PCN_SOTTOCONTO,sottocontofine); a.put(PCN_SOTTOCONTO,sottocontofine);
current_cursor()->setregion(&da, &a); current_cursor()->setregion(da, a);
} }
else else
{ {
@ -1026,7 +1026,7 @@ bool CG3200_application::set_print(int)
a.put(CLI_CONTO,contofine); a.put(CLI_CONTO,contofine);
a.put(CLI_CODCF,sottocontofine); a.put(CLI_CODCF,sottocontofine);
current_cursor()->setregion(&da, &a); current_cursor()->setregion(da, a);
} }
if (_stampatotiva) if (_stampatotiva)
@ -1280,6 +1280,81 @@ void CG3200_application::calcola_progressivi_al()
void CG3200_application::calcola_progressivi() void CG3200_application::calcola_progressivi()
{ {
<<<<<<< cg3200.cpp
TLocalisamfile pconti(LF_PCON);
TLocalisamfile saldi (LF_SALDI);
real pdaresca,paveresca,pdarescap,paverescap;
real progdare_attuale,progavere_attuale,progdare_prec,progavere_prec;
real saldo,progredare_eseprec,progreavere_eseprec,pdarep,paverep;
int indbil;
char salini;
TRectype record(saldi.curr());
saldo = 0.00;
pdarep = 0.00;
paverep = 0.00;
pdaresca = 0.00;
paveresca = 0.00;
pdarescap = 0.00;
paverescap = 0.00;
// Ricerca sull'archivio saldi dei record con gruppo,conto,sottoconto
// uguali a quelli di rmov per il calcolo dei progressivi precedenti
record.zero();
record.put(SLD_GRUPPO, _gruppo);
record.put(SLD_CONTO, _conto);
record.put(SLD_SOTTOCONTO, _sottoc);
if (_ricerca == 'P')
indbil = atoi (current_cursor()->file(LF_PCON)->get(PCN_INDBIL));
else
{
if ((_ricerca == 'C') || (_ricerca == 'F'))
{
pconti.setkey(1);
pconti.zero();
pconti.put(PCN_GRUPPO, _gruppo);
pconti.put(PCN_CONTO , _conto);
pconti.read();
if (pconti.good())
indbil = atoi (pconti.get(PCN_INDBIL));
else
indbil = 0;
}
}
saldi.setkey(2);
saldi.zero();
saldi.put(SLD_GRUPPO, _gruppo);
saldi.put(SLD_CONTO, _conto);
saldi.put(SLD_SOTTOCONTO, _sottoc);
for ( saldi.read();
((saldi.curr()==record) && !saldi.eof());
saldi.next())
{
long annoes_saldi = saldi.curr().get_long(SLD_ANNOES);
//Calcola i progressivi dell'esercizio attuale
if (annoes_saldi == _annomsk)
{
pdaresca = saldi.curr().get_real(SLD_PDARESCA);
paveresca = saldi.curr().get_real(SLD_PAVERESCA);
saldo = saldi.curr().get_real(SLD_SALDO);
salini = saldi.curr().get(SLD_FLAGSALINI)[0];
}
//Calcola i progressivi dell'esercizio precedente
if (annoes_saldi == _annoesmsk)
{
pdarescap = saldi.curr().get_real(SLD_PDARESCA);
pdarep = saldi.curr().get_real(SLD_PDARE);
paverescap = saldi.curr().get_real(SLD_PAVERESCA);
paverep = saldi.curr().get_real(SLD_PAVERE);
=======
TLocalisamfile pconti(LF_PCON); TLocalisamfile pconti(LF_PCON);
TLocalisamfile saldi (LF_SALDI); TLocalisamfile saldi (LF_SALDI);
real pdaresca,paveresca,pdarescap,paverescap; real pdaresca,paveresca,pdarescap,paverescap;
@ -1353,6 +1428,7 @@ void CG3200_application::calcola_progressivi()
pdarep = saldi.curr().get_real(SLD_PDARE); pdarep = saldi.curr().get_real(SLD_PDARE);
paverescap = saldi.curr().get_real(SLD_PAVERESCA); paverescap = saldi.curr().get_real(SLD_PAVERESCA);
paverep = saldi.curr().get_real(SLD_PAVERE); paverep = saldi.curr().get_real(SLD_PAVERE);
>>>>>>> 1.2
// Se il saldo dell'esercizio attuale e' diverso da 0 allora significa che // Se il saldo dell'esercizio attuale e' diverso da 0 allora significa che
// quello corrisponde al saldo finale dell'esercizio precedente. Per ottenere // quello corrisponde al saldo finale dell'esercizio precedente. Per ottenere

View File

@ -1385,7 +1385,7 @@ bool CG3400_application::set_print(int)
da.put(MOV_DATAREG, _data_da); da.put(MOV_DATAREG, _data_da);
a.put (MOV_DATAREG, _data_a); a.put (MOV_DATAREG, _data_a);
_cur->setregion (&da, &a); _cur->setregion(da, a);
mb.set (PROGR_DARE, _tot_dare.string()); mb.set (PROGR_DARE, _tot_dare.string());
mb.set (N_RIGA_STAMPATO, _nprog_da); mb.set (N_RIGA_STAMPATO, _nprog_da);

View File

@ -165,7 +165,7 @@ bool CG4300_App::set_print(int n)
if (_year != yy) if (_year != yy)
{ {
TString cond(format("ANNOES=%s",(const char*)_year)); TString cond(format("ANNOES=%s",(const char*)_year));
_cur->filter(cond); _cur->setfilter(cond);
} }
recalc_all(); recalc_all();
return _isprint; return _isprint;
@ -180,7 +180,7 @@ bool CG4300_App::set_print(int n)
if (_year != yy) if (_year != yy)
{ {
TString cond(format("ANNOES=%s",(const char*)_year)); TString cond(format("ANNOES=%s",(const char*)_year));
_cur->filter(cond); _cur->setfilter(cond);
} }
extract_deleghe(); extract_deleghe();
return FALSE; return FALSE;
@ -193,7 +193,7 @@ bool CG4300_App::set_print(int n)
if (_year != yy) if (_year != yy)
{ {
TString cond(format("ANNOES=%s",(const char*)_year)); TString cond(format("ANNOES=%s",(const char*)_year));
_cur->filter(cond); _cur->setfilter(cond);
} }
recalc_acconti(); recalc_acconti();
return _isprint; return _isprint;

View File

@ -1,4 +1,4 @@
// $Id: maskfld.cpp,v 1.4 1994-08-26 13:07:14 guy Exp $ // $Id: maskfld.cpp,v 1.5 1994-08-26 14:05:29 alex Exp $
#include <xvt.h> #include <xvt.h>
#include <applicat.h> #include <applicat.h>
@ -1160,7 +1160,8 @@ int TBrowse::do_input(bool filter)
else work << _filter[i]; else work << _filter[i];
} }
const char* w = work.empty() ? NULL : (const char*) work; _cursor->setfilter(work);
_cursor->setregion(filtrec, filtrec);
if (filtrec.empty()) _cursor->filter(w); if (filtrec.empty()) _cursor->filter(w);
else _cursor->filter(w, &filtrec, &filtrec); else _cursor->filter(w, &filtrec, &filtrec);

View File

@ -718,7 +718,7 @@ bool TSpreadsheet::on_key(KEY k)
{ {
switch(k) switch(k)
{ {
case K_SHIFT_ENTER: case K_CTRL_ENTER:
case K_ESC: case K_ESC:
mask().send_key(k, 0); mask().send_key(k, 0);
return TRUE; return TRUE;

View File

@ -1,4 +1,4 @@
// $Id: relapp.cpp,v 1.3 1994-08-23 13:52:26 guy Exp $ // $Id: relapp.cpp,v 1.4 1994-08-26 14:05:47 alex Exp $
#include <mailbox.h> #include <mailbox.h>
#include <sheet.h> #include <sheet.h>
#include <urldefid.h> #include <urldefid.h>
@ -829,7 +829,8 @@ bool TRelation_application::filter()
if (campo != NULL) if (campo != NULL)
campo->write(t.mid(u+1), rec); campo->write(t.mid(u+1), rec);
} }
cur->filter("", &rec, &rec); cur->setfilter("");
cur->setregion(rec, rec);
if (s == NULL) id = 0; if (s == NULL) id = 0;
} }
} }

View File

@ -1,4 +1,4 @@
// $Id: relation.cpp,v 1.4 1994-08-24 07:24:04 villa Exp $ // $Id: relation.cpp,v 1.5 1994-08-26 14:06:00 alex Exp $
// relation.cpp // relation.cpp
// fv 12/8/93 // fv 12/8/93
// relation class for isam files // relation class for isam files
@ -845,7 +845,8 @@ TRecnotype TCursor::update()
} }
void TCursor::filter(const char* filter, TRectype *from, TRectype* to) void TCursor::filter(const char* filter, const TRectype *from,
const TRectype* to)
{ {
CHECK(!_frozen, "Impossibile filtrare un cursore congelato"); CHECK(!_frozen, "Impossibile filtrare un cursore congelato");

View File

@ -1,4 +1,4 @@
/* $Id: relation.h,v 1.1.1.1 1994-08-12 10:52:02 alex Exp $ */ /* $Id: relation.h,v 1.2 1994-08-26 14:06:07 alex Exp $ */
// join.h // join.h
// fv 12/8/93 // fv 12/8/93
// join class for isam files // join class for isam files
@ -178,6 +178,8 @@ class TCursor : public TObject
protected: protected:
TRecnotype readrec(); TRecnotype readrec();
void filter(const char* filter, const TRectype* from = NULL,
const TRectype* to = NULL);
public: public:
// @FPUB // @FPUB
@ -198,12 +200,12 @@ class TCursor : public TObject
TRecnotype read(TIsamop op = _isgteq, TReclock lockop = _nolock, TDate& atdate = botime); TRecnotype read(TIsamop op = _isgteq, TReclock lockop = _nolock, TDate& atdate = botime);
virtual bool ok() const; virtual bool ok() const;
void filter(const char* filter, TRectype* from = NULL, TRectype* to = NULL);
const char* filter() const { return _filter; } const char* filter() const { return _filter; }
void freeze(bool on = TRUE) { _frozen = on; } void freeze(bool on = TRUE) { _frozen = on; }
bool frozen() const { return _frozen; } bool frozen() const { return _frozen; }
void setregion(TRectype* from = NULL, TRectype* to = NULL) void setfilter(const char* filter_expr) { filter(filter_expr); }
{ filter(NULL,from,to); } void setregion(const TRectype& from, const TRectype& to)
{ filter(NULL,&from, &to); }
TRelation* relation() const { return _if; } TRelation* relation() const { return _if; }
TLocalisamfile* file(int lnum = 0) const { return _if->lfile(lnum); } TLocalisamfile* file(int lnum = 0) const { return _if->lfile(lnum); }