From f114c65d04aefb607160d014766240b47757a45b Mon Sep 17 00:00:00 2001 From: angelo Date: Thu, 8 Sep 1994 15:06:53 +0000 Subject: [PATCH] Discriminazione apertura files indsped e cfven git-svn-id: svn://10.65.10.50/trunk@196 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- cg/cg0201.cpp | 163 +++++++++++++++++++++++++------------------------- cg/cg0201.h | 46 +++++++------- 2 files changed, 106 insertions(+), 103 deletions(-) diff --git a/cg/cg0201.cpp b/cg/cg0201.cpp index 70c5f7dc8..3291d0b0e 100755 --- a/cg/cg0201.cpp +++ b/cg/cg0201.cpp @@ -8,139 +8,142 @@ extern bool gest_vend(); TClifoVI::TClifoVI():TRelation(LF_CLIFO), _oldindirizzi(0) { - add(LF_CFVEN,"TIPOCF=TIPOCF|CODCF=CODCF"); - add(LF_INDSP,"TIPOCF=TIPOCF|CODCF=CODCF"); + if (gest_vend()) + { + add(LF_CFVEN,"TIPOCF=TIPOCF|CODCF=CODCF"); + add(LF_INDSP,"TIPOCF=TIPOCF|CODCF=CODCF"); + } } void TClifoVI::destroy_rows() { - _indirizzi.destroy(); + _indirizzi.destroy(); } TRectype& TClifoVI::indirizzo(int i) { TRectype *r=(TRectype*)_indirizzi.objptr(i); - if (r == NULL) - { - r = new TRectype(LF_INDSP); - _indirizzi.add(r,i); - } + if (r == NULL) + { + r = new TRectype(LF_INDSP); + _indirizzi.add(r,i); + } return *r; } int TClifoVI::read_indirizzi() { - const TLocalisamfile* rind = lfile(LF_INDSP); - // Put here gest_vend() discrimination - if (gest_vend()) - { - position_rels(); - destroy_rows(); - for (bool ok=is_first_match(LF_INDSP); ok; ok=next_match(LF_INDSP)) - { - const int nriga=rind->get_int("CODIND") -1; - indirizzo(nriga)=rind->curr(); - } - } - _oldindirizzi=indirizzi_items(); - return NOERR; + const TLocalisamfile* rind = lfile(LF_INDSP); + // Put here gest_vend() discrimination + if (gest_vend()) + { + position_rels(); + destroy_rows(); + for (bool ok=is_first_match(LF_INDSP); ok; ok=next_match(LF_INDSP)) + { + const int nriga=rind->get_int("CODIND") -1; + indirizzo(nriga)=rind->curr(); + } + } + _oldindirizzi=indirizzi_items(); + return NOERR; } int TClifoVI::read(TIsamop op, TReclock lockop, TDate& atdate) { int err=file()->read(op,lockop,atdate); - if (err==NOERR) read_indirizzi(); - return err; + if (err==NOERR) read_indirizzi(); + return err; } int TClifoVI::write_rec(bool re, const TRectype& rec, TLocalisamfile* f) { - if (re) - { - const bool scrivi= (f->rewrite(rec)!=NOERR); - if (scrivi) f->write(rec); - } else - f->write(rec); - return f->status(); + if (re) + { + const bool scrivi= (f->rewrite(rec)!=NOERR); + if (scrivi) f->write(rec); + } else + f->write(rec); + return f->status(); } int TClifoVI::cancella(TLocalisamfile* f, int da, int a) { - const char tipocf=lfile()->get("TIPOCF")[0]; - const long codcf=lfile()->get_long("CODCF"); + const char tipocf=lfile()->get("TIPOCF")[0]; + const long codcf=lfile()->get_long("CODCF"); - for (int i=da; i<=a;i++) - { - f->zero(); - f->put("TIPOCF",tipocf); - f->put("CODCF",codcf); - f->put("CODIND",i); - if (f->read(_isequal,_lock)==NOERR) - f->remove(); - } + for (int i=da; i<=a;i++) + { + f->zero(); + f->put("TIPOCF",tipocf); + f->put("CODCF",codcf); + f->put("CODIND",i); + if (f->read(_isequal,_lock)==NOERR) + f->remove(); + } return f->status(); } int TClifoVI::registra(bool re, bool force) { TLocalisamfile* c=lfile(LF_CLIFO); - int err=write_rec(re,c->curr(),c); - if (err!=NOERR) return err; + int err=write_rec(re,c->curr(),c); + if (err!=NOERR) return err; - // Put here gest_vend() discrimination - if (gest_vend()) - { - TLocalisamfile* v=lfile(LF_CFVEN); - err=write_rec(TRUE,v->curr(),v); - if (err!=NOERR) return err; + // Put here gest_vend() discrimination + if (gest_vend()) + { + TLocalisamfile* v=lfile(LF_CFVEN); + err=write_rec(TRUE,v->curr(),v); + if (err!=NOERR) return err; - TLocalisamfile* rind=lfile(LF_INDSP); - const char tipocf=c->get("TIPOCF")[0]; - const long codcf=c->get_long("CODCF"); + TLocalisamfile* rind=lfile(LF_INDSP); + const char tipocf=c->get("TIPOCF")[0]; + const long codcf=c->get_long("CODCF"); - for (int i=0; iremove(); + c->remove(); - // Put here gest_vend() discrimination - if (gest_vend()) - { - cancella(rind,1,_oldindirizzi); - v->remove(); - } + // Put here gest_vend() discrimination + if (gest_vend()) + { + TLocalisamfile* v=lfile(LF_CFVEN); + TLocalisamfile* rind=lfile(LF_INDSP); + cancella(rind,1,_oldindirizzi); + v->remove(); + } _oldindirizzi=0; return c->status(); diff --git a/cg/cg0201.h b/cg/cg0201.h index 513af8df3..93ebb4c0e 100755 --- a/cg/cg0201.h +++ b/cg/cg0201.h @@ -4,32 +4,32 @@ class TClifoVI:public TRelation { -// @DPRIV - TArray _indirizzi; - int _oldindirizzi; -// @END + // @DPRIV + TArray _indirizzi; + int _oldindirizzi; + // @END protected: -// @FPROT - int write_rec(bool re, const TRectype& r, TLocalisamfile* f); - int cancella(TLocalisamfile* f, int da, int a); - int registra(bool re, bool force); - int read_indirizzi(); -// @END + // @FPROT + int write_rec(bool re, const TRectype& r, TLocalisamfile* f); + int cancella(TLocalisamfile* f, int da, int a); + int registra(bool re, bool force); + int read_indirizzi(); + // @END public: - virtual int next(TReclock lockop=_nolock) {return (lfile()->next(lockop) || read_indirizzi());} - virtual int prev(TReclock lockop=_nolock) {return (lfile()->prev(lockop) || read_indirizzi());} - virtual int first(TReclock lockop=_nolock) {return (lfile()->first(lockop) || read_indirizzi());} - virtual int last(TReclock lockop=_nolock) {return (lfile()->last(lockop) || read_indirizzi());} - virtual int skip(TReclock lockop=_nolock) {return (lfile()->skip(lockop) || read_indirizzi());} - virtual int read(TIsamop = _isgteq, TReclock lockop = _nolock, TDate& atdate = (TDate&) botime); - virtual int write(bool force=TRUE, TDate& atdate = (TDate&) botime); - virtual int rewrite(bool force=TRUE, TDate& atdate = (TDate&) botime); - virtual int remove(TDate& atdate = (TDate&) botime); + virtual int next(TReclock lockop=_nolock) {return (lfile()->next(lockop) || read_indirizzi());} + virtual int prev(TReclock lockop=_nolock) {return (lfile()->prev(lockop) || read_indirizzi());} + virtual int first(TReclock lockop=_nolock) {return (lfile()->first(lockop) || read_indirizzi());} + virtual int last(TReclock lockop=_nolock) {return (lfile()->last(lockop) || read_indirizzi());} + virtual int skip(TReclock lockop=_nolock) {return (lfile()->skip(lockop) || read_indirizzi());} + virtual int read(TIsamop = _isgteq, TReclock lockop = _nolock, TDate& atdate = (TDate&) botime); + virtual int write(bool force=TRUE, TDate& atdate = (TDate&) botime); + virtual int rewrite(bool force=TRUE, TDate& atdate = (TDate&) botime); + virtual int remove(TDate& atdate = (TDate&) botime); - TRectype& indirizzo(int i); + TRectype& indirizzo(int i); int indirizzi_items() const {return _indirizzi.items();} - void destroy_rows(); + void destroy_rows(); - TClifoVI(); - virtual ~TClifoVI() {} + TClifoVI(); + virtual ~TClifoVI() {} };