Corretto conflitto precedente

git-svn-id: svn://10.65.10.50/trunk@75 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 1994-08-26 16:02:23 +00:00
parent fff1daf8af
commit 163625d934

View File

@ -1280,8 +1280,7 @@ void CG3200_application::calcola_progressivi_al()
void CG3200_application::calcola_progressivi()
{
<<<<<<< cg3200.cpp
TLocalisamfile pconti(LF_PCON);
TLocalisamfile pconti(LF_PCON);
TLocalisamfile saldi (LF_SALDI);
real pdaresca,paveresca,pdarescap,paverescap;
real progdare_attuale,progavere_attuale,progdare_prec,progavere_prec;
@ -1317,7 +1316,7 @@ void CG3200_application::calcola_progressivi()
pconti.put(PCN_CONTO , _conto);
pconti.read();
if (pconti.good())
indbil = atoi (pconti.get(PCN_INDBIL));
indbil = pconti.get_int(PCN_INDBIL);
else
indbil = 0;
}
@ -1354,427 +1353,352 @@ void CG3200_application::calcola_progressivi()
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 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);
// Se il saldo dell'esercizio attuale e' diverso da 0 allora significa che
// quello corrisponde al saldo finale dell'esercizio precedente. Per ottenere
// i progressivi dell'esercizio precedente devo a questo punto sommare i
// progressivi dell'esercizio e i progressivi di quelli scaricati, tenendo
// conto del flag salini per sapere se il saldo e' dare oppure avere.
if (_ricerca == 'P')
indbil = atoi (current_cursor()->file(LF_PCON)->get(PCN_INDBIL));
else
if (saldo != 0)
{
if ((_ricerca == 'C') || (_ricerca == 'F'))
if (salini == 'D')
{
pconti.setkey(1);
pconti.zero();
pconti.put(PCN_GRUPPO, _gruppo);
pconti.put(PCN_CONTO , _conto);
pconti.read();
if (pconti.good())
indbil = pconti.get_int(PCN_INDBIL);
else
indbil = 0;
progredare_eseprec = saldo + pdarescap + pdarep;
progreavere_eseprec = paverescap + paverep;
}
}
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)
else if (salini == 'A')
{
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];
progredare_eseprec = pdarescap + pdarep;
progreavere_eseprec = saldo + paverescap + paverep;
}
//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);
>>>>>>> 1.2
// Se il saldo dell'esercizio attuale e' diverso da 0 allora significa che
// quello corrisponde al saldo finale dell'esercizio precedente. Per ottenere
// i progressivi dell'esercizio precedente devo a questo punto sommare i
// progressivi dell'esercizio e i progressivi di quelli scaricati, tenendo
// conto del flag salini per sapere se il saldo e' dare oppure avere.
if (saldo != 0)
{
if (salini == 'D')
{
progredare_eseprec = saldo + pdarescap + pdarep;
progreavere_eseprec = paverescap + paverep;
}
else if (salini == 'A')
{
progredare_eseprec = pdarescap + pdarep;
progreavere_eseprec = saldo + paverescap + paverep;
}
}
else
{
//Se il saldo dell'esercizio attuale non e' diverso da zero, allora il saldo
// finale dell'esercizio precedente devo calcolarmelo tenendo conto dell'indbil
if ((indbil == 1) || (indbil == 2) || (indbil == 5))
{
saldo = _sld.saldofin_esprec(_annomsk,_gruppo,_conto,_sottoc);
if (saldo.sign() > 0)
{
progredare_eseprec = saldo + pdarescap + pdarep;
progreavere_eseprec = paverescap + paverep;
}
else if (saldo.sign() < 0)
{
progredare_eseprec = pdarescap + pdarep;
progreavere_eseprec = saldo + paverescap + paverep;
}
}
}
}
//Calcolo dei progressivi precedenti: somma di tutti quei movimenti di rmov
//che hanno la data di registrazione inferiore alla data di inizio stampa,
//dei progressivi dell'anno esercizio precedente, e dei progressivi dei
//movimenti scaricati dell'esercizio attuale.
calcola_progressivi_al();
_progredare = pdaresca + progredare_eseprec + _totale_prima_dare;
_progreavere = paveresca + progreavere_eseprec + _totale_prima_avere;
_saldo_progre_prec = _progredare - _progreavere;
} // FOR
if (_numcarat == 1)
{
TString string = _saldo_progre_prec.string("###############");
set_header (10,"@32gPROGRESSIVI PRECEDENTI@61g%15s",(const char*) string);
string = _progredare.string("###############");
set_header (10,"@77g%15s",(const char*) string);
string = _progreavere.string("###############");
set_header (10,"@93g%15s",(const char*) string);
}
if (_numcarat == 2)
{
TString string = _progredare.string("###############");
set_header (10,"@32gPROGRESSIVI PRECEDENTI@102g%15s",(const char*)string);
string = _progreavere.string("###############");
set_header (10,"@119g%15s",(const char*) string);
}
//Calcolo dei progressivi al <ultima data registrazione>
//Se sulla maschera e' stato selezionato il controllo competenza esercizio
//Sommo i progressivi dell'esercizio precedente e quelli dell'esercizio attuale
//altrimenti solo quelli dell'esercizio attuale
if (_competenza)
{
_totprogre_dare_al = progdare_attuale + progdare_prec;
_totprogre_avere_al = progavere_attuale + progavere_prec;
}
else
{
_totprogre_dare_al = progdare_attuale;
_totprogre_avere_al = progavere_attuale;
}
}
// Se la ricerca selezionata nella maschera e' per clienti, oppure fornitori, // allora ricerco su CLIFO i relativi dati, e su PCON il relativo gruppo,conto,// sottoconto e IV direttiva CEE
//Se il saldo dell'esercizio attuale non e' diverso da zero, allora il saldo
// finale dell'esercizio precedente devo calcolarmelo tenendo conto dell'indbil
void CG3200_application::ricerca_clifo()
{
TString ragsoc,paiv,cofi,indcf,capcf,ptel,tel,statocf,comcf,dencom,provcom,dep;
TLocalisamfile pconti(LF_PCON);
TString dataini,datafine;
ragsoc = (current_cursor()->curr(LF_CLIFO).get(CLI_RAGSOC));
paiv = (current_cursor()->curr(LF_CLIFO).get(CLI_PAIV));
cofi = (current_cursor()->curr(LF_CLIFO).get(CLI_COFI));
indcf = (current_cursor()->curr(LF_CLIFO).get(CLI_INDCF));
capcf = (current_cursor()->curr(LF_CLIFO).get(CLI_CAPCF));
ptel = (current_cursor()->curr(LF_CLIFO).get(CLI_PTEL));
tel = (current_cursor()->curr(LF_CLIFO).get(CLI_TEL));
statocf = (current_cursor()->curr(LF_CLIFO).get(CLI_STATOCF));
comcf = (current_cursor()->curr(LF_CLIFO).get(CLI_COMCF));
_comuni->setkey(1);
_comuni->curr().zero();
_comuni->curr().put(COM_STATO, statocf);
_comuni->curr().put(COM_COM, comcf);
_comuni->read();
dencom = _comuni->curr().get(COM_DENCOM);
provcom = _comuni->curr().get(COM_PROVCOM);
pconti.setkey(1);
pconti.curr().zero();
pconti.curr().put(PCN_GRUPPO, _gruppo);
pconti.curr().put(PCN_CONTO, _conto);
pconti.curr().put(PCN_SOTTOCONTO, _sottoc);
pconti.read();
_sezivd = pconti.curr().get(PCN_SEZIVD);
_lettivd = pconti.curr().get(PCN_LETTIVD);
_numrivd = atoi(pconti.curr().get(PCN_NUMRIVD));
_numivd = atoi(pconti.curr().get(PCN_NUMIVD));
_tabivd->curr().zero();
dep << format ("%1s%1s%8d%2d",(const char*)_sezivd,(const char*)_lettivd,(const char*)_numrivd,_numivd);
_tabivd->curr().put("CODTAB", (const char*) dep);
_tabivd->read();
TString descriz = _tabivd->curr().get("S0");
if (_ricerca == 'P')
{
set_header(3,"@27g%-30s",(const char*) descrizione_gruppo());
set_header(3,"@59g%-30s",(const char*) descrizione_conto());
}
else
if ((_ricerca == 'C')||(_ricerca == 'F'))
if ((indbil == 1) || (indbil == 2) || (indbil == 5))
{
set_header(3,"@27g%-30s",(const char*) descrizione_gruppo_clifo());
set_header(3,"@59g%-30s",(const char*) descrizione_conto_clifo());
saldo = _sld.saldofin_esprec(_annomsk,_gruppo,_conto,_sottoc);
if (saldo.sign() > 0)
{
progredare_eseprec = saldo + pdarescap + pdarep;
progreavere_eseprec = paverescap + paverep;
}
else if (saldo.sign() < 0)
{
progredare_eseprec = pdarescap + pdarep;
progreavere_eseprec = saldo + paverescap + paverep;
}
}
set_header(3, "@91g%-30s",(const char*) ragsoc);
set_header(4, "@1gClasse@8g%1s",(const char*) _lettivd);
set_header(4, "@10g%8s",(const char*) _numrivd);
set_header(4, "@19g%2d", _numivd);
set_header(4,"@23g%-50s",(const char*) descriz);
dataini = _data_ini.string();
set_header (5, "@1gPeriodo@10g%s", (const char*) dataini);
datafine = _data_fine.string();
set_header (5, "@22g%s", (const char*) datafine);
set_header (5, "@34g%-11s",(const char*) paiv);
set_header (5, "@46g%-16s",(const char*) cofi);
set_header (5, "@63g%-25s",(const char*) indcf);
set_header (5, "@89g%-5s",(const char*) capcf);
set_header (5, "@95g%-30s",(const char*) dencom);
set_header (5,"@126g%-5s",(const char*) provcom);
if (_numcarat == 2)
{
set_header (5,"@134g%-4s",(const char*) ptel);
set_header (5,"@138g/@139g%-10s",(const char*) tel);
}
}
// Se la ricerca selezionata sulla maschera e' per gruppo, conto, sottoconto
// ricerca i corrispondenti su PCON, con relativa IV direttiva CEE
//Calcolo dei progressivi precedenti: somma di tutti quei movimenti di rmov
//che hanno la data di registrazione inferiore alla data di inizio stampa,
//dei progressivi dell'anno esercizio precedente, e dei progressivi dei
//movimenti scaricati dell'esercizio attuale.
void CG3200_application::ricerca_gruppo()
{
TString descr,descriz,dep;
int numrivd;
TString dataini,datafine;
calcola_progressivi_al();
_progredare = pdaresca + progredare_eseprec + _totale_prima_dare;
_progreavere = paveresca + progreavere_eseprec + _totale_prima_avere;
_saldo_progre_prec = _progredare - _progreavere;
} // FOR
descr = (current_cursor()->curr(LF_PCON).get(PCN_DESCR));
_sezivd = (current_cursor()->curr(LF_PCON).get(PCN_SEZIVD));
_lettivd = (current_cursor()->curr(LF_PCON).get(PCN_LETTIVD));
numrivd = atoi(current_cursor()->curr(LF_PCON).get(PCN_NUMRIVD));
_numrivd = itor(numrivd);
_numivd = atoi(current_cursor()->curr(LF_PCON).get(PCN_NUMIVD));
if (_numcarat == 1)
{
TString string = _saldo_progre_prec.string("###############");
set_header (10,"@32gPROGRESSIVI PRECEDENTI@61g%15s",(const char*) string);
string = _progredare.string("###############");
set_header (10,"@77g%15s",(const char*) string);
string = _progreavere.string("###############");
set_header (10,"@93g%15s",(const char*) string);
}
if (_numcarat == 2)
{
TString string = _progredare.string("###############");
set_header (10,"@32gPROGRESSIVI PRECEDENTI@102g%15s",(const char*)string);
string = _progreavere.string("###############");
set_header (10,"@119g%15s",(const char*) string);
}
//Calcolo dei progressivi al <ultima data registrazione>
_tabivd->curr().zero();
dep << format ("%1s%1s%8d%2d",(const char*)_sezivd,(const char*)_lettivd,(const char*)_numrivd,_numivd);
_tabivd->curr().put("CODTAB", (const char*) dep);
_tabivd->read();
descriz = _tabivd->curr().get("S0");
//Se sulla maschera e' stato selezionato il controllo competenza esercizio
//Sommo i progressivi dell'esercizio precedente e quelli dell'esercizio attuale
//altrimenti solo quelli dell'esercizio attuale
if (_ricerca == 'P')
{
set_header(3,"@27g%-30s",(const char*) descrizione_gruppo());
set_header(3,"@59g%-30s",(const char*) descrizione_conto());
}
else
if ((_ricerca == 'C')||(_ricerca == 'F'))
{
set_header(3,"@27g%-30s",(const char*) descrizione_gruppo());
set_header(3,"@59g%-30s",(const char*) descrizione_conto());
}
if (_competenza)
{
_totprogre_dare_al = progdare_attuale + progdare_prec;
_totprogre_avere_al = progavere_attuale + progavere_prec;
}
else
{
_totprogre_dare_al = progdare_attuale;
_totprogre_avere_al = progavere_attuale;
}
}
set_header(3,"@91g%-30s",(const char*) descr);
set_header(4, "@0gClasse@12g%1s",(const char*) _lettivd);
set_header(4, "@14g%8s",(const char*) _numrivd);
set_header(4, "@23g%d", _numivd);
set_header(4,"@27g%-50s",(const char*) descriz);
dataini = _data_ini.string();
set_header (5, "@0gPeriodo@12g%s", (const char*) dataini);
datafine = _data_fine.string();
set_header (5, "@24g%s", (const char*) datafine);
}
// Se la ricerca selezionata nella maschera e' per clienti, oppure fornitori, // allora ricerco su CLIFO i relativi dati, e su PCON il relativo gruppo,conto,// sottoconto e IV direttiva CEE
//Ricerca la descrizione relativa al gruppo da stampare
void CG3200_application::ricerca_clifo()
{
TString ragsoc,paiv,cofi,indcf,capcf,ptel,tel,statocf,comcf,dencom,provcom,dep;
TLocalisamfile pconti(LF_PCON);
TString dataini,datafine;
const char* CG3200_application::descrizione_gruppo()
ragsoc = (current_cursor()->curr(LF_CLIFO).get(CLI_RAGSOC));
paiv = (current_cursor()->curr(LF_CLIFO).get(CLI_PAIV));
cofi = (current_cursor()->curr(LF_CLIFO).get(CLI_COFI));
indcf = (current_cursor()->curr(LF_CLIFO).get(CLI_INDCF));
capcf = (current_cursor()->curr(LF_CLIFO).get(CLI_CAPCF));
ptel = (current_cursor()->curr(LF_CLIFO).get(CLI_PTEL));
tel = (current_cursor()->curr(LF_CLIFO).get(CLI_TEL));
statocf = (current_cursor()->curr(LF_CLIFO).get(CLI_STATOCF));
comcf = (current_cursor()->curr(LF_CLIFO).get(CLI_COMCF));
_comuni->setkey(1);
_comuni->curr().zero();
_comuni->curr().put(COM_STATO, statocf);
_comuni->curr().put(COM_COM, comcf);
_comuni->read();
dencom = _comuni->curr().get(COM_DENCOM);
provcom = _comuni->curr().get(COM_PROVCOM);
pconti.setkey(1);
pconti.curr().zero();
pconti.curr().put(PCN_GRUPPO, _gruppo);
pconti.curr().put(PCN_CONTO, _conto);
pconti.curr().put(PCN_SOTTOCONTO, _sottoc);
pconti.read();
_sezivd = pconti.curr().get(PCN_SEZIVD);
_lettivd = pconti.curr().get(PCN_LETTIVD);
_numrivd = atoi(pconti.curr().get(PCN_NUMRIVD));
_numivd = atoi(pconti.curr().get(PCN_NUMIVD));
_tabivd->curr().zero();
dep << format ("%1s%1s%8d%2d",(const char*)_sezivd,(const char*)_lettivd,(const char*)_numrivd,_numivd);
_tabivd->curr().put("CODTAB", (const char*) dep);
_tabivd->read();
TString descriz = _tabivd->curr().get("S0");
if (_ricerca == 'P')
{
set_header(3,"@27g%-30s",(const char*) descrizione_gruppo());
set_header(3,"@59g%-30s",(const char*) descrizione_conto());
}
else
if ((_ricerca == 'C')||(_ricerca == 'F'))
{
TLocalisamfile* pconti;
long record;
pconti = current_cursor()->file(LF_PCON);
record = pconti->recno();
pconti->curr().zero();
pconti->curr().put(PCN_GRUPPO,_gruppo);
pconti->read();
tmp = pconti->curr().get(PCN_DESCR);
pconti->readat(record);
return (tmp);
set_header(3,"@27g%-30s",(const char*) descrizione_gruppo_clifo());
set_header(3,"@59g%-30s",(const char*) descrizione_conto_clifo());
}
set_header(3, "@91g%-30s",(const char*) ragsoc);
set_header(4, "@1gClasse@8g%1s",(const char*) _lettivd);
set_header(4, "@10g%8s",(const char*) _numrivd);
set_header(4, "@19g%2d", _numivd);
set_header(4,"@23g%-50s",(const char*) descriz);
dataini = _data_ini.string();
set_header (5, "@1gPeriodo@10g%s", (const char*) dataini);
datafine = _data_fine.string();
set_header (5, "@22g%s", (const char*) datafine);
set_header (5, "@34g%-11s",(const char*) paiv);
set_header (5, "@46g%-16s",(const char*) cofi);
set_header (5, "@63g%-25s",(const char*) indcf);
set_header (5, "@89g%-5s",(const char*) capcf);
set_header (5, "@95g%-30s",(const char*) dencom);
set_header (5,"@126g%-5s",(const char*) provcom);
if (_numcarat == 2)
{
set_header (5,"@134g%-4s",(const char*) ptel);
set_header (5,"@138g/@139g%-10s",(const char*) tel);
}
}
// Ricerca la descrizione relativa al conto da stampare
// Se la ricerca selezionata sulla maschera e' per gruppo, conto, sottoconto
// ricerca i corrispondenti su PCON, con relativa IV direttiva CEE
const char* CG3200_application::descrizione_conto()
void CG3200_application::ricerca_gruppo()
{
TString descr,descriz,dep;
int numrivd;
TString dataini,datafine;
descr = (current_cursor()->curr(LF_PCON).get(PCN_DESCR));
_sezivd = (current_cursor()->curr(LF_PCON).get(PCN_SEZIVD));
_lettivd = (current_cursor()->curr(LF_PCON).get(PCN_LETTIVD));
numrivd = atoi(current_cursor()->curr(LF_PCON).get(PCN_NUMRIVD));
_numrivd = itor(numrivd);
_numivd = atoi(current_cursor()->curr(LF_PCON).get(PCN_NUMIVD));
_tabivd->curr().zero();
dep << format ("%1s%1s%8d%2d",(const char*)_sezivd,(const char*)_lettivd,(const char*)_numrivd,_numivd);
_tabivd->curr().put("CODTAB", (const char*) dep);
_tabivd->read();
descriz = _tabivd->curr().get("S0");
if (_ricerca == 'P')
{
set_header(3,"@27g%-30s",(const char*) descrizione_gruppo());
set_header(3,"@59g%-30s",(const char*) descrizione_conto());
}
else
if ((_ricerca == 'C')||(_ricerca == 'F'))
{
TLocalisamfile* pconti;
long record;
pconti = current_cursor()->file(LF_PCON);
record = pconti->recno();
pconti->curr().zero();
pconti->curr().put(PCN_GRUPPO,_gruppo);
pconti->curr().put(PCN_CONTO,_conto);
pconti->read();
tmp = pconti->curr().get(PCN_DESCR);
pconti->readat(record);
return (tmp);
set_header(3,"@27g%-30s",(const char*) descrizione_gruppo());
set_header(3,"@59g%-30s",(const char*) descrizione_conto());
}
//Ricerca la descrizione relativa al gruppo da stampare
set_header(3,"@91g%-30s",(const char*) descr);
set_header(4, "@0gClasse@12g%1s",(const char*) _lettivd);
set_header(4, "@14g%8s",(const char*) _numrivd);
set_header(4, "@23g%d", _numivd);
set_header(4,"@27g%-50s",(const char*) descriz);
dataini = _data_ini.string();
set_header (5, "@0gPeriodo@12g%s", (const char*) dataini);
datafine = _data_fine.string();
set_header (5, "@24g%s", (const char*) datafine);
}
const char* CG3200_application::descrizione_gruppo_clifo()
{
TLocalisamfile pconti(LF_PCON);
//Ricerca la descrizione relativa al gruppo da stampare
pconti.curr().zero();
pconti.curr().put(PCN_GRUPPO,_gruppo);
pconti.read();
tmp = pconti.curr().get(PCN_DESCR);
return (tmp);
}
const char* CG3200_application::descrizione_gruppo()
{
TLocalisamfile* pconti;
long record;
// Ricerca la descrizione relativa al conto da stampare
pconti = current_cursor()->file(LF_PCON);
record = pconti->recno();
pconti->curr().zero();
pconti->curr().put(PCN_GRUPPO,_gruppo);
pconti->read();
tmp = pconti->curr().get(PCN_DESCR);
pconti->readat(record);
return (tmp);
}
const char* CG3200_application::descrizione_conto_clifo()
{
TLocalisamfile pconti(LF_PCON);
pconti.curr().zero();
pconti.curr().put(PCN_GRUPPO,_gruppo);
pconti.curr().put(PCN_CONTO,_conto);
pconti.read();
tmp = pconti.curr().get(PCN_DESCR);
return (tmp);
}
// Ricerca la descrizione relativa al conto da stampare
void CG3200_application::user_create()
{
TToken_string exp,exp1;
const char* CG3200_application::descrizione_conto()
{
TLocalisamfile* pconti;
long record;
_rel = new TRelation (LF_PCON);
pconti = current_cursor()->file(LF_PCON);
record = pconti->recno();
pconti->curr().zero();
pconti->curr().put(PCN_GRUPPO,_gruppo);
pconti->curr().put(PCN_CONTO,_conto);
pconti->read();
tmp = pconti->curr().get(PCN_DESCR);
pconti->readat(record);
return (tmp);
}
exp.add("GRUPPO=GRUPPO");
exp.add("CONTO=CONTO");
exp.add("SOTTOCONTO=SOTTOCONTO");
_rel->add(LF_RMOV,exp,2,LF_PCON);
//Ricerca la descrizione relativa al gruppo da stampare
_cur1=add_cursor(new TCursor(_rel,"((CONTO!=\"\")&&(SOTTOCONTO!=\"\"))",1));
_rel_clifo = new TRelation (LF_CLIFO);
exp1.add("GRUPPO=GRUPPO");
exp1.add("CONTO=CONTO");
exp1.add("SOTTOCONTO=CODCF");
_rel_clifo->add(LF_RMOV,exp1,2,LF_CLIFO);
_cur2=add_cursor(new TCursor(_rel_clifo,"TIPOCF=\"C\"",3));
const char* CG3200_application::descrizione_gruppo_clifo()
{
TLocalisamfile pconti(LF_PCON);
_cur3=add_cursor(new TCursor(_rel_clifo,"TIPOCF=\"F\"",3));
pconti.curr().zero();
pconti.curr().put(PCN_GRUPPO,_gruppo);
pconti.read();
tmp = pconti.curr().get(PCN_DESCR);
return (tmp);
}
_nditte = new TLocalisamfile (LF_NDITTE);
_unloc = new TLocalisamfile (LF_UNLOC);
_comuni = new TLocalisamfile (LF_COMUNI);
_mov = new TLocalisamfile (LF_MOV);
_clifo = new TLocalisamfile (LF_CLIFO);
_caus = new TLocalisamfile (LF_CAUSALI);
_tabivd = new TTable (TAB_IVD);
_tabtpd = new TTable (TAB_TPD);
_tabreg = new TTable (TAB_REG);
_tabesc = new TTable (TAB_ESC);
_msk = new TMask("cg3200a");
_msk->set_handler(F_ANNO, our_handler);
_inizio_stampa = TRUE;
}
// Ricerca la descrizione relativa al conto da stampare
void CG3200_application::user_destroy()
{
delete _msk;
delete _rel;
delete _rel_clifo;
delete _mov;
delete _nditte;
delete _unloc;
delete _comuni;
delete _clifo;
delete _caus;
delete _tabivd;
delete _tabtpd;
delete _tabreg;
delete _tabesc;
}
const char* CG3200_application::descrizione_conto_clifo()
{
TLocalisamfile pconti(LF_PCON);
pconti.curr().zero();
pconti.curr().put(PCN_GRUPPO,_gruppo);
pconti.curr().put(PCN_CONTO,_conto);
pconti.read();
tmp = pconti.curr().get(PCN_DESCR);
return (tmp);
}
int cg3200(int argc, char* argv[])
{
void CG3200_application::user_create()
{
TToken_string exp,exp1;
CG3200_application a;
_rel = new TRelation (LF_PCON);
a.run(argc, argv, "Stampa Mastrini");
exp.add("GRUPPO=GRUPPO");
exp.add("CONTO=CONTO");
exp.add("SOTTOCONTO=SOTTOCONTO");
_rel->add(LF_RMOV,exp,2,LF_PCON);
return 0;
}
_cur1=add_cursor(new TCursor(_rel,"((CONTO!=\"\")&&(SOTTOCONTO!=\"\"))",1));
_rel_clifo = new TRelation (LF_CLIFO);
exp1.add("GRUPPO=GRUPPO");
exp1.add("CONTO=CONTO");
exp1.add("SOTTOCONTO=CODCF");
_rel_clifo->add(LF_RMOV,exp1,2,LF_CLIFO);
_cur2=add_cursor(new TCursor(_rel_clifo,"TIPOCF=\"C\"",3));
_cur3=add_cursor(new TCursor(_rel_clifo,"TIPOCF=\"F\"",3));
_nditte = new TLocalisamfile (LF_NDITTE);
_unloc = new TLocalisamfile (LF_UNLOC);
_comuni = new TLocalisamfile (LF_COMUNI);
_mov = new TLocalisamfile (LF_MOV);
_clifo = new TLocalisamfile (LF_CLIFO);
_caus = new TLocalisamfile (LF_CAUSALI);
_tabivd = new TTable (TAB_IVD);
_tabtpd = new TTable (TAB_TPD);
_tabreg = new TTable (TAB_REG);
_tabesc = new TTable (TAB_ESC);
_msk = new TMask("cg3200a");
_msk->set_handler(F_ANNO, our_handler);
_inizio_stampa = TRUE;
}
void CG3200_application::user_destroy()
{
delete _msk;
delete _rel;
delete _rel_clifo;
delete _mov;
delete _nditte;
delete _unloc;
delete _comuni;
delete _clifo;
delete _caus;
delete _tabivd;
delete _tabtpd;
delete _tabreg;
delete _tabesc;
}
int cg3200(int argc, char* argv[])
{
CG3200_application a;
a.run(argc, argv, "Stampa Mastrini");
return 0;
}