Patch level :2.2 140
Files correlati : Ricompilazione Demo : [ ] Commento :stampa mastrini in corso d'opera...adesso stampa qualcosa di più o meno sensato! git-svn-id: svn://10.65.10.50/trunk@13216 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
3b54bda04d
commit
c247c55a4a
10
ca/ca3100.h
10
ca/ca3100.h
@ -17,16 +17,6 @@
|
||||
#define F_REPORT 213
|
||||
#define F_TIPOMOV 214
|
||||
|
||||
//campi generati dal pdc
|
||||
#define F_CDC1_INI 306
|
||||
#define F_CDC12_INI 321
|
||||
#define F_CDC1_FIN 326
|
||||
#define F_CDC12_FIN 341
|
||||
#define F_DES1_INI 346
|
||||
#define F_DES12_INI 361
|
||||
#define F_DES1_FIN 366
|
||||
#define F_DES12_FIN 381
|
||||
|
||||
//sheet di pagina 2
|
||||
#define F_RIGHE 400
|
||||
|
||||
|
229
ca/ca3200.cpp
229
ca/ca3200.cpp
@ -2,10 +2,11 @@
|
||||
#include <execp.h>
|
||||
#include <reprint.h>
|
||||
|
||||
#include "movana.h"
|
||||
#include "rmovana.h"
|
||||
|
||||
#include "ca3.h"
|
||||
#include "ca3200a.h"
|
||||
#include "ca3200.h"
|
||||
#include "calib01.h"
|
||||
#include "calib02.h"
|
||||
|
||||
@ -15,7 +16,9 @@
|
||||
class TPrint_mastrini_ca_mask : public TAutomask
|
||||
{
|
||||
protected:
|
||||
bool on_field_event(TOperable_field& o, TField_event e, long jolly) {return true;}
|
||||
bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
const TString& get_compatible_library() const;
|
||||
bool test_compatible_report();
|
||||
void create_page2();
|
||||
int create_page2_sheet(int lf, int& y, short& dlg, bool required);
|
||||
public:
|
||||
@ -23,6 +26,72 @@ public:
|
||||
virtual ~TPrint_mastrini_ca_mask() {}
|
||||
};
|
||||
|
||||
const TString& TPrint_mastrini_ca_mask::get_compatible_library() const
|
||||
{
|
||||
TString& lib = get_tmp_string();
|
||||
lib = "ca3200";
|
||||
const int stp = get_int(F_TIPOCONTI);
|
||||
lib << (stp == 1 ? 'a' : 'b'); // tipo di report da usare
|
||||
return lib;
|
||||
}
|
||||
|
||||
bool TPrint_mastrini_ca_mask::test_compatible_report()
|
||||
{
|
||||
TFilename lib = get_compatible_library();
|
||||
const TString& name = get(F_REPORT);
|
||||
bool ok = name.not_empty();
|
||||
if (ok)
|
||||
{
|
||||
TReport rep;
|
||||
ok = rep.load(name);
|
||||
if (ok)
|
||||
{
|
||||
TToken_string& libraries = rep.get_libraries();
|
||||
ok = libraries.get_pos(lib) >= 0;
|
||||
}
|
||||
}
|
||||
if (!ok)
|
||||
{
|
||||
set(F_REPORT, lib);
|
||||
lib.ext("rep");
|
||||
ok = lib.custom_path();
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
bool TPrint_mastrini_ca_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
switch (o.dlg())
|
||||
{
|
||||
case F_TIPOCONTI:
|
||||
if (e == fe_init || e == fe_modify)
|
||||
{
|
||||
test_compatible_report(); //in base al tipo di conti da stampare setta i report compatibili
|
||||
}
|
||||
break;
|
||||
case F_REPORT:
|
||||
if (e == fe_button)
|
||||
{
|
||||
const TString8 lib = get_compatible_library();
|
||||
TFilename path = o.get();
|
||||
if (select_custom_file(path, "rep", lib))
|
||||
{
|
||||
path = path.name();
|
||||
path.ext("");
|
||||
o.set(path);
|
||||
}
|
||||
} else
|
||||
if (e == fe_close)
|
||||
{
|
||||
if (!test_compatible_report())
|
||||
return error_box(TR("Impossibile trovare un report compatibile"));
|
||||
}
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
int TPrint_mastrini_ca_mask::create_page2_sheet(int lf, int& y, short& dlg, bool required)
|
||||
{
|
||||
TSheet_field& sf = sfield(F_RIGHE);
|
||||
@ -129,7 +198,7 @@ void TPrint_mastrini_ca_mask::create_page2()
|
||||
|
||||
|
||||
TPrint_mastrini_ca_mask::TPrint_mastrini_ca_mask()
|
||||
:TAutomask("ca3200a")
|
||||
:TAutomask("ca3200")
|
||||
{
|
||||
TConfig_anal cfg;
|
||||
const bool use_pdcc = cfg.get_bool("UsePdcc");
|
||||
@ -152,16 +221,157 @@ TPrint_mastrini_ca_mask::TPrint_mastrini_ca_mask()
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// RECORDSET
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
class TPrint_mastrini_ca_recordset : public TISAM_recordset
|
||||
{
|
||||
int _anno;
|
||||
int _tipoconti;
|
||||
TDate _dadata, _adata;
|
||||
long _danumreg, _anumreg;
|
||||
TString _daconto, _aconto, _codcosto, _codcms, _codfas;
|
||||
|
||||
protected:
|
||||
static bool mov_filter(const TRelation* rel);
|
||||
bool valid_record(const TRelation& rel) const;
|
||||
|
||||
virtual void set_custom_filter(TCursor& cur) const;
|
||||
|
||||
public:
|
||||
void set_filter(const TPrint_mastrini_ca_mask& msk, int cms_row);
|
||||
TPrint_mastrini_ca_recordset(const TString& sql) : TISAM_recordset(sql) { }
|
||||
};
|
||||
|
||||
static const TPrint_mastrini_ca_recordset* myself = NULL;
|
||||
|
||||
//metodo per riconoscere se il record corrente soddisfa i filtri della maschera...strafighissimo!
|
||||
bool TPrint_mastrini_ca_recordset::valid_record(const TRelation& rel) const
|
||||
{
|
||||
//prima controlla la testata...
|
||||
const TRectype& mov = rel.curr(LF_MOVANA);
|
||||
|
||||
const TDate data = mov.get(MOVANA_DATACOMP);
|
||||
if (data < _dadata || (_adata.ok() && data > _adata))
|
||||
return false;
|
||||
|
||||
/* if (_tipoconti > ' ')
|
||||
{
|
||||
const int tipoconti = mov.get_int();
|
||||
if (tipoconti != _tipoconti)
|
||||
return false;
|
||||
}*/
|
||||
|
||||
//..poi le righe (devono comparire solo le righe con cdc/cms/fsc che appaiono nello sheet)
|
||||
const TRectype& rmov = rel.curr(LF_RMOVANA);
|
||||
|
||||
if (_codcosto.not_empty())
|
||||
{
|
||||
const TString& cos = rmov.get(RMOVANA_CODCCOSTO);
|
||||
if (cos != _codcosto)
|
||||
return false;
|
||||
}
|
||||
if (_codcms.not_empty())
|
||||
{
|
||||
const TString& cms = rmov.get(RMOVANA_CODCMS);
|
||||
if (cms != _codcms)
|
||||
return false;
|
||||
}
|
||||
if (_codfas.not_empty())
|
||||
{
|
||||
const TString& fas = rmov.get(RMOVANA_CODFASE);
|
||||
if (fas != _codfas)
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TPrint_mastrini_ca_recordset::mov_filter(const TRelation* rel)
|
||||
{
|
||||
return myself->valid_record(*rel);
|
||||
}
|
||||
|
||||
void TPrint_mastrini_ca_recordset::set_custom_filter(TCursor& cur) const
|
||||
{
|
||||
//filtro sui conti selezionati sulla maschera
|
||||
TRectype darec(cur.curr()), arec(cur.curr()); //record corrente (rmovana (solo movimentati) o pconana(altri casi))
|
||||
darec.put("CODCONTO", _daconto);
|
||||
arec.put("CODCONTO", _aconto);
|
||||
cur.setregion(darec, arec);
|
||||
|
||||
myself = this;
|
||||
cur.set_filterfunction(mov_filter, true);
|
||||
}
|
||||
|
||||
//metodo per caricare i valori nel recordset dalla maschera...fighissimo!!
|
||||
void TPrint_mastrini_ca_recordset::set_filter(const TPrint_mastrini_ca_mask& msk, int cms_row)
|
||||
{
|
||||
_daconto, _aconto, _codcosto = _codcms = _codfas = "";
|
||||
if (cms_row >= 0)
|
||||
{
|
||||
TSheet_field& sf = msk.sfield(F_RIGHE);
|
||||
TMask& sm = sf.sheet_mask();
|
||||
sf.update_mask(cms_row);
|
||||
TRelation rel(LF_RMOVANA);
|
||||
sm.autosave(rel);
|
||||
_codcosto = rel.curr().get(RMOVANA_CODCCOSTO);
|
||||
_codcms = rel.curr().get(RMOVANA_CODCMS);
|
||||
_codfas = rel.curr().get(RMOVANA_CODFASE);
|
||||
}
|
||||
|
||||
for (int i = 0; msk.id2pos(F_CDC1_INI+i) > 0; i++)
|
||||
{
|
||||
_daconto << msk.get(F_CDC1_INI+i);
|
||||
_aconto << msk.get(F_CDC1_FIN+i);
|
||||
}
|
||||
|
||||
_dadata = msk.get_date(F_DATAINI);
|
||||
_adata = msk.get_date(F_DATAFIN);
|
||||
|
||||
_tipoconti = msk.get(F_TIPOCONTI)[0];
|
||||
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////
|
||||
// REPORT
|
||||
////////////////////////////////////////////////////////
|
||||
class TPrint_mastrini_ca_rep : public TAnal_report
|
||||
{
|
||||
/*protected:
|
||||
virtual bool get_usr_val(const TString& name, TVariant& var) const;
|
||||
void calcola_saldo_iniziale();*/
|
||||
int _anno;
|
||||
|
||||
protected:
|
||||
virtual bool set_recordset(const TString& sql);
|
||||
virtual bool get_usr_val(const TString& name, TVariant& var) const;
|
||||
|
||||
public:
|
||||
void set_filter(const TPrint_mastrini_ca_mask& msk, int cms_row);
|
||||
};
|
||||
|
||||
bool TPrint_mastrini_ca_rep::get_usr_val(const TString& name, TVariant& var) const
|
||||
{
|
||||
if (name == "#ESERCIZIO")
|
||||
{
|
||||
var.set(_anno);
|
||||
return true;
|
||||
}
|
||||
return TAnal_report::get_usr_val(name, var);
|
||||
}
|
||||
|
||||
bool TPrint_mastrini_ca_rep::set_recordset(const TString& sql)
|
||||
{
|
||||
TPrint_mastrini_ca_recordset* rs = new TPrint_mastrini_ca_recordset(sql);
|
||||
return TReport::set_recordset(rs);
|
||||
}
|
||||
|
||||
void TPrint_mastrini_ca_rep::set_filter(const TPrint_mastrini_ca_mask& msk, int cms_row)
|
||||
{
|
||||
_anno = msk.get_int(F_ANNO);
|
||||
TPrint_mastrini_ca_recordset* rs = (TPrint_mastrini_ca_recordset*)recordset();
|
||||
rs->set_filter(msk, cms_row);
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////
|
||||
// APPLICAZIONE
|
||||
@ -211,13 +421,8 @@ void TPrint_mastrini_ca::main_loop()
|
||||
|
||||
FOR_EACH_SHEET_ROW(sheet, r, row)
|
||||
{
|
||||
TString query;
|
||||
query << "USE RMOVANA\nJOIN PCONANA INTO CODCONTO==CODCONTO";
|
||||
rep.set_recordset(query);
|
||||
|
||||
rep.mask2report(*_mask);
|
||||
rep.set_filter(*_mask, r);
|
||||
book.add(rep);
|
||||
|
||||
}
|
||||
|
||||
book.print_or_preview(); //stampa il book dei report
|
||||
|
48
ca/ca3200.h
Executable file
48
ca/ca3200.h
Executable file
@ -0,0 +1,48 @@
|
||||
#ifndef __CA3200_H
|
||||
#define __CA3200_H
|
||||
|
||||
//pag. stampa mastrini
|
||||
#define F_CODDITTA 201
|
||||
#define F_RAGSOC 202
|
||||
#define F_DATASTAMPA 203
|
||||
#define F_ANNO 204
|
||||
#define F_REPORT 205
|
||||
|
||||
//campi generati dal pdc
|
||||
#define F_CDC1_INI 206
|
||||
#define F_CDC4_INI 209
|
||||
#define F_CDC1_FIN 216
|
||||
#define F_CDC4_FIN 219
|
||||
#define F_DES1_INI 226
|
||||
#define F_DES4_INI 229
|
||||
#define F_DES1_FIN 236
|
||||
#define F_DES4_FIN 239
|
||||
|
||||
//campi sulla maschera
|
||||
#define F_DATAINI 290
|
||||
#define F_DATAFIN 291
|
||||
#define F_STAMPA_PROG_ATT 292
|
||||
#define F_STAMPA_SALDI_PROG 293
|
||||
#define F_STAMPA_SALDI_SCAL 294
|
||||
#define F_TIPOCONTI 295
|
||||
|
||||
#define F_MEMORIZZA 296
|
||||
|
||||
//sheet di pagina 2
|
||||
#define F_RIGHE 300
|
||||
|
||||
#define S_CDC1 101
|
||||
#define S_CDC2 102
|
||||
#define S_CDC3 103
|
||||
#define S_CDC4 104
|
||||
#define S_CDC5 105
|
||||
#define S_CDC6 106
|
||||
#define S_CDC7 107
|
||||
#define S_CDC8 108
|
||||
#define S_CDC9 109
|
||||
#define S_CDC10 110
|
||||
#define S_CDC11 111
|
||||
#define S_CDC12 112
|
||||
|
||||
#endif // __CA3200_H
|
||||
|
@ -1,21 +1,22 @@
|
||||
#include "ca3200a.h"
|
||||
#include "ca3200.h"
|
||||
|
||||
TOOLBAR "" 0 -2 0 2
|
||||
TOOLBAR "" 0 -3 0 3
|
||||
|
||||
BUTTON DLG_PRINT 18 2
|
||||
STRING DLG_PROFILE 50
|
||||
BEGIN
|
||||
PROMPT -13 -11 "~Stampa"
|
||||
PROMPT 9 0 "Profilo "
|
||||
PSELECT
|
||||
END
|
||||
|
||||
BUTTON DLG_PRINT 10 2
|
||||
BEGIN
|
||||
PROMPT -15 -11 "~Stampa"
|
||||
MESSAGE EXIT,K_ENTER
|
||||
END
|
||||
|
||||
BUTTON F_MEMORIZZA 18 2
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BEGIN
|
||||
PROMPT -23 -11 "~Memorizza scelte"
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 18 2
|
||||
BEGIN
|
||||
PROMPT -33 -11 ""
|
||||
PROMPT -55 -11 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
@ -104,7 +105,7 @@ BEGIN
|
||||
PROMPT 26 17 ""
|
||||
END
|
||||
|
||||
DATE F_DATAFINE
|
||||
DATE F_DATAFIN
|
||||
BEGIN
|
||||
PROMPT 62 17 ""
|
||||
END
|
||||
@ -124,9 +125,9 @@ BEGIN
|
||||
PROMPT 55 18 "Stampa saldo scalare"
|
||||
END
|
||||
|
||||
LIST F_SELEZ_STAMPA 34
|
||||
LIST F_TIPOCONTI 24
|
||||
BEGIN
|
||||
PROMPT 2 19 "Selezione mastrini "
|
||||
PROMPT 2 19 "Selezione conti "
|
||||
ITEM "1|Movimentati nel periodo"
|
||||
ITEM "2|Con saldo diverso da 0"
|
||||
ITEM "3|Tutti"
|
||||
@ -135,6 +136,8 @@ END
|
||||
STRING F_REPORT 256 64
|
||||
BEGIN
|
||||
PROMPT 2 21 "Report "
|
||||
FLAGS "B"
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
ENDPAGE
|
48
ca/ca3200a.h
48
ca/ca3200a.h
@ -1,48 +0,0 @@
|
||||
#ifndef __CA3200A_H
|
||||
#define __CA3200A_H
|
||||
|
||||
//pag. stampa mastrini
|
||||
#define F_CODDITTA 301
|
||||
#define F_RAGSOC 302
|
||||
#define F_DATASTAMPA 303
|
||||
#define F_ANNO 304
|
||||
#define F_REPORT 305
|
||||
|
||||
//campi generati dal pdc
|
||||
#define F_CDC1_INI 306
|
||||
#define F_CDC12_INI 321
|
||||
#define F_CDC1_FIN 326
|
||||
#define F_CDC12_FIN 341
|
||||
#define F_DES1_INI 346
|
||||
#define F_DES12_INI 361
|
||||
#define F_DES1_FIN 366
|
||||
#define F_DES12_FIN 381
|
||||
|
||||
//campi sulla maschera
|
||||
#define F_DATAINI 390
|
||||
#define F_DATAFINE 391
|
||||
#define F_STAMPA_PROG_ATT 392
|
||||
#define F_STAMPA_SALDI_PROG 393
|
||||
#define F_STAMPA_SALDI_SCAL 394
|
||||
#define F_SELEZ_STAMPA 395
|
||||
|
||||
#define F_MEMORIZZA 396
|
||||
|
||||
//sheet di pagina 2
|
||||
#define F_RIGHE 400
|
||||
|
||||
#define S_CDC1 101
|
||||
#define S_CDC2 102
|
||||
#define S_CDC3 103
|
||||
#define S_CDC4 104
|
||||
#define S_CDC5 105
|
||||
#define S_CDC6 106
|
||||
#define S_CDC7 107
|
||||
#define S_CDC8 108
|
||||
#define S_CDC9 109
|
||||
#define S_CDC10 110
|
||||
#define S_CDC11 111
|
||||
#define S_CDC12 112
|
||||
|
||||
#endif // __CA3200A_H
|
||||
|
210
ca/ca3200a.rep
Executable file
210
ca/ca3200a.rep
Executable file
@ -0,0 +1,210 @@
|
||||
|
||||
<report libraries="ca3200a,ve1300" name="ca3200a" lpi="8">
|
||||
<description>Mastrini CA movimentati</description>
|
||||
<font face="Courier New" size="8" />
|
||||
<section type="Head" height="6.5">
|
||||
<font italic="1" face="Courier New" bold="1" size="8" />
|
||||
<field x="1" type="Stringa" width="50" pattern="1">
|
||||
<font italic="1" face="Courier New" bold="1" size="10" />
|
||||
<source>#SYSTEM.RAGSOC</source>
|
||||
</field>
|
||||
<field x="80" type="Data" width="10" pattern="1">
|
||||
<source>#SYSTEM.DATE</source>
|
||||
</field>
|
||||
<field x="165" type="Numero" align="right" width="3" pattern="1">
|
||||
<source>#REPORT.PAGE</source>
|
||||
</field>
|
||||
<field x="1" y="1.5" type="Testo" width="4" pattern="1" text="CdC:" />
|
||||
<field x="11" y="1.5" type="Stringa" width="23" pattern="1">
|
||||
<source>CODCCOSTO</source>
|
||||
<prescript description="H0.0 PRESCRIPT">CA_FORMAT_COSTO</prescript>
|
||||
</field>
|
||||
<field x="35" y="1.5" type="Stringa" width="50" pattern="1">
|
||||
<prescript description="H0.0 PRESCRIPT">MESSAGE ISAMREAD,CDC,CODCOSTO=RMOVANA.CODCCOSTO,DESCRIZ</prescript>
|
||||
</field>
|
||||
<field x="1" y="3" type="Testo" width="9" pattern="1" text="Commessa:" />
|
||||
<field x="11" y="3" type="Stringa" width="23" pattern="1">
|
||||
<source>CODCMS</source>
|
||||
<prescript description="H0.0 PRESCRIPT">CA_FORMAT_COMMESSA</prescript>
|
||||
</field>
|
||||
<field x="35" y="3" type="Stringa" width="50" pattern="1">
|
||||
<prescript description="H0.0 PRESCRIPT">MESSAGE ISAMREAD,COMMESSE,CODCMS=RMOVANA.CODCMS,DESCRIZ</prescript>
|
||||
</field>
|
||||
<field x="1" y="4.5" type="Testo" width="5" pattern="1" text="Fase:" />
|
||||
<field x="11" y="4.5" type="Stringa" width="13" pattern="1">
|
||||
<source>CODFASE</source>
|
||||
<prescript description="H0.0 PRESCRIPT">CA_FORMAT_FASE</prescript>
|
||||
</field>
|
||||
<field x="35" y="4.5" type="Stringa" width="50" pattern="1">
|
||||
<prescript description="H0.0 PRESCRIPT">MESSAGE ISAMREAD,FASI,CODFASE=RMOVANA.CODFASE,DESCRIZ</prescript>
|
||||
</field>
|
||||
<field border="2" x="1" y="6" type="Linea" width="167" height="0" pattern="1" />
|
||||
</section>
|
||||
<section type="Head" level="1" height="3">
|
||||
<prescript description="H1 PRESCRIPT">MESSAGE RESET,F1.101
|
||||
MESSAGE RESET,F1.102</prescript>
|
||||
<field border="1" radius="100" x="1" type="Testo" valign="center" align="center" shade_offset="25" width="167" height="2.5" text="MASTRINI DI CONTABILITA' ANALITICA">
|
||||
<font face="Courier New" bold="1" size="16" />
|
||||
</field>
|
||||
</section>
|
||||
<section repeat="1" type="Head" level="2" height="3">
|
||||
<groupby>CODCONTO</groupby>
|
||||
<font italic="1" face="Courier New" size="8" />
|
||||
<field type="Testo" width="6" pattern="1" text="Conto:">
|
||||
<font italic="1" face="Courier New" bold="1" size="8" />
|
||||
</field>
|
||||
<field x="7" type="Stringa" width="23" pattern="1">
|
||||
<font italic="1" face="Courier New" bold="1" size="8" />
|
||||
<source>CODCONTO</source>
|
||||
<prescript description="H2.0 PRESCRIPT">CA_FORMAT_CONTO</prescript>
|
||||
</field>
|
||||
<field x="31" type="Stringa" width="50" pattern="1">
|
||||
<font italic="1" face="Courier New" bold="1" size="8" />
|
||||
<prescript description="H2.0 PRESCRIPT">MESSAGE ISAMREAD,PCONANA,CODCONTO=CODCONTO,DESCR</prescript>
|
||||
</field>
|
||||
<field x="12" y="1.5" type="Testo" align="center" width="11" pattern="1" text="N.Reg.F;Riga" />
|
||||
<field x="24" y="1.5" type="Testo" width="11" pattern="1" text="Descrizione" />
|
||||
<field x="43" y="1.5" type="Testo" width="10" pattern="1" text="Data Doc." />
|
||||
<field x="54" y="1.5" type="Testo" width="6" pattern="1" text="N.Doc." />
|
||||
<field x="63" y="1.5" type="Testo" width="7" pattern="1" text="Causale" />
|
||||
<field x="97" y="1.5" type="Testo" align="right" width="4" pattern="1" text="Dare" />
|
||||
<field x="112" y="1.5" type="Testo" align="right" width="5" pattern="1" text="Avere" />
|
||||
<field x="121" y="1.5" type="Testo" align="right" width="12" pattern="1" text="Saldo progr." />
|
||||
<field x="136" y="1.5" type="Testo" align="right" width="12" pattern="1" text="Saldo movim." />
|
||||
<field x="152" y="1.5" type="Testo" align="right" width="12" pattern="1" text="Altro saldo" />
|
||||
<field border="1" x="1" y="2.5" type="Linea" width="168" height="0" pattern="1" />
|
||||
<field x="1" y="1.5" type="Testo" align="center" width="10" id="121" pattern="1" text="Data" />
|
||||
</section>
|
||||
<section type="Body" />
|
||||
<section type="Body" level="1">
|
||||
<field x="1" type="Data" width="10" pattern="1">
|
||||
<source>MOVANA.DATACOMP</source>
|
||||
</field>
|
||||
<field x="12" type="Numero" align="right" width="7" pattern="1">
|
||||
<source>NUMREG</source>
|
||||
</field>
|
||||
<field x="19" type="Testo" width="1" pattern="1" text="F;" />
|
||||
<field x="20" type="Numero" align="right" width="3" pattern="1">
|
||||
<source>NUMRIG</source>
|
||||
</field>
|
||||
<field x="24" type="Stringa" dynamic_height="1" width="17" height="3" pattern="1">
|
||||
<source>DESCR</source>
|
||||
</field>
|
||||
<field x="43" type="Data" width="10" pattern="1">
|
||||
<source>MOVANA.DATADOC</source>
|
||||
</field>
|
||||
<field x="54" type="Stringa" width="7" pattern="1">
|
||||
<source>MOVANA.NUMDOC</source>
|
||||
</field>
|
||||
<field x="63" type="Stringa" width="3" pattern="1">
|
||||
<source>MOVANA.CODCAUS</source>
|
||||
</field>
|
||||
<field x="67" type="Stringa" dynamic_height="1" width="17" height="3" pattern="1">
|
||||
<prescript description="B1.0 PRESCRIPT">MESSAGE ISAMREAD,CAUS,CODCAUS=MOVANA.CODCAUS,DESCR</prescript>
|
||||
</field>
|
||||
<field x="86" type="Valuta" align="right" width="15" id="101" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>IMPORTO</source>
|
||||
<prescript description="B1.101 PRESCRIPT">"RMOVANA.SEZIONE" @
|
||||
"A" =
|
||||
IF
|
||||
0 #THIS !
|
||||
THEN
|
||||
</prescript>
|
||||
<postscript description="B1.101 POSTSCRIPT">MESSAGE ADD,F1.101
|
||||
MESSAGE ADD,F2.131</postscript>
|
||||
</field>
|
||||
<field x="102" type="Valuta" align="right" width="15" id="102" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>IMPORTO</source>
|
||||
<prescript description="B1.102 PRESCRIPT">"RMOVANA.SEZIONE" @
|
||||
"D" =
|
||||
IF
|
||||
0 #THIS !
|
||||
THEN
|
||||
</prescript>
|
||||
<postscript description="B1.102 POSTSCRIPT">MESSAGE ADD,F1.102
|
||||
MESSAGE ADD,F2.132</postscript>
|
||||
</field>
|
||||
<field x="118" type="Valuta" align="right" width="15" id="103" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript description="B1.103 PRESCRIPT">"RMOVANA.SEZIONE" @
|
||||
"D" =
|
||||
IF
|
||||
0 #THIS !
|
||||
THEN
|
||||
</prescript>
|
||||
<postscript description="B1.103 POSTSCRIPT">MESSAGE ADD,F1.102
|
||||
MESSAGE ADD,F2.132</postscript>
|
||||
</field>
|
||||
<field x="134" type="Valuta" align="right" width="15" id="104" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript description="B1.104 PRESCRIPT">"RMOVANA.SEZIONE" @
|
||||
"D" =
|
||||
IF
|
||||
0 #THIS !
|
||||
THEN
|
||||
</prescript>
|
||||
<postscript description="B1.104 POSTSCRIPT">MESSAGE ADD,F1.102
|
||||
MESSAGE ADD,F2.132</postscript>
|
||||
</field>
|
||||
<field x="150" type="Valuta" align="right" width="15" id="105" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript description="B1.105 PRESCRIPT">"RMOVANA.SEZIONE" @
|
||||
"D" =
|
||||
IF
|
||||
0 #THIS !
|
||||
THEN
|
||||
</prescript>
|
||||
<postscript description="B1.105 POSTSCRIPT">MESSAGE ADD,F1.102
|
||||
MESSAGE ADD,F2.132</postscript>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Foot" height="1" />
|
||||
<section type="Foot" level="1">
|
||||
<field border="2" x="1" y="1" type="Linea" width="168" height="0" pattern="1" />
|
||||
<field x="85" y="2" type="Testo" width="17" pattern="1" text="Totali periodo:">
|
||||
<font face="Courier New" bold="1" size="8" />
|
||||
</field>
|
||||
<field x="85" y="3.25" type="Testo" width="20" pattern="1" text="Totali progressivi:">
|
||||
<font face="Courier New" bold="1" size="8" />
|
||||
</field>
|
||||
<field x="105" y="2" type="Valuta" align="right" width="15" id="101" pattern="1" text="###.###.###,@@">
|
||||
<font face="Courier New" bold="1" size="8" />
|
||||
</field>
|
||||
<field x="121" y="2" type="Valuta" align="right" width="15" id="102" pattern="1" text="###.###.###,@@">
|
||||
<font face="Courier New" bold="1" size="8" />
|
||||
</field>
|
||||
<field x="137" y="2" type="Valuta" align="right" width="15" id="103" pattern="1" text="###.###.###,@@">
|
||||
<font face="Courier New" bold="1" size="8" />
|
||||
</field>
|
||||
<field x="153" y="2" type="Valuta" align="right" width="15" id="104" pattern="1" text="###.###.###,@@">
|
||||
<font face="Courier New" bold="1" size="8" />
|
||||
</field>
|
||||
</section>
|
||||
<section type="Foot" level="2" height="1" />
|
||||
<sql>USE RMOVANA
|
||||
BY CODCONTO NUMREG NUMRIG
|
||||
JOIN MOVANA INTO NUMREG==NUMREG</sql>
|
||||
<prescript description="PRESCRIPT">: SCAMBIA_CAMPI ( F1 F2 -- )
|
||||
VARIABLE _X1 \ coordinate del campo F1
|
||||
VARIABLE _Y1
|
||||
VARIABLE _X2 \ coordinate del campo F2
|
||||
VARIABLE _Y2
|
||||
|
||||
2DUP \ duplica i campi F1 F2 sullo stack
|
||||
GET_POS \ prende le coordinate del campo F2
|
||||
_Y2 ! \ e le mette in _Y2 e _X2
|
||||
_X2 !
|
||||
GET_POS \ prende le coordinate del campo F1
|
||||
_Y1 ! \ e le mette in _Y1 e _X1
|
||||
_X1 !
|
||||
|
||||
_X1 @ \ legge le coordinate di F1
|
||||
_Y1 @
|
||||
ROT
|
||||
SET_POS \ mette le coord in F2
|
||||
|
||||
_X2 @
|
||||
_Y2 @
|
||||
ROT
|
||||
SET_POS
|
||||
;
|
||||
|
||||
</prescript>
|
||||
</report>
|
Loading…
x
Reference in New Issue
Block a user