Patch level :4.0 nopatch
Files correlati : Ricompilazione Demo : [ ] Commento :prosegue la stampa proiezioni cespiti;adesso comincia a stampare qualche campo in modo sensato;da rivedere il font del rep che e' troppo grande! git-svn-id: svn://10.65.10.50/trunk@13994 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
13edd566c5
commit
7656644cbe
241
ce/ce4300.cpp
241
ce/ce4300.cpp
@ -4,11 +4,13 @@
|
||||
#include <progind.h>
|
||||
#include <recarray.h>
|
||||
#include <recset.h>
|
||||
#include <relation.h>
|
||||
#include <reprint.h>
|
||||
|
||||
#include "../cg/cglib01.h"
|
||||
|
||||
#include "ammce.h"
|
||||
#include "cespi.h"
|
||||
#include "movce.h"
|
||||
#include "salce.h"
|
||||
#include "celib.h"
|
||||
@ -101,51 +103,182 @@ void TStampa_proiez_ammo_recordset::set_filter(const TStampa_proiez_ammo_mask& m
|
||||
{
|
||||
|
||||
if (dacat == acat)
|
||||
query << "&&(CODTAB[7,8]==" << dacat << ")";
|
||||
query << "&&(CODTAB[7,8]=='" << dacat << "')";
|
||||
else
|
||||
{
|
||||
if (dacat.full())
|
||||
query << "&&(CODTAB[7,8]>=" << dacat << ")";
|
||||
query << "&&(CODTAB[7,8]>='" << dacat << "')";
|
||||
if (acat.full())
|
||||
query << "&&(CODTAB[7,8]<=" << acat << ")";
|
||||
query << "&&(CODTAB[7,8]<='" << acat << "')";
|
||||
}
|
||||
}
|
||||
query << "\nBY I0 CODTAB[7,8]";
|
||||
set(query); //setta la nuova query nel report (che avrebbe solo USE CESPI)
|
||||
set(query); //setta la nuova query nel report
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////
|
||||
// REPORT
|
||||
////////////////////////////////////////////////////////
|
||||
class TStampa_proiez_ammo_rep : public TReport
|
||||
{
|
||||
int _anno;
|
||||
//Clamoroso TAssocarray che conterra' tutti i valori dei record di CESPI utili al completamento..
|
||||
//..della faticosa stampa..
|
||||
TAssoc_array _cat;
|
||||
|
||||
protected:
|
||||
virtual bool get_usr_val(const TString& name, TVariant& var) const;
|
||||
void add_value (const int codcat, const char* field, const real& value);
|
||||
real get_value (const int codcat, const char* field) const;
|
||||
|
||||
public:
|
||||
void set_filter(const TStampa_proiez_ammo_mask& msk);
|
||||
};
|
||||
|
||||
|
||||
void TStampa_proiez_ammo_rep::add_value (const int codcat, const char* field, const real& value)
|
||||
{
|
||||
TString4 key;
|
||||
key << codcat;
|
||||
|
||||
TAssoc_array* cat = (TAssoc_array*)_cat.objptr(key);
|
||||
if (cat == NULL)
|
||||
{
|
||||
cat = new TAssoc_array;
|
||||
_cat.add(key, cat);
|
||||
}
|
||||
real* val = (real*)cat->objptr(field);
|
||||
if (val == NULL)
|
||||
{
|
||||
val = new real;
|
||||
cat->add(field, val);
|
||||
}
|
||||
*val += value;
|
||||
}
|
||||
|
||||
|
||||
real TStampa_proiez_ammo_rep::get_value (const int codcat, const char* field) const
|
||||
{
|
||||
TString4 key;
|
||||
key << codcat;
|
||||
|
||||
TAssoc_array* cat = (TAssoc_array*)_cat.objptr(key);
|
||||
if (cat != NULL)
|
||||
{
|
||||
real* val = (real*)cat->objptr(field);
|
||||
if (val != NULL)
|
||||
return *val;
|
||||
}
|
||||
return ZERO;
|
||||
}
|
||||
|
||||
|
||||
void TStampa_proiez_ammo_rep::set_filter(const TStampa_proiez_ammo_mask& msk)
|
||||
{
|
||||
_anno = msk.get_int(F_ESERCIZIO);
|
||||
((TStampa_proiez_ammo_recordset*) recordset())->set_filter(msk);
|
||||
|
||||
_cat.destroy();
|
||||
|
||||
//Si vuole creare una lista di tutti i cespiti che ricadono nei parametri gr/sp/cat della..
|
||||
//..maschera di selezione, che verra' poi utilizzato per calcolare i valori del costo di tali..
|
||||
//..cespiti riuniti nella categoria di appartenenza
|
||||
TRelation rel_cespi(LF_CESPI);
|
||||
TRectype darec_cespi(LF_CESPI), arec_cespi(LF_CESPI);
|
||||
darec_cespi.put(CESPI_CODCGRA, msk.get(F_GRUPPO));
|
||||
darec_cespi.put(CESPI_CODSPA, msk.get(F_SPECIE));
|
||||
darec_cespi.put(CESPI_CODCAT, msk.get(F_FROM_CAT));
|
||||
|
||||
arec_cespi = darec_cespi;
|
||||
arec_cespi.put(CESPI_CODCAT, msk.get(F_TO_CAT));
|
||||
|
||||
//Dalla lista cespiti deve risalire ai costi, agli ammortamenti e alle alienazioni;..
|
||||
//..quindi servono i files collegati..
|
||||
TLocalisamfile salce(LF_SALCE);
|
||||
TLocalisamfile ammce(LF_AMMCE);
|
||||
|
||||
//ISAM query per trovare su MOVCE i movimenti relativi al cespite corrente nell'esercizio selezionato
|
||||
TString query;
|
||||
TEsercizi_contabili esc;
|
||||
const TDate& dataini = esc[_anno].inizio();
|
||||
const TDate& datafine = esc[_anno].fine();
|
||||
query.format("USE MOVCE KEY 2 SELECT NUM(ANSI(DTMOV)>=%ld)&&NUM(ANSI(DTMOV)<=%ld)\nFROM IDCESPITE=#CESPITE\nTO IDCESPITE=#CESPITE",
|
||||
dataini.date2ansi(), datafine.date2ansi());
|
||||
TISAM_recordset movce(query);
|
||||
|
||||
//Ciclo principale per riempire _cat, assoc_array di assoc_array che sara' poi scandito in fase di creazione report
|
||||
//Il metodo add_value e' quello che effettivamente aggiunge i valori a _cat
|
||||
TCursor cur_cespi(&rel_cespi, "", 2, &darec_cespi, &arec_cespi);
|
||||
const TRecnotype num = cur_cespi.items();
|
||||
TProgind pi(num, "Calcolo proiezione ammortamenti...");
|
||||
for (cur_cespi = 0; cur_cespi.pos() < num; ++cur_cespi)
|
||||
{
|
||||
pi.addstatus(1);
|
||||
|
||||
//Colonna COSTO
|
||||
const TString& idcespite = rel_cespi.curr().get(CESPI_IDCESPITE);
|
||||
const int codcat = rel_cespi.curr().get_int(CESPI_CODCAT);
|
||||
salce.put(SALCE_IDCESPITE, idcespite);
|
||||
salce.put(SALCE_CODES, _anno);
|
||||
salce.put(SALCE_TPSALDO, 1);
|
||||
if (salce.read() == NOERR)
|
||||
add_value(codcat, SALCE_CSTO, salce.get_real(SALCE_CSTO));
|
||||
|
||||
//Colonna ALIENAZIONI
|
||||
//cerca tutti i movimenti di vendita relativi al cespite corrente all'interno dell'esercizio..
|
||||
//..selezionato sulla maschera;somma i loro importi in modo da ricavare l'importo complessivo..
|
||||
//..di tutti
|
||||
movce.set_var("#CESPITE", TVariant(idcespite)); //assegna il vero valore dell'idcespite alla query
|
||||
for (TRecnotype i = 0; movce.move_to(i); i++)
|
||||
{
|
||||
const real vendita = movce.get(MOVCE_IMPVEN).as_real();
|
||||
add_value(codcat, MOVCE_IMPVEN, vendita);
|
||||
}
|
||||
|
||||
//Colonna FAMM (fondo ammortamento)
|
||||
ammce.put(AMMCE_IDCESPITE, idcespite);
|
||||
ammce.put(AMMCE_CODES, _anno);
|
||||
ammce.put(AMMCE_TPSALDO, 1); //tiposaldo iniziale
|
||||
ammce.put(AMMCE_TPAMM, 1); //tipoamm fiscale
|
||||
if (ammce.read() == NOERR)
|
||||
{
|
||||
real famm;
|
||||
famm += ammce.get_real(AMMCE_QNOR);
|
||||
famm += ammce.get_real(AMMCE_QACC);
|
||||
famm += ammce.get_real(AMMCE_QANT);
|
||||
add_value(codcat, AMMCE_QNOR, famm);
|
||||
}
|
||||
|
||||
//Colonna PERCAMM (aliquota ammortamento)
|
||||
//Colonna QAMM
|
||||
//Per questi ci vuole un tiposaldo diverso
|
||||
ammce.put(AMMCE_TPSALDO, 2); //tiposaldo finale
|
||||
if (ammce.read() == NOERR)
|
||||
{
|
||||
real percamm;
|
||||
percamm += ammce.get_real(AMMCE_PNOR);
|
||||
percamm += ammce.get_real(AMMCE_PACC);
|
||||
percamm += ammce.get_real(AMMCE_PANT);
|
||||
add_value(codcat, AMMCE_PNOR, percamm);
|
||||
|
||||
real qamm;
|
||||
qamm += ammce.get_real(AMMCE_QNOR);
|
||||
qamm += ammce.get_real(AMMCE_QACC);
|
||||
qamm += ammce.get_real(AMMCE_QANT);
|
||||
add_value(codcat, AMMCE_QACC, qamm);
|
||||
}
|
||||
|
||||
} //for(cur_cespi...
|
||||
|
||||
}
|
||||
|
||||
//metodo per il calcolo dei campi da calcolare (ma va'!) nel report
|
||||
bool TStampa_proiez_ammo_rep::get_usr_val(const TString& name, TVariant& var) const
|
||||
{
|
||||
const TRecordset& recset = *recordset();
|
||||
const TString& idcespite = recset.get("IDCESPITE").as_string();
|
||||
if (name == "#DESCAT") //categoria (descrizione della categoria corrente)
|
||||
{
|
||||
const int gruppo = recset.get("CODCGRA").as_int();
|
||||
const TString& specie = recset.get("CODSPA").as_string();
|
||||
const int categoria = recset.get("CODCAT").as_int();
|
||||
const TRectype& rec_cac = ditta_cespiti().categoria(gruppo, specie, categoria);
|
||||
var = rec_cac.get("S0");
|
||||
return true;
|
||||
}
|
||||
const int codcat = atoi(recset.get("CODTAB").as_string().mid(6, 2));
|
||||
|
||||
if (name == "#ANNOES")
|
||||
{
|
||||
var.set(_anno);
|
||||
@ -159,75 +292,29 @@ bool TStampa_proiez_ammo_rep::get_usr_val(const TString& name, TVariant& var) co
|
||||
var.set(dal - 1L);
|
||||
return true;
|
||||
}
|
||||
if (name == "#COSTO") //costo
|
||||
{
|
||||
var = get_value(codcat, SALCE_CSTO);
|
||||
return true;
|
||||
}
|
||||
if (name == "#ALIENAZ") //movimenti di vendita
|
||||
{
|
||||
//cerca tutti i movimenti di vendita relativi al cespite corrente all'interno dell'esercizio..
|
||||
//..selezionato sulla maschera;somma i loro importi in modo da ricavare l'importo complessivo..
|
||||
//..di tutti
|
||||
TString query;
|
||||
|
||||
TEsercizi_contabili esc;
|
||||
const TDate& dataini = esc[_anno].inizio();
|
||||
const TDate& datafine = esc[_anno].fine();
|
||||
|
||||
query.format("USE MOVCE KEY 2 SELECT NUM(ANSI(DTMOV)>=%ld)&&NUM(ANSI(DTMOV)<=%ld)\nFROM IDCESPITE=%s\nTO IDCESPITE=%s",
|
||||
dataini.date2ansi(), datafine.date2ansi(), (const char*)idcespite, (const char*)idcespite);
|
||||
TISAM_recordset isam(query);
|
||||
real somma_vendite;
|
||||
for (TRecnotype i = 0; isam.move_to(i); i++)
|
||||
{
|
||||
const real vendita = isam.get(MOVCE_IMPVEN).as_real();
|
||||
somma_vendite += vendita;
|
||||
}
|
||||
var = somma_vendite;
|
||||
|
||||
return true;
|
||||
}
|
||||
if (name == "#COSTO") //costo
|
||||
{
|
||||
TToken_string key;
|
||||
key = idcespite; //cespite
|
||||
key.add(_anno); //esercizio
|
||||
key.add(1); //tiposaldo finale
|
||||
const TRectype& rec_salce = cache().get(LF_SALCE, key);
|
||||
const real costo = rec_salce.get_real(SALCE_CSTO);
|
||||
var = costo;
|
||||
return true;
|
||||
}
|
||||
if (name == "#PERCAMM") //percentuale ammortamento
|
||||
{
|
||||
TToken_string key;
|
||||
key = idcespite;
|
||||
key.add(_anno);
|
||||
key.add(2); //tiposaldo finale
|
||||
key.add(1); //tipoamm fiscale
|
||||
const TRectype& rec_ammce = cache().get(LF_AMMCE, key);
|
||||
const real percamm = rec_ammce.get_real(AMMCE_PNOR) + rec_ammce.get_real(AMMCE_PACC) + rec_ammce.get_real(AMMCE_PANT);
|
||||
var = percamm;
|
||||
return true;
|
||||
}
|
||||
if (name == "#QAMM") //fondo ammortamento esercizio corrente
|
||||
{
|
||||
TToken_string key;
|
||||
key = idcespite;
|
||||
key.add(_anno);
|
||||
key.add(2); //tiposaldo finale
|
||||
key.add(1); //tipoamm fiscale
|
||||
const TRectype& rec_ammce = cache().get(LF_AMMCE, key);
|
||||
const real quotamm = rec_ammce.get_real(AMMCE_QNOR) + rec_ammce.get_real(AMMCE_QACC) + rec_ammce.get_real(AMMCE_QANT);
|
||||
var = quotamm;
|
||||
var = get_value(codcat, MOVCE_IMPVEN);
|
||||
return true;
|
||||
}
|
||||
if (name == "#FAMM") //fondo ammortamento alla fine dell'esercizio precedente
|
||||
{
|
||||
TToken_string key;
|
||||
key = idcespite;
|
||||
key.add(_anno);
|
||||
key.add(1); //tiposaldo iniziale
|
||||
key.add(1); //tipoamm fiscale
|
||||
const TRectype& rec_ammce = cache().get(LF_AMMCE, key);
|
||||
const real quotamm = rec_ammce.get_real(AMMCE_QNOR) + rec_ammce.get_real(AMMCE_QACC) + rec_ammce.get_real(AMMCE_QANT);
|
||||
var = quotamm;
|
||||
var = get_value(codcat, AMMCE_QNOR);
|
||||
return true;
|
||||
}
|
||||
if (name == "#PERCAMM") //percentuale ammortamento
|
||||
{
|
||||
var = get_value(codcat, AMMCE_PNOR);
|
||||
return true;
|
||||
}
|
||||
if (name == "#QAMM") //fondo ammortamento esercizio corrente
|
||||
{
|
||||
var = get_value(codcat, AMMCE_QACC);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
208
ce/ce4300a.rep
208
ce/ce4300a.rep
@ -1,11 +1,21 @@
|
||||
|
||||
<report name="ce4300a" lpi="6">
|
||||
<description>Proiezione ammortamenti cespiti</description>
|
||||
<font face="Courier New" size="8" />
|
||||
<font face="Arial" size="8" />
|
||||
<section type="Head">
|
||||
<font face="Courier New" bold="1" size="8" />
|
||||
</section>
|
||||
<section type="Head" level="1" height="6">
|
||||
<prescript description="H1 PRESCRIPT">MESSAGE RESET,F1.101
|
||||
MESSAGE RESET,F1.102
|
||||
MESSAGE RESET,F1.103
|
||||
MESSAGE RESET,F1.104
|
||||
MESSAGE RESET,F1.105
|
||||
MESSAGE RESET,F1.106
|
||||
MESSAGE RESET,F1.107
|
||||
MESSAGE RESET,F1.108
|
||||
MESSAGE RESET,F1.109
|
||||
MESSAGE RESET,F1.110</prescript>
|
||||
<field border="1" radius="100" x="18" y="0.5" type="Testo" valign="center" align="center" shade_offset="25" width="130" height="2.5" text="PROIEZIONE AMMORTAMENTI CESPITI">
|
||||
<font face="Courier New" bold="1" size="16" />
|
||||
</field>
|
||||
@ -23,107 +33,197 @@
|
||||
</section>
|
||||
<section repeat="1" type="Head" level="2">
|
||||
<groupby>I0</groupby>
|
||||
<font face="Courier New" bold="1" size="8" />
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
<prescript description="H2 PRESCRIPT">MESSAGE RESET,F2.101
|
||||
MESSAGE RESET,F2.102
|
||||
MESSAGE RESET,F2.103
|
||||
MESSAGE RESET,F2.104
|
||||
MESSAGE RESET,F2.105
|
||||
MESSAGE RESET,F2.106
|
||||
MESSAGE RESET,F2.107
|
||||
MESSAGE RESET,F2.108
|
||||
MESSAGE RESET,F2.109
|
||||
MESSAGE RESET,F2.110</prescript>
|
||||
<field x="1" type="Testo" width="12" pattern="1" text="TIPO BENI:">
|
||||
<font face="Courier New" bold="1" size="9" />
|
||||
</field>
|
||||
<field x="13" type="Array" width="15" pattern="1">
|
||||
<font face="Courier New" bold="1" size="9" />
|
||||
<source>I0</source>
|
||||
<postscript description="H2.0 POSTSCRIPT">MESSAGE COPY,F2.100</postscript>
|
||||
<list>
|
||||
<li Value="Materiali" Code="0" />
|
||||
<li Value="Immateriali" Code="1" />
|
||||
<li Value="Pluriennali" Code="2" />
|
||||
</list>
|
||||
</field>
|
||||
<field x="30" y="1.25" type="Testo" align="right" width="12" height="0.75" pattern="1" text="Valore al" />
|
||||
<field x="57" y="1.25" type="Testo" align="right" width="13" height="0.75" pattern="1" text="Fondo amm. al" />
|
||||
<field x="71" y="1.25" type="Testo" align="right" width="13" height="0.75" pattern="1" text="Val. residuo" />
|
||||
<field x="92" y="1.25" type="Testo" align="right" width="12" height="0.75" pattern="1" text="Ammortamento" />
|
||||
<field x="105" y="1.25" type="Testo" align="right" width="12" height="0.75" pattern="1" text="Ammortamento" />
|
||||
<field x="118" y="1.25" type="Testo" align="right" width="12" height="0.75" pattern="1" text="Ammortamento" />
|
||||
<field x="131.1" y="1.25" type="Testo" align="right" width="12" height="0.75" pattern="1" text="Ammortamento" />
|
||||
<field x="144" y="1.25" type="Testo" align="right" width="12" height="0.75" pattern="1" text="Ammortamento" />
|
||||
<field x="157" y="1.25" type="Testo" align="right" width="12" height="0.75" pattern="1" text="Residuo da" />
|
||||
<field x="50" y="1.25" type="Testo" align="right" width="12" height="0.75" pattern="1" text="Valore al" />
|
||||
<field x="77" y="1.25" type="Testo" align="right" width="13" height="0.75" pattern="1" text="Fondo amm. al" />
|
||||
<field x="91" y="1.25" type="Testo" align="right" width="13" height="0.75" pattern="1" text="Val. residuo" />
|
||||
<field x="111.5" y="1.25" type="Testo" align="right" width="12" height="0.75" pattern="1" text="Ammortamento" />
|
||||
<field x="125" y="1.25" type="Testo" align="right" width="12" height="0.75" pattern="1" text="Ammortamento" />
|
||||
<field x="138" y="1.25" type="Testo" align="right" width="12" height="0.75" pattern="1" text="Ammortamento" />
|
||||
<field x="151.1" y="1.25" type="Testo" align="right" width="12" height="0.75" pattern="1" text="Ammortamento" />
|
||||
<field x="164" y="1.25" type="Testo" align="right" width="12" height="0.75" pattern="1" text="Ammortamento" />
|
||||
<field x="177" y="1.25" type="Testo" align="right" width="12" height="0.75" pattern="1" text="Residuo da" />
|
||||
<field x="1" y="2" type="Testo" width="10" pattern="1" text="Categoria" />
|
||||
<field x="30" y="2" type="Stringa" align="right" width="12" height="0.75" pattern="1">
|
||||
<field x="50" y="2" type="Stringa" align="right" width="12" height="0.75" pattern="1">
|
||||
<source>#FINESCPREC</source>
|
||||
</field>
|
||||
<field x="44" y="2" type="Testo" align="right" width="12" pattern="1" text="Alienazioni" />
|
||||
<field x="58" y="2" type="Data" align="right" width="12" height="0.75" pattern="1">
|
||||
<field x="64" y="2" type="Testo" align="right" width="12" pattern="1" text="Alienazioni" />
|
||||
<field x="78" y="2" type="Data" align="right" width="12" height="0.75" pattern="1">
|
||||
<source>#FINESCPREC</source>
|
||||
</field>
|
||||
<field x="72" y="2" type="Testo" align="right" width="12" height="0.75" pattern="1" text="da ammortizz" />
|
||||
<field x="86" y="2" type="Testo" align="right" width="5" pattern="1" text="Aliq." />
|
||||
<field x="95" y="2" type="Numero" align="right" width="6" height="0.75" pattern="1">
|
||||
<field x="92" y="2" type="Testo" align="right" width="12" height="0.75" pattern="1" text="da ammortizz" />
|
||||
<field x="106" y="2" type="Testo" align="right" width="5" pattern="1" text="Aliq." />
|
||||
<field x="115" y="2" type="Numero" align="right" width="6" height="0.75" pattern="1">
|
||||
<source>#ANNOES</source>
|
||||
</field>
|
||||
<field x="108" y="2" type="Numero" align="right" width="6" height="0.75" pattern="1">
|
||||
<field x="128" y="2" type="Numero" align="right" width="6" height="0.75" pattern="1">
|
||||
<source>#ANNOES+1</source>
|
||||
</field>
|
||||
<field x="121" y="2" type="Numero" align="right" width="6" height="0.75" pattern="1">
|
||||
<field x="141" y="2" type="Numero" align="right" width="6" height="0.75" pattern="1">
|
||||
<source>#ANNOES+2</source>
|
||||
</field>
|
||||
<field x="134" y="2" type="Numero" align="right" width="6" height="0.75" pattern="1">
|
||||
<field x="154" y="2" type="Numero" align="right" width="6" height="0.75" pattern="1">
|
||||
<source>#ANNOES+3</source>
|
||||
</field>
|
||||
<field x="147" y="2" type="Numero" align="right" width="6" height="0.75" pattern="1">
|
||||
<field x="167" y="2" type="Numero" align="right" width="6" height="0.75" pattern="1">
|
||||
<source>#ANNOES+4</source>
|
||||
</field>
|
||||
<field x="157" y="2" type="Testo" align="right" width="12" height="0.75" pattern="1" text="ammortizzare" />
|
||||
<field border="1" x="1" y="3" type="Linea" width="172" height="0" pattern="1" />
|
||||
<field x="177" y="2" type="Testo" align="right" width="12" height="0.75" pattern="1" text="ammortizzare" />
|
||||
<field border="1" x="1" y="3" type="Linea" width="192" height="0" pattern="1" />
|
||||
</section>
|
||||
<section type="Body" />
|
||||
<section type="Body" level="1">
|
||||
<field x="1" type="Stringa" width="2" pattern="1">
|
||||
<source>CODTAB[7,8]</source>
|
||||
</field>
|
||||
<field x="4" type="Stringa" dynamic_height="1" width="25" height="2" pattern="1">
|
||||
<field x="4" type="Stringa" dynamic_height="1" width="45" height="2" pattern="1">
|
||||
<source>S0</source>
|
||||
</field>
|
||||
<field x="87" type="Numero" align="right" width="4" pattern="1">
|
||||
<field x="107" type="Numero" align="right" width="4" pattern="1">
|
||||
<source>#PERCAMM</source>
|
||||
</field>
|
||||
<field x="92" type="Numero" align="right" width="12" pattern="1">
|
||||
<source>#QAMM</source>
|
||||
</field>
|
||||
<field x="105" type="Numero" align="right" width="12" pattern="1">
|
||||
<source>#QAMM</source>
|
||||
</field>
|
||||
<field x="118" type="Numero" align="right" width="12" pattern="1">
|
||||
<source>#QAMM</source>
|
||||
</field>
|
||||
<field x="131" type="Numero" align="right" width="12" pattern="1">
|
||||
<source>#QAMM</source>
|
||||
</field>
|
||||
<field x="144" type="Numero" align="right" width="12" pattern="1">
|
||||
<source>#QAMM</source>
|
||||
</field>
|
||||
<field x="157" type="Numero" align="right" width="12" pattern="1">
|
||||
<source>#RESAMM</source>
|
||||
</field>
|
||||
<field x="30" type="Valuta" align="right" width="12" id="101" pattern="1" text="#########,@@">
|
||||
<field x="50" type="Valuta" align="right" width="12" id="101" pattern="1" text="###.###.###,@@">
|
||||
<source>#COSTO</source>
|
||||
<postscript description="B1.101 POSTSCRIPT">MESSAGE ADD,F2.101</postscript>
|
||||
</field>
|
||||
<field x="44" type="Valuta" align="right" width="12" id="102" pattern="1" text="#########,@@">
|
||||
<field x="64" type="Valuta" align="right" width="12" id="102" pattern="1" text="###.###.###,@@">
|
||||
<source>#ALIENAZ</source>
|
||||
<postscript description="B1.102 POSTSCRIPT">MESSAGE ADD,F2.102</postscript>
|
||||
</field>
|
||||
<field x="58" type="Numero" align="right" width="12" id="103" pattern="1">
|
||||
<field x="78" type="Valuta" align="right" width="12" id="103" pattern="1" text="###.###.###,@@">
|
||||
<source>#FAMM</source>
|
||||
<postscript description="B1.103 POSTSCRIPT">MESSAGE ADD,F2.103</postscript>
|
||||
</field>
|
||||
<field x="72" type="Valuta" align="right" width="12" id="104" pattern="1" text="###.###.###,@@">
|
||||
<field x="92" type="Valuta" align="right" width="12" id="104" pattern="1" text="###.###.###,@@">
|
||||
<source>#101-#102-#103</source>
|
||||
</field>
|
||||
<field x="112" type="Numero" align="right" width="12" id="105" pattern="1">
|
||||
<source>#QAMM</source>
|
||||
<postscript description="B1.105 POSTSCRIPT">MESSAGE ADD,F2.105</postscript>
|
||||
</field>
|
||||
<field x="125" type="Numero" align="right" width="12" id="106" pattern="1">
|
||||
<postscript description="B1.106 POSTSCRIPT">MESSAGE ADD,F2.106</postscript>
|
||||
</field>
|
||||
<field x="138" type="Numero" align="right" width="12" id="107" pattern="1">
|
||||
<postscript description="B1.107 POSTSCRIPT">MESSAGE ADD,F2.107</postscript>
|
||||
</field>
|
||||
<field x="151" type="Numero" align="right" width="12" id="108" pattern="1">
|
||||
<postscript description="B1.108 POSTSCRIPT">MESSAGE ADD,F2.108</postscript>
|
||||
</field>
|
||||
<field x="164" type="Numero" align="right" width="12" id="109" pattern="1">
|
||||
<postscript description="B1.109 POSTSCRIPT">MESSAGE ADD,F2.109</postscript>
|
||||
</field>
|
||||
<field x="177" type="Numero" align="right" width="12" id="110" pattern="1">
|
||||
<postscript description="B1.110 POSTSCRIPT">MESSAGE ADD,F2.110</postscript>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Head" level="11" />
|
||||
<section type="Body" level="11">
|
||||
<sql>USE CESPI KEY 2</sql>
|
||||
</section>
|
||||
<section type="Foot" level="11" />
|
||||
<section type="Foot" />
|
||||
<section type="Foot" level="1" />
|
||||
<section type="Foot" level="2" height="1">
|
||||
<section type="Foot" level="1">
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
<field border="2" x="1" y="1" type="Linea" width="196" height="0" pattern="1" />
|
||||
<field x="1" y="1.5" type="Testo" align="center" bg_color="#C0C0C0" width="47" text="TOTALE GENERALE">
|
||||
<font face="Courier New" bold="1" size="10" />
|
||||
</field>
|
||||
<field x="104" y="1.5" type="Testo" bg_color="#C0C0C0" width="7" />
|
||||
<field x="48" y="1.5" type="Valuta" align="right" bg_color="#C0C0C0" width="14" id="101" text="###.###.###,@@">
|
||||
<font face="Courier New" bold="1" size="8" />
|
||||
</field>
|
||||
<field x="62" y="1.5" type="Valuta" align="right" bg_color="#C0C0C0" width="14" id="102" text="###.###.###,@@">
|
||||
<font face="Courier New" bold="1" size="8" />
|
||||
</field>
|
||||
<field x="76" y="1.5" type="Valuta" align="right" bg_color="#C0C0C0" width="14" id="103" text="###.###.###,@@">
|
||||
<font face="Courier New" bold="1" size="8" />
|
||||
</field>
|
||||
<field x="90" y="1.5" type="Valuta" align="right" bg_color="#C0C0C0" width="14" id="104" text="###.###.###,@@">
|
||||
<source>#101-#102-#103</source>
|
||||
</field>
|
||||
<field x="111" y="1.5" type="Valuta" align="right" bg_color="#C0C0C0" width="13" id="105" text="###.###.###,@@">
|
||||
<postscript description="F1.105 POSTSCRIPT">MESSAGE ADD,F1.105</postscript>
|
||||
</field>
|
||||
<field x="124" y="1.5" type="Valuta" align="right" bg_color="#C0C0C0" width="13" id="106" text="###.###.###,@@">
|
||||
<postscript description="F1.106 POSTSCRIPT">MESSAGE ADD,F1.106</postscript>
|
||||
</field>
|
||||
<field x="137" y="1.5" type="Valuta" align="right" bg_color="#C0C0C0" width="13" id="107" text="###.###.###,@@">
|
||||
<postscript description="F1.107 POSTSCRIPT">MESSAGE ADD,F1.107</postscript>
|
||||
</field>
|
||||
<field x="150" y="1.5" type="Valuta" align="right" bg_color="#C0C0C0" width="13" id="108" text="###.###.###,@@">
|
||||
<postscript description="F1.108 POSTSCRIPT">MESSAGE ADD,F1.108</postscript>
|
||||
</field>
|
||||
<field x="163" y="1.5" type="Valuta" align="right" bg_color="#C0C0C0" width="13" id="109" text="###.###.###,@@">
|
||||
<postscript description="F1.109 POSTSCRIPT">MESSAGE ADD,F1.109</postscript>
|
||||
</field>
|
||||
<field x="176" y="1.5" type="Valuta" align="right" bg_color="#C0C0C0" width="13" id="110" text="###.###.###,@@">
|
||||
<postscript description="F1.110 POSTSCRIPT">MESSAGE ADD,F1.110</postscript>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Foot" level="2" height="4">
|
||||
<font italic="1" face="Arial" bold="1" size="8" />
|
||||
<field border="1" x="1" y="0.5" type="Linea" width="196" height="0" pattern="1" />
|
||||
<field x="10" y="1" type="Testo" width="12" pattern="1" text="TOTALE AMM">
|
||||
<font italic="1" face="Courier New" bold="1" size="9" />
|
||||
</field>
|
||||
<field border="2" x="1" y="2.5" type="Linea" width="196" height="0" pattern="1" />
|
||||
<field x="22" y="1" type="Array" width="15" id="100" pattern="1">
|
||||
<font face="Courier New" bold="1" size="9" />
|
||||
<list>
|
||||
<li Value="Materiali" Code="0" />
|
||||
<li Value="Immateriali" Code="1" />
|
||||
<li Value="Pluriennali" Code="2" />
|
||||
</list>
|
||||
</field>
|
||||
<field x="50" y="1" type="Valuta" align="right" width="12" id="101" pattern="1" text="###.###.###,@@">
|
||||
<postscript description="F2.101 POSTSCRIPT">MESSAGE ADD,F1.101</postscript>
|
||||
</field>
|
||||
<field x="64" y="1" type="Valuta" align="right" width="12" id="102" pattern="1" text="###.###.###,@@">
|
||||
<postscript description="F2.102 POSTSCRIPT">MESSAGE ADD,F1.102</postscript>
|
||||
</field>
|
||||
<field x="78" y="1" type="Valuta" align="right" width="12" id="103" pattern="1" text="###.###.###,@@">
|
||||
<postscript description="F2.103 POSTSCRIPT">MESSAGE ADD,F1.103</postscript>
|
||||
</field>
|
||||
<field x="92" y="1" type="Valuta" align="right" width="12" id="104" pattern="1" text="###.###.###,@@">
|
||||
<source>#101-#102-#103</source>
|
||||
</field>
|
||||
<field x="112" y="1" type="Numero" align="right" width="12" id="105" pattern="1">
|
||||
<postscript description="F2.105 POSTSCRIPT">MESSAGE ADD,F1.105</postscript>
|
||||
</field>
|
||||
<field x="125" y="1" type="Numero" align="right" width="12" id="106" pattern="1">
|
||||
<postscript description="F2.106 POSTSCRIPT">MESSAGE ADD,F1.106</postscript>
|
||||
</field>
|
||||
<field x="138" y="1" type="Numero" align="right" width="12" id="107" pattern="1">
|
||||
<postscript description="F2.107 POSTSCRIPT">MESSAGE ADD,F1.107</postscript>
|
||||
</field>
|
||||
<field x="151" y="1" type="Numero" align="right" width="12" id="108" pattern="1">
|
||||
<postscript description="F2.108 POSTSCRIPT">MESSAGE ADD,F1.108</postscript>
|
||||
</field>
|
||||
<field x="164" y="1" type="Numero" align="right" width="12" id="109" pattern="1">
|
||||
<postscript description="F2.109 POSTSCRIPT">MESSAGE ADD,F1.109</postscript>
|
||||
</field>
|
||||
<field x="177" y="1" type="Numero" align="right" width="12" id="110" pattern="1">
|
||||
<postscript description="F2.110 POSTSCRIPT">MESSAGE ADD,F1.110</postscript>
|
||||
</field>
|
||||
</section>
|
||||
<sql>USE %CAC
|
||||
BY I0 CODTAB[7,8]</sql>
|
||||
|
Loading…
x
Reference in New Issue
Block a user