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() void CG3200_application::calcola_progressivi()
{ {
<<<<<<< cg3200.cpp 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;
real progdare_attuale,progavere_attuale,progdare_prec,progavere_prec; real progdare_attuale,progavere_attuale,progdare_prec,progavere_prec;
@ -1317,7 +1316,7 @@ void CG3200_application::calcola_progressivi()
pconti.put(PCN_CONTO , _conto); pconti.put(PCN_CONTO , _conto);
pconti.read(); pconti.read();
if (pconti.good()) if (pconti.good())
indbil = atoi (pconti.get(PCN_INDBIL)); indbil = pconti.get_int(PCN_INDBIL);
else else
indbil = 0; indbil = 0;
} }
@ -1354,427 +1353,352 @@ 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);
=======
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(); // Se il saldo dell'esercizio attuale e' diverso da 0 allora significa che
record.put(SLD_GRUPPO, _gruppo); // quello corrisponde al saldo finale dell'esercizio precedente. Per ottenere
record.put(SLD_CONTO, _conto); // i progressivi dell'esercizio precedente devo a questo punto sommare i
record.put(SLD_SOTTOCONTO, _sottoc); // 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') if (saldo != 0)
indbil = atoi (current_cursor()->file(LF_PCON)->get(PCN_INDBIL));
else
{ {
if ((_ricerca == 'C') || (_ricerca == 'F')) if (salini == 'D')
{ {
pconti.setkey(1); progredare_eseprec = saldo + pdarescap + pdarep;
pconti.zero(); progreavere_eseprec = paverescap + paverep;
pconti.put(PCN_GRUPPO, _gruppo);
pconti.put(PCN_CONTO , _conto);
pconti.read();
if (pconti.good())
indbil = pconti.get_int(PCN_INDBIL);
else
indbil = 0;
} }
} else if (salini == 'A')
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); progredare_eseprec = pdarescap + pdarep;
paveresca = saldi.curr().get_real(SLD_PAVERESCA); progreavere_eseprec = saldo + paverescap + paverep;
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);
>>>>>>> 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 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() if ((indbil == 1) || (indbil == 2) || (indbil == 5))
{
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'))
{ {
set_header(3,"@27g%-30s",(const char*) descrizione_gruppo_clifo()); saldo = _sld.saldofin_esprec(_annomsk,_gruppo,_conto,_sottoc);
set_header(3,"@59g%-30s",(const char*) descrizione_conto_clifo());
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 //Calcolo dei progressivi precedenti: somma di tutti quei movimenti di rmov
// ricerca i corrispondenti su PCON, con relativa IV direttiva CEE //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() calcola_progressivi_al();
{
TString descr,descriz,dep; _progredare = pdaresca + progredare_eseprec + _totale_prima_dare;
int numrivd; _progreavere = paveresca + progreavere_eseprec + _totale_prima_avere;
TString dataini,datafine; _saldo_progre_prec = _progredare - _progreavere;
} // FOR
descr = (current_cursor()->curr(LF_PCON).get(PCN_DESCR)); if (_numcarat == 1)
_sezivd = (current_cursor()->curr(LF_PCON).get(PCN_SEZIVD)); {
_lettivd = (current_cursor()->curr(LF_PCON).get(PCN_LETTIVD)); TString string = _saldo_progre_prec.string("###############");
numrivd = atoi(current_cursor()->curr(LF_PCON).get(PCN_NUMRIVD)); set_header (10,"@32gPROGRESSIVI PRECEDENTI@61g%15s",(const char*) string);
_numrivd = itor(numrivd); string = _progredare.string("###############");
_numivd = atoi(current_cursor()->curr(LF_PCON).get(PCN_NUMIVD)); 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(); //Se sulla maschera e' stato selezionato il controllo competenza esercizio
dep << format ("%1s%1s%8d%2d",(const char*)_sezivd,(const char*)_lettivd,(const char*)_numrivd,_numivd); //Sommo i progressivi dell'esercizio precedente e quelli dell'esercizio attuale
_tabivd->curr().put("CODTAB", (const char*) dep); //altrimenti solo quelli dell'esercizio attuale
_tabivd->read();
descriz = _tabivd->curr().get("S0");
if (_ricerca == 'P') if (_competenza)
{ {
set_header(3,"@27g%-30s",(const char*) descrizione_gruppo()); _totprogre_dare_al = progdare_attuale + progdare_prec;
set_header(3,"@59g%-30s",(const char*) descrizione_conto()); _totprogre_avere_al = progavere_attuale + progavere_prec;
} }
else else
if ((_ricerca == 'C')||(_ricerca == 'F')) {
{ _totprogre_dare_al = progdare_attuale;
set_header(3,"@27g%-30s",(const char*) descrizione_gruppo()); _totprogre_avere_al = progavere_attuale;
set_header(3,"@59g%-30s",(const char*) descrizione_conto()); }
} }
set_header(3,"@91g%-30s",(const char*) descr); // 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
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);
}
//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; set_header(3,"@27g%-30s",(const char*) descrizione_gruppo_clifo());
long record; set_header(3,"@59g%-30s",(const char*) descrizione_conto_clifo());
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, "@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; set_header(3,"@27g%-30s",(const char*) descrizione_gruppo());
long record; set_header(3,"@59g%-30s",(const char*) descrizione_conto());
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);
} }
//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() //Ricerca la descrizione relativa al gruppo da stampare
{
TLocalisamfile pconti(LF_PCON);
pconti.curr().zero(); const char* CG3200_application::descrizione_gruppo()
pconti.curr().put(PCN_GRUPPO,_gruppo); {
pconti.read(); TLocalisamfile* pconti;
tmp = pconti.curr().get(PCN_DESCR); long record;
return (tmp);
}
// 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() // Ricerca la descrizione relativa al conto da stampare
{
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);
}
void CG3200_application::user_create() const char* CG3200_application::descrizione_conto()
{ {
TToken_string exp,exp1; 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"); //Ricerca la descrizione relativa al gruppo da stampare
exp.add("CONTO=CONTO");
exp.add("SOTTOCONTO=SOTTOCONTO");
_rel->add(LF_RMOV,exp,2,LF_PCON);
_cur1=add_cursor(new TCursor(_rel,"((CONTO!=\"\")&&(SOTTOCONTO!=\"\"))",1)); const char* CG3200_application::descrizione_gruppo_clifo()
{
_rel_clifo = new TRelation (LF_CLIFO); TLocalisamfile pconti(LF_PCON);
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)); pconti.curr().zero();
pconti.curr().put(PCN_GRUPPO,_gruppo);
pconti.read();
tmp = pconti.curr().get(PCN_DESCR);
return (tmp);
}
_nditte = new TLocalisamfile (LF_NDITTE); // Ricerca la descrizione relativa al conto da stampare
_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() const char* CG3200_application::descrizione_conto_clifo()
{ {
delete _msk; TLocalisamfile pconti(LF_PCON);
delete _rel;
delete _rel_clifo; pconti.curr().zero();
delete _mov; pconti.curr().put(PCN_GRUPPO,_gruppo);
delete _nditte; pconti.curr().put(PCN_CONTO,_conto);
delete _unloc; pconti.read();
delete _comuni; tmp = pconti.curr().get(PCN_DESCR);
delete _clifo; return (tmp);
delete _caus; }
delete _tabivd;
delete _tabtpd;
delete _tabreg;
delete _tabesc;
}
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;
}