Da controllare
This commit is contained in:
parent
0e3233ef16
commit
913ee9f062
@ -1512,18 +1512,6 @@ bool TMenu_application::dongle_update_needed() const
|
||||
|
||||
bool TMenu_application::user_create()
|
||||
{
|
||||
TFilename dir;
|
||||
|
||||
if (xvt_sys_get_env("TEMP", dir.get_buffer(), dir.size()))
|
||||
if (!dexist(dir))
|
||||
return error_box(FR("La cartella temporanea %s definita dalla variabile d'ambiente TEMP non esiste."), (const char *)dir);
|
||||
if (xvt_sys_get_env("TMP", dir.get_buffer(), dir.size()))
|
||||
if (!dexist(dir))
|
||||
return error_box(FR("La cartella temporanea %s definita dalla variabile d'ambiente TMP non esiste."), (const char *)dir);
|
||||
dir.cut(0);
|
||||
dir.tempdir();
|
||||
if (!dexist(dir))
|
||||
return error_box(FR("La cartella temporanea %s definita in campo.ini non esiste."), (const char *)dir);
|
||||
disable_menu_item(M_FILE_PRINT); // Questa voce di menu non serve per ora
|
||||
disable_menu_item(M_FILE_PREVIEW); // Figuriamoci questa
|
||||
|
||||
@ -1587,7 +1575,7 @@ bool TMenu_application::user_create()
|
||||
_menu.read(menu);
|
||||
update_preferred_tree();
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -13,9 +13,11 @@
|
||||
#include "ba1100.h"
|
||||
#include "ba1103.h"
|
||||
|
||||
#include <applicat.h>
|
||||
#include <dongle.h>
|
||||
#include <relapp.h>
|
||||
#include <printer.h>
|
||||
#include <progind.h>
|
||||
#include <reputils.h>
|
||||
#include <utility.h>
|
||||
#include <user.h>
|
||||
|
||||
@ -33,6 +35,59 @@
|
||||
#define Dir_file "dir.gen"
|
||||
#define Trc_file "trc.gen"
|
||||
|
||||
class TManutenzione_app : public TSkeleton_application
|
||||
{
|
||||
TDir_sheet* _browse;
|
||||
TArray _dirs;
|
||||
TArray _recs;
|
||||
TMask* _mask;
|
||||
long _firm;
|
||||
long _level;
|
||||
long _history_firm;
|
||||
TRec_sheet* _rec;
|
||||
TLog_report* _log;
|
||||
bool _print_log;
|
||||
|
||||
bool _superprassi;
|
||||
|
||||
protected:
|
||||
virtual void main_loop();
|
||||
virtual bool create () ;
|
||||
virtual bool destroy();
|
||||
void insert_riga(long, TToken_string&);
|
||||
void edit_riga(long, TToken_string&);
|
||||
void edit_riga(const TString&);
|
||||
void delete_riga(long);
|
||||
virtual bool extended_firm() const { return true; }
|
||||
|
||||
bool set_converting();
|
||||
bool reset_converting();
|
||||
|
||||
bool try_to_recover(TSystemisamfile& f, int err);
|
||||
void update();
|
||||
void update_dir();
|
||||
void convert_dir();
|
||||
virtual void print();
|
||||
virtual void do_print(TPrinter & p, TRec_sheet & r);
|
||||
const char* dumpfilename(const FileDes& dep) const;
|
||||
void load_des();
|
||||
void open_history();
|
||||
void put_history(const char* firm);
|
||||
void close_history();
|
||||
void dump_trc(const char * dir, const bool des_too, const long modules);
|
||||
void repair_file(int i);
|
||||
void save_file(const char * file);
|
||||
|
||||
void open_log();
|
||||
void write_log(const char* line, const int severity = 0);
|
||||
void close_log();
|
||||
|
||||
bool moveable_file(int file) const;
|
||||
public:
|
||||
|
||||
TManutenzione_app();
|
||||
};
|
||||
|
||||
HIDDEN bool browse_file_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
if (k == K_F9)
|
||||
@ -263,12 +318,12 @@ void TManutenzione_app::print()
|
||||
|
||||
bool TManutenzione_app::create() // initvar e arrmask
|
||||
{
|
||||
_firm = get_firm();
|
||||
|
||||
TString sw(argc()>2 ? argv(2) : "");
|
||||
// Posso fare le operazione avanzate solo se sono ammistratore
|
||||
// e NON mi trovo su di una installazione di tipo client
|
||||
|
||||
xvt_vobj_show(TASK_WIN);
|
||||
_superprassi = user() == ::dongle().administrator() && !::dongle().demo();
|
||||
_superprassi = user() == ::dongle().administrator() && !::dongle().demo();
|
||||
if (_superprassi)
|
||||
{
|
||||
const int type = ini_get_int(CONFIG_INSTALL, "Main", "Type");
|
||||
@ -306,8 +361,7 @@ bool TManutenzione_app::create() // initvar e arrmask
|
||||
else
|
||||
if (!::dongle().demo() && !set_firm())
|
||||
return false;
|
||||
_firm = atol(prefix().name());
|
||||
load_des();
|
||||
load_des();
|
||||
|
||||
_mask = new TMask("ba1100a");
|
||||
_browse = new TDir_sheet(TR("Manutenzione file di sistema"), _superprassi);
|
||||
@ -330,24 +384,6 @@ bool TManutenzione_app::destroy()
|
||||
return TApplication::destroy();
|
||||
}
|
||||
|
||||
void TManutenzione_app::show_log()
|
||||
{
|
||||
if (db_log())
|
||||
{
|
||||
if (admin())
|
||||
{
|
||||
TLog_mask m;
|
||||
|
||||
m.run();
|
||||
}
|
||||
else
|
||||
message_box(TR("Il log delle transazioni è visualizzabile dall'amministratore"));
|
||||
}
|
||||
else
|
||||
message_box(TR("Il log delle transazioni è disattivato"));
|
||||
}
|
||||
|
||||
|
||||
void TManutenzione_app::open_log()
|
||||
{
|
||||
_print_log = false;
|
||||
|
@ -1,10 +1,6 @@
|
||||
#ifndef __BA1100_H
|
||||
#define __BA1100_H
|
||||
|
||||
#ifndef __APPLICAT_H
|
||||
#include <applicat.h>
|
||||
#endif
|
||||
|
||||
#ifndef __CONFIG_H
|
||||
#include <config.h>
|
||||
#endif
|
||||
@ -21,14 +17,6 @@
|
||||
class TMask_field;
|
||||
#endif
|
||||
|
||||
#ifndef __PRINTER_H
|
||||
#include <printer.h>
|
||||
#endif
|
||||
|
||||
#ifndef __REPUTILS_H
|
||||
#include <reputils.h>
|
||||
#endif
|
||||
|
||||
#include "ba1100a.h"
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
@ -104,62 +92,4 @@ public:
|
||||
virtual ~TEdit_file() {}
|
||||
};
|
||||
|
||||
class TManutenzione_app : public TSkeleton_application
|
||||
{
|
||||
TDir_sheet* _browse;
|
||||
TArray _dirs;
|
||||
TArray _recs;
|
||||
TMask* _mask;
|
||||
long _firm;
|
||||
long _level;
|
||||
long _history_firm;
|
||||
TRec_sheet* _rec;
|
||||
TLog_report* _log;
|
||||
bool _print_log;
|
||||
|
||||
bool _superprassi;
|
||||
|
||||
protected:
|
||||
virtual void main_loop();
|
||||
virtual bool create();
|
||||
virtual bool destroy();
|
||||
void insert_riga(long, TToken_string&);
|
||||
void edit_riga(long, TToken_string&);
|
||||
void edit_riga(const TString&);
|
||||
void delete_riga(long);
|
||||
virtual bool extended_firm() const { return true; }
|
||||
|
||||
bool set_converting();
|
||||
bool reset_converting();
|
||||
|
||||
bool try_to_recover(TSystemisamfile& f, int err);
|
||||
void update();
|
||||
void update_dir();
|
||||
void convert_dir();
|
||||
virtual void print();
|
||||
virtual void do_print(TPrinter & p, TRec_sheet & r);
|
||||
const char* dumpfilename(const FileDes& dep) const;
|
||||
void load_des();
|
||||
void open_history();
|
||||
void put_history(const char* firm);
|
||||
void close_history();
|
||||
void dump_trc(const char * dir, const bool des_too, const long modules);
|
||||
void repair_file(int i);
|
||||
void save_file(const char * file);
|
||||
|
||||
virtual void show_log();
|
||||
|
||||
void open_log();
|
||||
void write_log(const char* line, const int severity = 0);
|
||||
void close_log();
|
||||
|
||||
bool moveable_file(int file) const;
|
||||
public:
|
||||
long get_firm() const { return _firm; }
|
||||
|
||||
TManutenzione_app();
|
||||
};
|
||||
|
||||
inline TManutenzione_app & app() { return (TManutenzione_app &)main_app(); }
|
||||
|
||||
#endif
|
||||
|
@ -275,17 +275,9 @@ void TRec_sheet::edit()
|
||||
}
|
||||
f2.set_notify(key_notify);
|
||||
f2.set_append(FALSE);
|
||||
|
||||
int nkeys = _rec.keys();
|
||||
|
||||
for (i = 0; i < nkeys; i++)
|
||||
f2.row(i) = _rec.keydef(i);
|
||||
for (i = 0; i < nkeys; i++) f2.row(i) = _rec.keydef(i);
|
||||
f2.disable_cell(0, 1);
|
||||
|
||||
const bool enable_save = (_dir.is_com() && app().get_firm() == 0) ||
|
||||
(_dir.is_firm() && app().get_firm() > 0);
|
||||
|
||||
_mask->enable(DLG_SAVEREC, enable_save);
|
||||
while (true)
|
||||
{
|
||||
f1.force_update(0); // Non togliere, serve per fare l'update della descrizione quando si fa l'import!!
|
||||
|
@ -136,7 +136,7 @@ protected:
|
||||
bool dir_gen() const;
|
||||
bool trc_gen() const;
|
||||
bool export_manager(const TString generalErrors) const;
|
||||
bool show_export_log();
|
||||
bool show_log();
|
||||
void log(int severity, const char* msg);
|
||||
|
||||
public:
|
||||
@ -980,7 +980,7 @@ bool TMSSQLExport_app::export_manager(TString generalErrors) const
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TMSSQLExport_app::show_export_log()
|
||||
bool TMSSQLExport_app::show_log()
|
||||
{
|
||||
if (_log)
|
||||
{
|
||||
@ -1089,7 +1089,7 @@ void TMSSQLExport_app::main_loop()
|
||||
}
|
||||
message_box("Migrazione effettuata correttamente!");
|
||||
} while (loop);
|
||||
show_export_log();
|
||||
show_log();
|
||||
}
|
||||
else
|
||||
message_box("Fallita connessione");
|
||||
|
@ -52,26 +52,24 @@ bool TTestrel_application::user_destroy()
|
||||
// Testmask
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
class TTest_application : public TApplication
|
||||
class TTest_application : public TSkeleton_application
|
||||
{
|
||||
const char* _maskname;
|
||||
|
||||
protected:
|
||||
bool create() { return menu(0); }
|
||||
bool destroy() { return TRUE; }
|
||||
bool menu(MENU_TAG);
|
||||
void main_loop();
|
||||
|
||||
public:
|
||||
TTest_application(const char* name) : _maskname(name) {}
|
||||
};
|
||||
|
||||
bool TTest_application::menu(MENU_TAG)
|
||||
void TTest_application::main_loop()
|
||||
{
|
||||
if (*_maskname)
|
||||
{
|
||||
TMask m(_maskname);
|
||||
KEY k = m.run();
|
||||
if (k == K_QUIT) stop_run();
|
||||
|
||||
while (m.run() == K_ENTER);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -83,8 +81,6 @@ bool TTest_application::menu(MENU_TAG)
|
||||
m.run();
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
|
@ -4,7 +4,7 @@ PAGE "Richiesta" -1 -1 76 12
|
||||
|
||||
STRING F_NOME 50
|
||||
BEGIN
|
||||
PROMPT 3 3 "Nome maschera"
|
||||
PROMPT 3 3 "Maschera "
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
|
@ -1742,7 +1742,6 @@ class TMailer : public TSkeleton_application
|
||||
bool _start_full_screen;
|
||||
|
||||
protected:
|
||||
virtual bool task_win_iconized() const { return !_start_full_screen && xvt_win_is_taskbar_visible(); }
|
||||
virtual bool create();
|
||||
virtual void main_loop();
|
||||
};
|
||||
@ -1768,7 +1767,7 @@ void TMailer::main_loop()
|
||||
WINDOW tray = xvt_trayicon_create(TASK_WIN, 9013, appname); // CampoServer.ico
|
||||
|
||||
open_files(LF_USER, 0);
|
||||
/* if (!_start_full_screen && xvt_win_is_taskbar_visible())
|
||||
if (!_start_full_screen && xvt_win_is_taskbar_visible())
|
||||
{
|
||||
if (tray != NULL_WIN)
|
||||
{
|
||||
@ -1779,7 +1778,7 @@ void TMailer::main_loop()
|
||||
if (xvt_rect_get_width(&rct_postman) >= xvt_rect_get_width(&rct_screen) - 64)
|
||||
xvt_vobj_set_visible(TASK_WIN, FALSE);
|
||||
}
|
||||
} */
|
||||
}
|
||||
|
||||
TMailer_mask mm;
|
||||
|
||||
|
@ -46,7 +46,7 @@ BEGIN
|
||||
WARNING "Manca la descrizione"
|
||||
END
|
||||
|
||||
LIST LST_TABIVA_S1 2 28
|
||||
LIST LST_TABIVA_S1 2 20
|
||||
BEGIN
|
||||
PROMPT 2 2 "Tipo "
|
||||
FIELD S1
|
||||
@ -70,15 +70,11 @@ BEGIN
|
||||
MESSAGE CLEAR,FLD_TABIVA_R0|CLEAR,FLD_TABIVA_I0
|
||||
MESSAGE ENABLE,FLD_TABIVA_I3|ENABLE,FLD_TABIVA_I4|SHOW,CHK_TABIVA_B5
|
||||
MESSAGE ENABLE,FLD_TABIVA_S6
|
||||
ITEM "RC|Reverse Charge (vendite)"
|
||||
MESSAGE CLEAR,FLD_TABIVA_R0|CLEAR,FLD_TABIVA_I0
|
||||
MESSAGE CLEAR,FLD_TABIVA_I3|CLEAR,FLD_TABIVA_I4|HIDE,CHK_TABIVA_B5
|
||||
MESSAGE ENABLE,FLD_TABIVA_S6
|
||||
END
|
||||
END
|
||||
|
||||
STRING FLD_TABIVA_S6 4
|
||||
BEGIN
|
||||
PROMPT 44 2 "C.IVA a cui ventilare "
|
||||
PROMPT 39 2 "C.IVA a cui ventilare "
|
||||
FLAGS "U"
|
||||
FIELD S6
|
||||
COPY USE FLD_TABIVA_CODTAB
|
||||
@ -150,7 +146,7 @@ END
|
||||
|
||||
BOOLEAN CHK_TABIVA_B5
|
||||
BEGIN
|
||||
PROMPT 30 5 "Escluso dal calcolo dei bolli su fatture esenti"
|
||||
PROMPT 30 5 "Escluso dal calcolo dei bolli sufatture esenti"
|
||||
FIELD B5
|
||||
END
|
||||
|
||||
@ -192,8 +188,6 @@ BEGIN
|
||||
INPUT FLD_TABIVA_I3
|
||||
OUTPUT FLD_TABIVA_I3
|
||||
ITEM " |Nessuno"
|
||||
ITEM "14|Passaggi interni"
|
||||
ITEM "16|Cessioni beni ammortizzabili"
|
||||
ITEM "20|Operazioni non imponibili (comma 1, artt.8, 8bis e 9)"
|
||||
ITEM "21|Operazioni non imponibili a seguito di dich. d'intento"
|
||||
ITEM "22|Altre operazioni non imponibili"
|
||||
@ -207,7 +201,6 @@ BEGIN
|
||||
ITEM "36|Cessione di microprocessori"
|
||||
ITEM "37|Prestazioni comparto edile e settori connessi"
|
||||
ITEM "38|Operazioni settore energetico"
|
||||
ITEM "39|Reverse charge altri casi"
|
||||
ITEM "B1|Ammontare op. es. escluse da nr. 1 a 9 e 11 art. 10"
|
||||
ITEM "B2|Ammontare op. es. di cui al nr. 11 art. 10"
|
||||
ITEM "B3|Ammontare op. es. di cui ai nr. 1 a 9 art. 10"
|
||||
|
@ -1025,7 +1025,7 @@ bool TMovanal_msk::row2imp(int r, TImporto& imp) const
|
||||
return !imp.is_zero();
|
||||
}
|
||||
|
||||
const TToken_string& TMovanal_msk::rec2key(const TRectype& rec) const //qui
|
||||
const TToken_string& TMovanal_msk::rec2key(const TRectype& rec) const
|
||||
{
|
||||
TToken_string& key = get_tmp_string();
|
||||
key = get(F_TIPO);
|
||||
@ -1127,6 +1127,7 @@ void TMovanal_msk::aggiorna_saldo_riga(int r)
|
||||
sld += TImporto('D', dare);
|
||||
}
|
||||
}
|
||||
|
||||
sld.normalize();
|
||||
set(F_DARE, sld.sezione() == 'D' ? sld.valore() : ZERO);
|
||||
set(F_AVERE, sld.sezione() == 'A' ? sld.valore() : ZERO);
|
||||
|
@ -50,8 +50,11 @@ bool TRic_saldi_msk::on_field_event(TOperable_field& o, TField_event e, long jol
|
||||
|
||||
const long recset_items = recset.items();
|
||||
TProgind pi(recset_items, "Ricerca movimenti che interessano l'esercizio selezionato...", true, true);
|
||||
for (bool ok = recset.move_first(); pi.addstatus(1) && ok; ok = recset.move_next())
|
||||
for (bool ok = recset.move_first(); ok; ok = recset.move_next())
|
||||
{
|
||||
if (!pi.addstatus(1))
|
||||
break;
|
||||
|
||||
const TDate curr_date = recset.get(MOVANA_DATACOMP).as_date();
|
||||
const TDate fcomp_date = recset.get(MOVANA_DATAFCOMP).as_date();
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
#include <applicat.h>
|
||||
#include <defmask.h>
|
||||
#include <execp.h>
|
||||
#include <repapp.h>
|
||||
#include <reprint.h>
|
||||
|
||||
#include "movana.h"
|
||||
@ -19,116 +20,59 @@ class TPrint_movimenti_ca_mask : public TAnal_report_mask
|
||||
{
|
||||
protected:
|
||||
bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
const TString& get_report_class() const;
|
||||
bool test_compatible_report();
|
||||
void create_page2();
|
||||
int create_page2_sheet(int lf, int& y, short& dlg, bool required);
|
||||
|
||||
public:
|
||||
TPrint_movimenti_ca_mask();
|
||||
virtual const TString & get_report_class() const;
|
||||
TPrint_movimenti_ca_mask();
|
||||
virtual ~TPrint_movimenti_ca_mask() {}
|
||||
};
|
||||
|
||||
const TString& TPrint_movimenti_ca_mask::get_report_class() const
|
||||
const TString & TPrint_movimenti_ca_mask::get_report_class() const
|
||||
{
|
||||
TString& classe = get_tmp_string();
|
||||
classe = "ca3100";
|
||||
const int stp = get_int(F_TIPOSTAMPA);
|
||||
classe << (stp == 1 ? 'a' : 'b'); // tipo di report da usare
|
||||
return classe;
|
||||
}
|
||||
TString classe = TAnal_report_mask::get_report_class();
|
||||
const int stp = get_int(F_TIPOSTAMPA);
|
||||
|
||||
bool TPrint_movimenti_ca_mask::test_compatible_report()
|
||||
{
|
||||
TFilename lib = get_report_class();
|
||||
const TString& name = get(F_REPORT);
|
||||
bool ok = name.not_empty();
|
||||
if (ok)
|
||||
{
|
||||
TReport rep;
|
||||
ok = rep.load(name);
|
||||
if (ok)
|
||||
{
|
||||
const TString& classe = rep.get_class();
|
||||
ok = classe == lib;
|
||||
}
|
||||
}
|
||||
if (!ok)
|
||||
{
|
||||
set(F_REPORT, lib);
|
||||
lib.ext("rep");
|
||||
ok = lib.custom_path();
|
||||
}
|
||||
return ok;
|
||||
classe.cut(6);
|
||||
classe << (stp == 1 ? 'a' : 'b'); // tipo di report da usare
|
||||
return get_tmp_string() = classe;
|
||||
}
|
||||
|
||||
bool TPrint_movimenti_ca_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
switch (o.dlg())
|
||||
{
|
||||
case DLG_PRINT:
|
||||
if (e == fe_button)
|
||||
{
|
||||
main_app().print();
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case DLG_PREVIEW:
|
||||
if (e == fe_button)
|
||||
{
|
||||
main_app().preview();
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case F_TIPOSTAMPA:
|
||||
if (e == fe_init || e == fe_modify)
|
||||
{
|
||||
test_compatible_report(); //in base al tipo stampa setta i report compatibili
|
||||
}
|
||||
break;
|
||||
case F_REPORT:
|
||||
if (e == fe_button)
|
||||
{
|
||||
const TString8 lib = get_report_class();
|
||||
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;
|
||||
case F_DATAINI:
|
||||
case F_DATAFIN:
|
||||
if (e == fe_close)
|
||||
{
|
||||
const TString& anno = get(F_ANNO);
|
||||
if (anno.not_empty()) //se l'anno esercizio esiste...
|
||||
case F_TIPOSTAMPA:
|
||||
if (e == fe_modify || e == fe_init)
|
||||
set_report_class();
|
||||
break;
|
||||
case F_DATAINI:
|
||||
case F_DATAFIN:
|
||||
if (e == fe_close)
|
||||
{
|
||||
const TRectype& esc = cache().get("ESC", anno);
|
||||
const TDate datainiesc = esc.get("D0");
|
||||
const TDate datafinesc = esc.get("D1");
|
||||
if (o.empty())
|
||||
const TString& anno = get(F_ANNO);
|
||||
if (anno.not_empty()) //se l'anno esercizio esiste...
|
||||
{
|
||||
const TDate dataesc = o.dlg() == F_DATAINI ? datainiesc : datafinesc;
|
||||
o.set(dataesc.string());
|
||||
}
|
||||
else
|
||||
{
|
||||
const TDate d = o.get();
|
||||
if (d < datainiesc || d > datafinesc)
|
||||
return error_box(TR("La data deve essere compresa nell'esercizio selezionato"));
|
||||
const TRectype& esc = cache().get("ESC", anno);
|
||||
const TDate datainiesc = esc.get("D0");
|
||||
const TDate datafinesc = esc.get("D1");
|
||||
if (o.empty())
|
||||
{
|
||||
const TDate dataesc = o.dlg() == F_DATAINI ? datainiesc : datafinesc;
|
||||
o.set(dataesc.string());
|
||||
}
|
||||
else
|
||||
{
|
||||
const TDate d = o.get();
|
||||
if (d < datainiesc || d > datafinesc)
|
||||
return error_box(TR("La data deve essere compresa nell'esercizio selezionato"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
default: break;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@ -158,7 +102,7 @@ class TPrint_movimenti_ca_recordset : public TISAM_recordset
|
||||
char _tipomov;
|
||||
long _danumreg, _anumreg;
|
||||
TString4 _dacaus, _acaus;
|
||||
TString _codcosto, _codcms, _codfas;
|
||||
TString _codcosto, _codcms, _codfas, _contsep;
|
||||
|
||||
protected:
|
||||
static bool mov_filter(const TRelation* rel);
|
||||
@ -217,25 +161,14 @@ bool TPrint_movimenti_ca_recordset::valid_record(const TRelation& rel) const
|
||||
//..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.starts_with(_codcosto))
|
||||
if (_codcosto.full() && rmov.get(RMOVANA_CODCCOSTO).starts_with(_codcosto))
|
||||
return false;
|
||||
}
|
||||
if (_codcms.not_empty())
|
||||
{
|
||||
const TString& cms = rmov.get(RMOVANA_CODCMS);
|
||||
if (!cms.starts_with(_codcms))
|
||||
if (_codcms.full() && rmov.get(RMOVANA_CODCMS).starts_with(_codcms))
|
||||
return false;
|
||||
}
|
||||
if (_codfas.not_empty())
|
||||
{
|
||||
const TString& fas = rmov.get(RMOVANA_CODFASE);
|
||||
if (!fas.starts_with(_codfas))
|
||||
if (_codfas.full() && rmov.get(RMOVANA_CODFASE).starts_with(_codfas))
|
||||
return false;
|
||||
}
|
||||
|
||||
if (_contsep.full() && _contsep != mov.get(MOVANA_CONTSEP))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -286,6 +219,7 @@ void TPrint_movimenti_ca_recordset::set_filter(const TPrint_movimenti_ca_mask& m
|
||||
_acaus = msk.get(F_CAUSALEFIN);
|
||||
|
||||
_tipomov = msk.get(F_TIPOMOV)[0];
|
||||
_contsep = msk.get(F_CONTSEP);
|
||||
}
|
||||
|
||||
|
||||
@ -359,64 +293,68 @@ void TPrint_movimenti_ca_rep::set_filter(const TPrint_movimenti_ca_mask& msk, in
|
||||
////////////////////////////////////////////////////////
|
||||
// APPLICAZIONE
|
||||
////////////////////////////////////////////////////////
|
||||
class TPrint_movimenti_ca : public TSkeleton_application
|
||||
class TPrint_movimenti_ca : public TReport_application
|
||||
{
|
||||
TPrint_movimenti_ca_mask* _mask;
|
||||
TPrint_movimenti_ca_mask * _mask;
|
||||
TPrint_movimenti_ca_rep * _rep;
|
||||
|
||||
protected:
|
||||
virtual const char * extra_modules() const {return "cm";} //funziona anche con autorizzazione CM
|
||||
virtual TReport & get_report(const TAutomask & m);
|
||||
//virtual TTrec * get_dbase_recdesc(TReport & rep);
|
||||
virtual TAutomask & get_mask();
|
||||
virtual void execute_print(TReport_book & book, TAutomask & mask, TReport & rep, export_type type = _export_printer);
|
||||
virtual short output_id() const { return 0; }
|
||||
virtual const char * output_name(const TReport & rep) const { return "listamov"; }
|
||||
// @cmember Distruzione dei dati dell'utente
|
||||
virtual bool user_destroy();
|
||||
|
||||
void print_or_preview(const bool stampa);
|
||||
virtual void print();
|
||||
virtual void preview();
|
||||
|
||||
virtual void main_loop();
|
||||
public:
|
||||
TPrint_movimenti_ca() : _mask(nullptr), _rep(nullptr) {}
|
||||
~TPrint_movimenti_ca() {}
|
||||
};
|
||||
|
||||
|
||||
void TPrint_movimenti_ca::print_or_preview(const bool stampa)
|
||||
TReport & TPrint_movimenti_ca::get_report(const TAutomask & m)
|
||||
{
|
||||
//costruzione della query x il report in base ai parametri della maschera
|
||||
TSheet_field& sheet = _mask->sfield(F_RIGHE);
|
||||
const int n_righe_sheet = sheet.items();
|
||||
//se lo sheet è vuoto aggiunge una riga vuota
|
||||
if (n_righe_sheet == 0)
|
||||
sheet.insert();
|
||||
if (_rep == nullptr)
|
||||
_rep = new TPrint_movimenti_ca_rep;
|
||||
|
||||
//report e book
|
||||
TReport_book book; //book dei report
|
||||
TString path = _mask->get(DLG_REPORT);
|
||||
|
||||
TPrint_movimenti_ca_rep rep;
|
||||
rep.load(_mask->get(F_REPORT));
|
||||
|
||||
FOR_EACH_SHEET_ROW(sheet, r, row)
|
||||
{
|
||||
rep.set_filter(*_mask, r);
|
||||
book.add(rep);
|
||||
}
|
||||
|
||||
if (stampa)
|
||||
book.print(); //stampa il book dei report
|
||||
else
|
||||
book.preview(); //anteprima il book dei report
|
||||
if (path.empty())
|
||||
path = _mask->get_report_class();
|
||||
_rep->load(_mask->get(DLG_REPORT));
|
||||
return * _rep;
|
||||
}
|
||||
|
||||
void TPrint_movimenti_ca::print()
|
||||
TAutomask & TPrint_movimenti_ca::get_mask()
|
||||
{
|
||||
print_or_preview(true);
|
||||
if (_mask == nullptr)
|
||||
_mask = new TPrint_movimenti_ca_mask;
|
||||
return *_mask;
|
||||
}
|
||||
|
||||
void TPrint_movimenti_ca::preview()
|
||||
void TPrint_movimenti_ca::execute_print(TReport_book & book, TAutomask & mask, TReport & rep, export_type type)
|
||||
{
|
||||
print_or_preview(false);
|
||||
//costruzione della query x il report in base ai parametri della maschera
|
||||
TSheet_field & sheet = mask.sfield(F_RIGHE);
|
||||
const int n_righe_sheet = sheet.items();
|
||||
|
||||
//se lo sheet è vuoto aggiunge una riga vuota
|
||||
if (n_righe_sheet == 0)
|
||||
sheet.insert();
|
||||
FOR_EACH_SHEET_ROW(sheet, r, row)
|
||||
{
|
||||
((TPrint_movimenti_ca_rep &) rep).set_filter((TPrint_movimenti_ca_mask &) mask, r);
|
||||
book.add(rep);
|
||||
}
|
||||
}
|
||||
|
||||
void TPrint_movimenti_ca::main_loop()
|
||||
bool TPrint_movimenti_ca::user_destroy()
|
||||
{
|
||||
_mask = new TPrint_movimenti_ca_mask;
|
||||
_mask->run();
|
||||
delete _mask;
|
||||
_mask = NULL;
|
||||
safe_delete(_mask);
|
||||
safe_delete(_rep);
|
||||
return TReport_application::user_destroy();
|
||||
}
|
||||
|
||||
int ca3100(int argc, char* argv[])
|
||||
|
@ -14,8 +14,9 @@
|
||||
#define F_NUMEROFIN 210
|
||||
#define F_CAUSALEINI 211
|
||||
#define F_CAUSALEFIN 212
|
||||
#define F_REPORT 213
|
||||
#define F_TIPOMOV 214
|
||||
#define F_CONTSEP 215
|
||||
#define F_DESCONTSEP 216
|
||||
|
||||
//sheet di pagina 2
|
||||
#define F_RIGHE 400
|
||||
|
@ -1,25 +1,15 @@
|
||||
#include "ca3100.h"
|
||||
#include "camask.h"
|
||||
|
||||
#define ALL_EXPORT
|
||||
#define CLASS_NAME "ca3100a"
|
||||
|
||||
TOOLBAR "topbar" 0 0 0 2
|
||||
#include <aprintbar.h>
|
||||
ENDPAGE
|
||||
|
||||
TOOLBAR "bottombar" 0 -2 0 1
|
||||
|
||||
STRING F_REPORT 256 66
|
||||
BEGIN
|
||||
PROMPT 1 -2 "Report "
|
||||
FLAGS "B"
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING DLG_PROFILE 50
|
||||
BEGIN
|
||||
PROMPT 1 -1 "Profilo "
|
||||
PSELECT
|
||||
END
|
||||
|
||||
TOOLBAR "bottombar" 0 -3 0 1
|
||||
#include <bprintbar.h>
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Parametri stampa" 0 0 0 2
|
||||
@ -151,9 +141,35 @@ BEGIN
|
||||
ITEM "T|Trasferito"
|
||||
END
|
||||
|
||||
STRING F_CONTSEP 6
|
||||
BEGIN
|
||||
PROMPT 1 10 "Cont. separata "
|
||||
USE &NPENT
|
||||
INPUT CODTAB F_CONTSEP
|
||||
DISPLAY "Codice@6" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CONTSEP CODTAB
|
||||
OUTPUT F_DESCONTSEP S0
|
||||
CHECKTYPE NORMAL
|
||||
FIELD CONTSEP
|
||||
MODULE NP
|
||||
END
|
||||
|
||||
STRING F_DESCONTSEP 50 48
|
||||
BEGIN
|
||||
PROMPT 26 10 ""
|
||||
USE &NPENT KEY 2
|
||||
INPUT S0 F_DESCONTSEP
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice@6" CODTAB
|
||||
COPY OUTPUT F_CONTSEP
|
||||
CHECKTYPE NORMAL
|
||||
MODULE NP
|
||||
END
|
||||
|
||||
SPREADSHEET F_RIGHE -1 -1
|
||||
BEGIN
|
||||
PROMPT 1 12 "Selezione su CdC / Commesse / Fasi"
|
||||
PROMPT 0 12 "Selezione su CdC / Commesse / Fasi"
|
||||
ITEM "Cdc1"
|
||||
ITEM "Cdc2"
|
||||
ITEM "Cdc3"
|
||||
|
@ -1,8 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<report libraries="ve1300" name="ca3100a" lpi="8" class="ca3100b">
|
||||
<report libraries="ve1300" page_merge="" save_printer="" name="ca3100a" use_printer_font="" orientation="" page_split="" lpi="8" command="" class="ca3100a">
|
||||
<description>Movimenti CA per numero registrazione</description>
|
||||
<font face="Courier New" size="8" />
|
||||
<section type="Head" pattern="1">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Head" level="" hidden="" page_break="" can_break="" pattern="1">
|
||||
<font italic="1" face="Courier New" size="8" />
|
||||
<prescript description="H0 PRESCRIPT">#ESERCIZIO @
|
||||
0 E;
|
||||
@ -10,79 +10,79 @@ IF
|
||||
121 122 SCAMBIA_CAMPI
|
||||
THEN
|
||||
;</prescript>
|
||||
<field x="1" type="Stringa" width="50" pattern="1">
|
||||
<field x="1" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="50" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<font italic="1" face="Courier New" bold="1" size="10" />
|
||||
<source>#SYSTEM.RAGSOC</source>
|
||||
</field>
|
||||
<field x="76" type="Data" width="10" pattern="1">
|
||||
<field x="76" deactivated="" type="Data" hidden="" link="" dynamic_height="" shade_offset="" width="10" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>#SYSTEM.DATE</source>
|
||||
</field>
|
||||
<field x="157" type="Numero" align="right" width="3" pattern="1">
|
||||
<field x="157" deactivated="" type="Numero" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="3" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>#REPORT.PAGE</source>
|
||||
</field>
|
||||
<field x="10" y="1.25" type="Testo" width="12" pattern="1" text="Dal numero" />
|
||||
<field x="22" y="1.25" type="Numero" align="right" width="12" pattern="1" hide_zero="1">
|
||||
<field x="10" y="1.25" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="12" codval="" id="" pattern="1" hide_zero="" text="Dal numero" />
|
||||
<field x="22" y="1.25" deactivated="" type="Numero" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="12" codval="" id="" pattern="1" hide_zero="1" text="">
|
||||
<font face="Courier New" bold="1" size="8" />
|
||||
<source>#DANUMREG</source>
|
||||
</field>
|
||||
<field x="40" y="1.25" type="Testo" width="12" pattern="1" text="Al numero" />
|
||||
<field x="52" y="1.25" type="Numero" align="right" width="12" pattern="1" hide_zero="1">
|
||||
<field x="40" y="1.25" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="12" codval="" id="" pattern="1" hide_zero="" text="Al numero" />
|
||||
<field x="52" y="1.25" deactivated="" type="Numero" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="12" codval="" id="" pattern="1" hide_zero="1" text="">
|
||||
<font face="Courier New" bold="1" size="8" />
|
||||
<source>#ANUMREG</source>
|
||||
</field>
|
||||
<field border="2" x="1" y="2.5" type="Linea" width="161" height="0" pattern="1" />
|
||||
<field x="1.5" y="3" type="Testo" align="center" width="7" pattern="1" text="N.Reg." />
|
||||
<field x="33.5" y="3" type="Testo" align="center" width="11" pattern="1" text="Fine Comp." />
|
||||
<field x="45.5" y="3" type="Testo" align="center" width="8" pattern="1" text="N.Reg.CG" />
|
||||
<field x="55" y="3" type="Testo" align="center" width="6" pattern="1" text="N.Doc." />
|
||||
<field x="62" y="3" type="Testo" align="center" width="7" pattern="1" text="Tp.Doc." />
|
||||
<field x="69" y="3" type="Testo" align="center" width="11" pattern="1" text="Descrizione" />
|
||||
<field x="95" y="3" type="Testo" align="center" width="7" pattern="1" text="Causale" />
|
||||
<field x="125" y="3" type="Testo" align="center" width="7" pattern="1" text="Tp.Mov." />
|
||||
<field x="133" y="3" type="Testo" align="center" width="15" pattern="1" text="Totale Dare" />
|
||||
<field x="147" y="3" type="Testo" align="center" width="15" pattern="1" text="Totale Avere" />
|
||||
<field x="33.5" y="4" type="Testo" align="center" width="11" pattern="1" text="Data Doc." />
|
||||
<field border="2" x="1" y="5" type="Linea" width="161" height="0" pattern="1" />
|
||||
<field x="10" y="3" type="Testo" align="center" width="10" id="121" pattern="1" text="Data Reg." />
|
||||
<field x="22" y="3" type="Testo" width="11" id="122" pattern="1" text="Data Comp." />
|
||||
<field border="2" x="1" y="2.5" deactivated="" type="Linea" hidden="" link="" dynamic_height="" shade_offset="" width="161" codval="" height="0" id="" pattern="1" hide_zero="" text="" />
|
||||
<field x="1.5" y="3" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="7" codval="" id="" pattern="1" hide_zero="" text="N.Reg." />
|
||||
<field x="33.5" y="3" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="11" codval="" id="" pattern="1" hide_zero="" text="Fine Comp." />
|
||||
<field x="45.5" y="3" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="8" codval="" id="" pattern="1" hide_zero="" text="N.Reg.CG" />
|
||||
<field x="55" y="3" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="6" codval="" id="" pattern="1" hide_zero="" text="N.Doc." />
|
||||
<field x="62" y="3" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="7" codval="" id="" pattern="1" hide_zero="" text="Tp.Doc." />
|
||||
<field x="69" y="3" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="11" codval="" id="" pattern="1" hide_zero="" text="Descrizione" />
|
||||
<field x="95" y="3" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="7" codval="" id="" pattern="1" hide_zero="" text="Causale" />
|
||||
<field x="125" y="3" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="7" codval="" id="" pattern="1" hide_zero="" text="Tp.Mov." />
|
||||
<field x="133" y="3" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="15" codval="" id="" pattern="1" hide_zero="" text="Totale Dare" />
|
||||
<field x="147" y="3" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="15" codval="" id="" pattern="1" hide_zero="" text="Totale Avere" />
|
||||
<field x="33.5" y="4" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="11" codval="" id="" pattern="1" hide_zero="" text="Data Doc." />
|
||||
<field border="2" x="1" y="5" deactivated="" type="Linea" hidden="" link="" dynamic_height="" shade_offset="" width="161" codval="" height="0" id="" pattern="1" hide_zero="" text="" />
|
||||
<field x="10" y="3" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="10" codval="" id="121" pattern="1" hide_zero="" text="Data Reg." />
|
||||
<field x="22" y="3" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="11" codval="" id="122" pattern="1" hide_zero="" text="Data Comp." />
|
||||
</section>
|
||||
<section type="Head" level="1" height="3" pattern="1">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Head" level="1" hidden="" height="3" page_break="" can_break="" pattern="1">
|
||||
<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="161" height="2.5" pattern="2" text="MOVIMENTI DI CONTABILITA' ANALITICA">
|
||||
<field border="1" radius="100" x="1" deactivated="" type="Testo" valign="center" hidden="" align="center" link="" dynamic_height="" shade_offset="25" width="161" codval="" height="2.5" id="" pattern="2" hide_zero="" text="MOVIMENTI DI CONTABILITA' ANALITICA">
|
||||
<font face="Courier New" bold="1" size="16" />
|
||||
</field>
|
||||
</section>
|
||||
<section type="Head" level="2" pattern="1">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Head" level="2" hidden="" page_break="" can_break="" pattern="1">
|
||||
<groupby>NUMREG</groupby>
|
||||
<field x="1" y="1" type="Numero" align="right" link="107.NUMREG" width="7" pattern="1">
|
||||
<field x="1" y="1" deactivated="" type="Numero" hidden="" align="right" link="107.NUMREG" dynamic_height="" shade_offset="" width="7" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>MOVANA.NUMREG</source>
|
||||
</field>
|
||||
<field x="34" y="1" type="Data" width="11" pattern="1">
|
||||
<field x="34" y="1" deactivated="" type="Data" hidden="" link="" dynamic_height="" shade_offset="" width="11" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>MOVANA.DATAFCOMP</source>
|
||||
</field>
|
||||
<field x="47" y="1" type="Numero" align="right" link="23.NUMREG" width="7" pattern="1" hide_zero="1">
|
||||
<field x="47" y="1" deactivated="" type="Numero" hidden="" align="right" link="23.NUMREG" dynamic_height="" shade_offset="" width="7" codval="" id="" pattern="1" hide_zero="1" text="">
|
||||
<source>MOVANA.NUMREGCG</source>
|
||||
</field>
|
||||
<field x="56" y="1" type="Stringa" width="7" pattern="1">
|
||||
<field x="56" y="1" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="7" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>MOVANA.NUMDOC</source>
|
||||
</field>
|
||||
<field x="64" y="1" type="Stringa" width="4" pattern="1">
|
||||
<field x="64" y="1" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="4" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>MOVANA.TIPODOC</source>
|
||||
</field>
|
||||
<field x="69" y="1" type="Stringa" dynamic_height="1" width="25" height="2" pattern="1">
|
||||
<field x="69" y="1" deactivated="" type="Stringa" hidden="" link="" dynamic_height="1" shade_offset="" width="25" codval="" height="2" id="" pattern="1" hide_zero="" text="">
|
||||
<source>MOVANA.DESCR</source>
|
||||
</field>
|
||||
<field x="95" y="1" type="Stringa" width="3" pattern="1">
|
||||
<field x="95" y="1" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="3" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>MOVANA.CODCAUS</source>
|
||||
</field>
|
||||
<field x="99" y="1" type="Stringa" dynamic_height="1" width="25" height="2" pattern="1">
|
||||
<field x="99" y="1" deactivated="" type="Stringa" hidden="" link="" dynamic_height="1" shade_offset="" width="25" codval="" height="2" id="" pattern="1" hide_zero="" text="">
|
||||
<prescript description="H2.0 PRESCRIPT">MESSAGE ISAMREAD,CAUS,CODCAUS=MOVANA.CODCAUS,DESCR</prescript>
|
||||
</field>
|
||||
<field x="127" y="1" type="Stringa" width="1" pattern="1">
|
||||
<field x="127" y="1" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="1" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>MOVANA.TIPOMOV</source>
|
||||
</field>
|
||||
<field x="131" y="1" type="Valuta" align="right" width="15" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="131" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="15" codval="" id="" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>MOVANA.TOTDOC</source>
|
||||
<prescript description="H2.0 PRESCRIPT">"MOVANA.SEZIONE" @
|
||||
"A" =
|
||||
@ -91,8 +91,21 @@ IF
|
||||
THEN
|
||||
</prescript>
|
||||
</field>
|
||||
<field x="146" y="1" type="Valuta" align="right" width="15" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="146" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="15" codval="" id="" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>MOVANA.TOTDOC</source>
|
||||
<prescript description="">"MOVANA.SEZIONE" @
|
||||
"D" =
|
||||
IF
|
||||
0 #THIS !
|
||||
THEN
|
||||
</prescript>
|
||||
</field>
|
||||
<field x="34" y="2" deactivated="" type="Data" hidden="" link="" dynamic_height="" shade_offset="" width="11" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>MOVANA.DATADOC</source>
|
||||
</field>
|
||||
<field x="131" y="2" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="15" codval="" id="" pattern="1" hide_zero="" text="Cont.separata" />
|
||||
<field x="146" y="2" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="6" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>MOVANA.CONTSEP</source>
|
||||
<prescript description="H2.0 PRESCRIPT">"MOVANA.SEZIONE" @
|
||||
"D" =
|
||||
IF
|
||||
@ -100,59 +113,56 @@ IF
|
||||
THEN
|
||||
</prescript>
|
||||
</field>
|
||||
<field x="34" y="2" type="Data" width="11" pattern="1">
|
||||
<source>MOVANA.DATADOC</source>
|
||||
</field>
|
||||
<field x="8" y="3" type="Testo" align="center" width="4" pattern="1" text="Riga" />
|
||||
<field x="13" y="3" type="Testo" width="23" pattern="1" text="Centro di Costo" />
|
||||
<field x="37" y="3" type="Testo" width="23" pattern="1" text="Commessa" />
|
||||
<field x="61" y="3" type="Testo" width="13" pattern="1" text="Fase" />
|
||||
<field x="75" y="3" type="Testo" width="23" pattern="1" text="Conto" />
|
||||
<field x="99" y="3" type="Testo" width="25" pattern="1" text="Descrizione" />
|
||||
<field x="131.18" y="3" type="Testo" align="center" width="15" pattern="1" text="Dare" />
|
||||
<field x="146.18" y="3" type="Testo" align="center" width="15" pattern="1" text="Avere" />
|
||||
<field border="1" x="8.18" y="4" type="Linea" width="154" height="0" pattern="1" />
|
||||
<field x="-9.88" y="1" type="Data" width="10" id="121" pattern="1">
|
||||
<field x="8" y="3" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="4" codval="" id="" pattern="1" hide_zero="" text="Riga" />
|
||||
<field x="13" y="3" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="23" codval="" id="" pattern="1" hide_zero="" text="Centro di Costo" />
|
||||
<field x="37" y="3" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="23" codval="" id="" pattern="1" hide_zero="" text="Commessa" />
|
||||
<field x="61" y="3" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="13" codval="" id="" pattern="1" hide_zero="" text="Fase" />
|
||||
<field x="75" y="3" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="23" codval="" id="" pattern="1" hide_zero="" text="Conto" />
|
||||
<field x="99" y="3" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="25" codval="" id="" pattern="1" hide_zero="" text="Descrizione" />
|
||||
<field x="131.18" y="3" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="15" codval="" id="" pattern="1" hide_zero="" text="Dare" />
|
||||
<field x="146.18" y="3" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="15" codval="" id="" pattern="1" hide_zero="" text="Avere" />
|
||||
<field border="1" x="8.18" y="4" deactivated="" type="Linea" hidden="" link="" dynamic_height="" shade_offset="" width="154" codval="" height="0" id="" pattern="1" hide_zero="" text="" />
|
||||
<field x="-9.88" y="1" deactivated="" type="Data" hidden="" link="" dynamic_height="" shade_offset="" width="10" codval="" id="121" pattern="1" hide_zero="" text="">
|
||||
<source>DATAREG</source>
|
||||
</field>
|
||||
<field x="10" y="1" type="Data" width="10" id="121" pattern="1">
|
||||
<field x="10" y="1" deactivated="" type="Data" hidden="" link="" dynamic_height="" shade_offset="" width="10" codval="" id="121" pattern="1" hide_zero="" text="">
|
||||
<source>MOVANA.DATAREG</source>
|
||||
</field>
|
||||
<field x="22" y="1" type="Data" align="right" width="11" id="122" pattern="1">
|
||||
<field x="22" y="1" deactivated="" type="Data" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="11" codval="" id="122" pattern="1" hide_zero="" text="">
|
||||
<source>MOVANA.DATACOMP</source>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Body" pattern="1" />
|
||||
<section type="Body" level="1" pattern="1">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Body" level="" hidden="" page_break="" can_break="" pattern="1" />
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Body" level="1" hidden="" page_break="" can_break="" pattern="1">
|
||||
<prescript description="B1 PRESCRIPT">#ESERCIZIO @
|
||||
0 E;
|
||||
IF
|
||||
121 122 SCAMBIA_CAMPI
|
||||
THEN
|
||||
;</prescript>
|
||||
<field x="9" type="Numero" align="right" width="3" pattern="1">
|
||||
<field x="9" deactivated="" type="Numero" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="3" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>NUMRIG</source>
|
||||
</field>
|
||||
<field x="13" type="Stringa" width="23" pattern="1">
|
||||
<field x="13" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="23" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>CODCCOSTO</source>
|
||||
<prescript description="B1.0 PRESCRIPT">CA_FORMAT_COSTO</prescript>
|
||||
</field>
|
||||
<field x="37" type="Stringa" width="23" pattern="1">
|
||||
<field x="37" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="23" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>CODCMS</source>
|
||||
<prescript description="B1.0 PRESCRIPT">CA_FORMAT_COMMESSA</prescript>
|
||||
</field>
|
||||
<field x="61" type="Stringa" width="13" pattern="1">
|
||||
<field x="61" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="13" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>CODFASE</source>
|
||||
<prescript description="B1.0 PRESCRIPT">CA_FORMAT_FASE</prescript>
|
||||
</field>
|
||||
<field x="75" type="Stringa" width="23" pattern="1">
|
||||
<field x="75" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="23" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>CODCONTO</source>
|
||||
<prescript description="B1.0 PRESCRIPT">CA_FORMAT_CONTO</prescript>
|
||||
</field>
|
||||
<field x="99" type="Stringa" dynamic_height="1" width="25" height="2" pattern="1">
|
||||
<field x="99" deactivated="" type="Stringa" hidden="" link="" dynamic_height="1" shade_offset="" width="25" codval="" height="2" id="" pattern="1" hide_zero="" text="">
|
||||
<source>DESCR</source>
|
||||
</field>
|
||||
<field x="131" type="Valuta" align="right" width="15" id="101" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="131" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="15" codval="" id="101" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>IMPORTO</source>
|
||||
<prescript description="B1.101 PRESCRIPT">"RMOVANA.SEZIONE" @
|
||||
"A" =
|
||||
@ -162,7 +172,7 @@ THEN
|
||||
</prescript>
|
||||
<postscript description="B1.101 POSTSCRIPT">MESSAGE ADD,F1.101</postscript>
|
||||
</field>
|
||||
<field x="146" type="Valuta" align="right" width="15" id="102" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="146" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="15" codval="" id="102" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>IMPORTO</source>
|
||||
<prescript description="B1.102 PRESCRIPT">"RMOVANA.SEZIONE" @
|
||||
"D" =
|
||||
@ -173,20 +183,20 @@ THEN
|
||||
<postscript description="B1.102 POSTSCRIPT">MESSAGE ADD,F1.102</postscript>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Foot" height="1" pattern="1" />
|
||||
<section type="Foot" level="1" pattern="1">
|
||||
<field border="2" x="1" y="1" type="Linea" width="161" height="0" pattern="1" />
|
||||
<field x="101" y="1.5" type="Testo" width="30" pattern="1" text="Totale generale per sezione:">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Foot" level="" hidden="" height="1" page_break="" can_break="" pattern="1" />
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Foot" level="1" hidden="" page_break="" can_break="" pattern="1">
|
||||
<field border="2" x="1" y="1" deactivated="" type="Linea" hidden="" link="" dynamic_height="" shade_offset="" width="161" codval="" height="0" id="" pattern="1" hide_zero="" text="" />
|
||||
<field x="101" y="1.5" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="30" codval="" id="" pattern="1" hide_zero="" text="Totale generale per sezione:">
|
||||
<font face="Courier New" bold="1" size="8" />
|
||||
</field>
|
||||
<field x="131" y="1.5" type="Valuta" align="right" width="15" id="101" pattern="1" text="###.###.###,@@">
|
||||
<field x="131" y="1.5" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="15" codval="" id="101" pattern="1" hide_zero="" text="###.###.###,@@">
|
||||
<font face="Courier New" bold="1" size="8" />
|
||||
</field>
|
||||
<field x="146" y="1.5" type="Valuta" align="right" width="15" id="102" pattern="1" text="###.###.###,@@">
|
||||
<field x="146" y="1.5" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="15" codval="" id="102" pattern="1" hide_zero="" text="###.###.###,@@">
|
||||
<font face="Courier New" bold="1" size="8" />
|
||||
</field>
|
||||
</section>
|
||||
<section type="Foot" level="2" pattern="1" />
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Foot" level="2" hidden="" page_break="" can_break="" pattern="1" />
|
||||
<sql>USE RMOVANA
|
||||
JOIN MOVANA INTO NUMREG==NUMREG</sql>
|
||||
<prescript description="PRESCRIPT">: SCAMBIA_CAMPI ( F1 F2 -- )
|
||||
|
@ -1,8 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<report libraries="ve1300" name="ca3100b" lpi="8" class="ca3100b">
|
||||
<report libraries="ve1300" page_merge="" save_printer="" name="ca3100" use_printer_font="" orientation="" page_split="" lpi="8" command="" class="ca3100b ">
|
||||
<description>Movimenti CA per data</description>
|
||||
<font face="Courier New" size="8" />
|
||||
<section type="Head" pattern="1">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Head" level="" hidden="" page_break="" can_break="" pattern="1">
|
||||
<font italic="1" face="Courier New" size="8" />
|
||||
<prescript description="H0 PRESCRIPT">#ESERCIZIO @
|
||||
0 E;
|
||||
@ -10,84 +10,84 @@ IF
|
||||
121 122 SCAMBIA_CAMPI
|
||||
THEN
|
||||
;</prescript>
|
||||
<field x="1" type="Stringa" width="50" pattern="1">
|
||||
<field x="1" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="50" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<font italic="1" face="Courier New" bold="1" size="10" />
|
||||
<source>#SYSTEM.RAGSOC</source>
|
||||
</field>
|
||||
<field x="76" type="Data" width="12" pattern="1">
|
||||
<field x="76" deactivated="" type="Data" hidden="" link="" dynamic_height="" shade_offset="" width="12" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>#SYSTEM.DATE</source>
|
||||
</field>
|
||||
<field x="157" type="Numero" align="right" width="3" pattern="1">
|
||||
<field x="157" deactivated="" type="Numero" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="3" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>#REPORT.PAGE</source>
|
||||
</field>
|
||||
<field x="10" y="1.25" type="Testo" width="12" pattern="1" text="Dalla data" />
|
||||
<field x="22" y="1.25" type="Data" width="12" pattern="1">
|
||||
<field x="10" y="1.25" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="12" codval="" id="" pattern="1" hide_zero="" text="Dalla data" />
|
||||
<field x="22" y="1.25" deactivated="" type="Data" hidden="" link="" dynamic_height="" shade_offset="" width="12" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<font face="Courier New" bold="1" size="8" />
|
||||
<source>#DADATA</source>
|
||||
</field>
|
||||
<field x="40" y="1.25" type="Testo" width="12" pattern="1" text="Alla data" />
|
||||
<field x="52" y="1.25" type="Data" width="12" pattern="1">
|
||||
<field x="40" y="1.25" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="12" codval="" id="" pattern="1" hide_zero="" text="Alla data" />
|
||||
<field x="52" y="1.25" deactivated="" type="Data" hidden="" link="" dynamic_height="" shade_offset="" width="12" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<font face="Courier New" bold="1" size="8" />
|
||||
<source>#ADATA</source>
|
||||
</field>
|
||||
<field border="2" x="1" y="2.5" type="Linea" width="161" height="0" pattern="1" />
|
||||
<field x="13" y="3" type="Testo" align="center" width="7" pattern="1" text="N.Reg." />
|
||||
<field x="33" y="3" type="Testo" align="center" width="11" pattern="1" text="Fine Comp." />
|
||||
<field x="45" y="3" type="Testo" align="center" width="8" pattern="1" text="N.Reg.CG" />
|
||||
<field x="55" y="3" type="Testo" align="center" width="6" pattern="1" text="N.Doc." />
|
||||
<field x="62" y="3" type="Testo" align="center" width="7" pattern="1" text="Tp.Doc." />
|
||||
<field x="69" y="3" type="Testo" align="center" width="11" pattern="1" text="Descrizione" />
|
||||
<field x="95" y="3" type="Testo" align="center" width="7" pattern="1" text="Causale" />
|
||||
<field x="124" y="3" type="Testo" align="center" width="7" pattern="1" text="Tp.Mov." />
|
||||
<field x="131" y="3" type="Testo" align="center" width="15" pattern="1" text="Totale Dare" />
|
||||
<field x="146" y="3" type="Testo" align="center" width="15" pattern="1" text="Totale Avere" />
|
||||
<field x="33" y="4" type="Testo" align="center" width="11" pattern="1" text="Data Doc." />
|
||||
<field border="2" x="1" y="5" type="Linea" width="161" height="0" pattern="1" />
|
||||
<field x="1" y="3" type="Testo" align="center" width="10" id="121" pattern="1" text="Data Reg." />
|
||||
<field x="22" y="3" type="Testo" width="11" id="122" pattern="1" text="Data Comp." />
|
||||
<field border="2" x="1" y="2.5" deactivated="" type="Linea" hidden="" link="" dynamic_height="" shade_offset="" width="161" codval="" height="0" id="" pattern="1" hide_zero="" text="" />
|
||||
<field x="13" y="3" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="7" codval="" id="" pattern="1" hide_zero="" text="N.Reg." />
|
||||
<field x="33" y="3" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="11" codval="" id="" pattern="1" hide_zero="" text="Fine Comp." />
|
||||
<field x="45" y="3" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="8" codval="" id="" pattern="1" hide_zero="" text="N.Reg.CG" />
|
||||
<field x="55" y="3" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="6" codval="" id="" pattern="1" hide_zero="" text="N.Doc." />
|
||||
<field x="62" y="3" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="7" codval="" id="" pattern="1" hide_zero="" text="Tp.Doc." />
|
||||
<field x="69" y="3" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="11" codval="" id="" pattern="1" hide_zero="" text="Descrizione" />
|
||||
<field x="95" y="3" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="7" codval="" id="" pattern="1" hide_zero="" text="Causale" />
|
||||
<field x="124" y="3" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="7" codval="" id="" pattern="1" hide_zero="" text="Tp.Mov." />
|
||||
<field x="131" y="3" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="15" codval="" id="" pattern="1" hide_zero="" text="Totale Dare" />
|
||||
<field x="146" y="3" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="15" codval="" id="" pattern="1" hide_zero="" text="Totale Avere" />
|
||||
<field x="33" y="4" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="11" codval="" id="" pattern="1" hide_zero="" text="Data Doc." />
|
||||
<field border="2" x="1" y="5" deactivated="" type="Linea" hidden="" link="" dynamic_height="" shade_offset="" width="161" codval="" height="0" id="" pattern="1" hide_zero="" text="" />
|
||||
<field x="1" y="3" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="10" codval="" id="121" pattern="1" hide_zero="" text="Data Reg." />
|
||||
<field x="22" y="3" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="11" codval="" id="122" pattern="1" hide_zero="" text="Data Comp." />
|
||||
</section>
|
||||
<section type="Head" level="1" height="3" pattern="1">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Head" level="1" hidden="" height="3" page_break="" can_break="" pattern="1">
|
||||
<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="161" height="2.5" pattern="2" text="MOVIMENTI DI CONTABILITA' ANALITICA">
|
||||
<field border="1" radius="100" x="1" deactivated="" type="Testo" valign="center" hidden="" align="center" link="" dynamic_height="" shade_offset="25" width="161" codval="" height="2.5" id="" pattern="2" hide_zero="" text="MOVIMENTI DI CONTABILITA' ANALITICA">
|
||||
<font face="Courier New" bold="1" size="16" />
|
||||
</field>
|
||||
</section>
|
||||
<section type="Head" level="2" pattern="1">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Head" level="2" hidden="" page_break="" can_break="" pattern="1">
|
||||
<groupby>IF (#ANNO E; 0,MOVANA.DATACOMP,MOVANA.DATAREG)</groupby>
|
||||
<prescript description="H2 PRESCRIPT">MESSAGE RESET,F2.131
|
||||
MESSAGE RESET,F2.132</prescript>
|
||||
</section>
|
||||
<section type="Head" level="3" pattern="1">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Head" level="3" hidden="" page_break="" can_break="" pattern="1">
|
||||
<groupby>NUMREG</groupby>
|
||||
<field x="13" y="1" type="Numero" align="right" link="107.NUMREG" width="7" pattern="1">
|
||||
<field x="13" y="1" deactivated="" type="Numero" hidden="" align="right" link="107.NUMREG" dynamic_height="" shade_offset="" width="7" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>MOVANA.NUMREG</source>
|
||||
</field>
|
||||
<field x="34" y="1" type="Data" width="11" pattern="1">
|
||||
<field x="34" y="1" deactivated="" type="Data" hidden="" link="" dynamic_height="" shade_offset="" width="11" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>MOVANA.DATAFCOMP</source>
|
||||
</field>
|
||||
<field x="47" y="1" type="Numero" align="right" link="23.NUMREG" width="7" pattern="1" hide_zero="1">
|
||||
<field x="47" y="1" deactivated="" type="Numero" hidden="" align="right" link="23.NUMREG" dynamic_height="" shade_offset="" width="7" codval="" id="" pattern="1" hide_zero="1" text="">
|
||||
<source>MOVANA.NUMREGCG</source>
|
||||
</field>
|
||||
<field x="56" y="1" type="Stringa" width="7" pattern="1">
|
||||
<field x="56" y="1" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="7" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>MOVANA.NUMDOC</source>
|
||||
</field>
|
||||
<field x="64" y="1" type="Stringa" width="4" pattern="1">
|
||||
<field x="64" y="1" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="4" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>MOVANA.TIPODOC</source>
|
||||
</field>
|
||||
<field x="69" y="1" type="Stringa" dynamic_height="1" width="25" height="2" pattern="1">
|
||||
<field x="69" y="1" deactivated="" type="Stringa" hidden="" link="" dynamic_height="1" shade_offset="" width="25" codval="" height="2" id="" pattern="1" hide_zero="" text="">
|
||||
<source>MOVANA.DESCR</source>
|
||||
</field>
|
||||
<field x="95" y="1" type="Stringa" width="3" pattern="1">
|
||||
<field x="95" y="1" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="3" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>MOVANA.CODCAUS</source>
|
||||
</field>
|
||||
<field x="99" y="1" type="Stringa" dynamic_height="1" width="25" height="2" pattern="1">
|
||||
<field x="99" y="1" deactivated="" type="Stringa" hidden="" link="" dynamic_height="1" shade_offset="" width="25" codval="" height="2" id="" pattern="1" hide_zero="" text="">
|
||||
<prescript description="H3.0 PRESCRIPT">MESSAGE ISAMREAD,CAUS,CODCAUS=MOVANA.CODCAUS,DESCR</prescript>
|
||||
</field>
|
||||
<field x="127" y="1" type="Stringa" width="1" pattern="1">
|
||||
<field x="127" y="1" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="1" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>MOVANA.TIPOMOV</source>
|
||||
</field>
|
||||
<field x="131" y="1" type="Valuta" align="right" width="15" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="131" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="15" codval="" id="" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>MOVANA.TOTDOC</source>
|
||||
<prescript description="H2.0 PRESCRIPT">"MOVANA.SEZIONE" @
|
||||
"A" =
|
||||
@ -96,7 +96,7 @@ IF
|
||||
THEN
|
||||
</prescript>
|
||||
</field>
|
||||
<field x="146" y="1" type="Valuta" align="right" width="15" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="146" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="15" codval="" id="" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>MOVANA.TOTDOC</source>
|
||||
<prescript description="H2.0 PRESCRIPT">"MOVANA.SEZIONE" @
|
||||
"D" =
|
||||
@ -105,56 +105,66 @@ IF
|
||||
THEN
|
||||
</prescript>
|
||||
</field>
|
||||
<field x="34" y="2" type="Data" width="11" pattern="1">
|
||||
<field x="34" y="2" deactivated="" type="Data" hidden="" link="" dynamic_height="" shade_offset="" width="11" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>MOVANA.DATADOC</source>
|
||||
</field>
|
||||
<field x="8" y="3" type="Testo" align="center" width="4" pattern="1" text="Riga" />
|
||||
<field x="13" y="3" type="Testo" width="23" pattern="1" text="Centro di Costo" />
|
||||
<field x="37" y="3" type="Testo" width="23" pattern="1" text="Commessa" />
|
||||
<field x="61" y="3" type="Testo" width="13" pattern="1" text="Fase" />
|
||||
<field x="75" y="3" type="Testo" width="23" pattern="1" text="Conto" />
|
||||
<field x="99" y="3" type="Testo" width="25" pattern="1" text="Descrizione" />
|
||||
<field x="131.18" y="3" type="Testo" align="center" width="15" pattern="1" text="Dare" />
|
||||
<field x="146.18" y="3" type="Testo" align="center" width="15" pattern="1" text="Avere" />
|
||||
<field border="1" x="8.18" y="4" type="Linea" width="154" height="0" pattern="1" />
|
||||
<field x="1" y="1" type="Data" width="10" id="121" pattern="1">
|
||||
<field x="131" y="2" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="15" codval="" id="" pattern="1" hide_zero="" text="Cont.separata" />
|
||||
<field x="146" y="2" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="6" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>MOVANA.CONTSEP</source>
|
||||
<prescript description="H3.0 PRESCRIPT">"MOVANA.SEZIONE" @
|
||||
"D" =
|
||||
IF
|
||||
0 #THIS !
|
||||
THEN
|
||||
</prescript>
|
||||
</field>
|
||||
<field x="8" y="3" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="4" codval="" id="" pattern="1" hide_zero="" text="Riga" />
|
||||
<field x="13" y="3" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="23" codval="" id="" pattern="1" hide_zero="" text="Centro di Costo" />
|
||||
<field x="37" y="3" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="23" codval="" id="" pattern="1" hide_zero="" text="Commessa" />
|
||||
<field x="61" y="3" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="13" codval="" id="" pattern="1" hide_zero="" text="Fase" />
|
||||
<field x="75" y="3" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="23" codval="" id="" pattern="1" hide_zero="" text="Conto" />
|
||||
<field x="99" y="3" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="25" codval="" id="" pattern="1" hide_zero="" text="Descrizione" />
|
||||
<field x="131.18" y="3" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="15" codval="" id="" pattern="1" hide_zero="" text="Dare" />
|
||||
<field x="146.18" y="3" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="15" codval="" id="" pattern="1" hide_zero="" text="Avere" />
|
||||
<field border="1" x="8.18" y="4" deactivated="" type="Linea" hidden="" link="" dynamic_height="" shade_offset="" width="154" codval="" height="0" id="" pattern="1" hide_zero="" text="" />
|
||||
<field x="1" y="1" deactivated="" type="Data" hidden="" link="" dynamic_height="" shade_offset="" width="10" codval="" id="121" pattern="1" hide_zero="" text="">
|
||||
<source>MOVANA.DATAREG</source>
|
||||
</field>
|
||||
<field x="22" y="1" type="Data" align="right" width="11" id="122" pattern="1">
|
||||
<field x="22" y="1" deactivated="" type="Data" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="11" codval="" id="122" pattern="1" hide_zero="" text="">
|
||||
<source>MOVANA.DATACOMP</source>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Body" pattern="1" />
|
||||
<section type="Body" level="1" pattern="1">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Body" level="" hidden="" page_break="" can_break="" pattern="1" />
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Body" level="1" hidden="" page_break="" can_break="" pattern="1">
|
||||
<prescript description="B1 PRESCRIPT">#ESERCIZIO @
|
||||
0 E;
|
||||
IF
|
||||
121 122 SCAMBIA_CAMPI
|
||||
THEN
|
||||
;</prescript>
|
||||
<field x="9" type="Numero" align="right" width="3" pattern="1">
|
||||
<field x="9" deactivated="" type="Numero" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="3" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>NUMRIG</source>
|
||||
</field>
|
||||
<field x="13" type="Stringa" width="23" pattern="1">
|
||||
<field x="13" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="23" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>CODCCOSTO</source>
|
||||
<prescript description="B1.0 PRESCRIPT">CA_FORMAT_COSTO</prescript>
|
||||
</field>
|
||||
<field x="37" type="Stringa" width="23" pattern="1">
|
||||
<field x="37" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="23" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>CODCMS</source>
|
||||
<prescript description="B1.0 PRESCRIPT">CA_FORMAT_COMMESSA</prescript>
|
||||
</field>
|
||||
<field x="61" type="Stringa" width="13" pattern="1">
|
||||
<field x="61" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="13" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>CODFASE</source>
|
||||
<prescript description="B1.0 PRESCRIPT">CA_FORMAT_FASE</prescript>
|
||||
</field>
|
||||
<field x="75" type="Stringa" width="23" pattern="1">
|
||||
<field x="75" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="23" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>CODCONTO</source>
|
||||
<prescript description="B1.0 PRESCRIPT">CA_FORMAT_CONTO</prescript>
|
||||
</field>
|
||||
<field x="99" type="Stringa" dynamic_height="1" width="25" height="2" pattern="1">
|
||||
<field x="99" deactivated="" type="Stringa" hidden="" link="" dynamic_height="1" shade_offset="" width="25" codval="" height="2" id="" pattern="1" hide_zero="" text="">
|
||||
<source>DESCR</source>
|
||||
</field>
|
||||
<field x="131" type="Valuta" align="right" width="15" id="101" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="131" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="15" codval="" id="101" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>IMPORTO</source>
|
||||
<prescript description="B1.101 PRESCRIPT">"RMOVANA.SEZIONE" @
|
||||
"A" =
|
||||
@ -165,7 +175,7 @@ THEN
|
||||
<postscript description="B1.101 POSTSCRIPT">MESSAGE ADD,F1.101
|
||||
MESSAGE ADD,F2.131</postscript>
|
||||
</field>
|
||||
<field x="146" type="Valuta" align="right" width="15" id="102" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="146" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="15" codval="" id="102" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>IMPORTO</source>
|
||||
<prescript description="B1.102 PRESCRIPT">"RMOVANA.SEZIONE" @
|
||||
"D" =
|
||||
@ -177,26 +187,26 @@ THEN
|
||||
MESSAGE ADD,F2.132</postscript>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Foot" height="1" pattern="1" />
|
||||
<section type="Foot" level="1" pattern="1">
|
||||
<field border="2" x="1" y="1" type="Linea" width="161" height="0" pattern="1" />
|
||||
<field x="101" y="1.5" type="Testo" width="30" pattern="1" text="Totale generale per sezione:">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Foot" level="" hidden="" height="1" page_break="" can_break="" pattern="1" />
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Foot" level="1" hidden="" page_break="" can_break="" pattern="1">
|
||||
<field border="2" x="1" y="1" deactivated="" type="Linea" hidden="" link="" dynamic_height="" shade_offset="" width="161" codval="" height="0" id="" pattern="1" hide_zero="" text="" />
|
||||
<field x="101" y="1.5" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="30" codval="" id="" pattern="1" hide_zero="" text="Totale generale per sezione:">
|
||||
<font face="Courier New" bold="1" size="8" />
|
||||
</field>
|
||||
<field x="131" y="1.5" type="Valuta" align="right" width="15" id="101" pattern="1" text="###.###.###,@@">
|
||||
<field x="131" y="1.5" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="15" codval="" id="101" pattern="1" hide_zero="" text="###.###.###,@@">
|
||||
<font face="Courier New" bold="1" size="8" />
|
||||
</field>
|
||||
<field x="146" y="1.5" type="Valuta" align="right" width="15" id="102" pattern="1" text="###.###.###,@@">
|
||||
<field x="146" y="1.5" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="15" codval="" id="102" pattern="1" hide_zero="" text="###.###.###,@@">
|
||||
<font face="Courier New" bold="1" size="8" />
|
||||
</field>
|
||||
</section>
|
||||
<section type="Foot" level="2" pattern="1">
|
||||
<field border="1" x="2" y="1" type="Linea" width="160" height="0" pattern="1" />
|
||||
<field x="110" y="1.5" type="Testo" width="20" pattern="1" text="Totale giornaliero:" />
|
||||
<field x="131" y="1.25" type="Valuta" align="right" width="15" id="131" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="146" y="1.25" type="Valuta" align="right" width="15" id="132" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Foot" level="2" hidden="" page_break="" can_break="" pattern="1">
|
||||
<field border="1" x="2" y="1" deactivated="" type="Linea" hidden="" link="" dynamic_height="" shade_offset="" width="160" codval="" height="0" id="" pattern="1" hide_zero="" text="" />
|
||||
<field x="110" y="1.5" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="20" codval="" id="" pattern="1" hide_zero="" text="Totale giornaliero:" />
|
||||
<field x="131" y="1.25" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="15" codval="" id="131" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="146" y="1.25" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="15" codval="" id="132" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
</section>
|
||||
<section type="Foot" level="3" pattern="1" />
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Foot" level="3" hidden="" page_break="" can_break="" pattern="1" />
|
||||
<sql>USE RMOVANA
|
||||
JOIN MOVANA INTO NUMREG==NUMREG
|
||||
BY MOVANA-E;#DATAORD</sql>
|
||||
|
@ -2,7 +2,6 @@
|
||||
#include <defmask.h>
|
||||
#include <execp.h>
|
||||
#include <progind.h>
|
||||
#include <repapp.h>
|
||||
#include <reprint.h>
|
||||
|
||||
#include "../cg/cglib.h"
|
||||
@ -25,16 +24,89 @@ class TPrint_mastrini_ca_mask : public TAnal_report_mask
|
||||
{
|
||||
protected:
|
||||
bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
const TString& get_report_class() const;
|
||||
bool test_compatible_report();
|
||||
|
||||
public:
|
||||
TPrint_mastrini_ca_mask();
|
||||
virtual ~TPrint_mastrini_ca_mask() {}
|
||||
};
|
||||
|
||||
const TString& TPrint_mastrini_ca_mask::get_report_class() const
|
||||
{
|
||||
TString& classe = get_tmp_string();
|
||||
classe = "ca3200a";
|
||||
// const int stp = get_int(F_TIPOCONTI);
|
||||
// classe << (stp == 1 ? 'a' : 'b'); // tipo di report da usare in caso di report multipli
|
||||
return classe;
|
||||
}
|
||||
|
||||
bool TPrint_mastrini_ca_mask::test_compatible_report()
|
||||
{
|
||||
TFilename lib = get_report_class();
|
||||
const TString& name = get(F_REPORT);
|
||||
bool ok = name.not_empty();
|
||||
if (ok)
|
||||
{
|
||||
TReport rep;
|
||||
ok = rep.load(name);
|
||||
if (ok)
|
||||
{
|
||||
const TString& classe = rep.get_class();
|
||||
ok = classe == lib;
|
||||
}
|
||||
}
|
||||
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 DLG_PRINT:
|
||||
if (e == fe_button)
|
||||
{
|
||||
main_app().print();
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case DLG_PREVIEW:
|
||||
if (e == fe_button)
|
||||
{
|
||||
main_app().preview();
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
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 (solo nel caso di rep multipli)
|
||||
}
|
||||
break;
|
||||
case F_REPORT:
|
||||
if (e == fe_button)
|
||||
{
|
||||
const TString8 lib = get_report_class();
|
||||
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;
|
||||
case F_ANNO:
|
||||
if (e == fe_modify && !o.empty())
|
||||
{
|
||||
@ -108,7 +180,7 @@ protected:
|
||||
int _tipimov;
|
||||
TDate _dadata, _adata;
|
||||
long _danumreg, _anumreg;
|
||||
TString _daconto, _aconto, _codcosto, _codcms, _codfas, _contsep;
|
||||
TString _daconto, _aconto, _codcosto, _codcms, _codfas;
|
||||
|
||||
protected: //da libreria
|
||||
virtual const TVariant& get(const char* column_name) const;
|
||||
@ -216,8 +288,7 @@ void TPrint_mastrini_ca_recordset::set_custom_filter(TCursor& cur) const
|
||||
const TImporto& TPrint_mastrini_ca_recordset::saldo_iniziale(const char* conto) const
|
||||
{
|
||||
TAnal_bill bill(conto, _codcosto, _codcms, _codfas);
|
||||
const TSaldanal& saldo = ca_saldo(bill, "", _dadata, _adata, _tipimov); // qui
|
||||
|
||||
const TSaldanal& saldo = ca_saldo(bill, _dadata, _adata, _tipimov);
|
||||
return saldo._ini;
|
||||
}
|
||||
|
||||
@ -323,8 +394,7 @@ TPrint_mastrini_ca_alternative_recordset::TPrint_mastrini_ca_alternative_records
|
||||
const TImporto& TPrint_mastrini_ca_alternative_recordset::saldo_finale(const char* conto) const
|
||||
{
|
||||
TAnal_bill bill(conto, _codcosto, _codcms, _codfas);
|
||||
const TSaldanal& saldo = ca_saldo(bill, "", _dadata, _adata, _tipimov); // qui
|
||||
|
||||
const TSaldanal& saldo = ca_saldo(bill, _dadata, _adata, _tipimov);
|
||||
return saldo._fin;
|
||||
}
|
||||
|
||||
@ -400,7 +470,7 @@ void TPrint_mastrini_ca_alternative_recordset::set_filter(const TPrint_mastrini_
|
||||
{
|
||||
TPconana_recordset pconana;
|
||||
|
||||
pconana.set_filter(' ', _daconto, _aconto, _codcosto, _codcms, _codfas, _contsep,
|
||||
pconana.set_filter(' ', _daconto, _aconto, _codcosto, _codcms, _codfas,
|
||||
_dadata, _adata, _tipimov, _tipoconti==1, _tipoconti==2);
|
||||
|
||||
const long pconana_items = pconana.items();
|
||||
@ -415,26 +485,20 @@ void TPrint_mastrini_ca_alternative_recordset::set_filter(const TPrint_mastrini_
|
||||
a_rmovana.put(RMOVANA_DATACOMP, _adata);
|
||||
|
||||
TString filtro;
|
||||
if (_codcosto.full())
|
||||
if (_codcosto.not_empty())
|
||||
filtro << "(" << RMOVANA_CODCCOSTO << "?=\"" << _codcosto << "*\")";
|
||||
if (_codcms.full())
|
||||
if (_codcms.not_empty())
|
||||
{
|
||||
if (filtro.full())
|
||||
if (filtro.not_empty())
|
||||
filtro << "&&";
|
||||
filtro << "(" << RMOVANA_CODCMS << "?=\"" << _codcms << "*\")";
|
||||
}
|
||||
if (_codfas.full())
|
||||
if (_codfas.not_empty())
|
||||
{
|
||||
if (filtro.full())
|
||||
if (filtro.not_empty())
|
||||
filtro << "&&";
|
||||
filtro << "(" << RMOVANA_CODFASE << "?=\"" << _codfas << "*\")";
|
||||
}
|
||||
if (_contsep.full())
|
||||
{
|
||||
if (filtro.full())
|
||||
filtro << "&&";
|
||||
filtro << "(" << MOVANA_CONTSEP << "?=\"" << _contsep << "*\")";
|
||||
}
|
||||
|
||||
//scandisce il piano dei conti..
|
||||
for (bool pok = pconana.move_first(); pok; pok = pconana.move_next())
|
||||
@ -530,137 +594,142 @@ void TPrint_mastrini_ca_rep::set_filter(const TPrint_mastrini_ca_mask& msk, int
|
||||
////////////////////////////////////////////////////////
|
||||
// APPLICAZIONE
|
||||
////////////////////////////////////////////////////////
|
||||
class TPrint_mastrini_ca : public TReport_application
|
||||
class TPrint_mastrini_ca : public TSkeleton_application
|
||||
{
|
||||
TPrint_mastrini_ca_mask* _mask;
|
||||
TPrint_mastrini_ca_rep * _rep;
|
||||
|
||||
protected:
|
||||
virtual const char * extra_modules() const {return "cm";} //funziona anche con autorizzazione CM
|
||||
virtual TReport & get_report(const TAutomask & m);
|
||||
//virtual TTrec * get_dbase_recdesc(TReport & rep);
|
||||
virtual TAutomask & get_mask();
|
||||
virtual void execute_print(TReport_book & book, TAutomask & mask, TReport & rep, export_type type = _export_printer);
|
||||
virtual short output_id() const { return 0; }
|
||||
virtual const char * output_name(const TReport & rep) const { return "listamov"; }
|
||||
// @cmember Distruzione dei dati dell'utente
|
||||
virtual bool user_destroy() { return true; }
|
||||
|
||||
public:
|
||||
TPrint_mastrini_ca() : _mask(nullptr), _rep(nullptr) {}
|
||||
~TPrint_mastrini_ca() {}
|
||||
void print_or_preview(const bool stampa);
|
||||
virtual void print();
|
||||
virtual void preview();
|
||||
|
||||
virtual void main_loop();
|
||||
};
|
||||
|
||||
TReport & TPrint_mastrini_ca::get_report(const TAutomask & m)
|
||||
void TPrint_mastrini_ca::print()
|
||||
{
|
||||
if (_rep == nullptr)
|
||||
_rep = new TPrint_mastrini_ca_rep;
|
||||
print_or_preview(true);
|
||||
}
|
||||
|
||||
TString path = _mask->get(DLG_REPORT);
|
||||
void TPrint_mastrini_ca::preview()
|
||||
{
|
||||
print_or_preview(false);
|
||||
}
|
||||
|
||||
void TPrint_mastrini_ca::print_or_preview(const bool stampa)
|
||||
{
|
||||
//report e book dei report
|
||||
TReport_book book;
|
||||
TString path = _mask->get(F_REPORT);
|
||||
if (path.empty())
|
||||
path = ((TPrint_mastrini_ca_mask *)_mask)->get_report_class();
|
||||
_rep->load(_mask->get(DLG_REPORT));
|
||||
return *_rep;
|
||||
}
|
||||
path = "ca3200a";
|
||||
TPrint_mastrini_ca_rep rep;
|
||||
rep.load(path);
|
||||
|
||||
TAutomask & TPrint_mastrini_ca::get_mask()
|
||||
{
|
||||
if (_mask == nullptr)
|
||||
_mask = new TPrint_mastrini_ca_mask;
|
||||
return *_mask;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void TPrint_mastrini_ca::execute_print(TReport_book & book, TAutomask & mask, TReport & rep, export_type type)
|
||||
{
|
||||
TSheet_field& sheet = _mask->sfield(F_RIGHE);
|
||||
TString msg; //stringa che compare nella progind
|
||||
|
||||
TString video_string; //stringa che compare nella progind
|
||||
if (sheet.empty()) //se non ci sono righe sullo sheet (selezione su tutte le cms/cdc)...
|
||||
{
|
||||
if (_mask->get_bool(F_PERCONTO))
|
||||
{
|
||||
((TPrint_mastrini_ca_rep &)rep).set_filter((TPrint_mastrini_ca_mask &)mask, -1);
|
||||
rep.set_filter(*_mask, -1); //fa la set filter sulla prima riga (che è quella usata)
|
||||
book.add(rep);
|
||||
}
|
||||
else
|
||||
{
|
||||
TToken_string& row = sheet.row(-1); //crea la prima riga dello sheet
|
||||
TToken_string& row = sheet.row(-1); //crea la prima riga dello sheet
|
||||
|
||||
//stabilisce quale è il primo livello (tra CDC e CMS)..
|
||||
const TMultilevel_code_info& liv1 = *ca_multilevel_code_info_by_index(0);
|
||||
const int logic1 = liv1.logic();
|
||||
//stabilisce quale è il primo livello (tra CDC e CMS)..
|
||||
const TMultilevel_code_info& liv1 = *ca_multilevel_code_info_by_index(0);
|
||||
const int logic1 = liv1.logic();
|
||||
|
||||
TAssoc_array codici_buoni;
|
||||
TString query;
|
||||
query << "USE RMOVANA KEY 2\n";
|
||||
query << "FROM CODCONTO=#DACONTO\n";
|
||||
query << "TO CODCONTO=#ACONTO";
|
||||
TISAM_recordset rmovana(query);
|
||||
TString80 daconto, aconto;
|
||||
for (int i = 0; _mask->id2pos(F_CDC1_INI+i) > 0; i++)
|
||||
{
|
||||
daconto << _mask->get(F_CDC1_INI+i);
|
||||
aconto << _mask->get(F_CDC1_FIN+i);
|
||||
}
|
||||
rmovana.set_var("#DACONTO", daconto);
|
||||
rmovana.set_var("#ACONTO", aconto);
|
||||
const long items = rmovana.items();
|
||||
if (items > 0)
|
||||
{
|
||||
TProgind po(items, "Analisi righe movimento analitiche...", true, true);
|
||||
TAssoc_array codici_buoni;
|
||||
TString query;
|
||||
query << "USE RMOVANA KEY 2\n";
|
||||
query << "FROM CODCONTO=#DACONTO\n";
|
||||
query << "TO CODCONTO=#ACONTO";
|
||||
TISAM_recordset rmovana(query);
|
||||
TString80 daconto, aconto;
|
||||
for (int i = 0; _mask->id2pos(F_CDC1_INI+i) > 0; i++)
|
||||
{
|
||||
daconto << _mask->get(F_CDC1_INI+i);
|
||||
aconto << _mask->get(F_CDC1_FIN+i);
|
||||
}
|
||||
rmovana.set_var("#DACONTO", daconto);
|
||||
rmovana.set_var("#ACONTO", aconto);
|
||||
const long items = rmovana.items();
|
||||
if (items > 0)
|
||||
{
|
||||
TProgind po(items, "Analisi righe movimento analitiche...", true, true);
|
||||
|
||||
for (bool ok = rmovana.move_first(); ok; ok = rmovana.move_next())
|
||||
{
|
||||
if (!po.addstatus(1))
|
||||
break;
|
||||
for (bool ok = rmovana.move_first(); ok; ok = rmovana.move_next())
|
||||
{
|
||||
if (!po.addstatus(1))
|
||||
break;
|
||||
|
||||
const TString& codice = rmovana.get(logic1 == LF_COMMESSE ? RMOVANA_CODCMS : RMOVANA_CODCCOSTO).as_string();
|
||||
codici_buoni.add(codice);
|
||||
}
|
||||
}
|
||||
const TString& codice = rmovana.get(logic1 == LF_COMMESSE ? RMOVANA_CODCMS : RMOVANA_CODCCOSTO).as_string();
|
||||
codici_buoni.add(codice);
|
||||
}
|
||||
}
|
||||
|
||||
TISAM_recordset set(logic1 == LF_CDC ? "USE CDC" : "USE COMMESSE"); //..e di conseguenza scrive la use giusta
|
||||
TISAM_recordset set(logic1 == LF_CDC ? "USE CDC" : "USE COMMESSE"); //..e di conseguenza scrive la use giusta
|
||||
|
||||
bool skip_closed = false;
|
||||
if (logic1 == LF_COMMESSE)
|
||||
skip_closed = !yesno_box(TR("E' stata richiesta la stampa di tutte le commesse:\n"
|
||||
"Si desidera includere anche le commesse chiuse?"));
|
||||
bool skip_closed = false;
|
||||
if (logic1 == LF_COMMESSE)
|
||||
skip_closed = !yesno_box(TR("E' stata richiesta la stampa di tutte le commesse:\n"
|
||||
"Si desidera includere anche le commesse chiuse?"));
|
||||
|
||||
TProgress_monitor pi(set.items(), msg, true);
|
||||
for (bool sok = set.move_first(); pi.add_status() && sok; sok = set.move_next()) //fighissimo metodo per scandire un file in 1 riga!
|
||||
{
|
||||
if (skip_closed && set.get(COMMESSE_CHIUSA).as_bool())
|
||||
continue;
|
||||
TProgind pi(set.items(), video_string, true, true);
|
||||
for (bool sok = set.move_first(); sok; sok = set.move_next()) //fighissimo metodo per scandire un file in 1 riga!
|
||||
{
|
||||
if (!pi.addstatus(1))
|
||||
break;
|
||||
|
||||
row = set.get_string(0u); //prende il valore del primo campo del file (CDC o CMS code)
|
||||
if (!codici_buoni.is_key(row))
|
||||
continue;
|
||||
if (skip_closed && set.get(COMMESSE_CHIUSA).as_bool())
|
||||
continue;
|
||||
|
||||
row = set.get(0u).as_string(); //prende il valore del primo campo del file (CDC o CMS code)
|
||||
if (!codici_buoni.is_key(row))
|
||||
continue;
|
||||
|
||||
//completa la stringa da visualizzare sulla progind
|
||||
msg = row;
|
||||
msg << '\n' << set.get(1u);
|
||||
pi.set_text(msg);
|
||||
//completa la stringa da visualizzare sulla progind
|
||||
video_string.cut(0) << row << '\n' << set.get(1u);
|
||||
pi.set_text(video_string);
|
||||
|
||||
for (int l = liv1.levels()-2; l >= 0; l--) //se la struttura è a più livelli costruisce la tokenstring
|
||||
row.insert("|", liv1.total_len(l));
|
||||
for (int l = liv1.levels()-2; l >= 0; l--) //se la struttura è a più livelli costruisce la tokenstring
|
||||
row.insert("|", liv1.total_len(l));
|
||||
|
||||
((TPrint_mastrini_ca_rep &)rep).set_filter((TPrint_mastrini_ca_mask &)mask, 0); //fa la set filter sulla prima riga (che è quella usata)
|
||||
book.add(rep);
|
||||
}
|
||||
sheet.destroy(); //cancella le commesse aggiunte in automatico sullo sheet
|
||||
rep.set_filter(*_mask, 0); //fa la set filter sulla prima riga (che è quella usata)
|
||||
book.add(rep);
|
||||
}
|
||||
sheet.destroy(); //cancella le commesse aggiunte in automatico sullo sheet
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
FOR_EACH_SHEET_ROW(sheet, r, row)
|
||||
{
|
||||
((TPrint_mastrini_ca_rep &)rep).set_filter((TPrint_mastrini_ca_mask &) mask, r);
|
||||
rep.set_filter(*_mask, r);
|
||||
book.add(rep);
|
||||
}
|
||||
}
|
||||
|
||||
if (stampa)
|
||||
book.print(); //stampa il book dei report
|
||||
else
|
||||
book.preview(); //anteprima
|
||||
|
||||
}
|
||||
|
||||
|
||||
void TPrint_mastrini_ca::main_loop()
|
||||
{
|
||||
_mask = new TPrint_mastrini_ca_mask;
|
||||
_mask->run();
|
||||
delete _mask;
|
||||
_mask = NULL;
|
||||
}
|
||||
|
||||
int ca3200(int argc, char* argv[])
|
||||
|
@ -6,17 +6,19 @@
|
||||
#define F_RAGSOC 202
|
||||
#define F_DATASTAMPA 203
|
||||
#define F_ANNO 204
|
||||
#define F_REPORT 205
|
||||
#define F_CONTSEP 206
|
||||
#define F_DESCONTSEP 207
|
||||
|
||||
//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
|
||||
#define F_CDC1_INI 208
|
||||
#define F_CDC4_INI 211
|
||||
|
||||
#define F_CDC1_FIN 218
|
||||
#define F_CDC4_FIN 221
|
||||
#define F_DES1_INI 228
|
||||
#define F_DES4_INI 231
|
||||
#define F_DES1_FIN 238
|
||||
#define F_DES4_FIN 241
|
||||
|
||||
//campi sulla maschera
|
||||
#define F_DATAINI 250
|
||||
|
@ -1,25 +1,16 @@
|
||||
#include "ca3200.h"
|
||||
#include "camask.h"
|
||||
|
||||
#define ALL_EXPORT
|
||||
#define CLASS_NAME "ca3200"
|
||||
|
||||
TOOLBAR "topbar" 0 0 0 2
|
||||
#define ALL_EXPORT
|
||||
#include <aprintbar.h>
|
||||
ENDPAGE
|
||||
|
||||
TOOLBAR "bottombar" 0 -2 0 1
|
||||
|
||||
STRING F_REPORT 256 66
|
||||
BEGIN
|
||||
PROMPT 1 -2 "Report "
|
||||
FLAGS "B"
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING DLG_PROFILE 50
|
||||
BEGIN
|
||||
PROMPT 1 -1 "Profilo "
|
||||
PSELECT
|
||||
END
|
||||
|
||||
TOOLBAR "bottombar" 0 -3 0 1
|
||||
#include <bprintbar.h>
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Selezioni" 0 0 0 2
|
||||
@ -69,7 +60,7 @@ BEGIN
|
||||
ADD NONE
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 7
|
||||
GROUPBOX DLG_NULL 78 8
|
||||
BEGIN
|
||||
PROMPT 1 5 "@bOpzioni stampa"
|
||||
END
|
||||
@ -115,9 +106,35 @@ BEGIN
|
||||
PROMPT 2 10 "Non suddivisi per Commessa/CDC "
|
||||
END
|
||||
|
||||
STRING F_CONTSEP 6
|
||||
BEGIN
|
||||
PROMPT 1 11 "Cont. separata "
|
||||
USE &NPENT
|
||||
INPUT CODTAB F_CONTSEP
|
||||
DISPLAY "Codice@6" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CONTSEP CODTAB
|
||||
OUTPUT F_DESCONTSEP S0
|
||||
CHECKTYPE NORMAL
|
||||
FIELD CONTSEP
|
||||
MODULE NP
|
||||
END
|
||||
|
||||
STRING F_DESCONTSEP 50 48
|
||||
BEGIN
|
||||
PROMPT 26 11 ""
|
||||
USE &NPENT KEY 2
|
||||
INPUT S0 F_DESCONTSEP
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice@6" CODTAB
|
||||
COPY OUTPUT F_CONTSEP
|
||||
CHECKTYPE NORMAL
|
||||
MODULE NP
|
||||
END
|
||||
|
||||
SPREADSHEET F_RIGHE -1 -1
|
||||
BEGIN
|
||||
PROMPT 0 12 ""
|
||||
PROMPT 0 13 ""
|
||||
ITEM "Cdc1"
|
||||
ITEM "Cdc2"
|
||||
ITEM "Cdc3"
|
||||
|
@ -1,58 +1,58 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<report libraries="ve1300" name="ca3200a" orientation="2" lpi="8" class="ca3200a">
|
||||
<report libraries="ve1300" page_merge="" save_printer="" name="ca3200a" use_printer_font="" orientation="2" page_split="" lpi="8" command="" class="ca3200">
|
||||
<description>Mastrini CA</description>
|
||||
<font face="Courier New" size="8" />
|
||||
<section type="Head">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Head" level="" hidden="" page_break="" can_break="" pattern="1">
|
||||
<font italic="1" face="Courier New" bold="1" size="8" />
|
||||
</section>
|
||||
<section type="Head" level="1">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Head" level="1" hidden="" page_break="" can_break="" pattern="1">
|
||||
<font face="Arial" size="9" />
|
||||
<prescript description="H1 PRESCRIPT">MESSAGE RESET,F1.101
|
||||
MESSAGE RESET,F1.102</prescript>
|
||||
<field border="1" radius="100" x="1" y="0.5" type="Testo" valign="center" align="center" shade_offset="25" width="167" height="4" text="MASTRINI DI CONTABILITA' ANALITICA">
|
||||
<field border="1" radius="100" x="1" y="0.5" deactivated="" type="Testo" valign="center" hidden="" align="center" link="" dynamic_height="" shade_offset="25" width="167" codval="" height="4" id="" pattern="2" hide_zero="" text="MASTRINI DI CONTABILITA' ANALITICA">
|
||||
<font face="Arial" bold="1" size="14" />
|
||||
</field>
|
||||
<field x="1" y="5.5" type="Stringa" width="50" pattern="1">
|
||||
<field x="1" y="5.5" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="50" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<font face="Arial" bold="1" size="9" />
|
||||
<source>#SYSTEM.RAGSOC</source>
|
||||
</field>
|
||||
<field x="80" y="5.5" type="Data" width="10" pattern="1">
|
||||
<field x="80" y="5.5" deactivated="" type="Data" hidden="" link="" dynamic_height="" shade_offset="" width="10" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<font face="Arial" bold="1" size="9" />
|
||||
<source>#SYSTEM.DATE</source>
|
||||
</field>
|
||||
<field x="1" y="7" type="Testo" width="18" pattern="1" text="Centro di Costo:" />
|
||||
<field x="20" y="7" type="Stringa" width="23" pattern="1">
|
||||
<field x="1" y="7" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="18" codval="" id="" pattern="1" hide_zero="" text="Centro di Costo:" />
|
||||
<field x="20" y="7" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="23" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<font face="Arial" bold="1" size="9" />
|
||||
<source>#COSTO</source>
|
||||
<prescript description="H1.0 PRESCRIPT">CA_FORMAT_COSTO</prescript>
|
||||
</field>
|
||||
<field x="44" y="7" type="Stringa" width="50" pattern="1">
|
||||
<field x="44" y="7" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="50" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<font face="Arial" bold="1" size="9" />
|
||||
<prescript description="H1.0 PRESCRIPT">MESSAGE ISAMREAD,CDC,CODCOSTO=RMOVANA.CODCCOSTO,DESCRIZ</prescript>
|
||||
</field>
|
||||
<field x="1" y="8.5" type="Testo" width="9" pattern="1" text="Commessa:" />
|
||||
<field x="20" y="8.5" type="Stringa" width="23" pattern="1">
|
||||
<field x="1" y="8.5" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="9" codval="" id="" pattern="1" hide_zero="" text="Commessa:" />
|
||||
<field x="20" y="8.5" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="23" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<font face="Arial" bold="1" size="9" />
|
||||
<source>#COMMESSA</source>
|
||||
<prescript description="H1.0 PRESCRIPT">CA_FORMAT_COMMESSA</prescript>
|
||||
</field>
|
||||
<field x="44" y="8.5" type="Stringa" width="50" pattern="1">
|
||||
<field x="44" y="8.5" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="50" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<font face="Arial" bold="1" size="9" />
|
||||
<prescript description="H1.0 PRESCRIPT">MESSAGE ISAMREAD,COMMESSE,CODCMS=RMOVANA.CODCMS,DESCRIZ</prescript>
|
||||
</field>
|
||||
<field x="1" y="10" type="Testo" width="5" pattern="1" text="Fase:" />
|
||||
<field x="20" y="10" type="Stringa" width="13" pattern="1">
|
||||
<field x="1" y="10" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="5" codval="" id="" pattern="1" hide_zero="" text="Fase:" />
|
||||
<field x="20" y="10" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="13" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<font face="Arial" bold="1" size="9" />
|
||||
<source>#FASE</source>
|
||||
<prescript description="H1.0 PRESCRIPT">CA_FORMAT_FASE</prescript>
|
||||
</field>
|
||||
<field x="44" y="10" type="Stringa" width="50" pattern="1">
|
||||
<field x="44" y="10" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="50" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<font face="Arial" bold="1" size="9" />
|
||||
<prescript description="H1.0 PRESCRIPT">MESSAGE ISAMREAD,FASI,CODFASE=RMOVANA.CODFASE,DESCRIZ</prescript>
|
||||
</field>
|
||||
<field border="2" x="1" y="11.5" type="Linea" width="167" height="0" pattern="1" />
|
||||
<field border="2" x="1" y="11.5" deactivated="" type="Linea" hidden="" link="" dynamic_height="" shade_offset="" width="167" codval="" height="0" id="" pattern="1" hide_zero="" text="" />
|
||||
</section>
|
||||
<section repeat="1" type="Head" level="2" height="5">
|
||||
<section repeat="1" keep_with_next="" deactivated="" hidden_if_needed="" type="Head" level="2" hidden="" height="5" page_break="" can_break="" pattern="1">
|
||||
<groupby>CODCONTO</groupby>
|
||||
<font italic="1" face="Arial" size="8" />
|
||||
<prescript description="H2 PRESCRIPT">MESSAGE RESET,F2.101
|
||||
@ -60,38 +60,48 @@ MESSAGE RESET,F2.102
|
||||
MESSAGE RESET,F2.201
|
||||
MESSAGE RESET,F2.202
|
||||
</prescript>
|
||||
<field y="0.5" type="Testo" width="6" pattern="1" text="Conto:">
|
||||
<field y="0.5" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="6" codval="" id="" pattern="1" hide_zero="" text="Conto:">
|
||||
<font italic="1" face="Arial" bold="1" size="8" />
|
||||
</field>
|
||||
<field x="7" y="0.5" type="Stringa" width="23" pattern="1">
|
||||
<field x="7" y="0.5" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="23" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<font italic="1" face="Arial" bold="1" size="8" />
|
||||
<source>CODCONTO</source>
|
||||
<prescript description="H2.0 PRESCRIPT">CA_FORMAT_CONTO</prescript>
|
||||
</field>
|
||||
<field x="31" y="0.5" type="Stringa" width="50" pattern="1">
|
||||
<field x="31" y="0.5" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="50" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<font italic="1" face="Arial" bold="1" size="8" />
|
||||
<source>CODCONTO</source>
|
||||
<prescript description="H2.0 PRESCRIPT">CA_FORMAT_CONTO_DESCR</prescript>
|
||||
</field>
|
||||
<field x="10" y="2" type="Testo" align="center" width="10" pattern="1" text="N.Reg. F; Riga" />
|
||||
<field x="22" y="2" type="Testo" width="11" pattern="1" text="Descrizione" />
|
||||
<field x="41" y="2" type="Testo" width="8" pattern="1" text="N.Reg.CG" />
|
||||
<field x="50" y="2" type="Testo" align="center" width="10" pattern="1" text="Data Doc." />
|
||||
<field x="61" y="2" type="Testo" align="center" width="6" pattern="1" text="N.Doc." />
|
||||
<field x="68" y="2" type="Testo" width="7" pattern="1" text="Causale" />
|
||||
<field x="102" y="2" type="Testo" align="right" width="4" pattern="1" text="Dare" />
|
||||
<field x="115" y="2" type="Testo" align="right" width="5" pattern="1" text="Avere" />
|
||||
<field x="120" y="2" type="Testo" align="right" width="14" pattern="1" text="Saldo" />
|
||||
<field x="137" y="2" type="Testo" width="30" pattern="1" text="TipoF;CodiceF;Ragsoc. Cli.F;Forn." />
|
||||
<field border="1" x="1" y="3" type="Linea" width="168" height="0" pattern="1" />
|
||||
<field x="66" y="3.5" type="Testo" width="25" pattern="1" text="Progressivo precedente" />
|
||||
<field x="1" y="2" type="Testo" align="center" width="10" id="121" pattern="1" text="Data" />
|
||||
<field x="91" y="3.5" type="Valuta" align="right" width="13" id="201" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="83" y="0.5" deactivated="" type="Stringa" valign="center" hidden="" link="" dynamic_height="" shade_offset="" width="6" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<font italic="1" face="Arial" bold="1" size="8" />
|
||||
<source>MOVANA.CONTSEP</source>
|
||||
<prescript description="H2.0 PRESCRIPT">"MOVANA.SEZIONE" @
|
||||
"D" =
|
||||
IF
|
||||
0 #THIS !
|
||||
THEN
|
||||
</prescript>
|
||||
</field>
|
||||
<field x="10" y="2" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="10" codval="" id="" pattern="1" hide_zero="" text="N.Reg. F; Riga" />
|
||||
<field x="22" y="2" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="11" codval="" id="" pattern="1" hide_zero="" text="Descrizione" />
|
||||
<field x="41" y="2" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="8" codval="" id="" pattern="1" hide_zero="" text="N.Reg.CG" />
|
||||
<field x="50" y="2" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="10" codval="" id="" pattern="1" hide_zero="" text="Data Doc." />
|
||||
<field x="61" y="2" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="6" codval="" id="" pattern="1" hide_zero="" text="N.Doc." />
|
||||
<field x="68" y="2" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="7" codval="" id="" pattern="1" hide_zero="" text="Causale" />
|
||||
<field x="102" y="2" deactivated="" type="Testo" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="4" codval="" id="" pattern="1" hide_zero="" text="Dare" />
|
||||
<field x="115" y="2" deactivated="" type="Testo" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="5" codval="" id="" pattern="1" hide_zero="" text="Avere" />
|
||||
<field x="120" y="2" deactivated="" type="Testo" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="14" codval="" id="" pattern="1" hide_zero="" text="Saldo" />
|
||||
<field x="137" y="2" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="30" codval="" id="" pattern="1" hide_zero="" text="TipoF;CodiceF;Ragsoc. Cli.F;Forn." />
|
||||
<field border="1" x="1" y="3" deactivated="" type="Linea" hidden="" link="" dynamic_height="" shade_offset="" width="168" codval="" height="0" id="" pattern="1" hide_zero="" text="" />
|
||||
<field x="66" y="3.5" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="25" codval="" id="" pattern="1" hide_zero="" text="Progressivo precedente" />
|
||||
<field x="1" y="2" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="10" codval="" id="121" pattern="1" hide_zero="" text="Data" />
|
||||
<field x="91" y="3.5" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="201" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>SALDOINI:DARE</source>
|
||||
<postscript description="H2.201 POSTSCRIPT">MESSAGE COPY,B1.103
|
||||
</postscript>
|
||||
</field>
|
||||
<field x="107" y="3.5" type="Valuta" align="right" width="13" id="202" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="107" y="3.5" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="202" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>SALDOINI:AVERE</source>
|
||||
<prescript description="H2.202 PRESCRIPT">#THIS @
|
||||
DUP
|
||||
@ -103,46 +113,46 @@ ELSE
|
||||
THEN</prescript>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Head" level="3">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Head" level="3" hidden="" page_break="" can_break="" pattern="1">
|
||||
<groupby>DATACOMP</groupby>
|
||||
<prescript description="H3 PRESCRIPT">MESSAGE RESET,F3.103</prescript>
|
||||
</section>
|
||||
<section type="Body" />
|
||||
<section type="Body" level="1">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Body" level="" hidden="" page_break="" can_break="" pattern="1" />
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Body" level="1" hidden="" page_break="" can_break="" pattern="1">
|
||||
<condition>NUMREG != 0</condition>
|
||||
<font face="Arial" size="8" />
|
||||
<field x="1" type="Data" width="10" pattern="1">
|
||||
<field x="1" deactivated="" type="Data" hidden="" link="" dynamic_height="" shade_offset="" width="10" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>DATACOMP</source>
|
||||
<postscript description="B1.0 POSTSCRIPT">MESSAGE COPY,F3.131</postscript>
|
||||
</field>
|
||||
<field x="11.5" type="Numero" align="right" link="107.NUMREG" width="6" pattern="1">
|
||||
<field x="11.5" deactivated="" type="Numero" hidden="" align="right" link="107.NUMREG" dynamic_height="" shade_offset="" width="6" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>NUMREG</source>
|
||||
</field>
|
||||
<field x="17.5" type="Testo" align="center" width="1" pattern="1" text="F;" />
|
||||
<field x="18.5" type="Numero" align="right" width="3" pattern="1">
|
||||
<field x="17.5" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="1" codval="" id="" pattern="1" hide_zero="" text="F;" />
|
||||
<field x="18.5" deactivated="" type="Numero" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="3" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>NUMRIG</source>
|
||||
</field>
|
||||
<field x="22" type="Stringa" dynamic_height="1" width="20" height="2" pattern="1">
|
||||
<field x="22" deactivated="" type="Stringa" hidden="" link="" dynamic_height="1" shade_offset="" width="20" codval="" height="2" id="" pattern="1" hide_zero="" text="">
|
||||
<font face="Arial Narrow" size="8" />
|
||||
<source>DESCR</source>
|
||||
</field>
|
||||
<field x="43" type="Numero" align="right" link="23.NUMREG" width="6" pattern="1">
|
||||
<field x="43" deactivated="" type="Numero" hidden="" align="right" link="23.NUMREG" dynamic_height="" shade_offset="" width="6" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>MOVANA.NUMREGCG</source>
|
||||
</field>
|
||||
<field x="50" type="Data" width="10" pattern="1">
|
||||
<field x="50" deactivated="" type="Data" hidden="" link="" dynamic_height="" shade_offset="" width="10" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>MOVANA.DATADOC</source>
|
||||
</field>
|
||||
<field x="61" type="Stringa" align="right" width="6" pattern="1">
|
||||
<field x="61" deactivated="" type="Stringa" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="6" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>MOVANA.NUMDOC</source>
|
||||
</field>
|
||||
<field x="68" type="Stringa" width="3" pattern="1">
|
||||
<field x="68" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="3" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>MOVANA.CODCAUS</source>
|
||||
</field>
|
||||
<field x="72" type="Stringa" dynamic_height="1" width="20" height="2" pattern="1">
|
||||
<field x="72" deactivated="" type="Stringa" hidden="" link="" dynamic_height="1" shade_offset="" width="20" codval="" height="2" id="" pattern="1" hide_zero="" text="">
|
||||
<font face="Arial Narrow" size="8" />
|
||||
<prescript description="B1.0 PRESCRIPT">MESSAGE ISAMREAD,CAUS,CODCAUS=MOVANA.CODCAUS,DESCR</prescript>
|
||||
</field>
|
||||
<field x="93" type="Valuta" align="right" width="13" id="101" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="93" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="101" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>IMPORTO</source>
|
||||
<prescript description="B1.101 PRESCRIPT">"RMOVANA.SEZIONE" @
|
||||
"A" =
|
||||
@ -158,7 +168,7 @@ THEN
|
||||
<postscript description="B1.101 POSTSCRIPT">MESSAGE ADD,F2.101
|
||||
</postscript>
|
||||
</field>
|
||||
<field x="107" type="Valuta" align="right" width="13" id="102" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="107" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="102" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>IMPORTO</source>
|
||||
<prescript description="B1.102 PRESCRIPT">"RMOVANA.SEZIONE" @
|
||||
"D" =
|
||||
@ -174,83 +184,83 @@ THEN
|
||||
<postscript description="B1.102 POSTSCRIPT">MESSAGE ADD,F2.102
|
||||
</postscript>
|
||||
</field>
|
||||
<field x="121" type="Valuta" align="right" width="13" id="103" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="121" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="103" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<postscript description="B1.103 POSTSCRIPT">MESSAGE COPY,F3.103</postscript>
|
||||
</field>
|
||||
<field x="136.5" type="Stringa" width="1" id="104" pattern="1">
|
||||
<field x="136.5" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="1" codval="" id="104" pattern="1" hide_zero="" text="">
|
||||
<source>MOV.TIPO</source>
|
||||
</field>
|
||||
<field x="137.5" type="Numero" align="right" width="6" id="105" pattern="1" hide_zero="1">
|
||||
<field x="137.5" deactivated="" type="Numero" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="6" codval="" id="105" pattern="1" hide_zero="1" text="">
|
||||
<source>MOV.CODCF</source>
|
||||
</field>
|
||||
<field x="144" type="Stringa" dynamic_height="1" width="20" height="2" id="106" pattern="1">
|
||||
<field x="144" deactivated="" type="Stringa" hidden="" link="" dynamic_height="1" shade_offset="" width="20" codval="" height="2" id="106" pattern="1" hide_zero="" text="">
|
||||
<font face="Arial Narrow" size="8" />
|
||||
<prescript description="B1.106 PRESCRIPT">MESSAGE ISAMREAD,CLIFO,TIPOCF=#104!CODCF=#105,RAGSOC</prescript>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Foot">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Foot" level="" hidden="" page_break="" can_break="" pattern="1">
|
||||
<font face="Arial" size="8" />
|
||||
<field border="2" x="1" y="0.5" type="Linea" width="167" height="0" pattern="1" />
|
||||
<field x="143" y="1" type="Testo" width="5" pattern="1" text="Pag." />
|
||||
<field x="149" y="1" type="Numero" align="right" width="3" pattern="1">
|
||||
<field border="2" x="1" y="0.5" deactivated="" type="Linea" hidden="" link="" dynamic_height="" shade_offset="" width="167" codval="" height="0" id="" pattern="1" hide_zero="" text="" />
|
||||
<field x="143" y="1" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="5" codval="" id="" pattern="1" hide_zero="" text="Pag." />
|
||||
<field x="149" y="1" deactivated="" type="Numero" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="3" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>#REPORT.PAGE</source>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Foot" level="1">
|
||||
<field border="1" x="1" y="0.5" type="Linea" width="168" height="0" pattern="1" />
|
||||
<field x="74" y="1" type="Testo" width="20" pattern="1" text="TOTALI COMMESSA">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Foot" level="1" hidden="" page_break="" can_break="" pattern="1">
|
||||
<field border="1" x="1" y="0.5" deactivated="" type="Linea" hidden="" link="" dynamic_height="" shade_offset="" width="168" codval="" height="0" id="" pattern="1" hide_zero="" text="" />
|
||||
<field x="74" y="1" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="20" codval="" id="" pattern="1" hide_zero="" text="TOTALI COMMESSA">
|
||||
<font face="Arial" bold="1" size="9" />
|
||||
</field>
|
||||
<field x="92" y="1" type="Valuta" align="right" width="14" id="101" pattern="1" text="###.###.###,@@">
|
||||
<field x="92" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="14" codval="" id="101" pattern="1" hide_zero="" text="###.###.###,@@">
|
||||
<font face="Arial" bold="1" size="9" />
|
||||
</field>
|
||||
<field x="106" y="1" type="Valuta" align="right" width="14" id="102" pattern="1" text="###.###.###,@@">
|
||||
<field x="106" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="14" codval="" id="102" pattern="1" hide_zero="" text="###.###.###,@@">
|
||||
<font face="Arial" bold="1" size="9" />
|
||||
</field>
|
||||
<field x="120" y="1" type="Valuta" align="right" width="14" id="103" pattern="1" text="###.###.###,@@">
|
||||
<field x="120" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="14" codval="" id="103" pattern="1" hide_zero="" text="###.###.###,@@">
|
||||
<font face="Arial" bold="1" size="9" />
|
||||
<source>#101-#102</source>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Foot" level="2" height="3.5">
|
||||
<field border="1" x="1" y="0.25" type="Linea" width="168" height="0" pattern="1" />
|
||||
<field x="72" y="0.5" type="Testo" width="22" pattern="1" text="Totali periodo:">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Foot" level="2" hidden="" height="3.5" page_break="" can_break="" pattern="1">
|
||||
<field border="1" x="1" y="0.25" deactivated="" type="Linea" hidden="" link="" dynamic_height="" shade_offset="" width="168" codval="" height="0" id="" pattern="1" hide_zero="" text="" />
|
||||
<field x="72" y="0.5" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="22" codval="" id="" pattern="1" hide_zero="" text="Totali periodo:">
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
</field>
|
||||
<field x="72" y="1.75" type="Testo" width="22" pattern="1" text="Totali progressivi:">
|
||||
<field x="72" y="1.75" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="22" codval="" id="" pattern="1" hide_zero="" text="Totali progressivi:">
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
</field>
|
||||
<field x="93" y="0.5" type="Valuta" align="right" width="13" id="101" pattern="1" text="###.###.###,@@">
|
||||
<field x="93" y="0.5" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="101" pattern="1" hide_zero="" text="###.###.###,@@">
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
<postscript description="F2.101 POSTSCRIPT">MESSAGE ADD,F1.101</postscript>
|
||||
</field>
|
||||
<field x="107" y="0.5" type="Valuta" align="right" width="13" id="102" pattern="1" text="###.###.###,@@">
|
||||
<field x="107" y="0.5" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="102" pattern="1" hide_zero="" text="###.###.###,@@">
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
<postscript description="F2.102 POSTSCRIPT">MESSAGE ADD,F1.102</postscript>
|
||||
</field>
|
||||
<field x="93" y="1.75" type="Valuta" align="right" width="13" id="201" pattern="1" text="###.###.###,@@">
|
||||
<field x="93" y="1.75" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="201" pattern="1" hide_zero="" text="###.###.###,@@">
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
<source>#101+#H2.201</source>
|
||||
</field>
|
||||
<field x="107" y="1.75" type="Valuta" align="right" width="13" id="202" pattern="1" text="###.###.###,@@">
|
||||
<field x="107" y="1.75" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="202" pattern="1" hide_zero="" text="###.###.###,@@">
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
<source>#102+#H2.202</source>
|
||||
</field>
|
||||
<field x="121" y="1.75" type="Valuta" align="right" width="13" id="203" pattern="1" text="###.###.###,@@">
|
||||
<field x="121" y="1.75" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="203" pattern="1" hide_zero="" text="###.###.###,@@">
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
<source>#201-#202</source>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Foot" level="3">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Foot" level="3" hidden="" page_break="" can_break="" pattern="1">
|
||||
<condition>#103 != 0</condition>
|
||||
<font italic="1" face="Arial" size="8" />
|
||||
<field x="135" y="0.5" type="Testo" width="2" pattern="1" text="al">
|
||||
<field x="135" y="0.5" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="2" codval="" id="" pattern="1" hide_zero="" text="al">
|
||||
<font italic="1" face="Arial Black" size="7" />
|
||||
</field>
|
||||
<field x="119" y="0.5" type="Valuta" align="right" width="15" id="103" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="119" y="0.5" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="15" codval="" id="103" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<font italic="1" face="Arial" bold="1" size="8" />
|
||||
</field>
|
||||
<field x="137" y="0.5" type="Data" valign="center" width="11" id="131" pattern="1">
|
||||
<field x="137" y="0.5" deactivated="" type="Data" valign="center" hidden="" link="" dynamic_height="" shade_offset="" width="11" codval="" id="131" pattern="1" hide_zero="" text="">
|
||||
<font italic="1" face="Arial" size="7" />
|
||||
</field>
|
||||
</section>
|
||||
|
@ -1,58 +1,58 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<report libraries="ve1300" name="ca3200b" orientation="2" lpi="8" class="ca3200a">
|
||||
<report libraries="ve1300" page_merge="" save_printer="" name="ca3200b" use_printer_font="" orientation="2" page_split="" lpi="8" command="" class="ca3200">
|
||||
<description>Mastrini CA per conto</description>
|
||||
<font face="Courier New" size="8" />
|
||||
<section type="Head" pattern="1">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Head" level="" hidden="" page_break="" can_break="" pattern="1">
|
||||
<font italic="1" face="Courier New" bold="1" size="8" />
|
||||
</section>
|
||||
<section type="Head" level="1" pattern="1">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Head" level="1" hidden="" page_break="" can_break="" pattern="1">
|
||||
<font face="Arial" size="9" />
|
||||
<prescript description="H1 PRESCRIPT">MESSAGE RESET,F1.101
|
||||
MESSAGE RESET,F1.102</prescript>
|
||||
<field border="1" radius="100" x="1" y="0.5" type="Testo" valign="center" align="center" shade_offset="25" width="167" height="4" pattern="2" text="MASTRINI DI CONTABILITA' ANALITICA">
|
||||
<field border="1" radius="100" x="1" y="0.5" deactivated="" type="Testo" valign="center" hidden="" align="center" link="" dynamic_height="" shade_offset="25" width="167" codval="" height="4" id="" pattern="2" hide_zero="" text="MASTRINI DI CONTABILITA' ANALITICA">
|
||||
<font face="Arial" bold="1" size="14" />
|
||||
</field>
|
||||
<field x="1" y="5.5" type="Stringa" width="50" pattern="1">
|
||||
<field x="1" y="5.5" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="50" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<font face="Arial" bold="1" size="9" />
|
||||
<source>#SYSTEM.RAGSOC</source>
|
||||
</field>
|
||||
<field x="80" y="5.5" type="Data" width="10" pattern="1">
|
||||
<field x="80" y="5.5" deactivated="" type="Data" hidden="" link="" dynamic_height="" shade_offset="" width="10" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<font face="Arial" bold="1" size="9" />
|
||||
<source>#SYSTEM.DATE</source>
|
||||
</field>
|
||||
<field x="1" y="7" type="Testo" width="18" pattern="1" text="Centro di Costo:" />
|
||||
<field x="20" y="7" type="Stringa" width="23" pattern="1">
|
||||
<field x="1" y="7" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="18" codval="" id="" pattern="1" hide_zero="" text="Centro di Costo:" />
|
||||
<field x="20" y="7" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="23" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<font face="Arial" bold="1" size="9" />
|
||||
<source>#COSTO</source>
|
||||
<prescript description="H1.0 PRESCRIPT">CA_FORMAT_COSTO</prescript>
|
||||
</field>
|
||||
<field x="44" y="7" type="Stringa" width="50" pattern="1">
|
||||
<field x="44" y="7" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="50" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<font face="Arial" bold="1" size="9" />
|
||||
<prescript description="H1.0 PRESCRIPT">MESSAGE ISAMREAD,CDC,CODCOSTO=RMOVANA.CODCCOSTO,DESCRIZ</prescript>
|
||||
</field>
|
||||
<field x="1" y="8.5" type="Testo" width="9" pattern="1" text="Commessa:" />
|
||||
<field x="20" y="8.5" type="Stringa" width="23" pattern="1">
|
||||
<field x="1" y="8.5" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="9" codval="" id="" pattern="1" hide_zero="" text="Commessa:" />
|
||||
<field x="20" y="8.5" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="23" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<font face="Arial" bold="1" size="9" />
|
||||
<source>#COMMESSA</source>
|
||||
<prescript description="H1.0 PRESCRIPT">CA_FORMAT_COMMESSA</prescript>
|
||||
</field>
|
||||
<field x="44" y="8.5" type="Stringa" width="50" pattern="1">
|
||||
<field x="44" y="8.5" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="50" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<font face="Arial" bold="1" size="9" />
|
||||
<prescript description="H1.0 PRESCRIPT">MESSAGE ISAMREAD,COMMESSE,CODCMS=RMOVANA.CODCMS,DESCRIZ</prescript>
|
||||
</field>
|
||||
<field x="1" y="10" type="Testo" width="5" pattern="1" text="Fase:" />
|
||||
<field x="20" y="10" type="Stringa" width="13" pattern="1">
|
||||
<field x="1" y="10" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="5" codval="" id="" pattern="1" hide_zero="" text="Fase:" />
|
||||
<field x="20" y="10" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="13" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<font face="Arial" bold="1" size="9" />
|
||||
<source>#FASE</source>
|
||||
<prescript description="H1.0 PRESCRIPT">CA_FORMAT_FASE</prescript>
|
||||
</field>
|
||||
<field x="44" y="10" type="Stringa" width="50" pattern="1">
|
||||
<field x="44" y="10" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="50" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<font face="Arial" bold="1" size="9" />
|
||||
<prescript description="H1.0 PRESCRIPT">MESSAGE ISAMREAD,FASI,CODFASE=RMOVANA.CODFASE,DESCRIZ</prescript>
|
||||
</field>
|
||||
<field border="2" x="1" y="11.5" type="Linea" width="167" height="0" pattern="1" />
|
||||
<field border="2" x="1" y="11.5" deactivated="" type="Linea" hidden="" link="" dynamic_height="" shade_offset="" width="167" codval="" height="0" id="" pattern="1" hide_zero="" text="" />
|
||||
</section>
|
||||
<section repeat="1" type="Head" level="2" height="5" pattern="1">
|
||||
<section repeat="1" keep_with_next="" deactivated="" hidden_if_needed="" type="Head" level="2" hidden="" height="5" page_break="" can_break="" pattern="1">
|
||||
<groupby>CODCONTO</groupby>
|
||||
<font italic="1" face="Arial" size="8" />
|
||||
<prescript description="H2 PRESCRIPT">MESSAGE RESET,F2.101
|
||||
@ -60,38 +60,48 @@ MESSAGE RESET,F2.102
|
||||
MESSAGE RESET,F2.201
|
||||
MESSAGE RESET,F2.202
|
||||
</prescript>
|
||||
<field y="0.5" type="Testo" width="6" pattern="1" text="Conto:">
|
||||
<field y="0.5" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="6" codval="" id="" pattern="1" hide_zero="" text="Conto:">
|
||||
<font italic="1" face="Arial" bold="1" size="8" />
|
||||
</field>
|
||||
<field x="7" y="0.5" type="Stringa" width="23" pattern="1">
|
||||
<field x="7" y="0.5" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="23" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<font italic="1" face="Arial" bold="1" size="8" />
|
||||
<source>CODCONTO</source>
|
||||
<prescript description="H2.0 PRESCRIPT">CA_FORMAT_CONTO</prescript>
|
||||
</field>
|
||||
<field x="31" y="0.5" type="Stringa" width="50" pattern="1">
|
||||
<field x="31" y="0.5" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="50" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<font italic="1" face="Arial" bold="1" size="8" />
|
||||
<source>CODCONTO</source>
|
||||
<prescript description="H2.0 PRESCRIPT">CA_FORMAT_CONTO_DESCR</prescript>
|
||||
</field>
|
||||
<field x="10" y="2" type="Testo" align="center" width="10" pattern="1" text="N.Reg. F; Riga" />
|
||||
<field x="22" y="2" type="Testo" width="11" pattern="1" text="Descrizione" />
|
||||
<field x="41" y="2" type="Testo" width="8" pattern="1" text="N.Reg.CG" />
|
||||
<field x="50" y="2" type="Testo" align="center" width="10" pattern="1" text="Data Doc." />
|
||||
<field x="61" y="2" type="Testo" align="center" width="6" pattern="1" text="N.Doc." />
|
||||
<field x="68" y="2" type="Testo" width="7" pattern="1" text="Causale" />
|
||||
<field x="102" y="2" type="Testo" align="right" width="4" pattern="1" text="Dare" />
|
||||
<field x="115" y="2" type="Testo" align="right" width="5" pattern="1" text="Avere" />
|
||||
<field x="120" y="2" type="Testo" align="right" width="14" pattern="1" text="Saldo" />
|
||||
<field x="137" y="2" type="Testo" width="30" pattern="1" text="TipoF;CodiceF;Ragsoc. Cli.F;Forn." />
|
||||
<field border="1" x="1" y="3" type="Linea" width="168" height="0" pattern="1" />
|
||||
<field x="66" y="3.5" type="Testo" width="25" pattern="1" text="Progressivo precedente" />
|
||||
<field x="1" y="2" type="Testo" align="center" width="10" id="121" pattern="1" text="Data" />
|
||||
<field x="91" y="3.5" type="Valuta" align="right" width="13" id="201" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="83" y="0.5" deactivated="" type="Stringa" valign="center" hidden="" link="" dynamic_height="" shade_offset="" width="6" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<font italic="1" face="Arial" bold="1" size="8" />
|
||||
<source>MOVANA.CONTSEP</source>
|
||||
<prescript description="">"MOVANA.SEZIONE" @
|
||||
"D" =
|
||||
IF
|
||||
0 #THIS !
|
||||
THEN
|
||||
</prescript>
|
||||
</field>
|
||||
<field x="10" y="2" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="10" codval="" id="" pattern="1" hide_zero="" text="N.Reg. F; Riga" />
|
||||
<field x="22" y="2" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="11" codval="" id="" pattern="1" hide_zero="" text="Descrizione" />
|
||||
<field x="41" y="2" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="8" codval="" id="" pattern="1" hide_zero="" text="N.Reg.CG" />
|
||||
<field x="50" y="2" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="10" codval="" id="" pattern="1" hide_zero="" text="Data Doc." />
|
||||
<field x="61" y="2" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="6" codval="" id="" pattern="1" hide_zero="" text="N.Doc." />
|
||||
<field x="68" y="2" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="7" codval="" id="" pattern="1" hide_zero="" text="Causale" />
|
||||
<field x="102" y="2" deactivated="" type="Testo" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="4" codval="" id="" pattern="1" hide_zero="" text="Dare" />
|
||||
<field x="115" y="2" deactivated="" type="Testo" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="5" codval="" id="" pattern="1" hide_zero="" text="Avere" />
|
||||
<field x="120" y="2" deactivated="" type="Testo" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="14" codval="" id="" pattern="1" hide_zero="" text="Saldo" />
|
||||
<field x="137" y="2" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="30" codval="" id="" pattern="1" hide_zero="" text="TipoF;CodiceF;Ragsoc. Cli.F;Forn." />
|
||||
<field border="1" x="1" y="3" deactivated="" type="Linea" hidden="" link="" dynamic_height="" shade_offset="" width="168" codval="" height="0" id="" pattern="1" hide_zero="" text="" />
|
||||
<field x="66" y="3.5" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="25" codval="" id="" pattern="1" hide_zero="" text="Progressivo precedente" />
|
||||
<field x="1" y="2" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="10" codval="" id="121" pattern="1" hide_zero="" text="Data" />
|
||||
<field x="91" y="3.5" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="201" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>SALDOINI:DARE</source>
|
||||
<postscript description="H2.201 POSTSCRIPT">MESSAGE COPY,B1.103
|
||||
</postscript>
|
||||
</field>
|
||||
<field x="107" y="3.5" type="Valuta" align="right" width="13" id="202" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="107" y="3.5" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="202" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>SALDOINI:AVERE</source>
|
||||
<prescript description="H2.202 PRESCRIPT">#THIS @
|
||||
DUP
|
||||
@ -103,46 +113,46 @@ ELSE
|
||||
THEN</prescript>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Head" level="3" pattern="1">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Head" level="3" hidden="" page_break="" can_break="" pattern="1">
|
||||
<groupby>DATACOMP</groupby>
|
||||
<prescript description="H3 PRESCRIPT">MESSAGE RESET,F3.103</prescript>
|
||||
</section>
|
||||
<section type="Body" pattern="1" />
|
||||
<section type="Body" level="1" pattern="1">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Body" level="" hidden="" page_break="" can_break="" pattern="1" />
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Body" level="1" hidden="" page_break="" can_break="" pattern="1">
|
||||
<condition>NUMREG != 0</condition>
|
||||
<font face="Arial" size="8" />
|
||||
<field x="1" type="Data" width="10" pattern="1">
|
||||
<field x="1" deactivated="" type="Data" hidden="" link="" dynamic_height="" shade_offset="" width="10" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>DATACOMP</source>
|
||||
<postscript description="B1.0 POSTSCRIPT">MESSAGE COPY,F3.131</postscript>
|
||||
</field>
|
||||
<field x="11.5" type="Numero" align="right" link="107.NUMREG" width="6" pattern="1">
|
||||
<field x="11.5" deactivated="" type="Numero" hidden="" align="right" link="107.NUMREG" dynamic_height="" shade_offset="" width="6" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>NUMREG</source>
|
||||
</field>
|
||||
<field x="17.5" type="Testo" align="center" width="1" pattern="1" text="F;" />
|
||||
<field x="18.5" type="Numero" align="right" width="3" pattern="1">
|
||||
<field x="17.5" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="1" codval="" id="" pattern="1" hide_zero="" text="F;" />
|
||||
<field x="18.5" deactivated="" type="Numero" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="3" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>NUMRIG</source>
|
||||
</field>
|
||||
<field x="22" type="Stringa" dynamic_height="1" width="20" height="2" pattern="1">
|
||||
<field x="22" deactivated="" type="Stringa" hidden="" link="" dynamic_height="1" shade_offset="" width="20" codval="" height="2" id="" pattern="1" hide_zero="" text="">
|
||||
<font face="Arial Narrow" size="8" />
|
||||
<source>DESCR</source>
|
||||
</field>
|
||||
<field x="43" type="Numero" align="right" link="23.NUMREG" width="6" pattern="1">
|
||||
<field x="43" deactivated="" type="Numero" hidden="" align="right" link="23.NUMREG" dynamic_height="" shade_offset="" width="6" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>MOVANA.NUMREGCG</source>
|
||||
</field>
|
||||
<field x="50" type="Data" width="10" pattern="1">
|
||||
<field x="50" deactivated="" type="Data" hidden="" link="" dynamic_height="" shade_offset="" width="10" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>MOVANA.DATADOC</source>
|
||||
</field>
|
||||
<field x="61" type="Stringa" align="right" width="6" pattern="1">
|
||||
<field x="61" deactivated="" type="Stringa" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="6" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>MOVANA.NUMDOC</source>
|
||||
</field>
|
||||
<field x="68" type="Stringa" width="3" pattern="1">
|
||||
<field x="68" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="3" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>MOVANA.CODCAUS</source>
|
||||
</field>
|
||||
<field x="72" type="Stringa" dynamic_height="1" width="20" height="2" pattern="1">
|
||||
<field x="72" deactivated="" type="Stringa" hidden="" link="" dynamic_height="1" shade_offset="" width="20" codval="" height="2" id="" pattern="1" hide_zero="" text="">
|
||||
<font face="Arial Narrow" size="8" />
|
||||
<prescript description="B1.0 PRESCRIPT">MESSAGE ISAMREAD,CAUS,CODCAUS=MOVANA.CODCAUS,DESCR</prescript>
|
||||
</field>
|
||||
<field x="93" type="Valuta" align="right" width="13" id="101" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="93" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="101" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>IMPORTO</source>
|
||||
<prescript description="B1.101 PRESCRIPT">"RMOVANA.SEZIONE" @
|
||||
"A" =
|
||||
@ -158,7 +168,7 @@ THEN
|
||||
<postscript description="B1.101 POSTSCRIPT">MESSAGE ADD,F2.101
|
||||
</postscript>
|
||||
</field>
|
||||
<field x="107" type="Valuta" align="right" width="13" id="102" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="107" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="102" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>IMPORTO</source>
|
||||
<prescript description="B1.102 PRESCRIPT">"RMOVANA.SEZIONE" @
|
||||
"D" =
|
||||
@ -174,83 +184,83 @@ THEN
|
||||
<postscript description="B1.102 POSTSCRIPT">MESSAGE ADD,F2.102
|
||||
</postscript>
|
||||
</field>
|
||||
<field x="121" type="Valuta" align="right" width="13" id="103" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="121" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="103" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<postscript description="B1.103 POSTSCRIPT">MESSAGE COPY,F3.103</postscript>
|
||||
</field>
|
||||
<field x="136.5" type="Stringa" width="1" id="104" pattern="1">
|
||||
<field x="136.5" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="1" codval="" id="104" pattern="1" hide_zero="" text="">
|
||||
<source>MOV.TIPO</source>
|
||||
</field>
|
||||
<field x="137.5" type="Numero" align="right" width="6" id="105" pattern="1" hide_zero="1">
|
||||
<field x="137.5" deactivated="" type="Numero" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="6" codval="" id="105" pattern="1" hide_zero="1" text="">
|
||||
<source>MOV.CODCF</source>
|
||||
</field>
|
||||
<field x="144" type="Stringa" dynamic_height="1" width="20" height="2" id="106" pattern="1">
|
||||
<field x="144" deactivated="" type="Stringa" hidden="" link="" dynamic_height="1" shade_offset="" width="20" codval="" height="2" id="106" pattern="1" hide_zero="" text="">
|
||||
<font face="Arial Narrow" size="8" />
|
||||
<prescript description="B1.106 PRESCRIPT">MESSAGE ISAMREAD,CLIFO,TIPOCF=#104!CODCF=#105,RAGSOC</prescript>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Foot" pattern="1">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Foot" level="" hidden="" page_break="" can_break="" pattern="1">
|
||||
<font face="Arial" size="8" />
|
||||
<field border="2" x="1" y="0.5" type="Linea" width="167" height="0" pattern="1" />
|
||||
<field x="143" y="1" type="Testo" width="5" pattern="1" text="Pag." />
|
||||
<field x="149" y="1" type="Numero" align="right" width="3" pattern="1">
|
||||
<field border="2" x="1" y="0.5" deactivated="" type="Linea" hidden="" link="" dynamic_height="" shade_offset="" width="167" codval="" height="0" id="" pattern="1" hide_zero="" text="" />
|
||||
<field x="143" y="1" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="5" codval="" id="" pattern="1" hide_zero="" text="Pag." />
|
||||
<field x="149" y="1" deactivated="" type="Numero" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="3" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>#REPORT.PAGE</source>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Foot" level="1" pattern="1">
|
||||
<field border="1" x="1" y="0.5" type="Linea" width="168" height="0" pattern="1" />
|
||||
<field x="74" y="1" type="Testo" width="20" pattern="1" text="TOTALI COMMESSA">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Foot" level="1" hidden="" page_break="" can_break="" pattern="1">
|
||||
<field border="1" x="1" y="0.5" deactivated="" type="Linea" hidden="" link="" dynamic_height="" shade_offset="" width="168" codval="" height="0" id="" pattern="1" hide_zero="" text="" />
|
||||
<field x="74" y="1" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="20" codval="" id="" pattern="1" hide_zero="" text="TOTALI COMMESSA">
|
||||
<font face="Arial" bold="1" size="9" />
|
||||
</field>
|
||||
<field x="92" y="1" type="Valuta" align="right" width="14" id="101" pattern="1" text="###.###.###,@@">
|
||||
<field x="92" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="14" codval="" id="101" pattern="1" hide_zero="" text="###.###.###,@@">
|
||||
<font face="Arial" bold="1" size="9" />
|
||||
</field>
|
||||
<field x="106" y="1" type="Valuta" align="right" width="14" id="102" pattern="1" text="###.###.###,@@">
|
||||
<field x="106" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="14" codval="" id="102" pattern="1" hide_zero="" text="###.###.###,@@">
|
||||
<font face="Arial" bold="1" size="9" />
|
||||
</field>
|
||||
<field x="120" y="1" type="Valuta" align="right" width="14" id="103" pattern="1" text="###.###.###,@@">
|
||||
<field x="120" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="14" codval="" id="103" pattern="1" hide_zero="" text="###.###.###,@@">
|
||||
<font face="Arial" bold="1" size="9" />
|
||||
<source>#101-#102</source>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Foot" level="2" height="3.5" pattern="1">
|
||||
<field border="1" x="1" y="0.25" type="Linea" width="168" height="0" pattern="1" />
|
||||
<field x="72" y="0.5" type="Testo" width="22" pattern="1" text="Totali periodo:">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Foot" level="2" hidden="" height="3.5" page_break="" can_break="" pattern="1">
|
||||
<field border="1" x="1" y="0.25" deactivated="" type="Linea" hidden="" link="" dynamic_height="" shade_offset="" width="168" codval="" height="0" id="" pattern="1" hide_zero="" text="" />
|
||||
<field x="72" y="0.5" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="22" codval="" id="" pattern="1" hide_zero="" text="Totali periodo:">
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
</field>
|
||||
<field x="72" y="1.75" type="Testo" width="22" pattern="1" text="Totali progressivi:">
|
||||
<field x="72" y="1.75" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="22" codval="" id="" pattern="1" hide_zero="" text="Totali progressivi:">
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
</field>
|
||||
<field x="93" y="0.5" type="Valuta" align="right" width="13" id="101" pattern="1" text="###.###.###,@@">
|
||||
<field x="93" y="0.5" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="101" pattern="1" hide_zero="" text="###.###.###,@@">
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
<postscript description="F2.101 POSTSCRIPT">MESSAGE ADD,F1.101</postscript>
|
||||
</field>
|
||||
<field x="107" y="0.5" type="Valuta" align="right" width="13" id="102" pattern="1" text="###.###.###,@@">
|
||||
<field x="107" y="0.5" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="102" pattern="1" hide_zero="" text="###.###.###,@@">
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
<postscript description="F2.102 POSTSCRIPT">MESSAGE ADD,F1.102</postscript>
|
||||
</field>
|
||||
<field x="93" y="1.75" type="Valuta" align="right" width="13" id="201" pattern="1" text="###.###.###,@@">
|
||||
<field x="93" y="1.75" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="201" pattern="1" hide_zero="" text="###.###.###,@@">
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
<source>#101+#H2.201</source>
|
||||
</field>
|
||||
<field x="107" y="1.75" type="Valuta" align="right" width="13" id="202" pattern="1" text="###.###.###,@@">
|
||||
<field x="107" y="1.75" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="202" pattern="1" hide_zero="" text="###.###.###,@@">
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
<source>#102+#H2.202</source>
|
||||
</field>
|
||||
<field x="121" y="1.75" type="Valuta" align="right" width="13" id="203" pattern="1" text="###.###.###,@@">
|
||||
<field x="121" y="1.75" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="203" pattern="1" hide_zero="" text="###.###.###,@@">
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
<source>#201-#202</source>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Foot" level="3" pattern="1">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Foot" level="3" hidden="" page_break="" can_break="" pattern="1">
|
||||
<condition>#103 != 0</condition>
|
||||
<font italic="1" face="Arial" size="8" />
|
||||
<field x="135" y="0.5" type="Testo" width="2" pattern="1" text="al">
|
||||
<field x="135" y="0.5" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="2" codval="" id="" pattern="1" hide_zero="" text="al">
|
||||
<font italic="1" face="Arial Black" size="7" />
|
||||
</field>
|
||||
<field x="119" y="0.5" type="Valuta" align="right" width="15" id="103" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="119" y="0.5" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="15" codval="" id="103" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<font italic="1" face="Arial" bold="1" size="8" />
|
||||
</field>
|
||||
<field x="137" y="0.5" type="Data" valign="center" width="11" id="131" pattern="1">
|
||||
<field x="137" y="0.5" deactivated="" type="Data" valign="center" hidden="" link="" dynamic_height="" shade_offset="" width="11" codval="" id="131" pattern="1" hide_zero="" text="">
|
||||
<font italic="1" face="Arial" size="7" />
|
||||
</field>
|
||||
</section>
|
||||
|
@ -1,7 +1,6 @@
|
||||
#include <defmask.h>
|
||||
#include <execp.h>
|
||||
#include <progind.h>
|
||||
#include <repapp.h>
|
||||
#include <reprint.h>
|
||||
#include <pconti.h>
|
||||
|
||||
@ -27,26 +26,53 @@ class TPrint_bilancio_ca_mask : public TAnal_report_mask
|
||||
{
|
||||
protected:
|
||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
const TString& get_report_class() const;
|
||||
bool test_compatible_report();
|
||||
bool esistono_riclassificazioni() const;
|
||||
|
||||
public:
|
||||
const TString& get_report_class() const;
|
||||
|
||||
TPrint_bilancio_ca_mask();
|
||||
TPrint_bilancio_ca_mask();
|
||||
virtual ~TPrint_bilancio_ca_mask() {}
|
||||
};
|
||||
|
||||
const TString& TPrint_bilancio_ca_mask::get_report_class() const
|
||||
{
|
||||
TString& classe = get_tmp_string();
|
||||
TString& lib = get_tmp_string();
|
||||
lib = "ca3300";
|
||||
|
||||
classe = TAnal_report_mask::get_report_class();
|
||||
classe.cut(5);
|
||||
if (get(F_BILANCIO) == "V") // Verifica o sezioni Contrapposte
|
||||
classe << (get(F_TIPOSTAMPA) == "R" ? 'a' : 'b'); // Verifica - Raffronto o No
|
||||
const char bil = get(F_BILANCIO)[0]; // Verifica o sezioni Contrapposte
|
||||
const char stp = get(F_TIPOSTAMPA)[0]; // Raffronto o No?
|
||||
|
||||
if (bil == 'V')
|
||||
lib << (stp == 'R' ? 'a' : 'b'); // Verifica
|
||||
else
|
||||
classe << (get(F_TIPOSTAMPA) == "R" ? 'c' : 'd'); // Sezioni contrapposte - Raffronto o No
|
||||
return classe;
|
||||
lib << (stp == 'R' ? 'c' : 'd'); // Sezioni contrapposte
|
||||
return lib;
|
||||
}
|
||||
|
||||
bool TPrint_bilancio_ca_mask::test_compatible_report()
|
||||
{
|
||||
const TString& cls = get_report_class();
|
||||
const TString& name = get(F_REPORT);
|
||||
bool ok = name.full();
|
||||
if (ok && name != cls)
|
||||
{
|
||||
TReport rep;
|
||||
ok = rep.load(name);
|
||||
if (ok)
|
||||
{
|
||||
const TString& classe = rep.get_class();
|
||||
ok = classe == cls;
|
||||
}
|
||||
}
|
||||
if (!ok)
|
||||
{
|
||||
set(F_REPORT, cls);
|
||||
TFilename path = cls;
|
||||
path.ext("rep");
|
||||
ok = path.custom_path();
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
bool TPrint_bilancio_ca_mask::esistono_riclassificazioni() const
|
||||
@ -59,13 +85,28 @@ bool TPrint_bilancio_ca_mask::on_field_event(TOperable_field& o, TField_event e,
|
||||
{
|
||||
switch (o.dlg())
|
||||
{
|
||||
case DLG_PRINT:
|
||||
if (e == fe_button)
|
||||
{
|
||||
main_app().print();
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case DLG_PREVIEW:
|
||||
if (e == fe_button)
|
||||
{
|
||||
main_app().preview();
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
|
||||
case F_ANNO:
|
||||
case F_BILANCIO:
|
||||
case F_STAMPA:
|
||||
case F_TIPOSTAMPA:
|
||||
if (e == fe_modify || (e == fe_init && o.dlg() == F_ANNO))
|
||||
{
|
||||
set_report_class();
|
||||
test_compatible_report();
|
||||
|
||||
bool enable_from = false, enable_to = false;
|
||||
if (get_int(F_STAMPA) == 1) // Stampa per data limite
|
||||
@ -112,6 +153,24 @@ bool TPrint_bilancio_ca_mask::on_field_event(TOperable_field& o, TField_event e,
|
||||
}
|
||||
}
|
||||
break;
|
||||
case F_REPORT:
|
||||
if (e == fe_button)
|
||||
{
|
||||
const TString8 lib = get_report_class();
|
||||
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("Impossibile trovare un report compatibile");
|
||||
}
|
||||
break;
|
||||
case F_PRE1:
|
||||
case F_PRE2:
|
||||
case F_PRE3:
|
||||
@ -232,7 +291,7 @@ protected:
|
||||
|
||||
public:
|
||||
void set_filter(const TMask& msk, int row);
|
||||
TReport_bilancio_verifica() { }
|
||||
TReport_bilancio_verifica(const char* name);
|
||||
};
|
||||
|
||||
bool TReport_bilancio_verifica::set_recordset(const TString& /* sql */)
|
||||
@ -313,10 +372,14 @@ void TReport_bilancio_verifica::set_filter(const TMask& m, int row)
|
||||
commessa = rel.curr().get(RMOVANA_CODCMS);
|
||||
fase = rel.curr().get(RMOVANA_CODFASE);
|
||||
|
||||
const TString & contsep = m.get(F_CONTSEP);
|
||||
TPconana_recordset* rset = (TPconana_recordset*)recordset();
|
||||
if (rset != NULL)
|
||||
rset->set_filter(tc, da_conto, a_conto, costo, commessa, fase, contsep, dal, al, tipimov, movimentati, nonnulli);
|
||||
rset->set_filter(tc, da_conto, a_conto, costo, commessa, fase, dal, al, tipimov, movimentati, nonnulli);
|
||||
}
|
||||
|
||||
TReport_bilancio_verifica::TReport_bilancio_verifica(const char* name)
|
||||
{
|
||||
load(name);
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////
|
||||
@ -355,7 +418,7 @@ class TRecordset_sezioni_contrapposte : public TRecordset
|
||||
TDate _da_data, _a_data;
|
||||
word _tipimov;
|
||||
bool _movimentati, _nonnulli;
|
||||
TString _daconto, _aconto, _contsep;
|
||||
TString _daconto, _aconto;
|
||||
TString4 _tipostampa;
|
||||
bool _print_ap;
|
||||
|
||||
@ -386,7 +449,7 @@ public:
|
||||
virtual const TVariant& get(unsigned int column) const { return NULL_VARIANT; }
|
||||
virtual const TVariant& get(const char* field) const;
|
||||
|
||||
void set_filter(char piano, const char* costo, const char* commessa, const char* fase, const char * contsep,
|
||||
void set_filter(char piano, const char* costo, const char* commessa, const char* fase,
|
||||
const TDate& dal, const TDate& al, word tipimov, bool movimentati, bool nonnulli,
|
||||
bool print_ap, const TString& daconto, const TString& aconto);
|
||||
char tipo_piano() const { return _tipo_piano; }
|
||||
@ -410,7 +473,7 @@ bool TRecordset_sezioni_contrapposte::move_to(TRecnotype pos)
|
||||
return _pos < items();
|
||||
}
|
||||
|
||||
void TRecordset_sezioni_contrapposte::set_filter(char piano, const char* costo, const char* commessa, const char* fase, const char * contsep,
|
||||
void TRecordset_sezioni_contrapposte::set_filter(char piano, const char* costo, const char* commessa, const char* fase,
|
||||
const TDate& dal, const TDate& al, word tipimov, bool movimentati,
|
||||
bool nonnulli, bool print_ap, const TString& daconto, const TString& aconto)
|
||||
{
|
||||
@ -442,7 +505,6 @@ void TRecordset_sezioni_contrapposte::set_filter(char piano, const char* costo,
|
||||
|
||||
_daconto = daconto;
|
||||
_aconto = aconto;
|
||||
_contsep = contsep;
|
||||
}
|
||||
|
||||
TArray& TRecordset_sezioni_contrapposte::conti(int indbil)
|
||||
@ -474,7 +536,7 @@ void TRecordset_sezioni_contrapposte::add_conto(const TString& b,
|
||||
a.insert(sc, n);
|
||||
}
|
||||
|
||||
void TRecordset_sezioni_contrapposte::add_conto(int indbil, const TString& b) // qui
|
||||
void TRecordset_sezioni_contrapposte::add_conto(int indbil, const TString& b)
|
||||
{
|
||||
if (indbil >= 1 && indbil <= 4)
|
||||
{
|
||||
@ -584,8 +646,8 @@ void TRecordset_sezioni_contrapposte::add_conto(int indbil, const TString& b) //
|
||||
bill.set_fase(c.blank() ? "~" : c);
|
||||
|
||||
|
||||
const TSaldanal& wsp = ca_saldo(bill, "", _da_data, _a_data, _saldanal_preventivi); // qui
|
||||
const TSaldanal& wsc = ca_saldo(bill, "", _da_data, _a_data, _saldanal_consuntivo);
|
||||
const TSaldanal& wsp = ca_saldo(bill, _da_data, _a_data, _saldanal_preventivi);
|
||||
const TSaldanal& wsc = ca_saldo(bill, _da_data, _a_data, _saldanal_consuntivo);
|
||||
|
||||
sp += wsp;
|
||||
sc += wsc;
|
||||
@ -613,7 +675,7 @@ void TRecordset_sezioni_contrapposte::add_conto(int indbil, const TString& b) //
|
||||
c = code.get();
|
||||
bill.set_fase(c.blank() ? "~" : c);
|
||||
|
||||
const TSaldanal& wsa = ca_saldo(bill, "", _da_data, _a_data, _tipimov); // qui
|
||||
const TSaldanal& wsa = ca_saldo(bill, _da_data, _a_data, _tipimov);
|
||||
|
||||
sa += wsa;
|
||||
}
|
||||
@ -629,8 +691,8 @@ void TRecordset_sezioni_contrapposte::add_conto(int indbil, const TString& b) //
|
||||
{
|
||||
if ((_tipimov & _saldanal_qualsiasi) == _saldanal_qualsiasi) // Bilancio a sezioni contrapposte di raffronto
|
||||
{
|
||||
const TSaldanal sp = ca_saldo(bill, "", _da_data, _a_data, _saldanal_preventivi);// qui
|
||||
const TSaldanal sc = ca_saldo(bill, "", _da_data, _a_data, _saldanal_consuntivo);
|
||||
const TSaldanal sp = ca_saldo(bill, _da_data, _a_data, _saldanal_preventivi);
|
||||
const TSaldanal sc = ca_saldo(bill, _da_data, _a_data, _saldanal_consuntivo);
|
||||
|
||||
if (!sp._fin.is_zero() || !sc._fin.is_zero())
|
||||
{
|
||||
@ -642,7 +704,7 @@ void TRecordset_sezioni_contrapposte::add_conto(int indbil, const TString& b) //
|
||||
}
|
||||
else
|
||||
{
|
||||
const TSaldanal sa = ca_saldo(bill, "", _da_data, _a_data, _tipimov); // qui
|
||||
const TSaldanal sa = ca_saldo(bill, _da_data, _a_data, _tipimov);
|
||||
|
||||
if (!sa._fin.is_zero())
|
||||
{
|
||||
@ -709,9 +771,6 @@ void TRecordset_sezioni_contrapposte::requery()
|
||||
{
|
||||
// Crea recordset del piano dei conti appropriato
|
||||
TString query = "USE PCON";
|
||||
|
||||
if (_contsep.full())
|
||||
query << " SELECT (" << MOVANA_CONTSEP << "==" << _contsep << ")";
|
||||
if (_tipo_piano == 'A')
|
||||
{
|
||||
query << "ANA";
|
||||
@ -920,8 +979,6 @@ const TVariant& TRecordset_sezioni_contrapposte::get(const char* field) const
|
||||
return get_tmp_var() = _filter.commessa();
|
||||
if (fld == "#FASE")
|
||||
return get_tmp_var() = _filter.fase();
|
||||
if (fld == "#CONTSEP")
|
||||
return get_tmp_var() = _contsep;
|
||||
if (fld == "#DATA_INIZIALE")
|
||||
return get_tmp_var() = _da_data;
|
||||
if (fld == "#DATA_FINALE")
|
||||
@ -978,7 +1035,7 @@ protected:
|
||||
|
||||
public:
|
||||
void set_filter(const TMask& msk, int row);
|
||||
TReport_bilancio_sezioni_contrapposte() { }
|
||||
TReport_bilancio_sezioni_contrapposte(const char* name) { load(name); }
|
||||
};
|
||||
|
||||
bool TReport_bilancio_sezioni_contrapposte::set_recordset(const TString& /* sql */)
|
||||
@ -1052,9 +1109,7 @@ void TReport_bilancio_sezioni_contrapposte::set_filter(const TMask& m, int row)
|
||||
}
|
||||
|
||||
TRecordset_sezioni_contrapposte* recset = new TRecordset_sezioni_contrapposte(tipo);
|
||||
const TString & contsep = m.get(F_CONTSEP);
|
||||
|
||||
recset->set_filter(tipo, costo, commessa, fase, contsep, dal, al, tipimov, movimentati, nonnulli, print_ap, daconto, aconto);
|
||||
recset->set_filter(tipo, costo, commessa, fase, dal, al, tipimov, movimentati, nonnulli, print_ap, daconto, aconto);
|
||||
TAnal_report::set_recordset(recset);
|
||||
};
|
||||
|
||||
@ -1062,10 +1117,9 @@ void TReport_bilancio_sezioni_contrapposte::set_filter(const TMask& m, int row)
|
||||
// APPLICAZIONE
|
||||
////////////////////////////////////////////////////////
|
||||
|
||||
class TPrint_bilancio_ca : public TReport_application
|
||||
class TPrint_bilancio_ca : public TSkeleton_application
|
||||
{
|
||||
TPrint_bilancio_ca_mask * _mask;
|
||||
TArray _reps;
|
||||
TPrint_bilancio_ca_mask* _mask;
|
||||
|
||||
protected:
|
||||
virtual const char * extra_modules() const {return "cm";} //funziona anche con autorizzazione CM
|
||||
@ -1073,75 +1127,70 @@ protected:
|
||||
bool commessa_buona(const TRectype& cms, const TDate& dadata, const TDate& adata) const;
|
||||
bool buon_cdc(const TRectype& cdc, const TDate& dadata, const TDate& adata) const;
|
||||
void fill_sheet(int livello);
|
||||
void bilancio_a_sezioni_contrapposte(TReport & rep);
|
||||
void bilancio_di_verifica(TReport & rep);
|
||||
// @cmember ritorna la maschera
|
||||
virtual TAutomask & get_mask();
|
||||
// @cmember Ritorna il report
|
||||
virtual TReport & get_report(const TAutomask & m);
|
||||
virtual void execute_print(TReport_book & book, TAutomask & mask, TReport & rep, export_type type = _export_printer);
|
||||
virtual bool user_destroy();
|
||||
void bilancio_a_sezioni_contrapposte(const bool stampa);
|
||||
void bilancio_di_verifica(const bool stampa);
|
||||
|
||||
public:
|
||||
TPrint_bilancio_ca() : _mask(nullptr) {}
|
||||
~TPrint_bilancio_ca() {}
|
||||
void print_or_preview(const bool stampa);
|
||||
virtual void print();
|
||||
virtual void preview();
|
||||
|
||||
virtual void main_loop();
|
||||
};
|
||||
|
||||
TReport & TPrint_bilancio_ca::get_report(const TAutomask & m)
|
||||
void TPrint_bilancio_ca::bilancio_a_sezioni_contrapposte(const bool stampa)
|
||||
{
|
||||
TReport * r = nullptr;
|
||||
TReport_bilancio_sezioni_contrapposte rep(_mask->get(F_REPORT));
|
||||
|
||||
if (m.get(F_BILANCIO) == "C")
|
||||
{
|
||||
if (_reps.objptr(0) == nullptr)
|
||||
_reps.add(new TReport_bilancio_sezioni_contrapposte, 0);
|
||||
r = (TReport_bilancio_sezioni_contrapposte *) _reps.objptr(0);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (_reps.objptr(1) == nullptr)
|
||||
_reps.add(new TReport_bilancio_verifica, 0);
|
||||
r = (TReport_bilancio_verifica *)_reps.objptr(1);
|
||||
}
|
||||
TString path = _mask->get(DLG_REPORT);
|
||||
|
||||
if (path.empty())
|
||||
path = ((TPrint_bilancio_ca_mask *)_mask)->get_report_class();
|
||||
r->load(path);
|
||||
return *r;
|
||||
}
|
||||
|
||||
TAutomask & TPrint_bilancio_ca::get_mask()
|
||||
{
|
||||
if (_mask == nullptr)
|
||||
_mask = new TPrint_bilancio_ca_mask;
|
||||
return *_mask;
|
||||
}
|
||||
|
||||
void TPrint_bilancio_ca::bilancio_a_sezioni_contrapposte(TReport & rep)
|
||||
{
|
||||
const int rows = _mask->sfield(F_RIGHE).items();
|
||||
TProgress_monitor pi(rows, TR("Bilancio a sezioni contrapposte"));
|
||||
TReport_book book;
|
||||
TProgind* pi = rows > 1 ? new TProgind(rows, TR("Bilancio a sezioni contrapposte")) : NULL;
|
||||
|
||||
for (int i = 0; pi.add_status() && i < rows; i++)
|
||||
TReport_book book;
|
||||
for (int i = 0; i < rows; i++)
|
||||
{
|
||||
((TReport_bilancio_sezioni_contrapposte &)rep).set_filter(*_mask, i);
|
||||
if (pi && !pi->addstatus(1))
|
||||
break;
|
||||
rep.set_filter(*_mask, i);
|
||||
book.add(rep);
|
||||
}
|
||||
if (pi) delete pi;
|
||||
|
||||
if (stampa)
|
||||
book.print(); //stampa il book dei report
|
||||
else
|
||||
book.preview(); //anteprima
|
||||
}
|
||||
|
||||
void TPrint_bilancio_ca::bilancio_di_verifica(TReport & rep)
|
||||
void TPrint_bilancio_ca::bilancio_di_verifica(const bool stampa)
|
||||
{
|
||||
const int rows = _mask->sfield(F_RIGHE).items();
|
||||
TProgress_monitor pi(rows, TR("Bilancio di verifica"));
|
||||
TReport_book book;
|
||||
TReport_bilancio_verifica rep(_mask->get(F_REPORT));
|
||||
|
||||
for (int i = 0; pi.add_status() && i < rows; i++)
|
||||
const int rows = _mask->sfield(F_RIGHE).items();
|
||||
TProgind* pi = rows > 1 ? new TProgind(rows, TR("Bilancio di verifica")) : NULL;
|
||||
|
||||
TReport_book book;
|
||||
for (int i = 0; i < rows; i++)
|
||||
{
|
||||
((TReport_bilancio_verifica &)rep).set_filter(*_mask, i);
|
||||
if (pi && !pi->addstatus(1))
|
||||
break;
|
||||
rep.set_filter(*_mask, i);
|
||||
book.add(rep);
|
||||
}
|
||||
if (pi) delete pi;
|
||||
|
||||
if (stampa)
|
||||
book.print(); //stampa il book dei report
|
||||
else
|
||||
book.preview(); //anteprima
|
||||
}
|
||||
|
||||
void TPrint_bilancio_ca::print()
|
||||
{
|
||||
print_or_preview(true);
|
||||
}
|
||||
|
||||
void TPrint_bilancio_ca::preview()
|
||||
{
|
||||
print_or_preview(false);
|
||||
}
|
||||
|
||||
// Anche l'occhio vuole la sua parte
|
||||
@ -1248,7 +1297,7 @@ void TPrint_bilancio_ca::fill_sheet(int livello)
|
||||
}
|
||||
}
|
||||
|
||||
void TPrint_bilancio_ca::execute_print(TReport_book & book, TAutomask & mask, TReport & rep, export_type type)
|
||||
void TPrint_bilancio_ca::print_or_preview(const bool stampa)
|
||||
{
|
||||
TSheet_field& sf = _mask->sfield(F_RIGHE);
|
||||
|
||||
@ -1262,19 +1311,22 @@ void TPrint_bilancio_ca::execute_print(TReport_book & book, TAutomask & mask, TR
|
||||
}
|
||||
else
|
||||
fill_sheet(completa);
|
||||
|
||||
if (_mask->get(F_BILANCIO) == "C")
|
||||
bilancio_a_sezioni_contrapposte(rep);
|
||||
bilancio_a_sezioni_contrapposte(stampa);
|
||||
else
|
||||
bilancio_di_verifica(rep);
|
||||
bilancio_di_verifica(stampa);
|
||||
|
||||
if (empty_sheet)
|
||||
sf.destroy();
|
||||
}
|
||||
|
||||
bool TPrint_bilancio_ca::user_destroy()
|
||||
void TPrint_bilancio_ca::main_loop()
|
||||
{
|
||||
safe_delete(_mask);
|
||||
return TReport_application::user_destroy();
|
||||
_mask = new TPrint_bilancio_ca_mask;
|
||||
_mask->run();
|
||||
delete _mask;
|
||||
_mask = NULL;
|
||||
}
|
||||
|
||||
int ca3300(int argc, char* argv[])
|
||||
|
@ -15,6 +15,8 @@
|
||||
#define F_TIPOSTAMPA 314
|
||||
#define F_PRINT_CONTO_ECON 315
|
||||
#define F_COMPLETA 316
|
||||
#define F_CONTSEP 317
|
||||
#define F_DESCONTSEP 318
|
||||
|
||||
//campi generati dai piani dei conti
|
||||
#define F_PIANO 319
|
||||
@ -53,7 +55,6 @@
|
||||
#define F_PANDES4_FIN 368
|
||||
|
||||
#define F_SELECT 394
|
||||
#define F_REPORT 395
|
||||
|
||||
//sheet di pagina 2
|
||||
#define F_RIGHE 400
|
||||
|
@ -1,24 +1,14 @@
|
||||
#include "ca3300.h"
|
||||
|
||||
#define ALL_EXPORT
|
||||
#define CLASS_NAME "ca3300"
|
||||
|
||||
TOOLBAR "topbar" 0 0 0 2
|
||||
#include <aprintbar.h>
|
||||
ENDPAGE
|
||||
|
||||
TOOLBAR "bottombar" 0 -2 0 1
|
||||
|
||||
STRING F_REPORT 256 66
|
||||
BEGIN
|
||||
PROMPT 1 -2 "Report "
|
||||
FLAGS "B"
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING DLG_PROFILE 50
|
||||
BEGIN
|
||||
PROMPT 1 -1 "Profilo "
|
||||
PSELECT
|
||||
END
|
||||
|
||||
TOOLBAR "bottombar" 0 -3 0 1
|
||||
#include <bprintbar.h>
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Stampa bilancio" 0 0 0 2
|
||||
@ -132,9 +122,35 @@ BEGIN
|
||||
PROMPT 2 9 "Stampa situazione conto economico"
|
||||
END
|
||||
|
||||
STRING F_CONTSEP 6
|
||||
BEGIN
|
||||
PROMPT 1 10 "Cont. separata "
|
||||
USE &NPENT
|
||||
INPUT CODTAB F_CONTSEP
|
||||
DISPLAY "Codice@6" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CONTSEP CODTAB
|
||||
OUTPUT F_DESCONTSEP S0
|
||||
CHECKTYPE NORMAL
|
||||
FIELD CONTSEP
|
||||
MODULE NP
|
||||
END
|
||||
|
||||
STRING F_DESCONTSEP 50 48
|
||||
BEGIN
|
||||
PROMPT 26 10 ""
|
||||
USE &NPENT KEY 2
|
||||
INPUT S0 F_DESCONTSEP
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice@6" CODTAB
|
||||
COPY OUTPUT F_CONTSEP
|
||||
CHECKTYPE NORMAL
|
||||
MODULE NP
|
||||
END
|
||||
|
||||
SPREADSHEET F_RIGHE -1 -1
|
||||
BEGIN
|
||||
PROMPT 0 11 ""
|
||||
PROMPT 0 12 ""
|
||||
ITEM "Cdc 1"
|
||||
ITEM "Cdc 2"
|
||||
ITEM "Cdc 3"
|
||||
|
@ -1,85 +1,94 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<report name="ca3300a" orientation="2" lpi="8" command="ca3 -2" class="ca3300a">
|
||||
<report libraries="" page_merge="" save_printer="" name="ca3300a" use_printer_font="" orientation="2" page_split="" lpi="8" command="ca3 -2" class="ca3300a">
|
||||
<description>Bilancio normale di verifica (raffronto)</description>
|
||||
<font face="Courier New" size="8" />
|
||||
<section type="Head">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Head" level="" hidden="" page_break="" can_break="" pattern="1">
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
<field border="1" x="1" y="0.25" type="Linea" width="168" height="0" pattern="1" />
|
||||
<field x="84.5" y="0.5" type="Testo" align="center" width="25" pattern="1" text="SALDO INIZIALE" />
|
||||
<field x="112" y="0.5" type="Testo" align="center" width="27" pattern="1" text="MOVIMENTI DEL PERIODO" />
|
||||
<field x="142" y="0.5" type="Testo" align="center" width="25" pattern="1" text="SALDO FINALE" />
|
||||
<field x="1" y="1.25" type="Testo" width="10" pattern="1" text="Conto" />
|
||||
<field x="31" y="1.25" type="Testo" width="15" pattern="1" text="Descrizione" />
|
||||
<field x="78" y="1.75" type="Testo" align="right" width="13" pattern="1" text="Dare" />
|
||||
<field x="92" y="1.75" type="Testo" align="right" width="13" pattern="1" text="Avere" />
|
||||
<field x="107" y="1.75" type="Testo" align="right" width="13" pattern="1" text="Dare" />
|
||||
<field x="121" y="1.75" type="Testo" align="right" width="13" pattern="1" text="Avere" />
|
||||
<field x="136" y="1.75" type="Testo" align="right" width="13" pattern="1" text="Dare" />
|
||||
<field x="150" y="1.75" type="Testo" align="right" width="13" pattern="1" text="Avere" />
|
||||
<field border="1" x="1" y="2.75" type="Linea" width="168" height="0" pattern="1" />
|
||||
<field border="1" x="1" y="0.25" deactivated="" type="Linea" hidden="" link="" dynamic_height="" shade_offset="" width="168" codval="" height="0" id="" pattern="1" hide_zero="" text="" />
|
||||
<field x="84.5" y="0.5" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="25" codval="" id="" pattern="1" hide_zero="" text="SALDO INIZIALE" />
|
||||
<field x="112" y="0.5" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="27" codval="" id="" pattern="1" hide_zero="" text="MOVIMENTI DEL PERIODO" />
|
||||
<field x="142" y="0.5" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="25" codval="" id="" pattern="1" hide_zero="" text="SALDO FINALE" />
|
||||
<field x="1" y="1.25" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="10" codval="" id="" pattern="1" hide_zero="" text="Conto" />
|
||||
<field x="31" y="1.25" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="15" codval="" id="" pattern="1" hide_zero="" text="Descrizione" />
|
||||
<field x="78" y="1.75" deactivated="" type="Testo" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="" pattern="1" hide_zero="" text="Dare" />
|
||||
<field x="92" y="1.75" deactivated="" type="Testo" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="" pattern="1" hide_zero="" text="Avere" />
|
||||
<field x="107" y="1.75" deactivated="" type="Testo" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="" pattern="1" hide_zero="" text="Dare" />
|
||||
<field x="121" y="1.75" deactivated="" type="Testo" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="" pattern="1" hide_zero="" text="Avere" />
|
||||
<field x="136" y="1.75" deactivated="" type="Testo" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="" pattern="1" hide_zero="" text="Dare" />
|
||||
<field x="150" y="1.75" deactivated="" type="Testo" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="" pattern="1" hide_zero="" text="Avere" />
|
||||
<field border="1" x="1" y="2.75" deactivated="" type="Linea" hidden="" link="" dynamic_height="" shade_offset="" width="168" codval="" height="0" id="" pattern="1" hide_zero="" text="" />
|
||||
</section>
|
||||
<section type="Head" level="1">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Head" level="1" hidden="" page_break="" can_break="" pattern="1">
|
||||
<font face="Arial" bold="1" size="9" />
|
||||
<prescript description="H1 PRESCRIPT">"F1" AZZERA_TOTALI</prescript>
|
||||
<field border="1" radius="100" x="40.34" y="0.66" type="Rettangolo" shade_offset="25" width="80" height="3.5" />
|
||||
<field x="53.5" y="1.5" type="Testo" valign="center" width="35" height="2" pattern="1" text="BILANCIO DI VERIFICA">
|
||||
<field border="1" radius="100" x="40.34" y="0.66" deactivated="" type="Rettangolo" hidden="" link="" dynamic_height="" shade_offset="25" width="80" codval="" height="3.5" id="" pattern="2" hide_zero="" text="" />
|
||||
<field x="53.5" y="1.5" deactivated="" type="Testo" valign="center" hidden="" link="" dynamic_height="" shade_offset="" width="35" codval="" height="2" id="" pattern="1" hide_zero="" text="BILANCIO DI VERIFICA">
|
||||
<font face="Arial" bold="1" size="14" />
|
||||
</field>
|
||||
<field x="88.5" y="1.5" type="Testo" valign="center" width="20" height="2" pattern="1" text="RAFFRONTO">
|
||||
<field x="88.5" y="1.5" deactivated="" type="Testo" valign="center" hidden="" link="" dynamic_height="" shade_offset="" width="20" codval="" height="2" id="" pattern="1" hide_zero="" text="RAFFRONTO">
|
||||
<font face="Arial" bold="1" size="14" />
|
||||
<source>#TIPOSTAMPA</source>
|
||||
</field>
|
||||
<field x="1" y="4.75" type="Stringa" width="50" height="1.25" pattern="1">
|
||||
<field x="1" y="4.75" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="50" codval="" height="1.25" id="" pattern="1" hide_zero="" text="">
|
||||
<source>#SYSTEM.RAGSOC</source>
|
||||
</field>
|
||||
<field x="71" y="5" type="Testo" width="20" height="1.25" pattern="1" text="Data di stampa:">
|
||||
<field x="71" y="5" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="20" codval="" height="1.25" id="" pattern="1" hide_zero="" text="Data di stampa:">
|
||||
<font face="Arial" size="9" />
|
||||
</field>
|
||||
<field x="91" y="5" type="Data" width="15" height="1.25" pattern="1">
|
||||
<field x="91" y="5" deactivated="" type="Data" hidden="" link="" dynamic_height="" shade_offset="" width="15" codval="" height="1.25" id="" pattern="1" hide_zero="" text="">
|
||||
<source>#SYSTEM.DATE</source>
|
||||
</field>
|
||||
<field x="1" y="6.25" type="Testo" width="20" pattern="1" text="Movimenti dal:">
|
||||
<field x="1" y="6.25" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="20" codval="" id="" pattern="1" hide_zero="" text="Movimenti dal:">
|
||||
<font face="Arial" size="9" />
|
||||
<prescript description="H1.0 PRESCRIPT">MESSAGE ISAMREAD,COMMESSE,CODCMS=#COMMESSA,DESCRIZ</prescript>
|
||||
</field>
|
||||
<field x="21.19" y="6.25" type="Data" width="15" pattern="1">
|
||||
<field x="21.19" y="6.25" deactivated="" type="Data" hidden="" link="" dynamic_height="" shade_offset="" width="15" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>#DATA_INIZIALE</source>
|
||||
</field>
|
||||
<field x="38.19" y="6.25" type="Testo" width="4" pattern="1" text="al:">
|
||||
<field x="38.19" y="6.25" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="4" codval="" id="" pattern="1" hide_zero="" text="al:">
|
||||
<font face="Arial" size="9" />
|
||||
</field>
|
||||
<field x="43.19" y="6.25" type="Data" width="15" pattern="1">
|
||||
<field x="43.19" y="6.25" deactivated="" type="Data" hidden="" link="" dynamic_height="" shade_offset="" width="15" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>#DATA_FINALE</source>
|
||||
</field>
|
||||
<field x="1.19" y="7.5" type="Testo" width="20" pattern="1" text="Centro di costo:">
|
||||
<field x="1.19" y="7.5" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="20" codval="" id="" pattern="1" hide_zero="" text="Centro di costo:">
|
||||
<font face="Arial" size="9" />
|
||||
</field>
|
||||
<field x="21.19" y="7.5" type="Stringa" width="24" pattern="1">
|
||||
<field x="21.19" y="7.5" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="24" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>#COSTO</source>
|
||||
</field>
|
||||
<field x="46.19" y="7.5" type="Stringa" width="70" pattern="1">
|
||||
<prescript>MESSAGE ISAMREAD,CDC,CODCOSTO=#COSTO,DESCRIZ</prescript>
|
||||
<field x="46.19" y="7.5" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="70" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<prescript description="">MESSAGE ISAMREAD,CDC,CODCOSTO=#COSTO,DESCRIZ</prescript>
|
||||
</field>
|
||||
<field x="1.19" y="8.75" type="Testo" width="20" pattern="1" text="Commessa:">
|
||||
<field x="1.19" y="8.75" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="20" codval="" id="" pattern="1" hide_zero="" text="Commessa:">
|
||||
<font face="Arial" size="9" />
|
||||
</field>
|
||||
<field x="21.19" y="8.75" type="Stringa" width="24" pattern="1">
|
||||
<field x="21.19" y="8.75" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="24" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>#COMMESSA</source>
|
||||
</field>
|
||||
<field x="46.19" y="8.75" type="Stringa" width="70" pattern="1">
|
||||
<prescript>MESSAGE ISAMREAD,COMMESSE,CODCMS=#COMMESSA,DESCRIZ</prescript>
|
||||
<field x="46.19" y="8.75" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="70" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<prescript description="">MESSAGE ISAMREAD,COMMESSE,CODCMS=#COMMESSA,DESCRIZ</prescript>
|
||||
</field>
|
||||
<field x="1.19" y="10" type="Testo" width="20" pattern="1" text="Fase:">
|
||||
<field x="1.19" y="10" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="20" codval="" id="" pattern="1" hide_zero="" text="Fase:">
|
||||
<font face="Arial" size="9" />
|
||||
</field>
|
||||
<field x="21.19" y="10" type="Stringa" width="13" pattern="1">
|
||||
<field x="21.19" y="10" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="13" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>#FASE</source>
|
||||
</field>
|
||||
<field x="46.19" y="10" type="Stringa" width="70" pattern="1">
|
||||
<prescript>MESSAGE ISAMREAD,FASI,CODCMSFAS=#CMSCDC!CODFASE=#FASE,DESCRIZ</prescript>
|
||||
<field x="46.19" y="10" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="70" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<prescript description="">MESSAGE ISAMREAD,FASI,CODCMSFAS=#CMSCDC!CODFASE=#FASE,DESCRIZ</prescript>
|
||||
</field>
|
||||
<field x="1" y="11.25" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="20" codval="" id="" pattern="1" hide_zero="" text="Contabilit&#E0; separata:">
|
||||
<font face="Arial" size="9" />
|
||||
</field>
|
||||
<field x="21" y="11.25" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="13" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>#CONTSEP</source>
|
||||
</field>
|
||||
<field x="46.19" y="11.25" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="70" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<prescript description="H1.0 PRESCRIPT">MESSAGE TABLEREAD,NPENT,CODTAB=#CONTSEP,S0</prescript>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Head" level="2">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Head" level="2" hidden="" page_break="" can_break="" pattern="1">
|
||||
<condition>CODCONTO:2!=""</condition>
|
||||
<groupby>CODCONTO:1</groupby>
|
||||
<prescript description="H2 PRESCRIPT">"CODCONTO:1" @
|
||||
@ -90,7 +99,7 @@
|
||||
"F2" AZZERA_TOTALI
|
||||
</prescript>
|
||||
</section>
|
||||
<section type="Head" level="3">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Head" level="3" hidden="" page_break="" can_break="" pattern="1">
|
||||
<condition>CODCONTO:3!=""</condition>
|
||||
<groupby>CODCONTO:2</groupby>
|
||||
<prescript description="H3 PRESCRIPT">"CODCONTO:2" @
|
||||
@ -100,7 +109,7 @@
|
||||
|
||||
"F3" AZZERA_TOTALI</prescript>
|
||||
</section>
|
||||
<section type="Head" level="4">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Head" level="4" hidden="" page_break="" can_break="" pattern="1">
|
||||
<condition>CODCONTO:4 != ""</condition>
|
||||
<groupby>CODCONTO:3</groupby>
|
||||
<prescript description="H4 PRESCRIPT">"CODCONTO:3" @
|
||||
@ -110,217 +119,217 @@
|
||||
|
||||
"F4" AZZERA_TOTALI</prescript>
|
||||
</section>
|
||||
<section type="Body" />
|
||||
<section type="Body" level="1">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Body" level="" hidden="" page_break="" can_break="" pattern="1" />
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Body" level="1" hidden="" page_break="" can_break="" pattern="1">
|
||||
<font face="Arial" size="8" />
|
||||
<field type="Stringa" width="24" id="101" pattern="1">
|
||||
<field deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="24" codval="" id="101" pattern="1" hide_zero="" text="">
|
||||
<source>CODCONTO</source>
|
||||
<prescript description="B1.101 PRESCRIPT">CA_FORMAT_CONTO</prescript>
|
||||
</field>
|
||||
<field x="25" type="Stringa" width="50" id="102" pattern="1">
|
||||
<field x="25" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="50" codval="" id="102" pattern="1" hide_zero="" text="">
|
||||
<source>DESCR</source>
|
||||
</field>
|
||||
<field x="78" type="Valuta" align="right" width="13" id="103" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="78" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="103" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>SALDO:INI_DAREP</source>
|
||||
<postscript description="B1.103 POSTSCRIPT">MESSAGE ADD,F2.103|ADD,F3.103|ADD,F4.103
|
||||
</postscript>
|
||||
</field>
|
||||
<field x="92" type="Valuta" align="right" width="13" id="104" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="92" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="104" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>SALDO:INI_AVEREP</source>
|
||||
<postscript description="B1.104 POSTSCRIPT">MESSAGE ADD,F2.104|ADD,F3.104|ADD,F4.104</postscript>
|
||||
</field>
|
||||
<field x="107" type="Valuta" align="right" width="13" id="105" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="107" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="105" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>SALDO:MOV_DAREP</source>
|
||||
<postscript description="B1.105 POSTSCRIPT">MESSAGE ADD,F2.105|ADD,F3.105|ADD,F4.105</postscript>
|
||||
</field>
|
||||
<field x="121" type="Valuta" align="right" width="13" id="106" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="121" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="106" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>SALDO:MOV_AVEREP</source>
|
||||
<postscript description="B1.106 POSTSCRIPT">MESSAGE ADD,F2.106|ADD,F3.106|ADD,F4.106</postscript>
|
||||
</field>
|
||||
<field x="136" type="Valuta" align="right" width="13" id="107" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="136" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="107" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>SALDO:FIN_DAREP</source>
|
||||
<postscript description="B1.107 POSTSCRIPT">MESSAGE ADD,F2.107|ADD,F3.107|ADD,F4.107</postscript>
|
||||
</field>
|
||||
<field x="150" type="Valuta" align="right" width="13" id="108" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="150" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="108" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>SALDO:FIN_AVEREP</source>
|
||||
<postscript description="B1.108 POSTSCRIPT">MESSAGE ADD,F2.108|ADD,F3.108|ADD,F4.108</postscript>
|
||||
</field>
|
||||
<field x="78" y="1" type="Valuta" align="right" width="13" id="203" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="78" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="203" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>SALDO:INI_DAREC</source>
|
||||
<postscript description="B1.203 POSTSCRIPT">MESSAGE ADD,F2.103|ADD,F3.103|ADD,F4.103
|
||||
</postscript>
|
||||
</field>
|
||||
<field x="92" y="1" type="Valuta" align="right" width="13" id="204" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="92" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="204" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>SALDO:INI_AVEREC</source>
|
||||
<postscript description="B1.204 POSTSCRIPT">MESSAGE ADD,F2.104|ADD,F3.104|ADD,F4.104</postscript>
|
||||
</field>
|
||||
<field x="107" y="1" type="Valuta" align="right" width="13" id="205" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="107" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="205" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>SALDO:MOV_DAREC</source>
|
||||
<postscript description="B1.205 POSTSCRIPT">MESSAGE ADD,F2.105|ADD,F3.105|ADD,F4.105</postscript>
|
||||
</field>
|
||||
<field x="121" y="1" type="Valuta" align="right" width="13" id="206" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="121" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="206" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>SALDO:MOV_AVEREC</source>
|
||||
<postscript description="B1.206 POSTSCRIPT">MESSAGE ADD,F2.106|ADD,F3.106|ADD,F4.106</postscript>
|
||||
</field>
|
||||
<field x="136" y="1" type="Valuta" align="right" width="13" id="207" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="136" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="207" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>SALDO:FIN_DAREC</source>
|
||||
<postscript description="B1.207 POSTSCRIPT">MESSAGE ADD,F2.107|ADD,F3.107|ADD,F4.107</postscript>
|
||||
</field>
|
||||
<field x="150" y="1" type="Valuta" align="right" width="13" id="208" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="150" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="208" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>SALDO:FIN_AVEREC</source>
|
||||
<postscript description="B1.208 POSTSCRIPT">MESSAGE ADD,F2.108|ADD,F3.108|ADD,F4.108</postscript>
|
||||
</field>
|
||||
<field x="78" y="2" type="Valuta" align="right" width="13" id="303" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="78" y="2" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="303" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>#103 + #203</source>
|
||||
<prescript description="B1.303 PRESCRIPT">303 DARE_AVERE</prescript>
|
||||
<postscript description="B1.303 POSTSCRIPT">MESSAGE ADD,F2.303|ADD,F3.303|ADD,F4.303
|
||||
</postscript>
|
||||
</field>
|
||||
<field x="92" y="2" type="Valuta" align="right" width="13" id="304" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="92" y="2" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="304" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>#104 + #204</source>
|
||||
<postscript description="B1.304 POSTSCRIPT">MESSAGE ADD,F2.304|ADD,F3.304|ADD,F4.304</postscript>
|
||||
</field>
|
||||
<field x="107" y="2" type="Valuta" align="right" width="13" id="305" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="107" y="2" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="305" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>#105 + #205</source>
|
||||
<prescript description="B1.305 PRESCRIPT">305 DARE_AVERE</prescript>
|
||||
<postscript description="B1.305 POSTSCRIPT">MESSAGE ADD,F2.305|ADD,F3.305|ADD,F4.305</postscript>
|
||||
</field>
|
||||
<field x="121" y="2" type="Valuta" align="right" width="13" id="306" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="121" y="2" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="306" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>#106 + #206</source>
|
||||
<postscript description="B1.306 POSTSCRIPT">MESSAGE ADD,F2.306|ADD,F3.306|ADD,F4.306</postscript>
|
||||
</field>
|
||||
<field x="136" y="2" type="Valuta" align="right" width="13" id="307" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="136" y="2" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="307" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>#107 + #207</source>
|
||||
<prescript description="B1.307 PRESCRIPT">307 DARE_AVERE</prescript>
|
||||
<postscript description="B1.307 POSTSCRIPT">MESSAGE ADD,F2.307|ADD,F3.307|ADD,F4.307</postscript>
|
||||
</field>
|
||||
<field x="150" y="2" type="Valuta" align="right" width="13" id="308" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="150" y="2" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="308" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>#108 + #208</source>
|
||||
<postscript description="B1.308 POSTSCRIPT">MESSAGE ADD,F2.308|ADD,F3.308|ADD,F4.308</postscript>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Foot">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Foot" level="" hidden="" page_break="" can_break="" pattern="1">
|
||||
<font face="Arial" size="8" />
|
||||
<field border="1" x="1" y="0.5" type="Linea" width="167" height="0" pattern="1" />
|
||||
<field x="140" y="1.25" type="Testo" width="5" pattern="1" text="Pag." />
|
||||
<field x="145.19" y="1.25" type="Numero" align="right" width="4" pattern="1">
|
||||
<field border="1" x="1" y="0.5" deactivated="" type="Linea" hidden="" link="" dynamic_height="" shade_offset="" width="167" codval="" height="0" id="" pattern="1" hide_zero="" text="" />
|
||||
<field x="140" y="1.25" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="5" codval="" id="" pattern="1" hide_zero="" text="Pag." />
|
||||
<field x="145.19" y="1.25" deactivated="" type="Numero" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="4" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>#REPORT.PAGE</source>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Foot" level="1" />
|
||||
<section type="Foot" level="2">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Foot" level="1" hidden="" page_break="" can_break="" pattern="1" />
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Foot" level="2" hidden="" page_break="" can_break="" pattern="1">
|
||||
<condition>#101 != ""</condition>
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
<field type="Stringa" width="23" id="101" pattern="1">
|
||||
<field deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="23" codval="" id="101" pattern="1" hide_zero="" text="">
|
||||
<prescript description="F2.101 PRESCRIPT">CA_FORMAT_CONTO</prescript>
|
||||
</field>
|
||||
<field x="25" type="Stringa" width="50" id="102" pattern="1" />
|
||||
<field x="78" type="Valuta" align="right" width="13" id="103" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript>103 DARE_AVERE</prescript>
|
||||
<field x="25" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="50" codval="" id="102" pattern="1" hide_zero="" text="" />
|
||||
<field x="78" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="103" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript description="">103 DARE_AVERE</prescript>
|
||||
</field>
|
||||
<field x="92" type="Valuta" align="right" width="13" id="104" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="107" type="Valuta" align="right" width="13" id="105" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="121" type="Valuta" align="right" width="13" id="106" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="136" type="Valuta" align="right" width="13" id="107" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript>107 DARE_AVERE</prescript>
|
||||
<field x="92" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="104" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="107" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="105" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="121" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="106" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="136" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="107" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript description="">107 DARE_AVERE</prescript>
|
||||
</field>
|
||||
<field x="150" type="Valuta" align="right" width="13" id="108" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="78" y="1" type="Valuta" align="right" width="13" id="203" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript>103 DARE_AVERE</prescript>
|
||||
<field x="150" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="108" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="78" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="203" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript description="">103 DARE_AVERE</prescript>
|
||||
</field>
|
||||
<field x="92" y="1" type="Valuta" align="right" width="13" id="204" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="107" y="1" type="Valuta" align="right" width="13" id="205" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="121" y="1" type="Valuta" align="right" width="13" id="206" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="136" y="1" type="Valuta" align="right" width="13" id="207" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript>107 DARE_AVERE</prescript>
|
||||
<field x="92" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="204" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="107" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="205" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="121" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="206" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="136" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="207" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript description="">107 DARE_AVERE</prescript>
|
||||
</field>
|
||||
<field x="150" y="1" type="Valuta" align="right" width="13" id="208" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="78" y="2" type="Valuta" align="right" width="13" id="303" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript>103 DARE_AVERE</prescript>
|
||||
<field x="150" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="208" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="78" y="2" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="303" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript description="">103 DARE_AVERE</prescript>
|
||||
</field>
|
||||
<field x="92" y="2" type="Valuta" align="right" width="13" id="304" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="107" y="2" type="Valuta" align="right" width="13" id="305" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="121" y="2" type="Valuta" align="right" width="13" id="306" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="136" y="2" type="Valuta" align="right" width="13" id="307" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript>107 DARE_AVERE</prescript>
|
||||
<field x="92" y="2" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="304" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="107" y="2" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="305" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="121" y="2" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="306" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="136" y="2" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="307" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript description="">107 DARE_AVERE</prescript>
|
||||
</field>
|
||||
<field x="150" y="2" type="Valuta" align="right" width="13" id="308" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="150" y="2" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="308" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
</section>
|
||||
<section type="Foot" level="3">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Foot" level="3" hidden="" page_break="" can_break="" pattern="1">
|
||||
<condition>#101 != ""</condition>
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
<field type="Stringa" width="23" id="101" pattern="1">
|
||||
<field deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="23" codval="" id="101" pattern="1" hide_zero="" text="">
|
||||
<prescript description="F3.101 PRESCRIPT">CA_FORMAT_CONTO</prescript>
|
||||
</field>
|
||||
<field x="25" type="Stringa" width="50" id="102" pattern="1" />
|
||||
<field x="78" type="Valuta" align="right" width="13" id="103" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript>103 DARE_AVERE</prescript>
|
||||
<field x="25" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="50" codval="" id="102" pattern="1" hide_zero="" text="" />
|
||||
<field x="78" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="103" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript description="">103 DARE_AVERE</prescript>
|
||||
</field>
|
||||
<field x="92" type="Valuta" align="right" width="13" id="104" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="107" type="Valuta" align="right" width="13" id="105" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="121" type="Valuta" align="right" width="13" id="106" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="136" type="Valuta" align="right" width="13" id="107" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript>107 DARE_AVERE</prescript>
|
||||
<field x="92" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="104" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="107" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="105" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="121" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="106" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="136" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="107" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript description="">107 DARE_AVERE</prescript>
|
||||
</field>
|
||||
<field x="150" type="Valuta" align="right" width="13" id="108" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="78" y="1" type="Valuta" align="right" width="13" id="203" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript>103 DARE_AVERE</prescript>
|
||||
<field x="150" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="108" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="78" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="203" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript description="">103 DARE_AVERE</prescript>
|
||||
</field>
|
||||
<field x="92" y="1" type="Valuta" align="right" width="13" id="204" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="107" y="1" type="Valuta" align="right" width="13" id="205" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="121" y="1" type="Valuta" align="right" width="13" id="206" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="136" y="1" type="Valuta" align="right" width="13" id="207" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript>107 DARE_AVERE</prescript>
|
||||
<field x="92" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="204" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="107" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="205" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="121" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="206" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="136" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="207" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript description="">107 DARE_AVERE</prescript>
|
||||
</field>
|
||||
<field x="150" y="1" type="Valuta" align="right" width="13" id="208" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="78" y="2" type="Valuta" align="right" width="13" id="303" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript>103 DARE_AVERE</prescript>
|
||||
<field x="150" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="208" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="78" y="2" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="303" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript description="">103 DARE_AVERE</prescript>
|
||||
</field>
|
||||
<field x="92" y="2" type="Valuta" align="right" width="13" id="304" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="107" y="2" type="Valuta" align="right" width="13" id="305" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="121" y="2" type="Valuta" align="right" width="13" id="306" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="136" y="2" type="Valuta" align="right" width="13" id="307" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript>107 DARE_AVERE</prescript>
|
||||
<field x="92" y="2" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="304" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="107" y="2" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="305" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="121" y="2" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="306" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="136" y="2" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="307" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript description="">107 DARE_AVERE</prescript>
|
||||
</field>
|
||||
<field x="150" y="2" type="Valuta" align="right" width="13" id="308" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="150" y="2" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="308" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
</section>
|
||||
<section type="Foot" level="4">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Foot" level="4" hidden="" page_break="" can_break="" pattern="1">
|
||||
<condition>#101 != ""</condition>
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
<field type="Stringa" width="23" id="101" pattern="1">
|
||||
<field deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="23" codval="" id="101" pattern="1" hide_zero="" text="">
|
||||
<prescript description="F4.101 PRESCRIPT">CA_FORMAT_CONTO</prescript>
|
||||
</field>
|
||||
<field x="25" type="Stringa" width="50" id="102" pattern="1" />
|
||||
<field x="78" type="Valuta" align="right" width="13" id="103" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="25" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="50" codval="" id="102" pattern="1" hide_zero="" text="" />
|
||||
<field x="78" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="103" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript description="F4.103 PRESCRIPT">103 DARE_AVERE</prescript>
|
||||
</field>
|
||||
<field x="92" type="Valuta" align="right" width="13" id="104" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="107" type="Valuta" align="right" width="13" id="105" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="121" type="Valuta" align="right" width="13" id="106" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="136" type="Valuta" align="right" width="13" id="107" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="92" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="104" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="107" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="105" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="121" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="106" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="136" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="107" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript description="F4.107 PRESCRIPT">107 DARE_AVERE</prescript>
|
||||
</field>
|
||||
<field x="150" type="Valuta" align="right" width="13" id="108" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="78" y="1" type="Valuta" align="right" width="13" id="203" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="150" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="108" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="78" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="203" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript description="F4.203 PRESCRIPT">103 DARE_AVERE</prescript>
|
||||
</field>
|
||||
<field x="92" y="1" type="Valuta" align="right" width="13" id="204" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="107" y="1" type="Valuta" align="right" width="13" id="205" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="121" y="1" type="Valuta" align="right" width="13" id="206" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="136" y="1" type="Valuta" align="right" width="13" id="207" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="92" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="204" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="107" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="205" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="121" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="206" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="136" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="207" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript description="F4.207 PRESCRIPT">107 DARE_AVERE</prescript>
|
||||
</field>
|
||||
<field x="150" y="1" type="Valuta" align="right" width="13" id="208" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="78" y="2" type="Valuta" align="right" width="13" id="303" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="150" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="208" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="78" y="2" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="303" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript description="F4.303 PRESCRIPT">103 DARE_AVERE</prescript>
|
||||
</field>
|
||||
<field x="92" y="2" type="Valuta" align="right" width="13" id="304" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="107" y="2" type="Valuta" align="right" width="13" id="305" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="121" y="2" type="Valuta" align="right" width="13" id="306" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="136" y="2" type="Valuta" align="right" width="13" id="307" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="92" y="2" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="304" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="107" y="2" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="305" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="121" y="2" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="306" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="136" y="2" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="307" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript description="F4.307 PRESCRIPT">107 DARE_AVERE</prescript>
|
||||
</field>
|
||||
<field x="150" y="2" type="Valuta" align="right" width="13" id="308" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="150" y="2" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="308" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
</section>
|
||||
<sql>USE PCONANA</sql>
|
||||
<prescript description="PRESCRIPT">: AZZERA_TOTALI ( ID_SEC - )
|
||||
|
@ -1,79 +1,88 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<report name="ca3300b" orientation="2" lpi="8" command="ca3 -2" class="ca3300b">
|
||||
<report libraries="" page_merge="" save_printer="" name="ca3300b" use_printer_font="" orientation="2" page_split="" lpi="8" command="ca3 -2" class="ca3300b">
|
||||
<description>Bilancio di verifica (cons - prev)</description>
|
||||
<font face="Courier New" size="8" />
|
||||
<section type="Head">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Head" level="" hidden="" page_break="" can_break="" pattern="1">
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
<field border="1" y="0.25" type="Linea" width="167" height="0" pattern="1" />
|
||||
<field x="141" y="0.5" type="Testo" align="center" width="25" height="1.5" pattern="1" text="SALDO FINALE" />
|
||||
<field x="83.56" y="0.66" type="Testo" align="center" width="25" pattern="1" text="SALDO INIZIALE" />
|
||||
<field x="111.06" y="0.66" type="Testo" align="center" width="27" pattern="1" text="MOVIMENTI DEL PERIODO" />
|
||||
<field x="0.06" y="1.16" type="Testo" width="10" pattern="1" text="Conto" />
|
||||
<field x="30.06" y="1.16" type="Testo" width="15" pattern="1" text="Descrizione" />
|
||||
<field x="78" y="1.66" type="Testo" align="right" width="13" pattern="1" text="Dare" />
|
||||
<field x="92" y="1.66" type="Testo" align="right" width="13" pattern="1" text="Avere" />
|
||||
<field x="107" y="1.66" type="Testo" align="right" width="13" pattern="1" text="Dare" />
|
||||
<field x="121" y="1.66" type="Testo" align="right" width="13" pattern="1" text="Avere" />
|
||||
<field x="136" y="1.66" type="Testo" align="right" width="13" pattern="1" text="Dare" />
|
||||
<field x="150" y="1.66" type="Testo" align="right" width="13" pattern="1" text="Avere" />
|
||||
<field border="1" y="2.75" type="Linea" width="167" height="0" pattern="1" />
|
||||
<field border="1" y="0.25" deactivated="" type="Linea" hidden="" link="" dynamic_height="" shade_offset="" width="167" codval="" height="0" id="" pattern="1" hide_zero="" text="" />
|
||||
<field x="141" y="0.5" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="25" codval="" height="1.5" id="" pattern="1" hide_zero="" text="SALDO FINALE" />
|
||||
<field x="83.56" y="0.66" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="25" codval="" id="" pattern="1" hide_zero="" text="SALDO INIZIALE" />
|
||||
<field x="111.06" y="0.66" deactivated="" type="Testo" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="27" codval="" id="" pattern="1" hide_zero="" text="MOVIMENTI DEL PERIODO" />
|
||||
<field x="0.06" y="1.16" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="10" codval="" id="" pattern="1" hide_zero="" text="Conto" />
|
||||
<field x="30.06" y="1.16" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="15" codval="" id="" pattern="1" hide_zero="" text="Descrizione" />
|
||||
<field x="78" y="1.66" deactivated="" type="Testo" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="" pattern="1" hide_zero="" text="Dare" />
|
||||
<field x="92" y="1.66" deactivated="" type="Testo" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="" pattern="1" hide_zero="" text="Avere" />
|
||||
<field x="107" y="1.66" deactivated="" type="Testo" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="" pattern="1" hide_zero="" text="Dare" />
|
||||
<field x="121" y="1.66" deactivated="" type="Testo" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="" pattern="1" hide_zero="" text="Avere" />
|
||||
<field x="136" y="1.66" deactivated="" type="Testo" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="" pattern="1" hide_zero="" text="Dare" />
|
||||
<field x="150" y="1.66" deactivated="" type="Testo" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="" pattern="1" hide_zero="" text="Avere" />
|
||||
<field border="1" y="2.75" deactivated="" type="Linea" hidden="" link="" dynamic_height="" shade_offset="" width="167" codval="" height="0" id="" pattern="1" hide_zero="" text="" />
|
||||
</section>
|
||||
<section type="Head" level="1">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Head" level="1" hidden="" page_break="" can_break="" pattern="1">
|
||||
<font face="Arial" bold="1" size="9" />
|
||||
<prescript description="H1 PRESCRIPT">"F1" AZZERA_TOTALI</prescript>
|
||||
<field border="1" radius="100" x="40.34" y="0.66" type="Rettangolo" shade_offset="25" width="80" height="3.5" />
|
||||
<field x="62.5" y="1.5" type="Testo" valign="center" align="center" width="35" height="2" pattern="1" text="BILANCIO DI VERIFICA">
|
||||
<field border="1" radius="100" x="40.34" y="0.66" deactivated="" type="Rettangolo" hidden="" link="" dynamic_height="" shade_offset="25" width="80" codval="" height="3.5" id="" pattern="2" hide_zero="" text="" />
|
||||
<field x="62.5" y="1.5" deactivated="" type="Testo" valign="center" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="35" codval="" height="2" id="" pattern="1" hide_zero="" text="BILANCIO DI VERIFICA">
|
||||
<font face="Arial" bold="1" size="14" />
|
||||
</field>
|
||||
<field x="0.75" y="5.5" type="Stringa" width="60" height="1.25" pattern="1">
|
||||
<field x="0.75" y="5.5" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="60" codval="" height="1.25" id="" pattern="1" hide_zero="" text="">
|
||||
<source>#SYSTEM.RAGSOC</source>
|
||||
</field>
|
||||
<field x="70.75" y="5.5" type="Testo" width="20" height="1.25" pattern="1" text="Data di stampa:">
|
||||
<field x="70.75" y="5.5" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="20" codval="" height="1.25" id="" pattern="1" hide_zero="" text="Data di stampa:">
|
||||
<font face="Arial" size="9" />
|
||||
</field>
|
||||
<field x="90.75" y="5.5" type="Data" width="15" height="1.25" pattern="1">
|
||||
<field x="90.75" y="5.5" deactivated="" type="Data" hidden="" link="" dynamic_height="" shade_offset="" width="15" codval="" height="1.25" id="" pattern="1" hide_zero="" text="">
|
||||
<source>#SYSTEM.DATE</source>
|
||||
</field>
|
||||
<field x="0.75" y="7.08" type="Testo" width="20" pattern="1" text="Movimenti dal:">
|
||||
<field x="0.75" y="7.08" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="20" codval="" id="" pattern="1" hide_zero="" text="Movimenti dal:">
|
||||
<font face="Arial" size="9" />
|
||||
<prescript>MESSAGE ISAMREAD,COMMESSE,CODCMS=#COMMESSA,DESCRIZ</prescript>
|
||||
<prescript description="">MESSAGE ISAMREAD,COMMESSE,CODCMS=#COMMESSA,DESCRIZ</prescript>
|
||||
</field>
|
||||
<field x="20.75" y="7.08" type="Data" width="15" pattern="1">
|
||||
<field x="20.75" y="7.08" deactivated="" type="Data" hidden="" link="" dynamic_height="" shade_offset="" width="15" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>#DATA_INIZIALE</source>
|
||||
</field>
|
||||
<field x="37.75" y="7.08" type="Testo" width="4" pattern="1" text="al:" />
|
||||
<field x="42.75" y="7.08" type="Data" width="15" pattern="1">
|
||||
<field x="37.75" y="7.08" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="4" codval="" id="" pattern="1" hide_zero="" text="al:" />
|
||||
<field x="42.75" y="7.08" deactivated="" type="Data" hidden="" link="" dynamic_height="" shade_offset="" width="15" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>#DATA_FINALE</source>
|
||||
</field>
|
||||
<field x="0.75" y="8.33" type="Testo" width="20" pattern="1" text="Centro di costo:">
|
||||
<field x="0.75" y="8.33" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="20" codval="" id="" pattern="1" hide_zero="" text="Centro di costo:">
|
||||
<font face="Arial" size="9" />
|
||||
</field>
|
||||
<field x="20.75" y="8.33" type="Stringa" width="24" pattern="1">
|
||||
<field x="20.75" y="8.33" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="24" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>#COSTO</source>
|
||||
</field>
|
||||
<field x="45.75" y="8.33" type="Stringa" width="70" pattern="1">
|
||||
<prescript>MESSAGE ISAMREAD,CDC,CODCOSTO=#COSTO,DESCRIZ</prescript>
|
||||
<field x="45.75" y="8.33" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="70" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<prescript description="">MESSAGE ISAMREAD,CDC,CODCOSTO=#COSTO,DESCRIZ</prescript>
|
||||
</field>
|
||||
<field x="0.75" y="9.58" type="Testo" width="20" pattern="1" text="Commessa:">
|
||||
<field x="0.75" y="9.58" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="20" codval="" id="" pattern="1" hide_zero="" text="Commessa:">
|
||||
<font face="Arial" size="9" />
|
||||
</field>
|
||||
<field x="20.75" y="9.58" type="Stringa" width="24" pattern="1">
|
||||
<field x="20.75" y="9.58" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="24" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>#COMMESSA</source>
|
||||
</field>
|
||||
<field x="45.75" y="9.58" type="Stringa" width="70" pattern="1">
|
||||
<prescript>MESSAGE ISAMREAD,COMMESSE,CODCMS=#COMMESSA,DESCRIZ</prescript>
|
||||
<field x="45.75" y="9.58" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="70" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<prescript description="">MESSAGE ISAMREAD,COMMESSE,CODCMS=#COMMESSA,DESCRIZ</prescript>
|
||||
</field>
|
||||
<field x="0.75" y="10.83" type="Testo" width="20" pattern="1" text="Fase:">
|
||||
<field x="0.75" y="10.83" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="20" codval="" id="" pattern="1" hide_zero="" text="Fase:">
|
||||
<font face="Arial" size="9" />
|
||||
</field>
|
||||
<field x="20.75" y="10.83" type="Stringa" width="13" pattern="1">
|
||||
<field x="20.75" y="10.83" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="13" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>#FASE</source>
|
||||
</field>
|
||||
<field x="45.75" y="10.83" type="Stringa" width="70" pattern="1">
|
||||
<prescript>MESSAGE ISAMREAD,FASI,CODCMSFAS=#CMSCDC!CODFASE=#FASE,DESCRIZ</prescript>
|
||||
<field x="45.75" y="10.83" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="70" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<prescript description="">MESSAGE ISAMREAD,FASI,CODCMSFAS=#CMSCDC!CODFASE=#FASE,DESCRIZ</prescript>
|
||||
</field>
|
||||
<field x="0.5" y="12" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="20" codval="" id="" pattern="1" hide_zero="" text="Contabilit&#E0; separata:">
|
||||
<font face="Arial" size="9" />
|
||||
</field>
|
||||
<field x="20.5" y="12" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="13" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>#CONTSEP</source>
|
||||
</field>
|
||||
<field x="45.69" y="12" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="70" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<prescript description="">MESSAGE TABLEREAD,NPENT,CODTAB=#CONTSEP,S0</prescript>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Head" level="2">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Head" level="2" hidden="" page_break="" can_break="" pattern="1">
|
||||
<condition>CODCONTO:2!=""</condition>
|
||||
<groupby>CODCONTO:1</groupby>
|
||||
<prescript description="H2 PRESCRIPT">"CODCONTO:1" @
|
||||
@ -82,7 +91,7 @@
|
||||
"F2" AZZERA_TOTALI
|
||||
</prescript>
|
||||
</section>
|
||||
<section type="Head" level="3">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Head" level="3" hidden="" page_break="" can_break="" pattern="1">
|
||||
<condition>CODCONTO:3!=""</condition>
|
||||
<groupby>CODCONTO:2</groupby>
|
||||
<prescript description="H3 PRESCRIPT">"CODCONTO:2" @
|
||||
@ -90,7 +99,7 @@
|
||||
|
||||
"F3" AZZERA_TOTALI</prescript>
|
||||
</section>
|
||||
<section type="Head" level="4">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Head" level="4" hidden="" page_break="" can_break="" pattern="1">
|
||||
<condition>CODCONTO:4 != ""</condition>
|
||||
<groupby>CODCONTO:3</groupby>
|
||||
<prescript description="H4 PRESCRIPT">"CODCONTO:3" @
|
||||
@ -98,130 +107,130 @@
|
||||
|
||||
"F4" AZZERA_TOTALI</prescript>
|
||||
</section>
|
||||
<section type="Body" />
|
||||
<section type="Body" level="1" bg_color="#C0C0C0">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Body" level="" hidden="" page_break="" can_break="" pattern="1" />
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Body" level="1" hidden="" bg_color="#C0C0C0" page_break="" can_break="" pattern="1">
|
||||
<font face="Arial" size="8" />
|
||||
<field x="78" type="Valuta" align="right" width="13" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="78" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>SALDO:INI_DARE</source>
|
||||
<postscript description="B1.0 POSTSCRIPT">MESSAGE ADD,F1.103|ADD,F2.103|ADD,F3.103|ADD,F4.103
|
||||
</postscript>
|
||||
</field>
|
||||
<field x="92" type="Valuta" align="right" width="13" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="92" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>SALDO:INI_AVERE</source>
|
||||
<postscript description="B1.0 POSTSCRIPT">MESSAGE ADD,F1.104|ADD,F2.104|ADD,F3.104|ADD,F4.104</postscript>
|
||||
</field>
|
||||
<field x="107" type="Valuta" align="right" width="13" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="107" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>SALDO:MOV_DARE</source>
|
||||
<postscript description="B1.0 POSTSCRIPT">MESSAGE ADD,F1.105|ADD,F2.105|ADD,F3.105|ADD,F4.105</postscript>
|
||||
</field>
|
||||
<field x="121" type="Valuta" align="right" width="13" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="121" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>SALDO:MOV_AVERE</source>
|
||||
<postscript description="B1.0 POSTSCRIPT">MESSAGE ADD,F1.106|ADD,F2.106|ADD,F3.106|ADD,F4.106</postscript>
|
||||
</field>
|
||||
<field x="136" type="Valuta" align="right" width="13" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="136" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>SALDO:FIN_DARE</source>
|
||||
<postscript description="B1.0 POSTSCRIPT">MESSAGE ADD,F1.107|ADD,F2.107|ADD,F3.107|ADD,F4.107</postscript>
|
||||
</field>
|
||||
<field x="150" type="Valuta" align="right" width="13" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="150" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>SALDO:FIN_AVERE</source>
|
||||
<postscript description="B1.0 POSTSCRIPT">MESSAGE ADD,F1.108|ADD,F2.108|ADD,F3.108|ADD,F4.108</postscript>
|
||||
</field>
|
||||
<field type="Stringa" width="24" id="101" pattern="1">
|
||||
<field deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="24" codval="" id="101" pattern="1" hide_zero="" text="">
|
||||
<source>CODCONTO</source>
|
||||
<prescript description="B1.101 PRESCRIPT">CA_FORMAT_CONTO</prescript>
|
||||
</field>
|
||||
<field x="25" type="Stringa" width="50" id="102" pattern="1">
|
||||
<field x="25" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="50" codval="" id="102" pattern="1" hide_zero="" text="">
|
||||
<source>DESCR</source>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Foot">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Foot" level="" hidden="" page_break="" can_break="" pattern="1">
|
||||
<font face="Arial" bold="1" size="9" />
|
||||
<field border="1" x="1" y="0.5" type="Linea" width="164" height="0" pattern="1" />
|
||||
<field x="150" y="0.75" type="Testo" width="6" pattern="1" text="Pag." />
|
||||
<field x="156" y="0.75" type="Numero" align="right" width="4" pattern="1">
|
||||
<field border="1" x="1" y="0.5" deactivated="" type="Linea" hidden="" link="" dynamic_height="" shade_offset="" width="164" codval="" height="0" id="" pattern="1" hide_zero="" text="" />
|
||||
<field x="150" y="0.75" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="6" codval="" id="" pattern="1" hide_zero="" text="Pag." />
|
||||
<field x="156" y="0.75" deactivated="" type="Numero" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="4" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<source>#REPORT.PAGE</source>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Foot" level="1">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Foot" level="1" hidden="" page_break="" can_break="" pattern="1">
|
||||
<font face="Arial" bold="1" size="9" />
|
||||
<field border="2" y="0.5" type="Linea" width="167" height="0" pattern="1" />
|
||||
<field x="25" y="1" type="Testo" width="50" id="102" pattern="1" text="Totale">
|
||||
<field border="2" y="0.5" deactivated="" type="Linea" hidden="" link="" dynamic_height="" shade_offset="" width="167" codval="" height="0" id="" pattern="1" hide_zero="" text="" />
|
||||
<field x="25" y="1" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="50" codval="" id="102" pattern="1" hide_zero="" text="Totale">
|
||||
<prescript description="F1.102 PRESCRIPT">MESSAGE ISAMREAD,PCONANA,CODCONTO=#102,DESCR</prescript>
|
||||
</field>
|
||||
<field x="78" y="1" type="Valuta" align="right" width="13" id="103" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript>103 DARE_AVERE</prescript>
|
||||
<field x="78" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="103" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript description="">103 DARE_AVERE</prescript>
|
||||
</field>
|
||||
<field x="92" y="1" type="Valuta" align="right" width="13" id="104" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="107" y="1" type="Valuta" align="right" width="13" id="105" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="121" y="1" type="Valuta" align="right" width="13" id="106" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="136" y="1" type="Valuta" align="right" width="13" id="107" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript>107 DARE_AVERE</prescript>
|
||||
<field x="92" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="104" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="107" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="105" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="121" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="106" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="136" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="107" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript description="">107 DARE_AVERE</prescript>
|
||||
</field>
|
||||
<field x="150" y="1" type="Valuta" align="right" width="13" id="108" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="150" y="1" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="108" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
</section>
|
||||
<section type="Foot" level="2" height="2">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Foot" level="2" hidden="" height="2" page_break="" can_break="" pattern="1">
|
||||
<condition>#101 != ""</condition>
|
||||
<font italic="1" face="Arial" bold="1" size="8" />
|
||||
<field border="1" y="2" type="Linea" width="167" height="0" pattern="1" />
|
||||
<field y="0.5" type="Stringa" width="23" id="101" pattern="1">
|
||||
<field border="1" y="2" deactivated="" type="Linea" hidden="" link="" dynamic_height="" shade_offset="" width="167" codval="" height="0" id="" pattern="1" hide_zero="" text="" />
|
||||
<field y="0.5" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="23" codval="" id="101" pattern="1" hide_zero="" text="">
|
||||
<prescript description="F2.101 PRESCRIPT">#THIS @ #102 !
|
||||
CA_FORMAT_CONTO</prescript>
|
||||
</field>
|
||||
<field x="25" y="0.5" type="Stringa" width="50" id="102" pattern="1">
|
||||
<field x="25" y="0.5" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="50" codval="" id="102" pattern="1" hide_zero="" text="">
|
||||
<prescript description="F2.102 PRESCRIPT">CA_FORMAT_CONTO_DESCR</prescript>
|
||||
</field>
|
||||
<field x="78" y="0.5" type="Valuta" align="right" width="13" id="103" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="78" y="0.5" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="103" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript description="F2.103 PRESCRIPT">103 DARE_AVERE</prescript>
|
||||
</field>
|
||||
<field x="92" y="0.5" type="Valuta" align="right" width="13" id="104" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="107" y="0.5" type="Valuta" align="right" width="13" id="105" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="121" y="0.5" type="Valuta" align="right" width="13" id="106" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="136" y="0.5" type="Valuta" align="right" width="13" id="107" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="92" y="0.5" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="104" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="107" y="0.5" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="105" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="121" y="0.5" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="106" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="136" y="0.5" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="107" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript description="F2.107 PRESCRIPT">107 DARE_AVERE</prescript>
|
||||
</field>
|
||||
<field x="150" y="0.5" type="Valuta" align="right" width="13" id="108" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="150" y="0.5" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="108" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
</section>
|
||||
<section type="Foot" level="3" height="1.5">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Foot" level="3" hidden="" height="1.5" page_break="" can_break="" pattern="1">
|
||||
<condition>#101 != ""</condition>
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
<field y="0.5" type="Stringa" width="23" id="101" pattern="1">
|
||||
<field y="0.5" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="23" codval="" id="101" pattern="1" hide_zero="" text="">
|
||||
<prescript description="F3.101 PRESCRIPT">#THIS @ #102 !
|
||||
CA_FORMAT_CONTO</prescript>
|
||||
</field>
|
||||
<field x="25" y="0.5" type="Stringa" width="50" id="102" pattern="1">
|
||||
<field x="25" y="0.5" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="50" codval="" id="102" pattern="1" hide_zero="" text="">
|
||||
<prescript description="F3.102 PRESCRIPT">CA_FORMAT_CONTO_DESCR</prescript>
|
||||
</field>
|
||||
<field x="78" y="0.5" type="Valuta" align="right" width="13" id="103" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="78" y="0.5" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="103" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript description="F3.103 PRESCRIPT">103 DARE_AVERE</prescript>
|
||||
</field>
|
||||
<field x="92" y="0.5" type="Valuta" align="right" width="13" id="104" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="107" y="0.5" type="Valuta" align="right" width="13" id="105" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="121" y="0.5" type="Valuta" align="right" width="13" id="106" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="136" y="0.5" type="Valuta" align="right" width="13" id="107" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="92" y="0.5" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="104" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="107" y="0.5" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="105" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="121" y="0.5" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="106" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="136" y="0.5" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="107" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript description="F3.107 PRESCRIPT">107 DARE_AVERE</prescript>
|
||||
</field>
|
||||
<field x="150" y="0.5" type="Valuta" align="right" width="13" id="108" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="150" y="0.5" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="108" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
</section>
|
||||
<section type="Foot" level="4" height="1.5">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Foot" level="4" hidden="" height="1.5" page_break="" can_break="" pattern="1">
|
||||
<condition>#101 != ""</condition>
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
<field y="0.5" type="Stringa" width="23" id="101" pattern="1">
|
||||
<field y="0.5" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="23" codval="" id="101" pattern="1" hide_zero="" text="">
|
||||
<prescript description="F4.101 PRESCRIPT">#THIS @ #102 !
|
||||
CA_FORMAT_CONTO</prescript>
|
||||
</field>
|
||||
<field x="25" y="0.5" type="Stringa" width="50" id="102" pattern="1">
|
||||
<field x="25" y="0.5" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="50" codval="" id="102" pattern="1" hide_zero="" text="">
|
||||
<prescript description="F4.102 PRESCRIPT">CA_FORMAT_CONTO_DESCR</prescript>
|
||||
</field>
|
||||
<field x="78" y="0.5" type="Valuta" align="right" width="13" id="103" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="78" y="0.5" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="103" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript description="F4.103 PRESCRIPT">103 DARE_AVERE</prescript>
|
||||
</field>
|
||||
<field x="92" y="0.5" type="Valuta" align="right" width="13" id="104" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="107" y="0.5" type="Valuta" align="right" width="13" id="105" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="121" y="0.5" type="Valuta" align="right" width="13" id="106" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="136" y="0.5" type="Valuta" align="right" width="13" id="107" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="92" y="0.5" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="104" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="107" y="0.5" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="105" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="121" y="0.5" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="106" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="136" y="0.5" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="107" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript description="F4.107 PRESCRIPT">107 DARE_AVERE</prescript>
|
||||
</field>
|
||||
<field x="150" y="0.5" type="Valuta" align="right" width="13" id="108" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="150" y="0.5" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="13" codval="" id="108" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
</section>
|
||||
<sql>USE PCONANA</sql>
|
||||
<prescript description="PRESCRIPT">: AZZERA_TOTALI ( ID_SEC - )
|
||||
|
@ -1,27 +1,27 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<report name="ca3300c" orientation="2" lpi="8" command="ca3 -2" class="ca3300c">
|
||||
<report libraries="" page_merge="" save_printer="" name="ca3300c" use_printer_font="" orientation="2" page_split="" lpi="8" command="ca3 -2" class="ca3300c">
|
||||
<description>Bilancio a sezioni contrapposte (raffronto)</description>
|
||||
<font face="Courier New" size="8" />
|
||||
<section type="Head">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Head" level="" hidden="" page_break="" can_break="" pattern="1">
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
<field x="41" type="Testo" align="right" width="12" text="Preventivo" />
|
||||
<field x="55" type="Testo" align="right" width="12" text="Consuntivo" />
|
||||
<field x="69" type="Testo" align="right" width="12" text="Differenza" />
|
||||
<field x="86" type="Testo" width="6" text="Conto" />
|
||||
<field x="100" type="Testo" width="12" text="Descrizione" />
|
||||
<field x="125" type="Testo" align="right" width="12" text="Preventivo" />
|
||||
<field x="139" type="Testo" align="right" width="12" text="Consuntivo" />
|
||||
<field x="153" type="Testo" align="right" width="12" text="Differenza" />
|
||||
<field x="2" y="0.25" type="Testo" width="6" text="Conto" />
|
||||
<field x="16" y="0.25" type="Testo" width="12" text="Descrizione" />
|
||||
<field border="1" x="1" y="1.25" type="Linea" width="164" height="0" />
|
||||
<field x="41" deactivated="" type="Testo" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="12" codval="" id="" pattern="2" hide_zero="" text="Preventivo" />
|
||||
<field x="55" deactivated="" type="Testo" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="12" codval="" id="" pattern="2" hide_zero="" text="Consuntivo" />
|
||||
<field x="69" deactivated="" type="Testo" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="12" codval="" id="" pattern="2" hide_zero="" text="Differenza" />
|
||||
<field x="86" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="6" codval="" id="" pattern="2" hide_zero="" text="Conto" />
|
||||
<field x="100" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="12" codval="" id="" pattern="2" hide_zero="" text="Descrizione" />
|
||||
<field x="125" deactivated="" type="Testo" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="12" codval="" id="" pattern="2" hide_zero="" text="Preventivo" />
|
||||
<field x="139" deactivated="" type="Testo" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="12" codval="" id="" pattern="2" hide_zero="" text="Consuntivo" />
|
||||
<field x="153" deactivated="" type="Testo" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="12" codval="" id="" pattern="2" hide_zero="" text="Differenza" />
|
||||
<field x="2" y="0.25" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="6" codval="" id="" pattern="2" hide_zero="" text="Conto" />
|
||||
<field x="16" y="0.25" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="12" codval="" id="" pattern="2" hide_zero="" text="Descrizione" />
|
||||
<field border="1" x="1" y="1.25" deactivated="" type="Linea" hidden="" link="" dynamic_height="" shade_offset="" width="164" codval="" height="0" id="" pattern="2" hide_zero="" text="" />
|
||||
</section>
|
||||
<section type="Head" level="1">
|
||||
<field border="1" radius="100" x="8.21" y="0.91" type="Rettangolo" shade_offset="25" width="150" height="3.5" pattern="2" />
|
||||
<field x="35" y="1.5" type="Testo" valign="center" width="70" height="2" text="SITUAZIONE CONTI A SEZIONI CONTRAPPOSTE:">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Head" level="1" hidden="" page_break="" can_break="" pattern="1">
|
||||
<field border="1" radius="100" x="8.21" y="0.91" deactivated="" type="Rettangolo" hidden="" link="" dynamic_height="" shade_offset="25" width="150" codval="" height="3.5" id="" pattern="2" hide_zero="" text="" />
|
||||
<field x="35" y="1.5" deactivated="" type="Testo" valign="center" hidden="" link="" dynamic_height="" shade_offset="" width="70" codval="" height="2" id="" pattern="2" hide_zero="" text="SITUAZIONE CONTI A SEZIONI CONTRAPPOSTE:">
|
||||
<font face="Arial" bold="1" size="14" />
|
||||
</field>
|
||||
<field x="108" y="1.5" type="Array" valign="center" width="20" height="2">
|
||||
<field x="108" y="1.5" deactivated="" type="Array" valign="center" hidden="" link="" dynamic_height="" shade_offset="" width="20" codval="" height="2" id="" pattern="2" hide_zero="" text="">
|
||||
<font face="Arial" bold="1" size="14" />
|
||||
<source>#TIPOSTAMPA</source>
|
||||
<list>
|
||||
@ -30,174 +30,184 @@
|
||||
<li Value="RAFFRONTO" Code="R" />
|
||||
</list>
|
||||
</field>
|
||||
<field x="2" y="5.16" type="Stringa" width="50">
|
||||
<field x="2" y="5.16" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="50" codval="" id="" pattern="2" hide_zero="" text="">
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
<source>#SYSTEM.RAGSOC</source>
|
||||
</field>
|
||||
<field x="72.15" y="5.16" type="Testo" width="20" text="Data di stampa:">
|
||||
<field x="72.15" y="5.16" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="20" codval="" id="" pattern="2" hide_zero="" text="Data di stampa:">
|
||||
<font face="Arial" size="9" />
|
||||
</field>
|
||||
<field x="92.15" y="5.16" type="Data" width="15">
|
||||
<field x="92.15" y="5.16" deactivated="" type="Data" hidden="" link="" dynamic_height="" shade_offset="" width="15" codval="" id="" pattern="2" hide_zero="" text="">
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
<source>#SYSTEM.DATE</source>
|
||||
</field>
|
||||
<field x="2" y="6.41" type="Testo" width="20" text="Movimenti dal:">
|
||||
<field x="2" y="6.41" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="20" codval="" id="" pattern="2" hide_zero="" text="Movimenti dal:">
|
||||
<font face="Arial" size="9" />
|
||||
<prescript description="H1.0 PRESCRIPT">MESSAGE ISAMREAD,COMMESSE,CODCMS=#COMMESSA,DESCRIZ</prescript>
|
||||
</field>
|
||||
<field x="22" y="6.41" type="Data" width="15">
|
||||
<field x="22" y="6.41" deactivated="" type="Data" hidden="" link="" dynamic_height="" shade_offset="" width="15" codval="" id="" pattern="2" hide_zero="" text="">
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
<source>#DATA_INIZIALE</source>
|
||||
</field>
|
||||
<field x="39.4" y="6.41" type="Testo" width="4" text="al:">
|
||||
<field x="39.4" y="6.41" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="4" codval="" id="" pattern="2" hide_zero="" text="al:">
|
||||
<font face="Arial" size="9" />
|
||||
</field>
|
||||
<field x="44.15" y="6.41" type="Data" width="15">
|
||||
<field x="44.15" y="6.41" deactivated="" type="Data" hidden="" link="" dynamic_height="" shade_offset="" width="15" codval="" id="" pattern="2" hide_zero="" text="">
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
<source>#DATA_FINALE</source>
|
||||
</field>
|
||||
<field x="2" y="7.66" type="Testo" width="20" text="Centro di costo:">
|
||||
<field x="2" y="7.66" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="20" codval="" id="" pattern="2" hide_zero="" text="Centro di costo:">
|
||||
<font face="Arial" size="9" />
|
||||
</field>
|
||||
<field x="22" y="7.66" type="Stringa" width="24">
|
||||
<field x="22" y="7.66" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="24" codval="" id="" pattern="2" hide_zero="" text="">
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
<source>#COSTO</source>
|
||||
</field>
|
||||
<field x="47.15" y="7.66" type="Stringa" width="70">
|
||||
<field x="47.15" y="7.66" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="70" codval="" id="" pattern="2" hide_zero="" text="">
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
<prescript description="H1.0 PRESCRIPT">MESSAGE ISAMREAD,CDC,CODCOSTO=#COSTO,DESCRIZ</prescript>
|
||||
</field>
|
||||
<field x="2" y="8.91" type="Testo" width="20" text="Commessa:">
|
||||
<field x="2" y="8.91" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="20" codval="" id="" pattern="2" hide_zero="" text="Commessa:">
|
||||
<font face="Arial" size="9" />
|
||||
</field>
|
||||
<field x="22" y="8.91" type="Stringa" width="24">
|
||||
<field x="22" y="8.91" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="24" codval="" id="" pattern="2" hide_zero="" text="">
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
<source>#COMMESSA</source>
|
||||
</field>
|
||||
<field x="47.15" y="8.91" type="Stringa" width="70">
|
||||
<field x="47.15" y="8.91" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="70" codval="" id="" pattern="2" hide_zero="" text="">
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
<prescript description="H1.0 PRESCRIPT">MESSAGE ISAMREAD,COMMESSE,CODCMS=#COMMESSA,DESCRIZ</prescript>
|
||||
</field>
|
||||
<field x="2" y="10.16" type="Testo" width="20" text="Fase:">
|
||||
<field x="2" y="10.16" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="20" codval="" id="" pattern="2" hide_zero="" text="Fase:">
|
||||
<font face="Arial" size="9" />
|
||||
</field>
|
||||
<field x="22" y="10.16" type="Stringa" width="13">
|
||||
<field x="22" y="10.16" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="13" codval="" id="" pattern="2" hide_zero="" text="">
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
<source>#FASE</source>
|
||||
</field>
|
||||
<field x="47.15" y="10.16" type="Stringa" width="70">
|
||||
<field x="47.15" y="10.16" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="70" codval="" id="" pattern="2" hide_zero="" text="">
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
<prescript description="H1.0 PRESCRIPT">MESSAGE ISAMREAD,FASI,CODCMSFAS=#CMSCDC!CODFASE=#FASE,DESCRIZ</prescript>
|
||||
</field>
|
||||
<field border="1" x="2" y="11.5" type="Linea" width="164" height="0" />
|
||||
<field x="2" y="11.25" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="20" codval="" id="" pattern="1" hide_zero="" text="Contabilit&#E0; separata:">
|
||||
<font face="Arial" size="9" />
|
||||
</field>
|
||||
<field x="22" y="11.25" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="13" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
<source>#CONTSEP</source>
|
||||
</field>
|
||||
<field x="47.19" y="11.25" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="70" codval="" id="" pattern="1" hide_zero="" text="">
|
||||
<prescript description="">MESSAGE TABLEREAD,NPENT,CODTAB=#CONTSEP,S0</prescript>
|
||||
</field>
|
||||
<field border="1" x="2" y="12.5" deactivated="" type="Linea" hidden="" link="" dynamic_height="" shade_offset="" width="164" codval="" height="0" id="" pattern="2" hide_zero="" text="" />
|
||||
</section>
|
||||
<section repeat="1" type="Head" level="2" page_break="1">
|
||||
<section repeat="1" keep_with_next="" deactivated="" hidden_if_needed="" type="Head" level="2" hidden="" page_break="1" can_break="" pattern="1">
|
||||
<groupby>SEZIONE</groupby>
|
||||
<font face="Arial" bold="1" size="9" />
|
||||
<field x="67" y="0.5" type="Stringa" align="center" width="35" height="1.25">
|
||||
<field x="67" y="0.5" deactivated="" type="Stringa" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="35" codval="" height="1.25" id="" pattern="2" hide_zero="" text="">
|
||||
<source>IF(SEZIONE=="AP","SITUAZIONE CONTO ECONOMICO","SITUAZIONE CONTI PATRIMONIALI")</source>
|
||||
</field>
|
||||
<field x="26" y="1.75" type="Stringa" width="12">
|
||||
<field x="26" y="1.75" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="12" codval="" id="" pattern="2" hide_zero="" text="">
|
||||
<source>IF(SEZIONE=="AP","ATTIVITA'","COSTI")</source>
|
||||
</field>
|
||||
<field x="122" y="1.75" type="Stringa" width="12">
|
||||
<field x="122" y="1.75" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="12" codval="" id="" pattern="2" hide_zero="" text="">
|
||||
<source>IF(SEZIONE=="AP","PASSIVITA'","RICAVI")</source>
|
||||
</field>
|
||||
<field border="1" x="1" y="3.25" type="Linea" width="164" height="0" />
|
||||
<field border="1" x="1" y="3.25" deactivated="" type="Linea" hidden="" link="" dynamic_height="" shade_offset="" width="164" codval="" height="0" id="" pattern="2" hide_zero="" text="" />
|
||||
</section>
|
||||
<section type="Body" />
|
||||
<section type="Body" level="1">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Body" level="" hidden="" page_break="" can_break="" pattern="1" />
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Body" level="1" hidden="" page_break="" can_break="" pattern="1">
|
||||
<font face="Arial" size="8" />
|
||||
<field border="1" x="83" type="Linea" />
|
||||
<field type="Stringa" hidden="1" width="1" id="101">
|
||||
<field border="1" x="83" deactivated="" type="Linea" hidden="" link="" dynamic_height="" shade_offset="" codval="" id="" pattern="2" hide_zero="" text="" />
|
||||
<field deactivated="" type="Stringa" hidden="1" link="" dynamic_height="" shade_offset="" width="1" codval="" id="101" pattern="2" hide_zero="" text="">
|
||||
<source>LEFT:LIVELLO</source>
|
||||
<prescript description="B1.101 PRESCRIPT">"LEFT:BACKCOLOR" @ "1@" SET_BACK_COLOR
|
||||
"LEFT:TEXTCOLOR" @ "1@" SET_TEXT_COLOR
|
||||
</prescript>
|
||||
</field>
|
||||
<field x="1" type="Stringa" width="14" id="102" pattern="2">
|
||||
<field x="1" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="14" codval="" id="102" pattern="2" hide_zero="" text="">
|
||||
<groups>1</groups>
|
||||
<source>LEFT:CONTO</source>
|
||||
<prescript description="B1.102 PRESCRIPT">CA_FORMAT_CONTO</prescript>
|
||||
</field>
|
||||
<field x="15" type="Stringa" width="25" id="103" pattern="2">
|
||||
<field x="15" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="25" codval="" id="103" pattern="2" hide_zero="" text="">
|
||||
<font face="Arial Narrow" size="8" />
|
||||
<groups>1</groups>
|
||||
<source>LEFT:DESCR</source>
|
||||
</field>
|
||||
<field x="40" type="Valuta" align="right" width="12" id="104" pattern="2" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="40" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="12" codval="" id="104" pattern="2" hide_zero="1" text="###.###.###,@@">
|
||||
<groups>1</groups>
|
||||
<source>LEFT:SALDOP</source>
|
||||
</field>
|
||||
<field x="52" type="Stringa" align="center" width="2" id="105" pattern="2">
|
||||
<field x="52" deactivated="" type="Stringa" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="2" codval="" id="105" pattern="2" hide_zero="" text="">
|
||||
<groups>1</groups>
|
||||
<source>LEFT:SEZIONEP</source>
|
||||
</field>
|
||||
<field x="54" type="Valuta" align="right" width="12" id="204" pattern="2" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="54" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="12" codval="" id="204" pattern="2" hide_zero="1" text="###.###.###,@@">
|
||||
<groups>1</groups>
|
||||
<source>LEFT:SALDOC</source>
|
||||
</field>
|
||||
<field x="66" type="Stringa" align="center" width="2" id="205" pattern="2">
|
||||
<field x="66" deactivated="" type="Stringa" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="2" codval="" id="205" pattern="2" hide_zero="" text="">
|
||||
<groups>1</groups>
|
||||
<source>LEFT:SEZIONEC</source>
|
||||
</field>
|
||||
<field x="84" type="Stringa" hidden="1" width="1" id="301">
|
||||
<field x="84" deactivated="" type="Stringa" hidden="1" link="" dynamic_height="" shade_offset="" width="1" codval="" id="301" pattern="2" hide_zero="" text="">
|
||||
<source>RIGHT:LIVELLO</source>
|
||||
<prescript description="B1.301 PRESCRIPT">"RIGHT:BACKCOLOR" @ "2@" SET_BACK_COLOR
|
||||
"RIGHT:TEXTCOLOR" @ "2@" SET_TEXT_COLOR
|
||||
</prescript>
|
||||
</field>
|
||||
<field x="85" type="Stringa" width="14" id="302" pattern="2">
|
||||
<field x="85" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="14" codval="" id="302" pattern="2" hide_zero="" text="">
|
||||
<groups>2</groups>
|
||||
<source>RIGHT:CONTO</source>
|
||||
<prescript description="B1.302 PRESCRIPT">CA_FORMAT_CONTO</prescript>
|
||||
</field>
|
||||
<field x="99" type="Stringa" width="25" id="303" pattern="2">
|
||||
<field x="99" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="25" codval="" id="303" pattern="2" hide_zero="" text="">
|
||||
<font face="Arial Narrow" size="8" />
|
||||
<groups>2</groups>
|
||||
<source>RIGHT:DESCR</source>
|
||||
</field>
|
||||
<field x="68" type="Valuta" align="right" width="12" id="304" pattern="2" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="68" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="12" codval="" id="304" pattern="2" hide_zero="1" text="###.###.###,@@">
|
||||
<groups>1</groups>
|
||||
<source>LEFT:SALDO</source>
|
||||
</field>
|
||||
<field x="124" type="Valuta" align="right" width="12" id="304" pattern="2" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="124" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="12" codval="" id="304" pattern="2" hide_zero="1" text="###.###.###,@@">
|
||||
<groups>2</groups>
|
||||
<source>RIGHT:SALDOP</source>
|
||||
</field>
|
||||
<field x="80" type="Stringa" align="center" width="2.5" id="305" pattern="2">
|
||||
<field x="80" deactivated="" type="Stringa" hidden="" align="center" link="" dynamic_height="" shade_offset="" width="2.5" codval="" id="305" pattern="2" hide_zero="" text="">
|
||||
<groups>1</groups>
|
||||
<source>LEFT:SEZIONE</source>
|
||||
</field>
|
||||
<field x="136" type="Stringa" width="2" id="305" pattern="2">
|
||||
<field x="136" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="2" codval="" id="305" pattern="2" hide_zero="" text="">
|
||||
<groups>2</groups>
|
||||
<source>RIGHT:SEZIONEP</source>
|
||||
</field>
|
||||
<field x="138" type="Valuta" align="right" width="12" id="404" pattern="2" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="138" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="12" codval="" id="404" pattern="2" hide_zero="1" text="###.###.###,@@">
|
||||
<groups>2</groups>
|
||||
<source>RIGHT:SALDOC</source>
|
||||
</field>
|
||||
<field x="150" type="Stringa" width="2" id="405" pattern="2">
|
||||
<field x="150" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="2" codval="" id="405" pattern="2" hide_zero="" text="">
|
||||
<groups>2</groups>
|
||||
<source>RIGHT:SEZIONEC</source>
|
||||
</field>
|
||||
<field x="152" type="Valuta" align="right" width="12" id="504" pattern="2" hide_zero="1" text="###.###.###,@@">
|
||||
<field x="152" deactivated="" type="Valuta" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="12" codval="" id="504" pattern="2" hide_zero="1" text="###.###.###,@@">
|
||||
<groups>2</groups>
|
||||
<source>RIGHT:SALDO</source>
|
||||
</field>
|
||||
<field x="164" type="Stringa" width="2" id="505" pattern="2">
|
||||
<field x="164" deactivated="" type="Stringa" hidden="" link="" dynamic_height="" shade_offset="" width="2" codval="" id="505" pattern="2" hide_zero="" text="">
|
||||
<groups>2</groups>
|
||||
<source>RIGHT:SEZIONE</source>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Foot">
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Foot" level="" hidden="" page_break="" can_break="" pattern="1">
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
<field border="1" y="0.5" type="Linea" width="162" height="0" />
|
||||
<field x="145" y="1" type="Testo" width="5" text="Pag." />
|
||||
<field x="150" y="1" type="Numero" align="right" width="4">
|
||||
<field border="1" y="0.5" deactivated="" type="Linea" hidden="" link="" dynamic_height="" shade_offset="" width="162" codval="" height="0" id="" pattern="2" hide_zero="" text="" />
|
||||
<field x="145" y="1" deactivated="" type="Testo" hidden="" link="" dynamic_height="" shade_offset="" width="5" codval="" id="" pattern="2" hide_zero="" text="Pag." />
|
||||
<field x="150" y="1" deactivated="" type="Numero" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="4" codval="" id="" pattern="2" hide_zero="" text="">
|
||||
<source>#REPORT.PAGE</source>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Foot" level="1" />
|
||||
<section type="Foot" level="2" />
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Foot" level="1" hidden="" page_break="" can_break="" pattern="1" />
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Foot" level="2" hidden="" page_break="" can_break="" pattern="1" />
|
||||
</report>
|
@ -56,7 +56,7 @@ const TString& TPag_per_cms_mask::get_report_class() const
|
||||
bool TPag_per_cms_mask::test_compatible_report()
|
||||
{
|
||||
const TString& cls = get_report_class();
|
||||
const TString& name = get(F_REPORT);
|
||||
const TString& name = get(DLG_REPORT);
|
||||
bool ok = name.not_empty();
|
||||
if (ok)
|
||||
{
|
||||
@ -70,7 +70,7 @@ bool TPag_per_cms_mask::test_compatible_report()
|
||||
}
|
||||
if (!ok)
|
||||
{
|
||||
set(F_REPORT, cls);
|
||||
set(DLG_REPORT, cls);
|
||||
TFilename path = cls;
|
||||
path.ext("rep");
|
||||
ok = path.custom_path();
|
||||
@ -96,7 +96,7 @@ bool TPag_per_cms_mask::on_field_event(TOperable_field& o, TField_event e, long
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case F_REPORT:
|
||||
case DLG_REPORT:
|
||||
if (e == fe_button)
|
||||
{
|
||||
const TString8 lib = get_report_class();
|
||||
@ -1222,7 +1222,7 @@ void TPag_per_cms::print_or_preview(const bool stampa)
|
||||
|
||||
//report e book dei report
|
||||
TReport_book book;
|
||||
TString path = _mask->get(F_REPORT);
|
||||
TString path = _mask->get(DLG_REPORT);
|
||||
if (path.empty())
|
||||
path = "ca3600a";
|
||||
TPag_per_cms_rep rep;
|
||||
|
@ -9,7 +9,8 @@
|
||||
#define F_DADESFOR 204
|
||||
#define F_ACODFOR 205
|
||||
#define F_ADESFOR 206
|
||||
#define F_REPORT 207
|
||||
#define F_CONTSEP 207
|
||||
#define F_DESCONTSEP 208
|
||||
|
||||
//sheet commesse e righe relative
|
||||
#define F_RIGHE 260
|
||||
|
@ -1,32 +1,22 @@
|
||||
#include "ca3600.h"
|
||||
#include "camask.h"
|
||||
|
||||
#define ALL_EXPORT
|
||||
#define CLASS_NAME "ca3600"
|
||||
|
||||
TOOLBAR "topbar" 0 0 0 2
|
||||
#include <aprintbar.h>
|
||||
ENDPAGE
|
||||
|
||||
TOOLBAR "bottombar" 0 -2 0 1
|
||||
|
||||
STRING F_REPORT 256 64
|
||||
BEGIN
|
||||
PROMPT 2 -2 "Report "
|
||||
FLAGS "B"
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING DLG_PROFILE 50
|
||||
BEGIN
|
||||
PROMPT 2 -1 "Profilo "
|
||||
PSELECT
|
||||
END
|
||||
|
||||
TOOLBAR "bottombar" 0 -3 0 1
|
||||
#include <bprintbar.h>
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Stampa pagato" 0 0 0 2
|
||||
|
||||
SPREADSHEET F_RIGHE -1 8
|
||||
BEGIN
|
||||
PROMPT 1 1 "Centro di Costo / Commessa / Fase"
|
||||
PROMPT 0 1 "Centro di Costo / Commessa / Fase"
|
||||
ITEM "Cdc1"
|
||||
ITEM "Cdc2"
|
||||
ITEM "Cdc3"
|
||||
@ -124,6 +114,32 @@ BEGIN
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_CONTSEP 6
|
||||
BEGIN
|
||||
PROMPT 1 18 "Cont. separata "
|
||||
USE &NPENT
|
||||
INPUT CODTAB F_CONTSEP
|
||||
DISPLAY "Codice@6" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CONTSEP CODTAB
|
||||
OUTPUT F_DESCONTSEP S0
|
||||
CHECKTYPE NORMAL
|
||||
FIELD CONTSEP
|
||||
MODULE NP
|
||||
END
|
||||
|
||||
STRING F_DESCONTSEP 50 48
|
||||
BEGIN
|
||||
PROMPT 26 18 ""
|
||||
USE &NPENT KEY 2
|
||||
INPUT S0 F_DESCONTSEP
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice@6" CODTAB
|
||||
COPY OUTPUT F_CONTSEP
|
||||
CHECKTYPE NORMAL
|
||||
MODULE NP
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
//-------------- pagina con configurazione conti ---------------------
|
||||
|
@ -1,5 +1,5 @@
|
||||
|
||||
<report libraries="ve1300" name="ca3600a" orientation="2" lpi="8" class="ca3600a">
|
||||
<report libraries="ve1300" name="ca3600a" orientation="2" lpi="8" class="ca3600">
|
||||
<description>Pagato CA</description>
|
||||
<font face="Courier New" size="8" />
|
||||
<section type="Head" height="5">
|
||||
|
@ -75,7 +75,7 @@ const TString& TPrint_rendiconto_ca_mask::get_report_class() const
|
||||
bool TPrint_rendiconto_ca_mask::test_compatible_report()
|
||||
{
|
||||
const TString& cls = get_report_class();
|
||||
const TString& name = get(DLG_REPORT);
|
||||
const TString& name = get(F_REPORT);
|
||||
bool ok = name.not_empty();
|
||||
if (ok)
|
||||
{
|
||||
@ -89,7 +89,7 @@ bool TPrint_rendiconto_ca_mask::test_compatible_report()
|
||||
}
|
||||
if (!ok)
|
||||
{
|
||||
set(DLG_REPORT, cls);
|
||||
set(F_REPORT, cls);
|
||||
TFilename path = cls;
|
||||
path.ext("rep");
|
||||
ok = path.custom_path();
|
||||
@ -144,7 +144,7 @@ bool TPrint_rendiconto_ca_mask::on_field_event(TOperable_field& o, TField_event
|
||||
}*/
|
||||
}
|
||||
break;
|
||||
case DLG_REPORT:
|
||||
case F_REPORT:
|
||||
if (e == fe_button)
|
||||
{
|
||||
const TString8 lib = get_report_class();
|
||||
@ -563,7 +563,7 @@ real TPrint_rendiconto_ca_recordset::get_budget_batch(const TString& codcdc, con
|
||||
if (_riclassificato)
|
||||
tipo_movimento |= _saldanal_riclassify;
|
||||
//..ecco quindi il saldo..
|
||||
const TSaldanal& saldo = ca_saldo(zio, "", null_date, null_date, tipo_movimento); // qui
|
||||
const TSaldanal& saldo = ca_saldo(zio, null_date, null_date, tipo_movimento);
|
||||
//..che deve essere normalizzato in base alla sua sezione ed all'indicatore di bilancio del conto
|
||||
TImporto imp = saldo._fin;
|
||||
switch (zio.indicatore_bilancio())
|
||||
@ -601,7 +601,7 @@ real TPrint_rendiconto_ca_recordset::get_budget_print(const TString& conto, char
|
||||
if (_riclassificato)
|
||||
tipo_movimento |= _saldanal_riclassify;
|
||||
//..ecco quindi il saldo..
|
||||
const TSaldanal& saldo = ca_saldo(zio, "", null_date, null_date, tipo_movimento); // qui
|
||||
const TSaldanal& saldo = ca_saldo(zio, null_date, null_date, tipo_movimento);
|
||||
//..che deve essere normalizzato in base alla sua sezione ed all'indicatore di bilancio del conto
|
||||
TImporto imp = saldo._fin;
|
||||
switch (zio.indicatore_bilancio())
|
||||
@ -2378,7 +2378,7 @@ void TPrint_rendiconto_ca::export_rendiconto()
|
||||
TSheet_field& sheet = _msk->sfield(F_RIGHE); sheet.destroy();
|
||||
TToken_string& row = sheet.row(-1); //crea la prima riga dello sheet
|
||||
|
||||
TString repname = _msk->get(DLG_REPORT);
|
||||
TString repname = _msk->get(F_REPORT);
|
||||
|
||||
if (repname.empty())
|
||||
repname = "ca3700a";
|
||||
@ -2684,7 +2684,7 @@ void TPrint_rendiconto_ca::main_loop()
|
||||
|
||||
//report e book dei report
|
||||
TReport_book book;
|
||||
TString path = mask.get(DLG_REPORT);
|
||||
TString path = mask.get(F_REPORT);
|
||||
if (path.empty())
|
||||
path = "ca3700a";
|
||||
TPrint_rendiconto_ca_rep rep;
|
||||
|
@ -6,7 +6,6 @@
|
||||
#define F_RAGSOC 252
|
||||
#define F_DATASTAMPA 253
|
||||
#define F_ANNO 254
|
||||
#define F_REPORT 255
|
||||
#define F_DATAINI 256
|
||||
#define F_DATAFIN 257
|
||||
#define F_REV_COSRIC 258
|
||||
@ -14,6 +13,8 @@
|
||||
#define F_VITAINTERA 261
|
||||
#define F_PATH 262
|
||||
#define F_ATTIVA 263
|
||||
#define F_CONTSEP 264
|
||||
#define F_DESCONTSEP 265
|
||||
|
||||
//campi generati dai piani dei conti
|
||||
#define F_PIANO 319
|
||||
|
@ -1,33 +1,21 @@
|
||||
#include "ca3700.h"
|
||||
#include "camask.h"
|
||||
|
||||
#define ALL_EXPORT
|
||||
#define CLASS_NAME "ca3700"
|
||||
|
||||
TOOLBAR "topbar" 0 0 0 2
|
||||
#include <aprintbar.h>
|
||||
|
||||
BUTTON DLG_EXPORT 2 2
|
||||
/*BUTTON DLG_EXPORT 2 2
|
||||
BEGIN
|
||||
PROMPT 1 1 "~Esporta XLS"
|
||||
MESSAGE EXIT,K_F6
|
||||
PICTURE TOOL_EXCEL
|
||||
END
|
||||
|
||||
END*/
|
||||
ENDPAGE
|
||||
|
||||
TOOLBAR "bottombar" 0 -2 0 1
|
||||
|
||||
STRING F_REPORT 256 64
|
||||
BEGIN
|
||||
PROMPT 2 -2 "Report "
|
||||
FLAGS "B"
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING DLG_PROFILE 50
|
||||
BEGIN
|
||||
PROMPT 2 -1 "Profilo "
|
||||
PSELECT
|
||||
END
|
||||
|
||||
TOOLBAR "bottombar" 0 -3 0 1
|
||||
#include <bprintbar.h>
|
||||
ENDPAGE
|
||||
|
||||
PAGE "CdC/Cms/Fasi / Date" 0 2 0 0
|
||||
@ -71,7 +59,7 @@ BEGIN
|
||||
ADD NONE
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 76 6
|
||||
GROUPBOX DLG_NULL 76 9
|
||||
BEGIN
|
||||
PROMPT 1 3 "@bParametri stampa"
|
||||
END
|
||||
@ -88,38 +76,58 @@ END
|
||||
|
||||
BOOLEAN F_VITAINTERA
|
||||
BEGIN
|
||||
PROMPT 2 6 "Includere movimenti e documenti al di fuori della durata della commessa (vita intera commessa)"
|
||||
END
|
||||
|
||||
DATE F_DATAINI
|
||||
BEGIN
|
||||
PROMPT 2 9 "Dalla data "
|
||||
END
|
||||
|
||||
DATE F_DATAFIN
|
||||
BEGIN
|
||||
PROMPT 36 9 "Alla data "
|
||||
END
|
||||
|
||||
BOOLEAN F_ATTIVA
|
||||
BEGIN
|
||||
PROMPT 60 9 "Solo commesse attive"
|
||||
PROMPT 2 6 "Includere movimenti e documenti al di fuori della durata della commessa"
|
||||
END
|
||||
|
||||
TEXT DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 2 10 "Digitare o selezionare attraverso la ricerca la cartella in cui creare il file rendiconto.xls. E' necessario indicare l'intero percorso!"
|
||||
PROMPT 5 7 "(vita intera commessa)"
|
||||
END
|
||||
|
||||
STRING F_PATH 256 25
|
||||
DATE F_DATAINI
|
||||
BEGIN
|
||||
PROMPT 2 11 "Cartella dove esportare il file rendiconto.xls "
|
||||
DSELECT
|
||||
PROMPT 2 8 "Dalla data "
|
||||
END
|
||||
|
||||
DATE F_DATAFIN
|
||||
BEGIN
|
||||
PROMPT 30 8 "Alla data "
|
||||
END
|
||||
|
||||
BOOLEAN F_ATTIVA
|
||||
BEGIN
|
||||
PROMPT 54 8 "Solo commesse attive"
|
||||
END
|
||||
|
||||
STRING F_CONTSEP 6
|
||||
BEGIN
|
||||
PROMPT 2 9 "Cont. separata "
|
||||
USE &NPENT
|
||||
INPUT CODTAB F_CONTSEP
|
||||
DISPLAY "Codice@6" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CONTSEP CODTAB
|
||||
OUTPUT F_DESCONTSEP S0
|
||||
CHECKTYPE NORMAL
|
||||
FIELD CONTSEP
|
||||
MODULE NP
|
||||
END
|
||||
|
||||
STRING F_DESCONTSEP 50 48
|
||||
BEGIN
|
||||
PROMPT 26 9 ""
|
||||
USE &NPENT KEY 2
|
||||
INPUT S0 F_DESCONTSEP
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice@6" CODTAB
|
||||
COPY OUTPUT F_CONTSEP
|
||||
CHECKTYPE NORMAL
|
||||
MODULE NP
|
||||
END
|
||||
|
||||
SPREADSHEET F_RIGHE -1 -2
|
||||
BEGIN
|
||||
PROMPT 0 14 "Centro di Costo / Commessa / Fase"
|
||||
PROMPT 0 12 "Centro di Costo / Commessa / Fase"
|
||||
ITEM "Cdc1"
|
||||
ITEM "Cdc2"
|
||||
ITEM "Cdc3"
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<report libraries="ve1300" name="ca3700a" orientation="2" lpi="9" class="ca3700a">
|
||||
<report libraries="ve1300" name="ca3700a" orientation="2" lpi="9" class="ca3700">
|
||||
<description>Rendiconto CA</description>
|
||||
<font face="Courier New" size="7" />
|
||||
<section type="Head" height="5" pattern="1">
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include <repapp.h>
|
||||
#include <applicat.h>
|
||||
#include <defmask.h>
|
||||
|
||||
#include "../cg/cglib.h"
|
||||
@ -7,7 +7,6 @@
|
||||
#include "ca3883a.h"
|
||||
#include "calib01.h"
|
||||
#include "calib02.h"
|
||||
#include "commesse.h"
|
||||
#include "pconana.h"
|
||||
#include "cdc.h"
|
||||
#include "fasi.h"
|
||||
@ -48,7 +47,7 @@ const TString& TPrint_bilancio_cms_mask::get_report_class() const
|
||||
bool TPrint_bilancio_cms_mask::test_compatible_report()
|
||||
{
|
||||
const TString& cls = get_report_class();
|
||||
const TString& name = get(DLG_REPORT);
|
||||
const TString& name = get(F_REPORT);
|
||||
bool ok = name.not_empty();
|
||||
if (ok)
|
||||
{
|
||||
@ -62,7 +61,7 @@ bool TPrint_bilancio_cms_mask::test_compatible_report()
|
||||
}
|
||||
if (!ok)
|
||||
{
|
||||
set(DLG_REPORT, cls);
|
||||
set(F_REPORT, cls);
|
||||
TFilename path = cls;
|
||||
path.ext("rep");
|
||||
ok = path.custom_path();
|
||||
@ -74,7 +73,21 @@ bool TPrint_bilancio_cms_mask::on_field_event(TOperable_field& o, TField_event e
|
||||
{
|
||||
switch (o.dlg())
|
||||
{
|
||||
case DLG_REPORT:
|
||||
case DLG_PRINT:
|
||||
if (e == fe_button)
|
||||
{
|
||||
main_app().print();
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case DLG_PREVIEW:
|
||||
if (e == fe_button)
|
||||
{
|
||||
main_app().preview();
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case F_REPORT:
|
||||
if (e == fe_button)
|
||||
{
|
||||
const TString8 lib = get_report_class();
|
||||
@ -118,6 +131,7 @@ bool TPrint_bilancio_cms_mask::on_field_event(TOperable_field& o, TField_event e
|
||||
return TAnal_report_mask::on_field_event(o, e, jolly);
|
||||
}
|
||||
|
||||
|
||||
TPrint_bilancio_cms_mask::TPrint_bilancio_cms_mask()
|
||||
:TAnal_report_mask("ca3800")
|
||||
{
|
||||
@ -237,35 +251,36 @@ TPrint_bilancio_cms_rep::TPrint_bilancio_cms_rep(const char* rep_name, const TSt
|
||||
const bool intestazione_minima)
|
||||
:TCRPA_report(rep_name, prefix, depth, show_fasi, show_cdc, show_cms_descr, show_cms_date, sintetica, intestazione_minima)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////
|
||||
// APPLICAZIONE
|
||||
////////////////////////////////////////////////////////
|
||||
class TPrint_bilancio_cms : public TReport_application
|
||||
class TPrint_bilancio_cms : public TSkeleton_application
|
||||
{
|
||||
TPrint_bilancio_cms_mask * _mask;
|
||||
TReport * _rep;
|
||||
TPrint_bilancio_cms_mask* _mask;
|
||||
|
||||
protected:
|
||||
void build_lista_fasi(TString_array & lista_fasi, const TString & fase);
|
||||
void build_lista_cdc(TString_array & lista_cdc, const TString & cdc);
|
||||
// @cmember Ritorna il report
|
||||
virtual TReport & get_report(const TAutomask & m);
|
||||
// @cmember ritorna la maschera
|
||||
virtual TAutomask & get_mask();
|
||||
virtual void execute_print(TReport_book & book, TAutomask & mask, TReport & rep, export_type type = _export_printer);
|
||||
void print_or_preview(const bool stampa);
|
||||
virtual void print();
|
||||
virtual void preview();
|
||||
|
||||
public:
|
||||
virtual const char * title() const { return TR("Stampa bilancio di commessa"); }
|
||||
virtual const char * output_name(const TReport & rep) const { return "bilcms"; }
|
||||
virtual TTrec * get_dbase_recdesc(TReport & rep);
|
||||
// @cmember Costruttore
|
||||
TPrint_bilancio_cms() : _mask(nullptr), _rep(nullptr) { }
|
||||
// @cmember Distruttore
|
||||
virtual ~TPrint_bilancio_cms() { }
|
||||
virtual void main_loop();
|
||||
};
|
||||
|
||||
void TPrint_bilancio_cms::print()
|
||||
{
|
||||
print_or_preview(true);
|
||||
}
|
||||
|
||||
void TPrint_bilancio_cms::preview()
|
||||
{
|
||||
print_or_preview(false);
|
||||
}
|
||||
|
||||
void TPrint_bilancio_cms::build_lista_fasi(TString_array & lista_fasi, const TString & fase)
|
||||
{
|
||||
TString query("USE FASI");
|
||||
@ -316,14 +331,25 @@ void TPrint_bilancio_cms::build_lista_cdc(TString_array & lista_cdc, const TStri
|
||||
}
|
||||
}
|
||||
|
||||
void TPrint_bilancio_cms::execute_print(TReport_book & book, TAutomask & mask, TReport & rep, export_type type)
|
||||
void TPrint_bilancio_cms::print_or_preview(const bool stampa)
|
||||
{
|
||||
//report e book dei report
|
||||
TReport_book book;
|
||||
|
||||
TString80 prefix;
|
||||
for (short id = F_PRE1; id <= F_PRE3 && _mask->id2pos(id) > 0; id++)
|
||||
prefix << _mask->get(id);
|
||||
|
||||
const int depth = _mask->get_int(F_DEPTH);
|
||||
TString path = _mask->get(F_REPORT);
|
||||
|
||||
const int tipostampa = _mask->get_int(F_TIPOSTAMPA);
|
||||
//fasi
|
||||
const bool dett_fasi = (tipostampa == 1) || (tipostampa == 3);
|
||||
const TString& fase = _mask->get(F_FASE);
|
||||
const bool group_fasi = tipostampa == 4;
|
||||
const bool show_fasi = dett_fasi && fase.empty();
|
||||
const bool sintetica = _mask->get_bool(F_STAMPA_SINTETICA);
|
||||
const bool intestazione_minima = _mask->get_bool(F_INTESTAZIONE_MINIMA);
|
||||
|
||||
//cdc
|
||||
@ -337,6 +363,12 @@ void TPrint_bilancio_cms::execute_print(TReport_book & book, TAutomask & mask, T
|
||||
const bool show_cms_descr = _mask->get_bool(F_SHOW_CMS_DESCR);
|
||||
const bool show_cms_date = _mask->get_bool(F_SHOW_CMS_DATE);
|
||||
|
||||
if (path.empty())
|
||||
path = _mask->get_report_class();
|
||||
|
||||
//crea il report in base ai parametri (tipo report,struttura,profondita' di stampa)
|
||||
TPrint_bilancio_cms_rep rep(path, prefix, depth, show_fasi, show_cdc, show_cms_descr, show_cms_date, sintetica, intestazione_minima);
|
||||
|
||||
//se e' una stampa di tipo fasi riassunte (crpa special edition) deve fare lo scanning di tutte le fasi..
|
||||
//..singolarmente e stampare un report per ogni fase.Senno' stampa un solo report
|
||||
|
||||
@ -347,8 +379,12 @@ void TPrint_bilancio_cms::execute_print(TReport_book & book, TAutomask & mask, T
|
||||
|
||||
if (fase.blank() && cdc.blank())
|
||||
{
|
||||
((TPrint_bilancio_cms_rep & ) rep).set_filter(*_mask);
|
||||
book.add(rep, type);
|
||||
rep.set_filter(*_mask);
|
||||
book.add(rep);
|
||||
if (stampa)
|
||||
book.print();
|
||||
else
|
||||
book.preview();
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -365,8 +401,8 @@ void TPrint_bilancio_cms::execute_print(TReport_book & book, TAutomask & mask, T
|
||||
{
|
||||
const TString& cdc = lista_cdc.row(j);
|
||||
|
||||
((TPrint_bilancio_cms_rep &)rep).set_filter(*_mask, fase, cdc);
|
||||
book.add(rep, type);
|
||||
rep.set_filter(*_mask, fase, cdc);
|
||||
book.add(rep);
|
||||
if (rep.page() > 0)
|
||||
{
|
||||
if (intestazione_minima)
|
||||
@ -377,6 +413,10 @@ void TPrint_bilancio_cms::execute_print(TReport_book & book, TAutomask & mask, T
|
||||
}
|
||||
}
|
||||
}
|
||||
if (stampa)
|
||||
book.print();
|
||||
else
|
||||
book.preview();
|
||||
}
|
||||
}
|
||||
} //if(group_fasi...
|
||||
@ -394,8 +434,8 @@ void TPrint_bilancio_cms::execute_print(TReport_book & book, TAutomask & mask, T
|
||||
{
|
||||
TString16 fase = lista_fasi.row(i);
|
||||
|
||||
((TPrint_bilancio_cms_rep &)rep).set_filter(*_mask, fase);
|
||||
book.add(rep, type);
|
||||
rep.set_filter(*_mask, fase);
|
||||
book.add(rep);
|
||||
if (rep.page() > 0)
|
||||
{
|
||||
if (intestazione_minima)
|
||||
@ -405,7 +445,13 @@ void TPrint_bilancio_cms::execute_print(TReport_book & book, TAutomask & mask, T
|
||||
}
|
||||
}
|
||||
}
|
||||
if (stampa)
|
||||
book.print();
|
||||
else
|
||||
book.preview();
|
||||
|
||||
}
|
||||
|
||||
} //if(group_fasi...
|
||||
else
|
||||
if (group_cdc || dett_cdc)
|
||||
@ -419,8 +465,8 @@ void TPrint_bilancio_cms::execute_print(TReport_book & book, TAutomask & mask, T
|
||||
{
|
||||
const TString& cdc = lista_cdc.row(j);
|
||||
|
||||
((TPrint_bilancio_cms_rep &)rep).set_filter(*_mask, fase, cdc);
|
||||
book.add(rep, type);
|
||||
rep.set_filter(*_mask, fase, cdc);
|
||||
book.add(rep);
|
||||
if (rep.page() > 0)
|
||||
{
|
||||
if (intestazione_minima)
|
||||
@ -431,115 +477,35 @@ void TPrint_bilancio_cms::execute_print(TReport_book & book, TAutomask & mask, T
|
||||
}
|
||||
}
|
||||
}
|
||||
if (stampa)
|
||||
book.print();
|
||||
else
|
||||
book.preview();
|
||||
} //if(group_cdc...
|
||||
else //...senno' stampa standard in un giro solo
|
||||
{
|
||||
((TPrint_bilancio_cms_rep &)rep).set_filter(*_mask);
|
||||
book.add(rep, type);
|
||||
rep.set_filter(*_mask);
|
||||
book.add(rep);
|
||||
if (stampa)
|
||||
book.print();
|
||||
else
|
||||
book.preview();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
TReport & TPrint_bilancio_cms::get_report(const TAutomask & m)
|
||||
void TPrint_bilancio_cms::main_loop()
|
||||
{
|
||||
|
||||
TString80 prefix;
|
||||
|
||||
for (short id = F_PRE1; id <= F_PRE3 && m.id2pos(id) > 0; id++)
|
||||
prefix << m.get(id);
|
||||
|
||||
const int depth = m.get_int(F_DEPTH);
|
||||
TString path = m.get(DLG_REPORT);
|
||||
|
||||
const int tipostampa = m.get_int(F_TIPOSTAMPA);
|
||||
//fasi
|
||||
const bool dett_fasi = (tipostampa == 1) || (tipostampa == 3);
|
||||
const TString& fase = m.get(F_FASE);
|
||||
const bool group_fasi = tipostampa == 4;
|
||||
const bool show_fasi = dett_fasi && fase.empty();
|
||||
const bool sintetica = m.get_bool(F_STAMPA_SINTETICA);
|
||||
const bool intestazione_minima = m.get_bool(F_INTESTAZIONE_MINIMA);
|
||||
|
||||
//cdc
|
||||
const bool dett_cdc = (tipostampa == 2) || (tipostampa == 3);
|
||||
const TString& cdc = m.get(F_CDC);
|
||||
const bool group_cdc = tipostampa == 8;
|
||||
const bool show_cdc = dett_cdc && cdc.empty();
|
||||
|
||||
|
||||
//descrizioni
|
||||
const bool show_cms_descr = m.get_bool(F_SHOW_CMS_DESCR);
|
||||
const bool show_cms_date = m.get_bool(F_SHOW_CMS_DATE);
|
||||
|
||||
if (path.empty())
|
||||
path = ((TPrint_bilancio_cms_mask &)m).get_report_class();
|
||||
//crea il report in base ai parametri (tipo report,struttura,profondita' di stampa)
|
||||
safe_delete(_rep);
|
||||
_rep = new TPrint_bilancio_cms_rep(path, prefix, depth, show_fasi, show_cdc, show_cms_descr, show_cms_date, sintetica, intestazione_minima);
|
||||
return *_rep;
|
||||
}
|
||||
|
||||
TAutomask & TPrint_bilancio_cms::get_mask()
|
||||
{
|
||||
if (_mask == nullptr)
|
||||
_mask = new TPrint_bilancio_cms_mask;
|
||||
return *_mask;
|
||||
}
|
||||
|
||||
TTrec * TPrint_bilancio_cms::get_dbase_recdesc(TReport & rep)
|
||||
{
|
||||
TTrec * desc = new TTrec;
|
||||
TToken_string def;
|
||||
TRectype cms(LF_COMMESSE);
|
||||
TRectype fasi(LF_FASI);
|
||||
TRectype cdc(LF_CDC);
|
||||
TMask & m = get_mask();
|
||||
const int tipostampa = m.get_int(F_TIPOSTAMPA);
|
||||
const bool show_cms_descr = _mask->get_bool(F_SHOW_CMS_DESCR);
|
||||
const bool show_cms_date = _mask->get_bool(F_SHOW_CMS_DATE);
|
||||
const bool dett_fasi = (tipostampa == 1) || (tipostampa == 3);
|
||||
const bool dett_cdc = (tipostampa == 2) || (tipostampa == 3);
|
||||
|
||||
desc->add_fielddef(cms.rec_des(), COMMESSE_CODCMS);
|
||||
if (show_cms_descr)
|
||||
desc->add_fielddef(cms.rec_des(), COMMESSE_DESCRIZ);
|
||||
if (show_cms_date)
|
||||
{
|
||||
desc->add_fielddef("INIZIO", _datefld);
|
||||
desc->add_fielddef("FINE", _datefld);
|
||||
}
|
||||
if (dett_fasi)
|
||||
desc->add_fielddef(fasi.rec_des(), FASI_CODFASE);
|
||||
if (dett_cdc)
|
||||
desc->add_fielddef(cdc.rec_des(), CDC_CODCOSTO);
|
||||
desc->add_fielddef("AVRIC", _realfld, 6, 2);
|
||||
desc->add_fielddef("RICAVI", _realfld, 18, 2);
|
||||
desc->add_fielddef("INCAR", _realfld, 18, 2);
|
||||
desc->add_fielddef("CONSUL", _realfld, 18, 2);
|
||||
desc->add_fielddef("ALTRI", _realfld, 18, 2);
|
||||
desc->add_fielddef("MATER", _realfld, 18, 2);
|
||||
desc->add_fielddef("INDIST", _realfld, 18, 2);
|
||||
desc->add_fielddef("DIPEND", _realfld, 18, 2);
|
||||
desc->add_fielddef("COSTI", _realfld, 18, 2);
|
||||
desc->add_fielddef("DIFF", _realfld, 18, 2);
|
||||
desc->add_fielddef("DIFFPERC", _realfld, 6, 2);
|
||||
|
||||
TString keydef = COMMESSE_CODCMS;
|
||||
|
||||
if (dett_fasi)
|
||||
keydef << '+' << FASI_CODFASE;
|
||||
if (dett_cdc)
|
||||
keydef << '+' << CDC_CODCOSTO;
|
||||
desc->add_keydef(keydef, true);
|
||||
if (show_cms_descr)
|
||||
desc->add_keydef(COMMESSE_DESCRIZ, true);
|
||||
return desc;
|
||||
_mask = new TPrint_bilancio_cms_mask;
|
||||
_mask->run();
|
||||
delete _mask;
|
||||
_mask = NULL;
|
||||
}
|
||||
|
||||
int ca3800(int argc, char* argv[])
|
||||
{
|
||||
TPrint_bilancio_cms a;
|
||||
a.run(argc, argv, a.title());
|
||||
a.run(argc, argv, TR("Stampa bilancio di commessa"));
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1,16 +1,9 @@
|
||||
#include "ca3883a.h"
|
||||
|
||||
#define ALL_EXPORT
|
||||
#define CLASS_NAME "ca3800"
|
||||
|
||||
TOOLBAR "topbar" 0 0 0 2
|
||||
#include <aprintbar.h>
|
||||
ENDPAGE
|
||||
|
||||
TOOLBAR "bottombar" 0 -3 0 1
|
||||
#include <bprintbar.h>
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Stampa bilancio commessa" 0 2 0 0
|
||||
|
||||
GROUPBOX DLG_NULL 76 5
|
||||
@ -78,12 +71,18 @@ END
|
||||
LISTBOX F_TIPOSTAMPA 1 30
|
||||
BEGIN
|
||||
PROMPT 1 8 "Stampa "
|
||||
ITEM "0|Normale" MESSAGE CLEAR,F_FASE|CLEAR,F_CDC
|
||||
ITEM "1|Dettaglia per Fase" MESSAGE ENABLE,F_FASE|CLEAR,F_CDC
|
||||
ITEM "2|Dettaglia per CdC" MESSAGE CLEAR,F_FASE|ENABLE,F_CDC
|
||||
ITEM "3|Dettaglia per Fase e CdC" MESSAGE ENABLE,F_FASE|ENABLE,F_CDC
|
||||
ITEM "4|Riassuntiva per Fase" MESSAGE CLEAR,F_FASE|CLEAR,F_CDC
|
||||
ITEM "8|Riassuntiva per CdC" MESSAGE CLEAR,F_FASE|CLEAR,F_CDC
|
||||
ITEM "0|Normale"
|
||||
MESSAGE CLEAR,F_FASE|CLEAR,F_CDC
|
||||
ITEM "1|Dettaglia per Fase"
|
||||
MESSAGE ENABLE,F_FASE|CLEAR,F_CDC
|
||||
ITEM "2|Dettaglia per CdC"
|
||||
MESSAGE CLEAR,F_FASE|ENABLE,F_CDC
|
||||
ITEM "3|Dettaglia per Fase e CdC"
|
||||
MESSAGE ENABLE,F_FASE|ENABLE,F_CDC
|
||||
ITEM "4|Riassuntiva per Fase"
|
||||
MESSAGE CLEAR,F_FASE|CLEAR,F_CDC
|
||||
ITEM "8|Riassuntiva per CdC"
|
||||
MESSAGE CLEAR,F_FASE|CLEAR,F_CDC
|
||||
END
|
||||
|
||||
BOOLEAN F_STAMPA_SINTETICA
|
||||
@ -116,9 +115,12 @@ END
|
||||
LISTBOX F_TIPOSTIMA 1 30
|
||||
BEGIN
|
||||
PROMPT 1 11 "Tipo di stima Costi\Ricavi"
|
||||
ITEM "T|C prev.\R prev. (Tempo)" MESSAGE SHOW,F_DETR_CONS|ENABLE,F_DETR_CONS|CLEAR,F_INCLUDE_DOCUMENTI
|
||||
ITEM "C|C cons.\R prev." MESSAGE SHOW,F_DETR_CONS|ENABLE,F_DETR_CONS|ENABLE,F_INCLUDE_DOCUMENTI
|
||||
ITEM "R|C cons.\R cons." MESSAGE CLEAR,F_DETR_CONS|HIDE,F_DETR_CONS|ENABLE,F_INCLUDE_DOCUMENTI
|
||||
ITEM "T|C prev.\R prev. (Tempo)"
|
||||
MESSAGE SHOW,F_DETR_CONS|ENABLE,F_DETR_CONS|CLEAR,F_INCLUDE_DOCUMENTI
|
||||
ITEM "C|C cons.\R prev."
|
||||
MESSAGE SHOW,F_DETR_CONS|ENABLE,F_DETR_CONS|ENABLE,F_INCLUDE_DOCUMENTI
|
||||
ITEM "R|C cons.\R cons."
|
||||
MESSAGE CLEAR,F_DETR_CONS|HIDE,F_DETR_CONS|ENABLE,F_INCLUDE_DOCUMENTI
|
||||
END
|
||||
|
||||
BOOLEAN F_DETR_CONS
|
||||
@ -132,39 +134,25 @@ BEGIN
|
||||
GROUP 6
|
||||
END
|
||||
|
||||
STRING F_CONTSEP 6
|
||||
BEGIN
|
||||
PROMPT 1 19 "Cont.separata "
|
||||
USE &NPENT
|
||||
INPUT CODTAB F_CONTSEP
|
||||
DISPLAY "Codice@6" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CONTSEP CODTAB
|
||||
OUTPUT F_DESCONTSEP S0
|
||||
CHECKTYPE NORMAL
|
||||
FIELD CONTSEP
|
||||
MODULE NP
|
||||
END
|
||||
|
||||
STRING F_DESCONTSEP 50 48
|
||||
BEGIN
|
||||
PROMPT 25 19 ""
|
||||
USE &NPENT KEY 2
|
||||
INPUT S0 F_DESCONTSEP
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice@6" CODTAB
|
||||
COPY OUTPUT F_CONTSEP
|
||||
CHECKTYPE SEARCH
|
||||
MODULE NP
|
||||
END
|
||||
|
||||
LISTBOX F_DEPTH 1 20
|
||||
BEGIN
|
||||
PROMPT 1 20 "Profondita' del piano dei conti da considerare "
|
||||
PROMPT 1 19 "Profondita' del piano dei conti da considerare "
|
||||
ITEM "1|Gruppo"
|
||||
ITEM "2|Conto"
|
||||
END
|
||||
|
||||
STRING F_REPORT 256 64
|
||||
BEGIN
|
||||
PROMPT 1 20 "Report "
|
||||
FLAGS "B"
|
||||
END
|
||||
|
||||
STRING DLG_PROFILE 50
|
||||
BEGIN
|
||||
PROMPT 1 -1 "Profilo "
|
||||
PSELECT
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Istruzioni" -1 -1 78 20
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<report libraries="ve1300" page_merge="" save_printer="" name="ca3800a" use_printer_font="" orientation="2" page_split="" lpi="6" command="" class="ca3800a">
|
||||
<report libraries="ve1300" page_merge="" save_printer="" name="ca3800" use_printer_font="" orientation="2" page_split="" lpi="6" command="" class="ca3800a">
|
||||
<description>Bilancio commessa CA</description>
|
||||
<font face="Arial Narrow" size="7" />
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Head" level="" hidden="" page_break="" can_break="" pattern="1">
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<report libraries="ve1300" page_merge="" save_printer="" name="ca3800as" use_printer_font="" orientation="2" page_split="" lpi="6" command="" class="ca3800as">
|
||||
<report libraries="ve1300" page_merge="" save_printer="" name="ca3800as" use_printer_font="" orientation="2" page_split="" lpi="6" command="" class="ca3800">
|
||||
<description>Bilancio commessa CA</description>
|
||||
<font face="Arial Narrow" size="7" />
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Head" level="" hidden="" page_break="" can_break="" pattern="1">
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<report libraries="ve1300" page_merge="" save_printer="" name="ca3800b" use_printer_font="" orientation="2" page_split="" lpi="6" command="" class="ca3800b">
|
||||
<report libraries="ve1300" page_merge="" save_printer="" name="ca3800b" use_printer_font="" orientation="2" page_split="" lpi="6" command="" class="ca3800">
|
||||
<description>Bilancio commessa CA riassuntivo per fasi</description>
|
||||
<font face="Arial Narrow" size="8" />
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Head" level="" hidden="" page_break="" can_break="" pattern="1">
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<report libraries="ve1300" page_merge="" save_printer="" name="ca3800bs" use_printer_font="" orientation="2" page_split="" lpi="6" command="" class="ca3800bs">
|
||||
<report libraries="ve1300" page_merge="" save_printer="" name="ca3800bs" use_printer_font="" orientation="2" page_split="" lpi="6" command="" class="ca3800">
|
||||
<description>Bilancio commessa CA riassuntivo per fasi</description>
|
||||
<font face="Arial Narrow" size="8" />
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Head" level="" hidden="" page_break="" can_break="" pattern="1">
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<report libraries="ve1300" page_merge="" save_printer="" name="ca3800c" use_printer_font="" orientation="2" page_split="" lpi="6" command="" class="ca3800c">
|
||||
<report libraries="ve1300" page_merge="" save_printer="" name="ca3800c" use_printer_font="" orientation="2" page_split="" lpi="6" command="" class="ca3800">
|
||||
<description>Bilancio commessa CA riassuntivo per CdC</description>
|
||||
<font face="Arial Narrow" size="8" />
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Head" level="" hidden="" page_break="" can_break="" pattern="1">
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<report libraries="ve1300" page_merge="" save_printer="" name="ca3800cs" use_printer_font="" orientation="2" page_split="" lpi="6" command="" class="ca3800cs">
|
||||
<report libraries="ve1300" page_merge="" save_printer="" name="ca3800cs" use_printer_font="" orientation="2" page_split="" lpi="6" command="" class="ca3800">
|
||||
<description>Bilancio commessa CA riassuntivo per CdC</description>
|
||||
<font face="Arial Narrow" size="8" />
|
||||
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Head" level="" hidden="" page_break="" can_break="" pattern="1">
|
||||
|
@ -609,13 +609,7 @@ const TString& TPrint_saldana_recordset::crea_select(const int logicnum)
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (_contsep.full())
|
||||
{
|
||||
TString clause = SALDANA_CONTSEP;
|
||||
|
||||
clause << "=\"" << _contsep << "\"";
|
||||
ca_append_and(select, clause);
|
||||
}
|
||||
return get_tmp_string() = select;
|
||||
}
|
||||
|
||||
@ -883,8 +877,8 @@ void TPrint_saldana_recordset::elabora_rmovana(TAssoc_array* cms, const TDate& d
|
||||
const TRectype& rec_commesse = cache().get(LF_COMMESSE, codcms);
|
||||
const int indice = ricava_sezione_di_stampa(rec_commesse, datainiesc, datafinesc);
|
||||
|
||||
//solo le righe con commessa buona (indice >= 0) vengono considerate ed eventualmente i movimenti con un codice di contabilità separata specifico
|
||||
if (indice >= 0 && (movana.get(MOVANA_CONTSEP) == _contsep))
|
||||
//solo le righe con commessa buona (indice >= 0) vengono considerate
|
||||
if (indice >= 0)
|
||||
{
|
||||
//ci sono filtri o raggruppamenti per fase o centro di costo?
|
||||
const TString& fase = rmovana.get(RMOVANA_CODFASE);
|
||||
@ -975,13 +969,11 @@ void TPrint_saldana_recordset::elabora_rmovana(TAssoc_array* cms, const TDate& d
|
||||
rec_commesse.get_date(COMMESSE_PROROGA));
|
||||
|
||||
TRectype saldana(LF_SALDANA);
|
||||
|
||||
saldana.put(SALDANA_ANNO, _anno);
|
||||
saldana.put(SALDANA_CONTO, conto_anale);
|
||||
saldana.put(SALDANA_COSTO, cdc);
|
||||
saldana.put(SALDANA_COMMESSA, codcms);
|
||||
saldana.put(SALDANA_FASE, fase);
|
||||
saldana.put(SALDANA_CONTSEP, _contsep);
|
||||
|
||||
switch(tipomov)
|
||||
{
|
||||
@ -1720,11 +1712,4 @@ void TPrint_saldana_recordset::set_filter(const TMask& msk, const char * curr_fa
|
||||
break;
|
||||
} */
|
||||
}
|
||||
|
||||
TEdit_field * csep = (TEdit_field *)msk.find_by_id(F_CONTSEP);
|
||||
|
||||
if (csep != nullptr)
|
||||
_contsep = csep->get();
|
||||
else
|
||||
_contsep = "";
|
||||
}
|
||||
|
@ -72,7 +72,6 @@ class TPrint_saldana_recordset : public TRecordset
|
||||
TDate _datacalcolo;
|
||||
TString16 _fase;
|
||||
TString80 _cdc;
|
||||
TString16 _contsep;
|
||||
|
||||
int _tipo;
|
||||
int _anno;
|
||||
@ -141,7 +140,7 @@ protected:
|
||||
|
||||
public:
|
||||
virtual void set_filter(const TMask& msk, const char * curr_fase = "", const char * curr_cdc ="");
|
||||
TPrint_saldana_recordset(int tipo, const char * curr_contsep = "") : _tipo(tipo), _contsep(curr_contsep) { }
|
||||
TPrint_saldana_recordset(int tipo) : _tipo(tipo) { }
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -5,6 +5,7 @@
|
||||
#define F_RAGSOC 102
|
||||
#define F_DATASTAMPA 103
|
||||
#define F_ESERCIZIO 104
|
||||
#define F_REPORT 105
|
||||
#define F_INIZIO_ES 106
|
||||
#define F_FINE_ES 107
|
||||
#define F_TIPOSTIMA 108
|
||||
@ -22,9 +23,6 @@
|
||||
#define F_STAMPA_SINTETICA 119
|
||||
#define F_INTESTAZIONE_MINIMA 120
|
||||
|
||||
#define F_CONTSEP 122
|
||||
#define F_DESCONTSEP 123
|
||||
|
||||
/* campi per la generazione automatica
|
||||
#define F_FASE1 112
|
||||
#define F_FASE2 113
|
||||
|
@ -34,7 +34,7 @@ const TString& TPrint_stima_ricavi_mask::get_report_class() const
|
||||
bool TPrint_stima_ricavi_mask::test_compatible_report()
|
||||
{
|
||||
const TString& cls = get_report_class();
|
||||
const TString& name = get(F_REPORT);
|
||||
const TString& name = get(DLG_REPORT);
|
||||
bool ok = name.not_empty();
|
||||
if (ok)
|
||||
{
|
||||
@ -48,7 +48,7 @@ bool TPrint_stima_ricavi_mask::test_compatible_report()
|
||||
}
|
||||
if (!ok)
|
||||
{
|
||||
set(F_REPORT, cls);
|
||||
set(DLG_REPORT, cls);
|
||||
TFilename path = cls;
|
||||
path.ext("rep");
|
||||
ok = path.custom_path();
|
||||
@ -74,7 +74,7 @@ bool TPrint_stima_ricavi_mask::on_field_event(TOperable_field& o, TField_event e
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case F_REPORT:
|
||||
case DLG_REPORT:
|
||||
if (e == fe_button)
|
||||
{
|
||||
const TString8 lib = get_report_class();
|
||||
@ -217,7 +217,7 @@ void TPrint_stima_ricavi::print_or_preview(const bool stampa)
|
||||
{
|
||||
//report e book dei report
|
||||
TReport_book book;
|
||||
TString path = _mask->get(F_REPORT);
|
||||
TString path = _mask->get(DLG_REPORT);
|
||||
if (path.empty())
|
||||
path = "ca3900a";
|
||||
TPrint_stima_ricavi_rep rep;
|
||||
|
@ -1,9 +1,16 @@
|
||||
#include "ca3883a.h"
|
||||
|
||||
#define ALL_EXPORT
|
||||
#define CLASS_NAME "ca3900"
|
||||
|
||||
TOOLBAR "topbar" 0 0 0 2
|
||||
#include <aprintbar.h>
|
||||
ENDPAGE
|
||||
|
||||
TOOLBAR "bottombar" 0 -3 0 1
|
||||
#include <bprintbar.h>
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Stima ricavi di competenza" -1 -1 0 -3
|
||||
|
||||
GROUPBOX DLG_NULL 76 4
|
||||
@ -90,7 +97,7 @@ END
|
||||
|
||||
STRING F_CDC 20
|
||||
BEGIN
|
||||
PROMPT 56 8 "CdC"
|
||||
PROMPT 53 8 "CdC"
|
||||
USE LF_CDC
|
||||
INPUT CODCOSTO F_CDC
|
||||
DISPLAY "Codice centro di costo" CODCOSTO
|
||||
@ -98,18 +105,37 @@ BEGIN
|
||||
OUTPUT F_CDC CODCOSTO
|
||||
END
|
||||
|
||||
STRING F_CONTSEP 6
|
||||
BEGIN
|
||||
PROMPT 2 9 "Cont. separata "
|
||||
USE &NPENT
|
||||
INPUT CODTAB F_CONTSEP
|
||||
DISPLAY "Codice@6" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CONTSEP CODTAB
|
||||
OUTPUT F_DESCONTSEP S0
|
||||
CHECKTYPE NORMAL
|
||||
FIELD CONTSEP
|
||||
MODULE NP
|
||||
END
|
||||
|
||||
STRING F_DESCONTSEP 50 48
|
||||
BEGIN
|
||||
PROMPT 26 9 ""
|
||||
USE &NPENT KEY 2
|
||||
INPUT S0 F_DESCONTSEP
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice@6" CODTAB
|
||||
COPY OUTPUT F_CONTSEP
|
||||
CHECKTYPE NORMAL
|
||||
MODULE NP
|
||||
END
|
||||
|
||||
GROUPBOX F_PRE0 76 5
|
||||
BEGIN
|
||||
PROMPT 0 12 "@bPrefisso del piano dei conti analitico:"
|
||||
PROMPT 0 10 "@bPrefisso del piano dei conti analitico:"
|
||||
GROUP 6
|
||||
END
|
||||
|
||||
STRING F_REPORT 256 64
|
||||
BEGIN
|
||||
PROMPT 1 20 "Report "
|
||||
FLAGS "B"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<report libraries="ve1300" name="ca3900a" orientation="2" lpi="6" class="ca3900a">
|
||||
<report libraries="ve1300" name="ca3900a" orientation="2" lpi="6" class="ca3900">
|
||||
<description>Stima ricavi di competenza CA</description>
|
||||
<font face="Arial Narrow" size="7" />
|
||||
<section type="Head" pattern="1">
|
||||
|
@ -2276,7 +2276,7 @@ const char * TAnal_mov::row_code(int row) const
|
||||
}
|
||||
return get_tmp_string() = code;
|
||||
}
|
||||
void TAnal_mov::saldo_set_reset(const TRectype& row, const char * contsep, bool reset)
|
||||
void TAnal_mov::saldo_set_reset(const TRectype& row, bool reset)
|
||||
{
|
||||
const int dec = TCurrency::get_firm_dec();
|
||||
const TImporto imp_row(row.get_char(RMOVANA_SEZIONE), row.get_real(RMOVANA_IMPORTO));
|
||||
@ -2288,8 +2288,6 @@ void TAnal_mov::saldo_set_reset(const TRectype& row, const char * contsep, bool
|
||||
annies.add(esc_iniziale);
|
||||
|
||||
const char tipomov = get_char(MOVANA_TIPOMOV);
|
||||
if (*contsep != '\0' && tipomov != '\0')
|
||||
int i = 1;
|
||||
// i movimenti analitici possono avere una data di scadenza come la mozzarella
|
||||
const TDate datacomp = get_date(MOVANA_DATACOMP);
|
||||
TDate datafcomp = get_date(MOVANA_DATAFCOMP);
|
||||
@ -2317,14 +2315,12 @@ void TAnal_mov::saldo_set_reset(const TRectype& row, const char * contsep, bool
|
||||
}
|
||||
|
||||
TToken_string key;
|
||||
|
||||
key.add(tipomov);
|
||||
key.add(esc_iniziale);
|
||||
key.add(row.get(RMOVANA_CODCCOSTO));
|
||||
key.add(row.get(RMOVANA_CODCMS));
|
||||
key.add(row.get(RMOVANA_CODFASE));
|
||||
key.add(row.get(RMOVANA_CODCONTO));
|
||||
key.add(contsep);
|
||||
|
||||
if (annies.items() > 1) //saldi spammati su piu' anni
|
||||
{
|
||||
@ -2422,14 +2418,10 @@ void TAnal_mov::load_saldi(bool reset)
|
||||
}
|
||||
|
||||
const TRecord_array& a = body(LF_RMOVANA);
|
||||
TString contsep = get(MOVANA_CONTSEP);
|
||||
|
||||
for (int i = a.last_row(); i > 0; i--)
|
||||
{
|
||||
const TRectype& row = a[i];
|
||||
saldo_set_reset(row, "", reset); //aggiunge o toglie la riga corrente ai saldi in memoria
|
||||
if (contsep.full())
|
||||
saldo_set_reset(row, contsep, reset); //aggiunge o toglie la riga corrente ai saldi in memoria con contabilità separata
|
||||
saldo_set_reset(row, reset); //aggiunge o toglie la riga corrente ai saldi in memoria
|
||||
}
|
||||
}
|
||||
|
||||
@ -2477,7 +2469,6 @@ bool TAnal_mov::save_saldi(const int annoes)
|
||||
saldi.put(SALDANA_COMMESSA, key.get(3));
|
||||
saldi.put(SALDANA_FASE, key.get(4));
|
||||
saldi.put(SALDANA_CONTO, key.get(5));
|
||||
saldi.put(SALDANA_CONTSEP, key.get(6));
|
||||
|
||||
int err = saldi.read(_isequal, _lock);
|
||||
if (err != NOERR)
|
||||
@ -2493,7 +2484,6 @@ bool TAnal_mov::save_saldi(const int annoes)
|
||||
saldi.put(SALDANA_COMMESSA, key.get(3));
|
||||
saldi.put(SALDANA_FASE, key.get(4));
|
||||
saldi.put(SALDANA_CONTO, key.get(5));
|
||||
saldi.put(SALDANA_CONTSEP, key.get(6));
|
||||
err = saldi.write();
|
||||
if (err != NOERR)
|
||||
cantwrite_box(saldi.name());
|
||||
@ -3078,7 +3068,7 @@ TObject* TCache_ripartizioni::key2obj(const char* key)
|
||||
TRectype & rec = (*rip)[i];
|
||||
const TAnal_bill bill(rec);
|
||||
//calcola il saldo usando come parametri (cms/cdc/fsc/conto) quelli che trova sulla riga di ripartizione
|
||||
const TSaldanal& s = ca_saldo(bill, "", _dal, _al, _saldanal_consuntivo); // qui
|
||||
const TSaldanal& s = ca_saldo(bill, _dal, _al, _saldanal_consuntivo);
|
||||
//in base a C/R stabilisce quali saldi considerare e in quale sezione normalizzare
|
||||
real val;
|
||||
if (sezione_di_riferimento == 'R') //in Ricavi normalizza in Avere
|
||||
|
@ -188,7 +188,7 @@ class TAnal_mov : public TMultiple_rectype
|
||||
TAssoc_array _saldind;
|
||||
|
||||
protected:
|
||||
void saldo_set_reset(const TRectype& row, const char * contsep, bool reset);
|
||||
void saldo_set_reset(const TRectype& row, bool reset);
|
||||
void load_saldi(bool reset);
|
||||
void kill_saldi() { _saldi.destroy(); }
|
||||
void update_saldi(bool kill);
|
||||
|
@ -163,7 +163,7 @@ const TVariant& TPconana_recordset::get(const char* field) const
|
||||
}
|
||||
|
||||
((TAnal_bill&)_bill).set_conto(get(PCONANA_CODCONTO).as_string());
|
||||
const TSaldanal& s = ca_saldo(_bill, "", _dal, _al, tipimov); //qui
|
||||
const TSaldanal& s = ca_saldo(_bill, _dal, _al, tipimov);
|
||||
|
||||
TVariant& var = get_tmp_var();
|
||||
if (sub_field == "INI_DARE")
|
||||
@ -250,15 +250,12 @@ bool TPconana_recordset::valid_record(const TRelation& rel) const
|
||||
conto = curr.get(PCONANA_CODCONTO);
|
||||
if (conto.len() <= _conto_minlen)
|
||||
return false;
|
||||
if (_contsep.full() && _contsep != cache().get(LF_MOVANA, curr.get(RMOVANA_NUMREG), MOVANA_CONTSEP))
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (_movimentati || _nonnulli)
|
||||
if (_movimentati || _nonnulli)
|
||||
{
|
||||
((TAnal_bill&)_bill).set_conto(conto);
|
||||
const TSaldanal& s = ca_saldo(_bill, _contsep, _dal, _al, _tipimov);
|
||||
const TSaldanal& s = ca_saldo(_bill, _dal, _al, _tipimov);
|
||||
if (_movimentati && !s._movimentato)
|
||||
return false;
|
||||
if (_nonnulli && s._fin.is_zero())
|
||||
@ -327,7 +324,7 @@ void TPconana_recordset::set_tipo(char tipo)
|
||||
|
||||
void TPconana_recordset::set_filter(char tipo, const char* da_conto, const char* a_conto,
|
||||
const char* costo, const char* commessa, const char* fase,
|
||||
const char * contsep, const TDate& dal, const TDate& al,
|
||||
const TDate& dal, const TDate& al,
|
||||
word tipimov, bool movimentati, bool nonnulli)
|
||||
{
|
||||
set_tipo(tipo);
|
||||
@ -346,7 +343,6 @@ void TPconana_recordset::set_filter(char tipo, const char* da_conto, const char*
|
||||
_bill.set_costo(costo);
|
||||
_bill.set_commessa(commessa);
|
||||
_bill.set_fase(fase);
|
||||
_contsep = contsep;
|
||||
}
|
||||
|
||||
TPconana_recordset::TPconana_recordset(char tipo) : TISAM_recordset("USE PCONANA")
|
||||
@ -775,7 +771,7 @@ protected:
|
||||
bool saldi(const TAnal_bill& bill, const TDate& dal, const TDate& al, word tipo, TSaldanal& s);
|
||||
|
||||
public:
|
||||
const TSaldanal& saldo(const TAnal_bill& bill, const char * contsep, const TDate& dal, const TDate& al, word tipi = 0x1);
|
||||
const TSaldanal& saldo(const TAnal_bill& bill, const TDate& dal, const TDate& al, word tipi = 0x1);
|
||||
TSaldi_cache();
|
||||
};
|
||||
|
||||
@ -1112,7 +1108,7 @@ TObject* TSaldi_cache::key2obj(const char* key)
|
||||
return s;
|
||||
}
|
||||
|
||||
const TSaldanal& TSaldi_cache::saldo(const TAnal_bill& bill, const char * contsep, const TDate& dal, const TDate& al, word tipi)
|
||||
const TSaldanal& TSaldi_cache::saldo(const TAnal_bill& bill, const TDate& dal, const TDate& al, word tipi)
|
||||
{
|
||||
TToken_string key;
|
||||
key.add(bill.conto(), 0);
|
||||
@ -1122,7 +1118,6 @@ const TSaldanal& TSaldi_cache::saldo(const TAnal_bill& bill, const char * contse
|
||||
key.add(dal, 4);
|
||||
key.add(al, 5);
|
||||
key.add(tipi, 6);
|
||||
key.add(contsep, 7);
|
||||
return *(const TSaldanal*)objptr(key);
|
||||
}
|
||||
|
||||
@ -1130,7 +1125,7 @@ const TSaldanal& TSaldi_cache::saldo(const TAnal_bill& bill, const char * contse
|
||||
TSaldi_cache::TSaldi_cache() : TCache(3881) // Numero primo
|
||||
{ }
|
||||
|
||||
const TSaldanal& ca_saldo(const TAnal_bill& bill, const char * contsep, const TDate& dal, const TDate& al, word tipi)
|
||||
const TSaldanal& ca_saldo(const TAnal_bill& bill, const TDate& dal, const TDate& al, word tipi)
|
||||
{
|
||||
static TSaldi_cache* cache = nullptr;
|
||||
|
||||
@ -1138,7 +1133,7 @@ const TSaldanal& ca_saldo(const TAnal_bill& bill, const char * contsep, const TD
|
||||
SAFE_DELETE(cache);
|
||||
if (cache == nullptr)
|
||||
cache = new TSaldi_cache;
|
||||
return cache->saldo(bill, contsep, dal, al, tipi);
|
||||
return cache->saldo(bill, dal, al, tipi);
|
||||
}
|
||||
|
||||
|
||||
@ -1252,22 +1247,6 @@ void TAnal_report_mask::create_sheet(short sheet_id)
|
||||
}
|
||||
}
|
||||
|
||||
const TString& TAnal_report_mask::get_report_class() const
|
||||
{
|
||||
TReport_select * rs = (TReport_select *)efield(DLG_REPORT).browse();
|
||||
|
||||
return rs->get_report_class();
|
||||
}
|
||||
|
||||
void TAnal_report_mask::set_report_class() const
|
||||
{
|
||||
TReport_select * rs = (TReport_select *)efield(DLG_REPORT).browse();
|
||||
|
||||
if (rs != nullptr)
|
||||
rs->set_report_class(get_report_class());
|
||||
|
||||
}
|
||||
|
||||
int TAnal_report_mask::get_row_bill(TSheet_field& sf, int r, TAnal_bill& bill)
|
||||
{
|
||||
int flag = 0;
|
||||
|
@ -91,7 +91,7 @@ public:
|
||||
///////////////////////////////////////////////////////
|
||||
// Metodi sciolti ma decisivi
|
||||
///////////////////////////////////////////////////////
|
||||
const TSaldanal& ca_saldo(const TAnal_bill& bill, const char * contsep, const TDate& dal, const TDate& al, word tipi = _saldanal_consuntivo);
|
||||
const TSaldanal& ca_saldo(const TAnal_bill& bill, const TDate& dal, const TDate& al, word tipi = _saldanal_consuntivo);
|
||||
|
||||
TImporto ca_get_imp(const TRecordset& rs, const char* sez, const char* imp);
|
||||
|
||||
@ -103,7 +103,7 @@ class TPconana_recordset : public TISAM_recordset
|
||||
{
|
||||
char _tipo;
|
||||
word _tipimov;
|
||||
TString _da_conto, _a_conto, _contsep;
|
||||
TString _da_conto, _a_conto;
|
||||
int _conto_minlen;
|
||||
TAnal_bill _bill;
|
||||
TDate _dal, _al;
|
||||
@ -124,7 +124,7 @@ public:
|
||||
void set_tipo(char tipo);
|
||||
void set_filter(char tipo, const char* da_conto, const char* a_conto,
|
||||
const char* costo, const char* commessa, const char* fase,
|
||||
const char * contsep, const TDate& dal, const TDate& al,
|
||||
const TDate& dal, const TDate& al,
|
||||
word tipimov, bool movimentati, bool nonnulli);
|
||||
TPconana_recordset(char tipo = ' ');
|
||||
};
|
||||
@ -165,12 +165,10 @@ class TAnal_report_mask : public TAutomask
|
||||
protected:
|
||||
void create_sheet(short sheet_id);
|
||||
int create_sheet_fields(short sheet_id, int lf, int& y, short& dlg);
|
||||
virtual void set_report_class() const;
|
||||
|
||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
|
||||
public:
|
||||
virtual const TString& get_report_class() const;
|
||||
int get_row_bill(TSheet_field& sf, int r, TAnal_bill& bill);
|
||||
int set_row_bill(TSheet_field& sf, int r, const TAnal_bill& bill);
|
||||
bool esistono_riclassificazioni() const;
|
||||
|
@ -1,3 +1,3 @@
|
||||
151
|
||||
0
|
||||
$saldana|0|0|195|0|Saldi contabilita' analitica|||
|
||||
$saldana|0|0|189|0|Saldi contabilita' analitica|||
|
||||
|
@ -1,11 +1,10 @@
|
||||
151
|
||||
18
|
||||
17
|
||||
ANNO|9|4|0|Codice esercizio
|
||||
COSTO|1|20|0|Centro Di costo
|
||||
COMMESSA|1|20|0|Commessa
|
||||
FASE|1|10|0|Fase
|
||||
CONTO|1|20|0|Conto
|
||||
CONTSEP|1|6|0|Contabilità separata
|
||||
SEZIONE|7|1|0|Sezione (Normale)
|
||||
SALDO|4|18|3|Saldo (Normale)
|
||||
SEZIONEP|7|1|0|Sezione (Preventivo)
|
||||
@ -19,5 +18,5 @@ SALDOIV|4|18|3|Saldo Indiretto (Preventivo)
|
||||
SEZIONEIP|7|1|0|Sezione Indiretto (Variazione Preventivo)
|
||||
SALDOIP|4|18|3|Saldo Indiretto (Variazione Preventivo)
|
||||
2
|
||||
ANNO+CONTO+COSTO+COMMESSA+FASE+CONTSEP|
|
||||
CONTO+ANNO+COSTO+COMMESSA+FASE+CONTSEP|X
|
||||
ANNO+CONTO+COSTO+COMMESSA+FASE|
|
||||
CONTO+ANNO+COSTO+COMMESSA+FASE|
|
||||
|
@ -6,7 +6,6 @@
|
||||
#define SALDANA_COMMESSA "COMMESSA"
|
||||
#define SALDANA_FASE "FASE"
|
||||
#define SALDANA_CONTO "CONTO"
|
||||
#define SALDANA_CONTSEP "CONTSEP"
|
||||
|
||||
#define SALDANA_SEZIONE "SEZIONE"
|
||||
#define SALDANA_SALDO "SALDO"
|
||||
|
@ -230,9 +230,9 @@ bool TSelam_qmask::on_field_event(TOperable_field& o, TField_event e, long jolly
|
||||
const TRectype & ammce = cache().get(LF_AMMCE, key);
|
||||
if (!ammce.empty())
|
||||
{
|
||||
if (ammce.get_bool(AMMCE_FZPER))
|
||||
if (ammce.get_bool(AMMCE_FZPER) == TRUE)
|
||||
return error_box(TR("Sul cespite sono state forzate le Percentuali:\nprocedere dalla forzatura ammortamenti su cespite"));
|
||||
if (ammce.get_bool(AMMCE_FZQUO))
|
||||
if (ammce.get_bool(AMMCE_FZQUO) == TRUE)
|
||||
return error_box(TR("Sul cespite sono state forzate le Quote:\nprocedere dalla forzatura ammortamenti su cespite"));
|
||||
}
|
||||
|
||||
|
@ -120,7 +120,6 @@ bool TCalcamm::calcola_ammortamenti()
|
||||
break;
|
||||
|
||||
TCespite cespite(cur.curr());
|
||||
|
||||
for (int tipo_sit = 1; tipo_sit <= 3; tipo_sit++)
|
||||
cespite.calc_amm(tipo_sit, data_limite, true);
|
||||
}
|
||||
|
@ -31,15 +31,14 @@
|
||||
////////////////////////////////////////////////////////
|
||||
class TStampa_sintetica_mask : public TAutomask
|
||||
{
|
||||
// bool _preview;
|
||||
bool _preview;
|
||||
bool _excel;
|
||||
|
||||
protected:
|
||||
bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
public:
|
||||
// bool preview() const { return _preview; }
|
||||
bool excel() const { return _excel; }
|
||||
void set_excel(bool on) { _excel = on; }
|
||||
bool preview() const { return _preview; }
|
||||
bool excel() const { return _excel; }
|
||||
TStampa_sintetica_mask();
|
||||
};
|
||||
|
||||
@ -83,19 +82,19 @@ bool TStampa_sintetica_mask::on_field_event(TOperable_field& o, TField_event e,
|
||||
}
|
||||
}
|
||||
break;
|
||||
/* case DLG_PRINT:
|
||||
case DLG_PRINT:
|
||||
if (e == fe_button)
|
||||
{
|
||||
// _preview = false;
|
||||
// _excel = false;
|
||||
_preview = false;
|
||||
_excel = false;
|
||||
}
|
||||
break;
|
||||
case DLG_PREVIEW:
|
||||
if (e == fe_button)
|
||||
{
|
||||
// _preview = true;
|
||||
// _excel = false;
|
||||
// stop_run(K_ENTER);
|
||||
_preview = true;
|
||||
_excel = false;
|
||||
stop_run(K_ENTER);
|
||||
}
|
||||
break;
|
||||
case DLG_EXPORT_EXCEL:
|
||||
@ -104,13 +103,13 @@ bool TStampa_sintetica_mask::on_field_event(TOperable_field& o, TField_event e,
|
||||
_excel = true;
|
||||
stop_run(K_ENTER);
|
||||
}
|
||||
break; */
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
TStampa_sintetica_mask::TStampa_sintetica_mask() : TAutomask("ce3900"), _excel(false) //, _preview(false)
|
||||
TStampa_sintetica_mask::TStampa_sintetica_mask() : TAutomask("ce3900"), _preview(false), _excel(false)
|
||||
{
|
||||
}
|
||||
|
||||
@ -202,10 +201,10 @@ void TStampa_sintetica_rep::set_filter(const TStampa_sintetica_mask& msk)
|
||||
const bool shimp = (!msk.excel()) && msk.get_bool(F_TOTIMP);
|
||||
const bool shloc = (!msk.excel()) && msk.get_bool(F_TOTLOC);
|
||||
|
||||
section('H', 2).show(shcat);
|
||||
section('H', 3).show(shimp);
|
||||
section('H', 4).show(shloc);
|
||||
section('F', 2).show(shcat);
|
||||
section('H', 2).show(shcat);
|
||||
section('F', 3).show(shimp);
|
||||
section('F', 4).show(shloc);
|
||||
|
||||
@ -397,12 +396,10 @@ protected:
|
||||
void TStampa_sintetica::main_loop()
|
||||
{
|
||||
TStampa_sintetica_mask mask;
|
||||
KEY k;
|
||||
|
||||
// mask.set(F_CALCOLO, "X");
|
||||
while ((k = mask.run()) != K_QUIT)
|
||||
while (mask.run() == K_ENTER)
|
||||
{
|
||||
mask.set_excel(k == K_EXCEL);
|
||||
// Esecuzione calcolo globale
|
||||
if (mask.get_bool(F_CALCOLO))
|
||||
{
|
||||
@ -430,7 +427,7 @@ void TStampa_sintetica::main_loop()
|
||||
book.export_excel(out, false, true, true);
|
||||
}
|
||||
else
|
||||
if (k == K_VISUALIZE)
|
||||
if (mask.preview())
|
||||
book.preview();
|
||||
else
|
||||
book.print();
|
||||
|
@ -1,7 +1,6 @@
|
||||
#include "cg0800a.h"
|
||||
|
||||
TOOLBAR "topbar" 0 0 0 2
|
||||
|
||||
BUTTON DLG_PRINT 2 2
|
||||
BEGIN
|
||||
PROMPT 1 1 "Stampa"
|
||||
|
@ -59,7 +59,7 @@ public:
|
||||
TPrimanota_application::TPrimanota_application()
|
||||
: _rel(nullptr), _mode(0), _iva(nessuna_iva), _causale(nullptr), _giornale(nullptr),
|
||||
_lastreg(0), _last_dreg(TODAY), _last_dcom(TODAY), _automatico(nullptr), _swap_mask(false), _is_set_fpcheck(false), _f1_ini(false), _f1_liq(false),
|
||||
_skip_giornale_check(false), _skip_bollato_check(false), _pro_mask(nullptr)
|
||||
_skip_giornale_check(false), _skip_bollato_check(false)
|
||||
{
|
||||
memset(_msk, 0, sizeof(_msk));
|
||||
}
|
||||
@ -439,7 +439,7 @@ bool TPrimanota_application::read_caus(const char* cod, int year)
|
||||
}
|
||||
|
||||
const char sezione = rcaus->get_char(RCA_SEZIONE);
|
||||
TImporto zero('D', ZERO);
|
||||
const TImporto zero('D', ZERO);
|
||||
const TString80 desc(causale().desc_agg(i));
|
||||
|
||||
if (nriga == 1) m->set(F_DESCR, desc);
|
||||
@ -697,7 +697,7 @@ void TPrimanota_application::init_mask(TMask& m)
|
||||
_sal_dirty = false; // Azzero il flag di modifica del saldaconto
|
||||
fill_sheet(m); // Riempe righe contabili coi conti della causale
|
||||
m.hide(F_LINKDOC);
|
||||
has_f1_db(m);
|
||||
set_has_f1_db(&m);
|
||||
}
|
||||
|
||||
void TPrimanota_application::init_query_mode(TMask& m)
|
||||
@ -736,7 +736,7 @@ void TPrimanota_application::init_query_mode(TMask& m)
|
||||
m.set(F_CODCAUS, ini.get(MOV_CODCAUS));
|
||||
m.send_key(K_SPACE, DLG_NEWREC);
|
||||
}
|
||||
has_f1_db(m);
|
||||
set_has_f1_db(&m);
|
||||
}
|
||||
|
||||
|
||||
@ -1491,14 +1491,18 @@ void TPrimanota_application::check_saldi()
|
||||
|
||||
void TPrimanota_application::write_fppro()
|
||||
{
|
||||
if (main_app().has_module(FPAUT) && !ini_get_bool(CONFIG_INSTALL, "Main", "SkipFPPRO"))
|
||||
#ifdef DBG
|
||||
if (!ini_get_bool(CONFIG_INSTALL, "Main", "SkipFPPRO"))
|
||||
{
|
||||
#endif
|
||||
// Controllo se la registrazione ha avuto effetto anche su FPPRO allora salvo riferimento sul mov
|
||||
if (save_fppro() > 0 && !save_dbmov())
|
||||
message_box(
|
||||
"ATTENZIONE: non e' stato possibile salvare i riferimenti del documento in ingresso per questo movimento.\n"
|
||||
"Movimento registrato senza collegamento ai documenti in ingresso.");
|
||||
#ifdef DBG
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
bool TPrimanota_application::has_tot_doc(TToken_string& fppro_keys)
|
||||
@ -1555,7 +1559,7 @@ void TPrimanota_application::set_movcoll(const long movcoll, const long numreg)
|
||||
}
|
||||
int TPrimanota_application::controlli_f1(const TMask& m)
|
||||
{
|
||||
if (iva_mask(m) && m.get(F_PROKEY).full() && has_f1_db(m) && fp_db().sq_is_connect() && check_causale(m.get(F_CODCAUS)))
|
||||
if (m.find_by_id(F_PROKEY) != nullptr && m.get(F_PROKEY).full() && has_f1_db((TMask*)&m) && fp_db().sq_is_connect() && check_causale(m.get(F_CODCAUS)))
|
||||
{
|
||||
TToken_string keys(m.get(F_PROKEY), ';');
|
||||
const TDate dataoraric = fppro_db().set_keys(keys).get_dataorarioric();
|
||||
@ -1783,7 +1787,7 @@ void TPrimanota_application::clean_fppro()
|
||||
|
||||
// Controlli: solo in mod modifica; che abbia fp-f1 (no F8); che non sono in salvataggio
|
||||
if (_mode != MODE_MOD
|
||||
|| !has_f1_db(msk)
|
||||
|| !has_f1_db(&msk)
|
||||
|| last_key != K_DEL && last_key != K_SAVE && last_key != K_ELIMMAS && last_key != K_QUIT && !scollega())
|
||||
return;
|
||||
|
||||
@ -1798,17 +1802,27 @@ void TPrimanota_application::clean_fppro()
|
||||
fp_db().sq_commit();
|
||||
}
|
||||
|
||||
bool TPrimanota_application::has_f1() const
|
||||
void TPrimanota_application::set_has_f1_db(TMask* m)
|
||||
{
|
||||
return has_module(F1AUT) && get_db_indirizzo().full();
|
||||
if (m->find_by_id(F_DATAREG) != nullptr && !m->get(F_DATAREG).empty())
|
||||
{
|
||||
if (TDate(m->get(F_DATAREG)) >= TDate(get_data_start_fatt()))
|
||||
_isf1 = has_module(F1AUT) && !get_db_indirizzo().empty();
|
||||
else
|
||||
_isf1 = false;
|
||||
_is_set_fpcheck = true;
|
||||
}
|
||||
else if (!_is_set_fpcheck)
|
||||
{
|
||||
_isf1 = false;
|
||||
_is_set_fpcheck = true;
|
||||
}
|
||||
}
|
||||
|
||||
bool TPrimanota_application::has_f1_db(const TMask & m)
|
||||
bool TPrimanota_application::has_f1_db(TMask* m)
|
||||
{
|
||||
const TDate datareg = m.get_date(F_DATAREG);
|
||||
|
||||
_is_set_fpcheck = true;
|
||||
return datareg.ok() && (datareg >= get_data_start_fatt()) && has_f1();
|
||||
set_has_f1_db(m);
|
||||
return _isf1;
|
||||
}
|
||||
|
||||
bool TPrimanota_application::remove()
|
||||
@ -2657,7 +2671,7 @@ int TPrimanota_application::save_fppro()
|
||||
TMask& msk = curr_mask();
|
||||
|
||||
// Provo a vedere se hanno l'FP: se c'è l'indirizzo controllo che non sia F8 se non c'è non hanno l'FP
|
||||
if (!has_f1_db(msk))
|
||||
if (!has_f1_db(&msk))
|
||||
return pro_nofp;
|
||||
|
||||
// Anzitutto guardo la modalita' in cui sono
|
||||
@ -2722,7 +2736,7 @@ int TPrimanota_application::save_fppro()
|
||||
items = fp_db().sq_items();
|
||||
}
|
||||
|
||||
if(has_f1_db(msk) && items != 1)
|
||||
if(has_f1_db(&msk) && items != 1)
|
||||
{
|
||||
const bool forza = noyes_box("Attenzione, al movimento non e' stato abbinato nessun documento elettronico.\n"
|
||||
"Per consentire una corretta archiviazione sostitutiva si consiglia di provvedere al controllo della registrazione e di procedere\n"
|
||||
@ -2836,7 +2850,6 @@ bool TPrimanota_application::link_intra(const TMask& m, const char* action)
|
||||
|
||||
const BOOLEAN bModify = xvt_str_same(action, "Modify");
|
||||
|
||||
|
||||
TFilename intrini;
|
||||
intrini.tempdir();
|
||||
intrini.add("ActIntra.ini");
|
||||
|
@ -13,14 +13,12 @@ BEGIN
|
||||
PROMPT 2 1 "Contabilizzaz."
|
||||
PICTURE TOOL_EXPORT
|
||||
MODULE F1
|
||||
MESSAGE EXIT,K_ENTER
|
||||
END
|
||||
|
||||
BUTTON DLG_LINK 2 2
|
||||
BEGIN
|
||||
PROMPT 3 1 "Collega in Prima nota"
|
||||
PICTURE TOOL_LINK
|
||||
MESSAGE EXIT,K_ENTER
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 2 2
|
||||
|
@ -219,10 +219,7 @@ TSheet_field& TPrimanota_application::cgs() const
|
||||
void TPrimanota_application::set_cgs_imp(int n, const TImporto& imp)
|
||||
{
|
||||
TSheet_field& s = cgs();
|
||||
TImporto i(imp);
|
||||
|
||||
i.normalize();
|
||||
i.add_to(s.row(n), 0);
|
||||
imp.add_to(s.row(n), 0);
|
||||
s.force_update(n);
|
||||
}
|
||||
|
||||
@ -374,7 +371,7 @@ void TPrimanota_application::reset_sheet_row(TSheet_field& s, int n)
|
||||
s.destroy(n); // Remove line n
|
||||
}
|
||||
|
||||
int TPrimanota_application::set_cgs_row(int n, TImporto& importo,
|
||||
int TPrimanota_application::set_cgs_row(int n, const TImporto& imp,
|
||||
const TBill& conto, const char* desc,
|
||||
char tipo, const char* cms, const char* fas)
|
||||
{
|
||||
@ -383,8 +380,7 @@ int TPrimanota_application::set_cgs_row(int n, TImporto& importo,
|
||||
TToken_string& row = cg.row(n);
|
||||
|
||||
row.cut(0);
|
||||
importo.normalize();
|
||||
importo.add_to(row, 0);
|
||||
imp.add_to(row, 0);
|
||||
row.add(conto.string(0x3));
|
||||
row.add(""); // Codice decrizione
|
||||
row.add(desc); // Descrizione aggiuntiva
|
||||
@ -1540,7 +1536,7 @@ void TPrimanota_application::add2cg_row(TSheet_field& s, TToken_string & row, TS
|
||||
{
|
||||
const TBill conto(row, cid2index(IVA_TIPO), 0x1);
|
||||
const int pos = bill2pos(conto, cgrowtype_imponibile); // Riga in cui andra' l'imponibile
|
||||
TImporto imp = a.real2imp(d > 0 ? imp_det : imp_ind, tipod); // Imponibile
|
||||
const TImporto imp = a.real2imp(d > 0 ? imp_det : imp_ind, tipod); // Imponibile
|
||||
|
||||
if (pos >= 0) // Se il conto esisteva anche prima ...
|
||||
{
|
||||
@ -1765,7 +1761,7 @@ bool TPrimanota_application::iva_notify(TSheet_field& s, int r, KEY k)
|
||||
real pimponibile(pag.imponibile(inv));
|
||||
|
||||
pimponibile.round(pag.round(inv));
|
||||
if ((pimposta != imposta || pimponibile != imponibile) && (!a._f1_ini && (a._pro_mask == nullptr || !a._pro_mask->da_riportare())))
|
||||
if ((pimposta != imposta || pimponibile != imponibile) && (!a._f1_ini && (a._pro_mask == nullptr || !a._pro_mask->should_bring_back())))
|
||||
a.set_scadenze(m); // Ricalcola rate
|
||||
}
|
||||
}
|
||||
@ -2846,7 +2842,7 @@ void TPrimanota_application::add_cgs_tot(TMask& m)
|
||||
|
||||
TImporto imp = real2imp(m.get_real(F_TOTALE), cgrowtype_totale);
|
||||
|
||||
set_cgs_row(riga_totale, imp, nuovo, descr, cgrowtype_totale);
|
||||
set_cgs_row(riga_totale, imp.normalize(), nuovo, descr, cgrowtype_totale);
|
||||
}
|
||||
calcola_imp(); // Ricalcola totale IVA
|
||||
calcola_saldo(); // Ricalcola sbilanci
|
||||
@ -3554,11 +3550,21 @@ HIDDEN void inventa_cambio_intra(TMask& m)
|
||||
{
|
||||
const TString& codval = m.get(F_VALUTAINTRA);
|
||||
|
||||
if (codval.full() && TCurrency::get_firm_val() != codval)
|
||||
if (codval.not_empty() && TCurrency::get_firm_val() != codval)
|
||||
{
|
||||
const TRectype & cam =cache().get("CAM", codval);
|
||||
TTable cam("CAM");
|
||||
|
||||
if (cam.full())
|
||||
cam.put("CODTAB", codval);
|
||||
const int err = cam.read(_isgteq);
|
||||
bool yes = err != NOERR;
|
||||
if (!yes)
|
||||
{
|
||||
TString16 v = cam.get("CODTAB");
|
||||
|
||||
v.cut(3).rtrim();
|
||||
yes = v != codval;
|
||||
}
|
||||
if (yes)
|
||||
m.set(F_CAMBIOINTRA, cache().get("%VAL", codval, "S4"));
|
||||
}
|
||||
}
|
||||
@ -3885,74 +3891,71 @@ bool TPrimanota_application::quadratura_handler(TMask_field& f, KEY key)
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
void TPrimanota_application::write_righe_iva_f1(TMask& cg_msk, const TPro_msk & msk)
|
||||
void TPrimanota_application::write_righe_iva_f1(TMask& cg_msk, const shared_ptr<TPro_msk>& msk)
|
||||
{
|
||||
TSheet_field& sf = cg_msk.sfield(F_SHEETIVA);
|
||||
const TString_array& righe = msk.get_righeiva();
|
||||
const vector<TPro_msk::riga_iva_s>& righe = msk->get_righeiva();
|
||||
int i = 0;
|
||||
|
||||
FOR_EACH_ARRAY_ITEM( righe, r, obj)
|
||||
for (auto it = righe.begin(); it != righe.end(); ++it)
|
||||
{
|
||||
TToken_string & riga = STRING_TOKEN(obj);
|
||||
const real imponibile = riga.get_real(FPRI_IMPONIBILE);
|
||||
const real imposta = riga.get_real(FPRI_IMPOSTA);
|
||||
|
||||
if(imponibile != ZERO || imposta != ZERO)
|
||||
if(it->imponibile != 0 || it->imposta != 0)
|
||||
{
|
||||
TToken_string& row = sf.row(r);
|
||||
TToken_string& row = sf.row(i);
|
||||
|
||||
sf.notify(r, K_SPACE);
|
||||
sf.set_row_cell(IVA_IMPONIBILE, imponibile, r);
|
||||
sf.set_row_cell(IVA_IMPOSTA, imposta, r);
|
||||
sf.set_row_cell(IVA_PERCIVA, riga.get(FPRI_ALIQUOTA), r);
|
||||
sf.set_row_cell(IVA_NATURIVA, riga.get(FPRI_NATURA), r);
|
||||
sf.notify(r, K_ENTER);
|
||||
sf.notify(i, K_SPACE);
|
||||
row.add(it->imponibile, cid2index(IVA_IMPONIBILE));
|
||||
row.add(it->imposta, cid2index(IVA_IMPOSTA));
|
||||
row.add(it->aliquota, cid2index(IVA_PERCIVA));
|
||||
row.add(it->natura, cid2index(IVA_NATURIVA));
|
||||
sf.notify(i, K_ENTER);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
bool TPrimanota_application::write_scad_f1(const TMask& cg_msk, const TPro_msk & msk)
|
||||
bool TPrimanota_application::write_scad_f1(const TMask& cg_msk, const shared_ptr<TPro_msk>& msk)
|
||||
{
|
||||
TSheet_field& sf = cg_msk.sfield(FS_RATESHEET);
|
||||
const int items = sf.items();
|
||||
const TString_array & righe = msk.get_scadenze();
|
||||
const vector<TPro_msk::scadenza_s>& righe = msk->get_scadenze();
|
||||
int i = 0;
|
||||
|
||||
FOR_EACH_ARRAY_ITEM(righe, r, obj)
|
||||
for (auto it = righe.begin(); it != righe.end(); ++it, ++i)
|
||||
{
|
||||
TToken_string& row = app().pags().row(r);
|
||||
TToken_string & riga = STRING_TOKEN(obj);
|
||||
TToken_string& row = app().pags().row(i);
|
||||
|
||||
if (r >= items)
|
||||
pag_notify(sf, r, K_CTRL+K_INS);
|
||||
pag_notify(sf, r, K_SPACE);
|
||||
sf.set_row_cell(101, riga.get_date(FPSC_DATA), r);
|
||||
sf.set_row_cell(102, riga.get_real(FPSC_IMPORTO), r);
|
||||
pag_notify(sf, r, K_ENTER);
|
||||
if(i >= items)
|
||||
pag_notify(sf, i, K_CTRL+K_INS);
|
||||
pag_notify(sf, i, K_SPACE);
|
||||
row.add(it->data, cid2index(101));
|
||||
row.add(it->importo, cid2index(102));
|
||||
pag_notify(sf, i, K_ENTER);
|
||||
}
|
||||
return righe.items() > 0;
|
||||
return !righe.empty();
|
||||
}
|
||||
|
||||
void TPrimanota_application::write_clifo(TMask& cg_msk, const TPro_msk & msk)
|
||||
void TPrimanota_application::write_clifo(TMask& cg_msk, const shared_ptr<TPro_msk>& msk)
|
||||
{
|
||||
bool ok = false;
|
||||
TLocalisamfile clifo(LF_CLIFO);
|
||||
TToken_string keys(msk.get_fpprokeys(), ';');
|
||||
long codforn = TFppro(keys).get_codforn();
|
||||
TToken_string keys(msk->get_fpprokeys(), ';');
|
||||
TString codforn = TFppro(keys).get_codforn();
|
||||
|
||||
if (codforn == 0L)
|
||||
codforn = msk.get_codforn();
|
||||
if (codforn == 0L)
|
||||
if (codforn.empty())
|
||||
codforn = msk->get_codforn();
|
||||
if (codforn.empty())
|
||||
{
|
||||
clifo.setkey(5);
|
||||
clifo.put(CLI_TIPOCF, "F");
|
||||
clifo.put(CLI_PAIV, msk.get_piva());
|
||||
clifo.put(CLI_PAIV, msk->get_piva());
|
||||
clifo.read();
|
||||
ok = clifo.get(CLI_PAIV) == msk.get_piva();
|
||||
ok = clifo.get(CLI_PAIV) == msk->get_piva();
|
||||
if(!ok)
|
||||
{
|
||||
clifo.zero();
|
||||
clifo.setkey(5);
|
||||
clifo.put(CLI_TIPOCF, "F");
|
||||
clifo.put(CLI_PAIV, msk.get_piva());
|
||||
clifo.put(CLI_PAIV, msk->get_piva());
|
||||
clifo.put(CLI_STATOPAIV, "IT");
|
||||
clifo.read();
|
||||
}
|
||||
@ -3964,8 +3967,8 @@ void TPrimanota_application::write_clifo(TMask& cg_msk, const TPro_msk & msk)
|
||||
clifo.put(CLI_CODCF, codforn);
|
||||
clifo.read();
|
||||
}
|
||||
ok = clifo.get(CLI_PAIV) == msk.get_piva();
|
||||
if (ok && (cg_msk.get_long(F_CODCLIFOR) == 0 || cg_msk.get_long(F_CODCLIFOR) != codforn))
|
||||
ok = clifo.get(CLI_PAIV) == msk->get_piva();
|
||||
if (ok && (cg_msk.get(F_CODCLIFOR).empty() || cg_msk.get(F_CODCLIFOR) != codforn))
|
||||
{
|
||||
cg_msk.set(F_CODCLIFOR, clifo.get(CLI_CODCF));
|
||||
cg_msk.set(F_RAGSOCCF, clifo.get(CLI_RAGSOC));
|
||||
@ -3973,21 +3976,20 @@ void TPrimanota_application::write_clifo(TMask& cg_msk, const TPro_msk & msk)
|
||||
cg_msk.set(F_PIVA, clifo.get(CLI_PAIV));
|
||||
cg_msk.set(F_COFI, clifo.get(CLI_COFI));
|
||||
cg_msk.set(F_CODPAG, clifo.get(CLI_CODPAG));
|
||||
|
||||
const TRectype & tab = cache().get("%CPG", clifo.get(CLI_CODPAG));
|
||||
|
||||
cg_msk.set(F_DESPAG, tab.get("S0"));
|
||||
TTable tab("%CPG"); tab.put("CODTAB", clifo.get(CLI_CODPAG));
|
||||
tab.read();
|
||||
cg_msk.set(F_DESPAG, tab.get("S0"));
|
||||
}
|
||||
}
|
||||
|
||||
void TPrimanota_application::set_totale(TMask& cg_msk, TPro_msk & msk)
|
||||
void TPrimanota_application::set_totale(TMask& cg_msk, const shared_ptr<TPro_msk>& msk)
|
||||
{
|
||||
real totale = msk.get_totdoc();
|
||||
real totale = msk->get_totdoc();
|
||||
|
||||
if (totale == ZERO)
|
||||
if(totale == ZERO)
|
||||
totale = app().calcola_imp();
|
||||
|
||||
const real rit = msk.get_ritenute();
|
||||
const real rit = msk->get_ritenute();
|
||||
|
||||
if (rit != ZERO)
|
||||
{
|
||||
@ -3995,19 +3997,18 @@ void TPrimanota_application::set_totale(TMask& cg_msk, TPro_msk & msk)
|
||||
cg_msk.set(F_RITFIS, rit);
|
||||
app().add_cgs_ritenute(cgrowtype_ritfis);
|
||||
}
|
||||
else
|
||||
if (msk.is_doc_split())
|
||||
totale = msk.get_tot_imp_riva();
|
||||
else if (msk->is_doc_split())
|
||||
totale = msk->get_tot_imp_riva();
|
||||
cg_msk.set(F_TOTALE, totale);
|
||||
}
|
||||
|
||||
void TPrimanota_application::riporta_dati_f1(TMask& cg_msk, TPro_msk & msk)
|
||||
void TPrimanota_application::riporta_dati_f1(TMask& cg_msk, const shared_ptr<TPro_msk>& msk)
|
||||
{
|
||||
const bool bring = msk.da_riportare();
|
||||
const bool bring = msk->should_bring_back();
|
||||
|
||||
if (bring)
|
||||
{
|
||||
if (msk.get_numdoc() != 0L && cg_msk.get(F_CODCLIFOR).empty())
|
||||
if (msk->get_numdoc().full() && cg_msk.get(F_CODCLIFOR).empty())
|
||||
write_clifo(cg_msk, msk);
|
||||
write_righe_iva_f1(cg_msk, msk);
|
||||
set_totale(cg_msk, msk);
|
||||
@ -4018,57 +4019,57 @@ void TPrimanota_application::riporta_dati_f1(TMask& cg_msk, TPro_msk & msk)
|
||||
// Li riporto anche con il collega in prima nota, e in quel caso solo se i campi non sono gia valorizzati
|
||||
if (bring || cg_msk.get(F_NUMDOC).empty())
|
||||
{
|
||||
|
||||
cg_msk.set(F_NUMDOCEXT, format("%ld", msk.get_numdoc()));
|
||||
cg_msk.set(F_NUMDOC, format("%-7ld", msk.get_numdoc()));
|
||||
cg_msk.set(F_NUMDOCEXT, msk->get_numdoc());
|
||||
cg_msk.set(F_NUMDOC, msk->get_numdoc().right(7));
|
||||
}
|
||||
|
||||
if (bring || cg_msk.get(F_DATADOC).empty())
|
||||
cg_msk.set(F_DATADOC, msk.get_datadoc());
|
||||
cg_msk.set(F_DATADOC, msk->get_datadoc());
|
||||
}
|
||||
|
||||
void TPrimanota_application::insert_part_scad(TConfig& ini) // che cazzo significa la partita 73/001
|
||||
void TPrimanota_application::insert_part_scad(TConfig& ini)
|
||||
{
|
||||
TArray rif_doc;
|
||||
TString str = ini.get("NUMLINEA", "23", 0);
|
||||
vector<TToken_string> rif_doc;
|
||||
int i = 0;
|
||||
ini.set_paragraph("23");
|
||||
|
||||
// Carico nel vettore
|
||||
for (int i = 0; str.full(); str = ini.get("NUMLINEA", "23", ++i))
|
||||
while(true)
|
||||
{
|
||||
TToken_string doc("", '|');
|
||||
TString str; str << ini.get("NUMLINEA", nullptr, i, "NULL");
|
||||
if (str != "NULL")
|
||||
{
|
||||
doc.add(str);
|
||||
doc.add(ini.get("DOCRIF", nullptr, i, "NULL"));
|
||||
doc.add(ini.get("DATADOCRIF", nullptr, i, "NULL"));
|
||||
|
||||
doc.add(str);
|
||||
doc.add(ini.get("DOCRIF", "23", i));
|
||||
doc.add(ini.get("DATADOCRIF", "23", i));
|
||||
rif_doc.add(doc);
|
||||
rif_doc.insert(rif_doc.end(), doc);
|
||||
i++;
|
||||
}
|
||||
else
|
||||
break;
|
||||
}
|
||||
|
||||
// Agganciare alla partita del documento di riferimento
|
||||
if(rif_doc.items() > 0)
|
||||
if(!rif_doc.empty())
|
||||
{
|
||||
is_f1() = true;
|
||||
|
||||
TString query; query << "USE MOV\nSELECT (DATADOC==#DATADOC)";
|
||||
TISAM_recordset rec(query);
|
||||
rec.set_var("#DATADOC", TVariant(TDate(rif_doc[0].get(2))));
|
||||
TString part;
|
||||
|
||||
FOR_EACH_ARRAY_ITEM(rif_doc, r, _obj)
|
||||
do
|
||||
{
|
||||
if (part.blank())
|
||||
if (rec.get(MOV_NUMDOC).as_string() == "73/001")
|
||||
{
|
||||
rec.set_var("#DATADOC", ((TToken_string&)rif_doc[0]).get_date(2));
|
||||
|
||||
for (bool ok = rec.move_first(); ok; ok = rec.move_next())
|
||||
{
|
||||
if (rec.get_string(MOV_NUMDOC) == "73/001")
|
||||
{
|
||||
part = rec.get_string(MOV_PROTIVA);
|
||||
break;
|
||||
}
|
||||
} while (rec.move_next());
|
||||
part = rec.get(MOV_PROTIVA).as_string();
|
||||
break;
|
||||
}
|
||||
}
|
||||
_num_doc_rif_partite = part;
|
||||
} while (rec.move_next());
|
||||
|
||||
num_doc_rif() = part;
|
||||
}
|
||||
}
|
||||
|
||||
@ -4079,10 +4080,9 @@ bool TPrimanota_application::fppro_mask(TMask_field& f, KEY key)
|
||||
if (!app().has_module(FPAUT) || key != K_SPACE && key != K_TAB || !check_causale(cg_msk.get(F_CODCAUS)))
|
||||
return true;
|
||||
|
||||
TPro_msk * msk = app()._pro_mask;
|
||||
|
||||
if (msk == nullptr)
|
||||
app()._pro_mask = msk = new TPro_msk(cg_msk);
|
||||
auto msk = std::make_shared<TPro_msk>(cg_msk);
|
||||
|
||||
app()._pro_mask = msk;
|
||||
|
||||
const TString datadoc = cg_msk.get(F_DATADOC);
|
||||
|
||||
@ -4092,13 +4092,16 @@ bool TPrimanota_application::fppro_mask(TMask_field& f, KEY key)
|
||||
msk->field(F_DATESEARCH).show();
|
||||
msk->set(F_DATESEARCH, datadoc);
|
||||
}
|
||||
msk->run();
|
||||
// Riporto dati FPPRO su maschera Prima Nota (solo se hai F1)
|
||||
// Se non hai F1 collego senza riportarti i dati (solo le chiavi db)
|
||||
riporta_dati_f1(cg_msk, *msk);
|
||||
cg_msk.set(F_PROKEY, msk->get_fpprokeys());
|
||||
is_collegato(cg_msk.field(F_COLFPPRO));
|
||||
cg_msk.set(F_ANNORIF, cg_msk.get(F_ANNOIVA));
|
||||
if (msk->load_fppro_mask(msk.get()))
|
||||
{
|
||||
msk->run();
|
||||
// Riporto dati FPPRO su maschera Prima Nota (solo se hai F1)
|
||||
// Se non hai F1 collego senza riportarti i dati (solo le chiavi db)
|
||||
riporta_dati_f1(cg_msk, msk);
|
||||
cg_msk.set(F_PROKEY, msk->get_fpprokeys());
|
||||
is_collegato(cg_msk.field(F_COLFPPRO));
|
||||
cg_msk.set(F_ANNORIF, cg_msk.get(F_ANNOIVA));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -4147,77 +4150,91 @@ bool TPrimanota_application::is_collegato(TMask_field& f)
|
||||
return has_prokey;
|
||||
}
|
||||
|
||||
bool TPro_msk::load_fppro_mask(TMask & msk)
|
||||
bool TPro_msk::load_fppro_mask(TMask* msk, KEY k)
|
||||
{
|
||||
// Provo a vedere se hanno l'FP: se c'è l'indirizzo controllo che non sia F8 se non c'è non hanno l'FP
|
||||
if (k != 32)
|
||||
return false;
|
||||
if (!fp_db().sq_is_connect())
|
||||
{
|
||||
message_box("Attenzione connessione al database non riuscita.\nImpossibile collegarsi ai documenti in entrata.");
|
||||
return false;
|
||||
}
|
||||
|
||||
const int forn = msk.get_int(F_CODCLIFORS);
|
||||
const int forn = msk->get_int(F_CODCLIFORS);
|
||||
|
||||
if (forn == 0)
|
||||
{
|
||||
msk.set(F_ENABSEARCH, "X");
|
||||
abilita_piva();
|
||||
msk->set(F_ENABSEARCH, "X");
|
||||
abilita_piva(msk);
|
||||
//message_box("Inserire prima il fornitore");
|
||||
//return false;
|
||||
}
|
||||
|
||||
const TString& codfisc = msk.get(F_COFIS);
|
||||
const TString& stato_piva = msk.get(F_STATOPAIVS);
|
||||
const TString& piva = msk.get(F_PIVAS);
|
||||
const TString& codfisc = msk->get(F_COFIS);
|
||||
const TString& stato_piva = msk->get(F_STATOPAIVS);
|
||||
const TString& piva = msk->get(F_PIVAS);
|
||||
TString query;
|
||||
TDate date;
|
||||
TString date = "";
|
||||
|
||||
if (msk.get_bool(F_ENABDATE))
|
||||
date = msk.get_date(F_DATESEARCH);
|
||||
if(!msk.get_bool(F_ENABSEARCH))
|
||||
query = query_fppro(msk.get(F_CODCLIFORS), date);
|
||||
if (msk->get_bool(F_ENABDATE))
|
||||
date = msk->get_date(F_DATESEARCH);
|
||||
if(!msk->get_bool(F_ENABSEARCH))
|
||||
query = query_fppro(msk->get(F_CODCLIFORS), date);
|
||||
else
|
||||
query = query_fppro(stato_piva, piva, date);
|
||||
fp_db().sq_set_exec(query, false);
|
||||
|
||||
TSheet_field& sf = msk.sfield(F_SHEETFPPROS);
|
||||
const bool show_all = msk.get_bool(F_SHOWALL);
|
||||
TSheet_field& sf = msk->sfield(F_SHEETFPPROS);
|
||||
|
||||
sf.reset();
|
||||
sf.hide();
|
||||
if (sf.items() > 0)
|
||||
sf.destroy();
|
||||
while (fp_db().sq_next())
|
||||
{
|
||||
const long numreg = fp_db().sq_get_long("PZ_NUMREGCONT");
|
||||
TString numreg = fp_db().sq_get("PZ_NUMREGCONT");
|
||||
const bool show_all = msk->get_bool(F_SHOWALL);
|
||||
|
||||
if (show_all || numreg == 0L)
|
||||
{
|
||||
TToken_string keys(fp_db().sq_get("PZ_KEYPRGINVIO"), ';');
|
||||
if (numreg != "0" && !show_all)
|
||||
continue;
|
||||
|
||||
keys.add(fp_db().sq_get("PZ_KEYHEADERFATT")); keys.add(fp_db().sq_get("PZ_KEYBODYFATT"));
|
||||
TToken_string& row = sf.row(-1);
|
||||
TToken_string keys(fp_db().sq_get("PZ_KEYPRGINVIO"), ';');
|
||||
|
||||
const int r = sf.set_row_cell(F_SELFPPROS, "");
|
||||
|
||||
sf.set_row_cell(F_TIPODOCS, fp_db().sq_get("P7_TIPODOC"), r);
|
||||
sf.set_row_cell(F_DATAORARICS, fp_db().sq_get_date("P1_DATAORARIC"), r);
|
||||
sf.set_row_cell(F_DATAS, fp_db().sq_get_date("PZ_DATA"), r);
|
||||
sf.set_row_cell(F_IMPTOTDOCS, fp_db().sq_get("PQ_IMPTOTDOC"), r);
|
||||
sf.set_row_cell(F_RITENUTE, fppro_db().set_keys(keys).get_ritenute(), r);
|
||||
sf.set_row_cell(F_NUMEROS, fp_db().sq_get("PZ_NUMERO"), r);
|
||||
sf.set_row_cell(F_RAGXML, fp_db().sq_get("P2_ANADENOMIN"), r);
|
||||
sf.set_row_cell(F_FISCIVAPAESES, fp_db().sq_get("P2_FISCIVAPAESE"), r);
|
||||
sf.set_row_cell(F_FISCIVACODS, fp_db().sq_get("P2_FISCIVACOD"), r);
|
||||
sf.set_row_cell(F_CODFISCALES, fp_db().sq_get("P2_CODFISCALE"), r);
|
||||
sf.set_row_cell(F_TIPOPROTS, fp_db().sq_get("PZ_TIPOPROT"), r);
|
||||
sf.set_row_cell(F_PROGRESSS, fp_db().sq_get("PZ_NUMPROT"), r);
|
||||
sf.set_row_cell(F_KEYFPPROS, keys, r);
|
||||
}
|
||||
keys.add(fp_db().sq_get("PZ_KEYHEADERFATT")); keys.add(fp_db().sq_get("PZ_KEYBODYFATT"));
|
||||
row.add("", 0);
|
||||
row.add(fp_db().sq_get("P7_TIPODOC"));
|
||||
row.add(TDate(fp_db().sq_get_date("P1_DATAORARIC")));
|
||||
row.add(TDate(fp_db().sq_get_date("PZ_DATA")));
|
||||
row.add(fp_db().sq_get("PQ_IMPTOTDOC"));
|
||||
row.add(fppro_db().set_keys(keys).get_ritenute());
|
||||
row.add(fp_db().sq_get("PZ_NUMERO"));
|
||||
row.add(fp_db().sq_get("P2_ANADENOMIN"));
|
||||
row.add(fp_db().sq_get("P2_FISCIVAPAESE"));
|
||||
row.add(fp_db().sq_get("P2_FISCIVACOD"));
|
||||
row.add(fp_db().sq_get("P2_CODFISCALE"));
|
||||
row.add(fp_db().sq_get("PZ_TIPOPROT"));
|
||||
row.add(fp_db().sq_get("PZ_NUMPROT"));
|
||||
row.add(keys);
|
||||
}
|
||||
sf.force_update();
|
||||
sf.show();
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TPro_msk::riporta(TMask_field& f)
|
||||
bool TPro_msk::fppro_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
TMask& msk = f.mask();
|
||||
|
||||
const bool load = load_fppro_mask(&msk, k);
|
||||
return load;
|
||||
}
|
||||
|
||||
bool TPro_msk::riporta_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
if (k != 32)
|
||||
return true;
|
||||
TMask& msk = f.mask();
|
||||
//if (msk.curr_page() != 3)
|
||||
//return true;
|
||||
bool ok = false;
|
||||
@ -4225,10 +4242,16 @@ bool TPro_msk::riporta(TMask_field& f)
|
||||
|
||||
FOR_EACH_SHEET_ROW(sf, nr, row)
|
||||
{
|
||||
if(row->get_bool(0))
|
||||
if(*row->get(0) == 'X')
|
||||
{
|
||||
app().pro_mask()->set_doc(sf, nr);
|
||||
_riporta = f.dlg() == DLG_OK;
|
||||
//TProtocollo protocollo(TDate(row->get(2)).year(), row->get(9), row->get(10));
|
||||
app()._pro_mask->set_doc(row->get(cid2index(F_NUMEROS)), row->get(cid2index(F_DATAS)),
|
||||
row->get(cid2index(F_IMPTOTDOCS)), row->get(cid2index(F_RITENUTE)), "", row->get(cid2index(F_KEYFPPROS)),
|
||||
msk.get(F_CODCLIFORS), row->get(cid2index(F_FISCIVACODS)));
|
||||
if (f.dlg() == DLG_OK)
|
||||
app()._pro_mask->_riporta = true;
|
||||
else
|
||||
app()._pro_mask->_riporta = false;
|
||||
ok = true;
|
||||
break;
|
||||
}
|
||||
@ -4242,56 +4265,67 @@ bool TPro_msk::riporta(TMask_field& f)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TPro_msk::collega_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
return riporta_handler(f, k);
|
||||
}
|
||||
|
||||
bool TPro_msk::piva_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
TMask& msk = f.mask();
|
||||
bool ok = true;
|
||||
|
||||
if(k == K_TAB && f.active() && f.focusdirty())
|
||||
{
|
||||
ok = load_fppro_mask(&msk, K_SPACE);
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
bool TPro_msk::date_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
TMask& msk = f.mask();
|
||||
bool ok = true;
|
||||
|
||||
if (k == K_TAB && f.active() && f.focusdirty())
|
||||
{
|
||||
ok = load_fppro_mask(&msk, K_SPACE);
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
void TPro_msk::fppro_selfatt() const
|
||||
{
|
||||
const TMask& mask = *this;
|
||||
TSheet_field& sf = mask.sfield(F_SHEETFPPROS);
|
||||
|
||||
sf.hide();
|
||||
FOR_EACH_SHEET_ROW(sf, nr, row)
|
||||
if (sf.get_bool_row_cell(nr, F_SELFPPROS))
|
||||
sf.set_row_cell(F_SELFPPROS, false, nr);
|
||||
{
|
||||
if (*row->get(0) == 'X')
|
||||
row->add("", 0);
|
||||
}
|
||||
sf.force_update();
|
||||
sf.show();
|
||||
}
|
||||
|
||||
bool TPro_msk::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
TMask & m = o.mask();
|
||||
|
||||
switch (o.dlg())
|
||||
{
|
||||
case DLG_CONFIG:
|
||||
if (e == fe_button)
|
||||
load_fppro_mask(m);
|
||||
break;
|
||||
case DLG_OK:
|
||||
if (e == fe_button)
|
||||
riporta(o);
|
||||
break;
|
||||
case DLG_LINK:
|
||||
if (e == fe_button)
|
||||
riporta(o);
|
||||
break;
|
||||
case F_PIVAS:
|
||||
if (e == fe_modify)
|
||||
load_fppro_mask(m);
|
||||
break;
|
||||
case F_DATESEARCH:
|
||||
if (e == fe_modify)
|
||||
load_fppro_mask(m);
|
||||
break;
|
||||
case F_SELFPPROS:
|
||||
case F_SELFPPROS:
|
||||
if (e == fe_modify)
|
||||
fppro_selfatt();
|
||||
break;
|
||||
case F_SHOWALL:
|
||||
if (e == fe_modify)
|
||||
load_fppro_mask(m);
|
||||
load_fppro_mask(this, K_SPACE);
|
||||
break;
|
||||
case F_ENABSEARCH:
|
||||
if (e == fe_modify)
|
||||
{
|
||||
abilita_piva();
|
||||
load_fppro_mask(m);
|
||||
abilita_piva(this);
|
||||
load_fppro_mask(this);
|
||||
}
|
||||
break;
|
||||
case F_ENABDATE:
|
||||
@ -4299,7 +4333,7 @@ bool TPro_msk::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
field(F_DATESEARCH).show(o.mask().get_bool(F_ENABDATE));
|
||||
if (!o.mask().get_bool(F_ENABDATE))
|
||||
load_fppro_mask(m);
|
||||
load_fppro_mask(this);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
@ -4310,11 +4344,9 @@ bool TPro_msk::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
|
||||
bool TPro_msk::is_doc_split()
|
||||
{
|
||||
FOR_EACH_ARRAY_ITEM(_righe_iva, r, obj)
|
||||
for(riga_iva_s const& riga : _righe_iva)
|
||||
{
|
||||
TToken_string & riga = STRING_TOKEN(obj);
|
||||
|
||||
if (riga.get(FPRI_ESIGIBILITA) == "S")
|
||||
if (riga.esigibilita == 'S')
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@ -4351,70 +4383,53 @@ void TPro_msk::set_scadenze(const char* fpprokeys)
|
||||
}
|
||||
}
|
||||
|
||||
void TPro_msk::set_doc(TSheet_field & s, int nrow)
|
||||
//long numero, TDate datadoc, real totdoc, real ritenute, const char* protfppro, const char* fpprokeys, long codforn, const char* piva)
|
||||
void TPro_msk::set_doc(const char* numero, const char* datadoc, const char* totdoc, const char* ritenute, const char* protfppro, const char* fpprokeys, const char* codforn, const char* piva)
|
||||
{
|
||||
_numero = s.get_long_row_cell(nrow, F_NUMEROS);
|
||||
_datadoc = s.get_date_row_cell(nrow, F_DATAS);
|
||||
_totdoc = abs(s.get_real_row_cell(nrow, F_IMPTOTDOCS));
|
||||
_ritenute = s.get_real_row_cell(nrow, F_RITENUTE);
|
||||
_protfppro.sset("");
|
||||
|
||||
const TString & fpprokeys = s.get_str_row_cell(nrow, F_KEYFPPROS);
|
||||
|
||||
_numero = numero;
|
||||
_datadoc = datadoc;
|
||||
_totdoc = abs(totdoc);
|
||||
_ritenute = ritenute;
|
||||
_protfppro.sset(protfppro);
|
||||
_fpprokeys = fpprokeys;
|
||||
set_righeiva(fpprokeys);
|
||||
set_scadenze(fpprokeys);
|
||||
_codforn = s.get_long_row_cell(nrow, F_CODCLIFORS);
|
||||
_piva = s.get_str_row_cell(nrow, F_FISCIVACODS);
|
||||
|
||||
_codforn = codforn;
|
||||
_piva = piva;
|
||||
set_righeiva(fpprokeys);
|
||||
set_scadenze(fpprokeys);
|
||||
}
|
||||
|
||||
real TPro_msk::get_tot_imp_riva()
|
||||
{
|
||||
real tot;
|
||||
real tot = ZERO;
|
||||
|
||||
FOR_EACH_ARRAY_ITEM(_righe_iva, r, obj)
|
||||
for(riga_iva_s const& riga : _righe_iva)
|
||||
{
|
||||
TToken_string & riga = STRING_TOKEN(obj);
|
||||
|
||||
tot += riga.get_real(FPRI_IMPONIBILE);
|
||||
if (riga.imposta > ZERO)
|
||||
tot += riga.imponibile;
|
||||
}
|
||||
return tot;
|
||||
}
|
||||
|
||||
void TPro_msk::add_rigaiva(const real& imponibile, const real& imposta, const real& aliquota, const TString4& natura, char esigib)
|
||||
{
|
||||
TToken_string riga;
|
||||
|
||||
riga.add(imponibile, FPRI_IMPONIBILE);
|
||||
riga.add(imposta, FPRI_IMPOSTA);
|
||||
riga.add(aliquota, FPRI_ALIQUOTA);
|
||||
riga.add(natura, FPRI_NATURA);
|
||||
riga.add(esigib, FPRI_ESIGIBILITA);
|
||||
_righe_iva.add(riga);
|
||||
_righe_iva.insert(_righe_iva.end(), { imponibile, imposta, aliquota, natura, esigib });
|
||||
}
|
||||
|
||||
void TPro_msk::add_scad(const TDate& date, const real& importo)
|
||||
{
|
||||
TToken_string riga;
|
||||
|
||||
riga.add(date, FPSC_DATA);
|
||||
riga.add(importo, FPSC_IMPORTO);
|
||||
_scadenze.add(riga);
|
||||
_scadenze.insert(_scadenze.end(), { date, importo });
|
||||
}
|
||||
|
||||
TString& TPro_msk::query_fppro(const TString& codforn, const TDate& date)
|
||||
TString& TPro_msk::query_fppro(const TString& codforn, const TString& date)
|
||||
{
|
||||
return query_fppro(codforn, "", "", "", date, "", "", "", true, false);
|
||||
}
|
||||
|
||||
TString& TPro_msk::query_fppro(const TString& stato_piva, const TString& piva, const TDate& date)
|
||||
TString& TPro_msk::query_fppro(const TString& stato_piva, const TString& piva, const TString& date)
|
||||
{
|
||||
return query_fppro("", stato_piva, piva, "", date, "", "", "", true, true);
|
||||
}
|
||||
|
||||
TString& TPro_msk::query_fppro(const TString& codforn, const TString& stato_piva, const TString& piva, const TString& where_str, const TDate& date, const TString& keyprginvio, const TString& keyheaderfatt, const TString& keybodyfatt, bool order, bool piva_research)
|
||||
TString& TPro_msk::query_fppro(const TString& codforn, const TString& stato_piva, const TString& piva, const TString& where_str, const TString& date, const TString& keyprginvio, const TString& keyheaderfatt, const TString& keybodyfatt, bool order, bool piva_research)
|
||||
{
|
||||
TString id_fornitore;
|
||||
TString keys;
|
||||
@ -4438,15 +4453,14 @@ TString& TPro_msk::query_fppro(const TString& codforn, const TString& stato_piva
|
||||
id_fornitore << " (PZ_CLIFOR = '" << codforn << "') ";
|
||||
}
|
||||
|
||||
TString & query = query_string();
|
||||
|
||||
query << "WHERE ";
|
||||
static TString query;
|
||||
query.cut(0) << query_string() << "WHERE ";
|
||||
|
||||
if (!id_fornitore.empty())
|
||||
{
|
||||
query << id_fornitore << " ";
|
||||
if (date.ok())
|
||||
query << " AND PZ_DATA = '" << date.date2ansi() << "' ";
|
||||
if (!date.empty())
|
||||
query << " AND PZ_DATA = '" << TDate(date).date2ansi() << "' ";
|
||||
if (order)
|
||||
query << "\nORDER BY P1_DATAORARIC ASC";
|
||||
query << ";";
|
||||
@ -4458,9 +4472,9 @@ TString& TPro_msk::query_fppro(const TString& codforn, const TString& stato_piva
|
||||
query << " AND " << where_str;
|
||||
query << ";";
|
||||
}
|
||||
else if (date.ok())
|
||||
else if (!date.empty())
|
||||
{
|
||||
query << " PZ_DATA = '" << date.date2ansi() << "' ";
|
||||
query << " PZ_DATA = '" << TDate(date).date2ansi() << "' ";
|
||||
if (order)
|
||||
query << "\nORDER BY P1_DATAORARIC ASC, PZ_TIPOPROT ASC, PZ_NUMPROT ASC";
|
||||
query << ";";
|
||||
@ -4475,37 +4489,47 @@ TString& TPro_msk::query_fppro(const TString& codforn, const TString& stato_piva
|
||||
|
||||
TString& TPro_msk::query_string()
|
||||
{
|
||||
TString & query = get_tmp_string(512);
|
||||
static TString query;
|
||||
|
||||
query << "SELECT PZ_CLIFOR, PZ_DATA, CAST(P1_DATAORARIC AS DATE) AS P1_DATAORARIC, P7_TIPODOC, PQ_IMPTOTDOC, PZ_NUMERO, PZ_NUMREGCONT, PZ_TIPOPROT, " <<
|
||||
"PZ_NUMPROT, P2_ANADENOMIN, P2_FISCIVAPAESE, P2_FISCIVACOD, P2_CODFISCALE, PZ_KEYPRGINVIO, PZ_KEYHEADERFATT, PZ_KEYBODYFATT\n" <<
|
||||
"FROM PAA0200F \nJOIN FPPRO00F\n" << " ON P2_KEYPRGINVIO = PZ_KEYPRGINVIO AND P2_KEYHEADERFATT = PZ_KEYHEADERFATT AND P2_KEYBODYFATT = PZ_KEYBODYFATT\n" <<
|
||||
"JOIN PAA0100F \nON P2_KEYPRGINVIO = P1_KEYPRGINVIO AND P2_KEYHEADERFATT = P1_KEYHEADERFATT AND P2_KEYBODYFATT = P1_KEYBODYFATT\n" <<
|
||||
"JOIN PAA2700F \nON P2_KEYPRGINVIO = PQ_KEYPRGINVIO AND P2_KEYHEADERFATT = PQ_KEYHEADERFATT AND P2_KEYBODYFATT = PQ_KEYBODYFATT\n" <<
|
||||
"JOIN PAA0700F \nON P7_KEYPRGINVIO = PQ_KEYPRGINVIO AND P7_KEYHEADERFATT = PQ_KEYHEADERFATT AND P7_KEYBODYFATT = PQ_KEYBODYFATT\n";
|
||||
query.cut(0) << "SELECT PZ_CLIFOR, PZ_DATA, CAST(P1_DATAORARIC AS DATE) AS P1_DATAORARIC, P7_TIPODOC, PQ_IMPTOTDOC, PZ_NUMERO, PZ_NUMREGCONT, PZ_TIPOPROT, " <<
|
||||
"PZ_NUMPROT, P2_ANADENOMIN, P2_FISCIVAPAESE, P2_FISCIVACOD, P2_CODFISCALE, PZ_KEYPRGINVIO, PZ_KEYHEADERFATT, PZ_KEYBODYFATT\n" <<
|
||||
"FROM PAA0200F \nJOIN FPPRO00F\n" << " ON P2_KEYPRGINVIO = PZ_KEYPRGINVIO AND P2_KEYHEADERFATT = PZ_KEYHEADERFATT AND P2_KEYBODYFATT = PZ_KEYBODYFATT\n" <<
|
||||
"JOIN PAA0100F \nON P2_KEYPRGINVIO = P1_KEYPRGINVIO AND P2_KEYHEADERFATT = P1_KEYHEADERFATT AND P2_KEYBODYFATT = P1_KEYBODYFATT\n" <<
|
||||
"JOIN PAA2700F \nON P2_KEYPRGINVIO = PQ_KEYPRGINVIO AND P2_KEYHEADERFATT = PQ_KEYHEADERFATT AND P2_KEYBODYFATT = PQ_KEYBODYFATT\n" <<
|
||||
"JOIN PAA0700F \nON P7_KEYPRGINVIO = PQ_KEYPRGINVIO AND P7_KEYHEADERFATT = PQ_KEYHEADERFATT AND P7_KEYBODYFATT = PQ_KEYBODYFATT\n";
|
||||
return query;
|
||||
}
|
||||
|
||||
void TPro_msk::abilita_piva()
|
||||
void TPro_msk::abilita_piva(TMask* msk)
|
||||
{
|
||||
const bool on = get_bool(F_ENABSEARCH);
|
||||
|
||||
enable(F_PIVAS, on);
|
||||
enable(F_STATOPAIVS, on);
|
||||
enable(F_COFIS, on);
|
||||
if (msk->get_bool(F_ENABSEARCH))
|
||||
{
|
||||
msk->enable(F_PIVAS);
|
||||
msk->enable(F_STATOPAIVS);
|
||||
}
|
||||
else
|
||||
{
|
||||
msk->enable(F_PIVAS, false);
|
||||
msk->enable(F_STATOPAIVS, false);
|
||||
}
|
||||
}
|
||||
|
||||
TPro_msk::TPro_msk(TMask& cg_msk) : TAutomask("cg2100t"), _riporta(false), _codforn(0L), _numero(0L)
|
||||
TPro_msk::TPro_msk(TMask& cg_msk) : TAutomask("cg2100t"), _riporta(false), _codforn("")
|
||||
{
|
||||
enable(DLG_OK, app().has_module(F1AUT));
|
||||
set(F_CODCLIFORS, cg_msk.get(F_CODCLIFOR));
|
||||
set(F_COFIS, cg_msk.get(F_COFI));
|
||||
set(F_STATOPAIVS, cg_msk.get(F_STATOPAIV));
|
||||
set(F_PIVAS, cg_msk.get(F_PIVA));
|
||||
set(F_RAGSOCS, cg_msk.get(F_RAGSOCCF));
|
||||
TMask::set_handler(DLG_CONFIG, fppro_handler);
|
||||
TMask::set_handler(DLG_OK, riporta_handler);
|
||||
if (!app().has_module(F1AUT))
|
||||
field(DLG_OK).disable();
|
||||
TMask::set_handler(DLG_LINK, collega_handler);
|
||||
TMask::set_handler(F_PIVAS, piva_handler);
|
||||
TMask::set_handler(F_DATESEARCH, date_handler);
|
||||
TMask::set(F_CODCLIFORS, cg_msk.get(F_CODCLIFOR));
|
||||
TMask::set(F_COFIS, cg_msk.get(F_COFI));
|
||||
TMask::set(F_STATOPAIVS, cg_msk.get(F_STATOPAIV));
|
||||
TMask::set(F_PIVAS, cg_msk.get(F_PIVA));
|
||||
TMask::set(F_RAGSOCS, cg_msk.get(F_RAGSOCCF));
|
||||
set(F_DATESEARCH, TDate(TODAY));
|
||||
_righe_iva.destroy();
|
||||
_scadenze.destroy();
|
||||
_righe_iva.clear();
|
||||
}
|
||||
|
||||
bool& is_f1()
|
||||
@ -4514,3 +4538,8 @@ bool& is_f1()
|
||||
return is_f1;
|
||||
}
|
||||
|
||||
TString& num_doc_rif()
|
||||
{
|
||||
static TString num_doc_rif_partite = -1;
|
||||
return num_doc_rif_partite;
|
||||
}
|
180
src/cg/cg2102.h
180
src/cg/cg2102.h
@ -27,76 +27,15 @@
|
||||
|
||||
#include <automask.h>
|
||||
#include "../f1/f1lib.h"
|
||||
#include <vector>
|
||||
|
||||
#define K_ELIMMAS 0 // Key per eliminazione massima
|
||||
|
||||
#define FPRI_IMPONIBILE 0
|
||||
#define FPRI_IMPOSTA 1
|
||||
#define FPRI_ALIQUOTA 2
|
||||
#define FPRI_NATURA 3
|
||||
#define FPRI_ESIGIBILITA 4
|
||||
|
||||
#define FPSC_DATA 0
|
||||
#define FPSC_IMPORTO 1
|
||||
#define K_ELIMMAS 0 // Key per eliminazione massima
|
||||
|
||||
class TPro_msk;
|
||||
class TDati_mov_auto;
|
||||
|
||||
enum CGMaskType { _query = 0, _no_iva = 1, _iva = 2, _occas = 3};
|
||||
|
||||
class TPro_msk : public TAutomask
|
||||
{
|
||||
long _numero;
|
||||
TDate _datadoc;
|
||||
real _totdoc;
|
||||
real _ritenute;
|
||||
TProtocollo _protfppro;
|
||||
TString _fpprokeys;
|
||||
TString _piva;
|
||||
long _codforn;
|
||||
TString_array _righe_iva;
|
||||
TString_array _scadenze;
|
||||
bool _riporta;
|
||||
|
||||
// Non permette la selezione multipla
|
||||
void fppro_selfatt() const;
|
||||
bool on_field_event(TOperable_field& o, TField_event e, long jolly) override;
|
||||
public:
|
||||
bool da_riportare() const { return _riporta; }
|
||||
bool is_doc_split() ;
|
||||
|
||||
void set_righeiva(const char* fpprokeys);
|
||||
void set_scadenze(const char* fpprokeys);
|
||||
void set_doc(TSheet_field & s, int nrow);
|
||||
|
||||
const long get_numdoc() const { return _numero; }
|
||||
const TDate & get_datadoc() const { return _datadoc; }
|
||||
const real & get_totdoc() const { return _totdoc; }
|
||||
const real & get_ritenute() const { return _ritenute; }
|
||||
const TString & get_fpprokeys() const { return _fpprokeys; }
|
||||
const long get_codforn() const { return _codforn; }
|
||||
const TString & get_piva() const { return _piva; }
|
||||
const TString_array& get_righeiva() const { return _righe_iva; }
|
||||
const TProtocollo& get_protocollo() const { return _protfppro; }
|
||||
const TString_array& get_scadenze() const { return _scadenze; }
|
||||
real get_tot_imp_riva() ;
|
||||
|
||||
void add_rigaiva(const real& imponibile, const real& imposta, const real& aliquota, const TString4& natura, char esigib);
|
||||
void add_scad(const TDate& date, const real& importo);
|
||||
|
||||
static TString& query_fppro(const TString& codforn, const TDate& date);
|
||||
static TString& query_fppro(const TString& stato_piva, const TString& piva, const TDate& date);
|
||||
static TString& query_fppro(const TString& codforn, const TString& stato_piva, const TString& piva, const TString& where_str, const TDate& date, const TString& keyprginvio, const TString& keyheaderfatt, const TString& keybodyfatt, bool order = true, bool piva_research = false);
|
||||
static TString& query_string();
|
||||
|
||||
void abilita_piva();
|
||||
|
||||
// Carica documenti FPPRO sulla maschera
|
||||
bool riporta(TMask_field& f);
|
||||
bool load_fppro_mask(TMask & msk);
|
||||
|
||||
TPro_msk(TMask& cg_msk);
|
||||
};
|
||||
|
||||
class TPrimanota_application : public TRelation_application
|
||||
{
|
||||
TMovimentoPN* _rel; // Relazione principale
|
||||
@ -151,12 +90,11 @@ class TPrimanota_application : public TRelation_application
|
||||
|
||||
TAssoc_array _colori; // Colori delle righe
|
||||
bool _isf1;
|
||||
TPro_msk * _pro_mask;
|
||||
shared_ptr<TPro_msk> _pro_mask;
|
||||
bool _is_set_fpcheck;
|
||||
int _last_date;
|
||||
bool _f1_ini;
|
||||
bool _f1_liq;
|
||||
TString _num_doc_rif_partite;
|
||||
friend class TPro_msk;
|
||||
|
||||
static bool showpartite_handler(TMask_field& f, KEY k);
|
||||
@ -242,11 +180,11 @@ class TPrimanota_application : public TRelation_application
|
||||
|
||||
// Gestione F1
|
||||
|
||||
static void write_righe_iva_f1(TMask& cg_msk, const TPro_msk & msk);
|
||||
static bool write_scad_f1(const TMask& cg_msk, const TPro_msk & msk);
|
||||
static void write_clifo(TMask& cg_msk, const TPro_msk & msk);
|
||||
static void set_totale(TMask& cg_msk, TPro_msk & msk);
|
||||
static void riporta_dati_f1(TMask& cg_msk, TPro_msk & msk);
|
||||
static void write_righe_iva_f1(TMask& cg_msk, const shared_ptr<TPro_msk>& msk);
|
||||
static bool write_scad_f1(const TMask& cg_msk, const shared_ptr<TPro_msk>& msk);
|
||||
static void write_clifo(TMask& cg_msk, const shared_ptr<TPro_msk>& msk);
|
||||
static void set_totale(TMask& cg_msk, const shared_ptr<TPro_msk>& msk);
|
||||
static void riporta_dati_f1(TMask& cg_msk, const shared_ptr<TPro_msk>& msk);
|
||||
void insert_part_scad(TConfig& ini);
|
||||
// Handlers per aggancio FPPRO
|
||||
// Bottone per maschera FPPRO
|
||||
@ -284,10 +222,9 @@ protected: // TApplication
|
||||
static bool scollega(bool set = false);
|
||||
// Pulisce il mov e db dai firerimenti FPPRO (in MODE_MOD per edit/delete)
|
||||
void clean_fppro();
|
||||
// Ha f1 ?
|
||||
bool has_f1() const;
|
||||
// controlla il db
|
||||
bool has_f1_db(const TMask & m);
|
||||
// setta variabili prima del controllo has_f1_db
|
||||
void set_has_f1_db(TMask* m);
|
||||
bool has_f1_db(TMask* m);
|
||||
// Controlli prima di write e rewrite
|
||||
int controlli_f1(const TMask& m);
|
||||
|
||||
@ -383,8 +320,8 @@ protected:
|
||||
real calcola_imp() const;
|
||||
|
||||
void add_cgs_tot(TMask& m);
|
||||
int set_cgs_row(int n, TImporto& importo, const TBill& conto, const char* desc, char tipo,
|
||||
const char* cms = nullptr, const char* fas = nullptr);
|
||||
int set_cgs_row(int n, const TImporto& importo, const TBill& conto, const char* desc, char tipo,
|
||||
const char* cms = nullptr, const char* fas = nullptr);
|
||||
void set_cgs_imp(int n, const TImporto& importo);
|
||||
bool add_cgs_imp(int n, const TImporto& importo);
|
||||
bool sub_cgs_imp(int n, const TImporto& importo);
|
||||
@ -462,18 +399,97 @@ public:
|
||||
TString_array& pag_rows() { return _pag_rows; }
|
||||
TImporto get_cgs_imp(int n) const;
|
||||
|
||||
TPro_msk * pro_mask() const { return _pro_mask; }
|
||||
|
||||
TImporto imposte_split_pay() const;
|
||||
const TString & num_doc_rif() const { return _num_doc_rif_partite; }
|
||||
|
||||
TPrimanota_application();
|
||||
virtual ~TPrimanota_application() { safe_delete(_pro_mask); }
|
||||
virtual ~TPrimanota_application() { }
|
||||
};
|
||||
|
||||
class TPro_msk : public TAutomask
|
||||
{
|
||||
public:
|
||||
struct riga_iva_s;
|
||||
struct scadenza_s;
|
||||
private:
|
||||
TString _numero;
|
||||
TDate _datadoc;
|
||||
real _totdoc;
|
||||
real _ritenute;
|
||||
TProtocollo _protfppro;
|
||||
TString _fpprokeys;
|
||||
TString _piva;
|
||||
TString _codforn;
|
||||
vector<riga_iva_s> _righe_iva;
|
||||
vector<scadenza_s> _scadenze;
|
||||
bool _riporta;
|
||||
|
||||
// Handlers per aggancio FPPRO
|
||||
// Bottone carica documenti in maschera FPPRO
|
||||
static bool fppro_handler(TMask_field& f, KEY k);
|
||||
// Bottone riporta doc FPPRO in testata Prima Nota
|
||||
static bool riporta_handler(TMask_field& f, KEY k);
|
||||
static bool collega_handler(TMask_field& f, KEY k);
|
||||
static bool piva_handler(TMask_field& f, KEY k);
|
||||
static bool date_handler(TMask_field& f, KEY k);
|
||||
// Non permette la selezione multipla
|
||||
void fppro_selfatt() const;
|
||||
bool on_field_event(TOperable_field& o, TField_event e, long jolly) override;
|
||||
public:
|
||||
struct riga_iva_s
|
||||
{
|
||||
real imponibile;
|
||||
real imposta;
|
||||
real aliquota;
|
||||
TString4 natura;
|
||||
char esigibilita;
|
||||
};
|
||||
struct scadenza_s
|
||||
{
|
||||
TDate data;
|
||||
real importo;
|
||||
};
|
||||
|
||||
bool should_bring_back() const { return _riporta; }
|
||||
bool is_doc_split();
|
||||
|
||||
void set_righeiva(const char* fpprokeys);
|
||||
void set_scadenze(const char* fpprokeys);
|
||||
void set_doc(const char* numero, const char* datadoc, const char* totdoc, const char* ritenute, const char* protfppro, const char* fpprokeys, const char* codforn, const char* piva);
|
||||
|
||||
TString get_numdoc() const { return _numero; }
|
||||
TDate get_datadoc() const { return _datadoc; }
|
||||
real get_totdoc() const { return _totdoc; }
|
||||
real get_ritenute() const { return _ritenute; }
|
||||
TString get_fpprokeys() const { return _fpprokeys; }
|
||||
TString get_codforn() const { return _codforn; }
|
||||
TString get_piva() const { return _piva; }
|
||||
const vector<riga_iva_s>& get_righeiva() const { return _righe_iva; }
|
||||
TProtocollo& get_protocollo() { return _protfppro; }
|
||||
vector<scadenza_s>& get_scadenze() { return _scadenze; }
|
||||
real get_tot_imp_riva();
|
||||
|
||||
|
||||
void add_rigaiva(const real& imponibile, const real& imposta, const real& aliquota, const TString4& natura, char esigib);
|
||||
void add_scad(const TDate& date, const real& importo);
|
||||
|
||||
|
||||
static TString& query_fppro(const TString& codforn, const TString& date);
|
||||
static TString& query_fppro(const TString& stato_piva, const TString& piva, const TString& date);
|
||||
static TString& query_fppro(const TString& codforn, const TString& stato_piva, const TString& piva, const TString& where_str, const TString& date, const TString& keyprginvio, const TString& keyheaderfatt, const TString& keybodyfatt, bool order = true, bool piva_research = false);
|
||||
static TString& query_string();
|
||||
|
||||
static void abilita_piva(TMask* msk);
|
||||
|
||||
// Carica documenti FPPRO sulla maschera
|
||||
static bool load_fppro_mask(TMask* msk, KEY k = 32);
|
||||
|
||||
TPro_msk() = delete;
|
||||
TPro_msk(TMask& cg_msk);
|
||||
};
|
||||
|
||||
bool& is_f1();
|
||||
|
||||
|
||||
TString& num_doc_rif();
|
||||
|
||||
#ifndef __EXTRA__
|
||||
inline TPrimanota_application& app()
|
||||
|
@ -329,7 +329,7 @@ bool TPrimanota_application::codpag_handler(TMask_field& f, KEY key)
|
||||
TMask& m = f.mask();
|
||||
TPrimanota_application& a = app();
|
||||
const bool set_scad = a.is_fattura() && m.page_enabled(2); // E' attiva pagina 3
|
||||
if (key == K_ENTER && (!a._f1_ini && (a._pro_mask == nullptr || !a._pro_mask->da_riportare())))
|
||||
if (key == K_ENTER && (!a._f1_ini && (a._pro_mask == nullptr || !a._pro_mask->should_bring_back())))
|
||||
{
|
||||
if (set_scad && f.empty())
|
||||
{
|
||||
@ -356,7 +356,7 @@ bool TPrimanota_application::codpag_handler(TMask_field& f, KEY key)
|
||||
}
|
||||
}
|
||||
|
||||
if (key == K_TAB && f.focusdirty() && m.insert_mode() && set_scad && (!a._f1_ini && (a._pro_mask == nullptr || !a._pro_mask->da_riportare())))
|
||||
if (key == K_TAB && f.focusdirty() && m.insert_mode() && set_scad && (!a._f1_ini && (a._pro_mask == nullptr || !a._pro_mask->should_bring_back())))
|
||||
a.set_scadenze(m);
|
||||
|
||||
return ok;
|
||||
@ -1227,7 +1227,8 @@ bool TPrimanota_application::notify_edit_pagamento(TPartita& p, TRectype& new_pa
|
||||
// Aggiornamento contopartita
|
||||
const TImporto old_importo(controsez, old_pag.get_real(PAGSCA_IMPORTO));
|
||||
TBill old_conto; old_conto.get(old_pag, true);
|
||||
TImporto new_importo(controsez, new_pag.get_real(PAGSCA_IMPORTO));
|
||||
|
||||
const TImporto new_importo(controsez, new_pag.get_real(PAGSCA_IMPORTO));
|
||||
|
||||
if (old_importo != new_importo || old_conto != new_conto)
|
||||
{
|
||||
@ -1297,7 +1298,7 @@ bool TPrimanota_application::notify_edit_pagamento(TPartita& p, TRectype& new_pa
|
||||
const real new_ritenute(new_pag.get(PAGSCA_RITENUTE));
|
||||
if (old_ritenute != new_ritenute)
|
||||
{
|
||||
TImporto grow_ritenute(causale().sezione_ritfis(), new_ritenute - old_ritenute);
|
||||
const TImporto grow_ritenute(causale().sezione_ritfis(), new_ritenute - old_ritenute);
|
||||
const int riga = type2pos(cgrowtype_ritfis);
|
||||
|
||||
if (riga < 0)
|
||||
@ -1318,7 +1319,7 @@ bool TPrimanota_application::notify_edit_pagamento(TPartita& p, TRectype& new_pa
|
||||
const real new_ritsoc(new_pag.get(PAGSCA_RITSOC));
|
||||
if (old_ritsoc != new_ritsoc)
|
||||
{
|
||||
TImporto grow_ritenute(causale().sezione_ritsoc(), new_ritsoc-old_ritsoc);
|
||||
const TImporto grow_ritenute(causale().sezione_ritsoc(), new_ritsoc-old_ritsoc);
|
||||
const int riga = type2pos(cgrowtype_ritsoc);
|
||||
|
||||
if (riga < 0)
|
||||
|
@ -920,9 +920,12 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k)
|
||||
TToken_string& row = partite.row(r);
|
||||
const int anno = row.get_int(0); // Anno partita
|
||||
TNumero_partita num = row.get(); // Numero partita
|
||||
|
||||
if (is_f1() && app().num_doc_rif().full())
|
||||
num = app().num_doc_rif();
|
||||
if(is_f1())
|
||||
{
|
||||
TNumero_partita prev = num;
|
||||
if ((num = num_doc_rif()) == -1)
|
||||
num = prev;
|
||||
}
|
||||
gm.set(P_ANNO, anno); // Aggiorna campi di ricerca
|
||||
gm.set(P_NUMERO, num);
|
||||
|
||||
|
@ -8,6 +8,7 @@
|
||||
#include "mov.h"
|
||||
#include <map>
|
||||
#include "rmov.h"
|
||||
#include <vector>
|
||||
#include "pconti.h"
|
||||
|
||||
#define INI_ANNO "riep_anno"
|
||||
@ -22,15 +23,18 @@ class TCompetenze_mask : public TAutomask
|
||||
int s_conto;
|
||||
real importo;
|
||||
};
|
||||
|
||||
TString_array _regs;
|
||||
|
||||
std::vector<int> _regs;
|
||||
std::vector<cont_contr_t> _conts;
|
||||
|
||||
const char* get_ini(bool dataini) const;
|
||||
|
||||
bool on_field_event(TOperable_field& o, TField_event e, long jolly) override;
|
||||
|
||||
|
||||
// Funzione becera di ordinamento del vettore _conts
|
||||
void sort_conts(bool sort_by_imp = true);
|
||||
static void swap_items(cont_contr_t* it, cont_contr_t* jt);
|
||||
static bool is_minor_of(cont_contr_t* jt, cont_contr_t* it);
|
||||
|
||||
static TString get_descr(int gruppo, int conto, int s_conto);
|
||||
void fill_contc();
|
||||
void fill();
|
||||
@ -46,44 +50,6 @@ const char* TCompetenze_mask::get_ini(bool dataini) const
|
||||
return ini_get_string(CONFIG_DITTA, "cg", INI_MESE, "");
|
||||
}
|
||||
|
||||
|
||||
static bool __sort_by_imp = false;
|
||||
|
||||
static int sort_sheet(TSheet_field & s, int r1, int r2)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
if (__sort_by_imp)
|
||||
{
|
||||
const real i1 = s.get_real_row_cell(r1, F_TOTCONTC);
|
||||
const real i2 = s.get_real_row_cell(r2, F_TOTCONTC);
|
||||
|
||||
if (i1 > i2)
|
||||
ret = 1;
|
||||
else
|
||||
if (i2 > i1)
|
||||
ret = -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = s.get_int_row_cell(r1, F_GRPCONTC) - s.get_int_row_cell(r2, F_GRPCONTC);
|
||||
if (ret == 0)
|
||||
ret = s.get_int_row_cell(r1, F_NUMCONTC) - s.get_int_row_cell(r2, F_NUMCONTC);
|
||||
if (ret == 0)
|
||||
{
|
||||
const long s1 = s.get_long_row_cell(r1, F_SOTCONTC);
|
||||
const real s2 = s.get_long_row_cell(r2, F_SOTCONTC);
|
||||
|
||||
if (s1 > s2)
|
||||
ret = 1;
|
||||
else
|
||||
if (s2 > s1)
|
||||
ret = -1;
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
bool TCompetenze_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
switch (o.dlg())
|
||||
@ -110,16 +76,6 @@ bool TCompetenze_mask::on_field_event(TOperable_field& o, TField_event e, long j
|
||||
case F_ANNO:
|
||||
if (e == fe_init) set(F_ANNO, get_ini(true));
|
||||
break;
|
||||
case F_ORDIN:
|
||||
if (e == fe_init || e == fe_modify)
|
||||
{
|
||||
TSheet_field& sf = sfield(F_CONTC);
|
||||
|
||||
__sort_by_imp = o.get_bool();
|
||||
sf.sort(sort_sheet);
|
||||
sf.force_update();
|
||||
}
|
||||
break;
|
||||
case F_MESE:
|
||||
if (e == fe_init)
|
||||
set(F_MESE, get_ini(false));
|
||||
@ -139,66 +95,100 @@ TString TCompetenze_mask::get_descr(int gruppo, int conto, int s_conto)
|
||||
return pcont.get(PCN_DESCR);
|
||||
}
|
||||
|
||||
bool TCompetenze_mask::is_minor_of(cont_contr_t* jt, cont_contr_t* it)
|
||||
{
|
||||
return jt->gruppo < it->gruppo
|
||||
|| (jt->gruppo == it->gruppo && jt->conto < it->conto)
|
||||
|| (jt->gruppo == it->gruppo && jt->conto == it->conto
|
||||
&& jt->s_conto < it->s_conto);
|
||||
}
|
||||
|
||||
void TCompetenze_mask::swap_items(cont_contr_t* it, cont_contr_t* jt)
|
||||
{
|
||||
const cont_contr_t appo = *it;
|
||||
*it = *jt;
|
||||
*jt = appo;
|
||||
}
|
||||
|
||||
void TCompetenze_mask::sort_conts(bool sort_by_imp)
|
||||
{
|
||||
// Sopra 100 rischia di essere leggermente lento?
|
||||
if (1 < _conts.size() && _conts.size() < 100)
|
||||
for (auto it = _conts.begin(); it != _conts.end(); ++it)
|
||||
for (auto jt = (it+1); jt != _conts.end(); ++jt)
|
||||
if (sort_by_imp && jt->importo > it->importo || !sort_by_imp && is_minor_of(&(*jt), &(*it)))
|
||||
swap_items(&(*it), &(*jt));
|
||||
}
|
||||
|
||||
void TCompetenze_mask::fill_contc()
|
||||
{
|
||||
TSheet_field& sf = sfield(F_CONTC);
|
||||
TAssoc_array conti;
|
||||
real tot;
|
||||
TLocalisamfile rmovs(LF_RMOV);
|
||||
|
||||
sf.hide();
|
||||
sf.reset();
|
||||
_conts.clear();
|
||||
// Per ogni registrazione
|
||||
FOR_EACH_ARRAY_ITEM(_regs, i, obj)
|
||||
for (int i = 0; i < (int)_regs.size(); ++i)
|
||||
{
|
||||
const long numreg = atol(STRING_TOKEN(obj));
|
||||
const TMovimento_contabile mov(numreg);
|
||||
const TCausale & caus = cached_causale(mov.get(MOV_CODCAUS));
|
||||
const int rows = mov.cg_rows();
|
||||
|
||||
// Per ogni riga della registrazione
|
||||
for (int r = mov.is_IVA() ? 2 : 1; r <= rows; r++)
|
||||
const int numreg = _regs[i];
|
||||
rmovs.zero();
|
||||
rmovs.put(RMV_NUMREG, numreg);
|
||||
rmovs.put(RMV_NUMRIG, 0);
|
||||
int riga = 0;
|
||||
if (rmovs.read())
|
||||
{
|
||||
const TRectype & rmov = mov.cg(r);
|
||||
const int gruppo = rmov.get_int(RMV_GRUPPO);
|
||||
const int numcontc = rmov.get_int(RMV_CONTO);
|
||||
const int s_conto = rmov.get_int(RMV_SOTTOCONTO);
|
||||
const TString& tipocc = rmov.get(RMV_TIPOC);
|
||||
const real importo = rmov.get_real(RMV_IMPORTO);
|
||||
TString key;
|
||||
|
||||
key.format("%03d|%03d|%06d", gruppo, numcontc, s_conto);
|
||||
|
||||
if (tipocc.blank()) // Solo se il tipo di conto di contr. e' un conto, cioe' vuoto
|
||||
// Per ogni riga della registrazione
|
||||
for (; rmovs.get_int(RMV_NUMREG) == numreg; rmovs.next())
|
||||
{
|
||||
// Cerco se ho già la chiave
|
||||
real * tot = (real *)conti.objptr(key);
|
||||
const int gruppo = rmovs.get_int(RMV_GRUPPOC);
|
||||
const int numcontc = rmovs.get_int(RMV_CONTOC);
|
||||
const int s_conto = rmovs.get_int(RMV_SOTTOCONTOC);
|
||||
const TString& tipocc = rmovs.get(RMV_TIPOCC);
|
||||
const real importo(rmovs.get(RMV_IMPORTO));
|
||||
|
||||
if (tot == nullptr)
|
||||
conti.add(key, tot = new real);
|
||||
*tot += importo;
|
||||
if (tipocc.blank()) // Solo se il tipo di conto di contr. e' un conto, cioe' vuoto
|
||||
{
|
||||
// Cerco se ho già la chiave
|
||||
auto it = _conts.begin();
|
||||
for (; it != _conts.end(); ++it)
|
||||
{
|
||||
if (it->gruppo == gruppo
|
||||
&& it->conto == numcontc
|
||||
&& it->s_conto == s_conto)
|
||||
break;
|
||||
}
|
||||
|
||||
if (it != _conts.end())
|
||||
it->importo += importo;
|
||||
else
|
||||
_conts.insert(_conts.end(), { gruppo, numcontc, s_conto, importo });
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
FOR_EACH_ASSOC_OBJECT(conti, i, k, o1)
|
||||
{
|
||||
TToken_string key = k;
|
||||
const int gruppo = key.get_int(0);
|
||||
const int conto = key.get_int(0);
|
||||
const int s_conto = key.get_long(2);
|
||||
|
||||
sort_conts(get(F_ORDIN) == "X");
|
||||
|
||||
real tot; tot = 0;
|
||||
for (auto it = _conts.begin(); it != _conts.end(); ++it)
|
||||
{
|
||||
const int gruppo = it->gruppo;
|
||||
const int conto = it->conto;
|
||||
const int s_conto = it->s_conto;
|
||||
const TString& descr = get_descr(gruppo, conto, s_conto);
|
||||
const real importo = *(real *)o1;
|
||||
int r = sf.set_row_cell(F_GRPCONTC, gruppo);
|
||||
|
||||
sf.set_row_cell(F_NUMCONTC, conto, r);
|
||||
sf.set_row_cell(F_SOTCONTC, s_conto, r);
|
||||
|
||||
sf.set_row_cell(F_DESCRCON, descr, r);
|
||||
sf.set_row_cell(F_TOTCONTC, importo, r);
|
||||
tot += importo;
|
||||
TToken_string& row = sf.row(-1);
|
||||
row.add(gruppo);
|
||||
row.add(conto);
|
||||
row.add(s_conto);
|
||||
row.add(descr);
|
||||
row.add(it->importo);
|
||||
tot += it->importo;
|
||||
}
|
||||
|
||||
sf.sort(sort_sheet);
|
||||
sf.force_update();
|
||||
sf.force_update();
|
||||
sf.show();
|
||||
|
||||
set(F_TOT, tot);
|
||||
}
|
||||
@ -208,42 +198,42 @@ void TCompetenze_mask::fill()
|
||||
const int anno = get_int(F_ANNO);
|
||||
const int mese = get_int(F_MESE);
|
||||
TSheet_field& sf = sfield(F_MOVS);
|
||||
TRectype from(LF_MOV);
|
||||
TRectype to(LF_MOV);
|
||||
TDate data(1, mese, anno);
|
||||
|
||||
from.put(MOV_DATAREG, data);
|
||||
data.set_end_month();
|
||||
to.put(MOV_DATAREG, data);
|
||||
|
||||
TCursor c(new TRelation(LF_MOV), "", 2, &from, &to);
|
||||
const int items = c.items();
|
||||
TLocalisamfile movs(LF_MOV);
|
||||
|
||||
sf.hide();
|
||||
sf.reset();
|
||||
_regs.destroy();
|
||||
for (c = 0L; c.pos() < items; ++c)
|
||||
_regs.clear();
|
||||
movs.setkey(2);
|
||||
|
||||
const TDate dataini(1, mese, anno);
|
||||
TDate dataend(dataini); dataend.set_end_month();
|
||||
movs.put(MOV_DATAREG, dataini);
|
||||
if (movs.read() != NOERR)
|
||||
{
|
||||
const TRectype & mov = c.curr();
|
||||
const int month_liq = mov.get_int(MOV_MESELIQ);
|
||||
const TDate datareg(mov.get(MOV_DATAREG));
|
||||
const TDate datacomp(mov.get(MOV_DATACOMP));
|
||||
|
||||
if (month_liq != 0)
|
||||
for (; movs.next() == NOERR && movs.get_date(MOV_DATAREG) <= dataend; )
|
||||
{
|
||||
_regs.add(mov.get(MOV_NUMREG));
|
||||
const int month_liq = movs.get_int(MOV_MESELIQ);
|
||||
const TDate datareg(movs.get(MOV_DATAREG));
|
||||
const TDate datacomp(movs.get(MOV_DATACOMP));
|
||||
|
||||
int r = sf.set_row_cell(F_NUMREG, mov.get(MOV_NUMREG));
|
||||
if (month_liq != 0)
|
||||
{
|
||||
_regs.insert(_regs.end(), movs.get_int(MOV_NUMREG));
|
||||
|
||||
sf.set_row_cell(F_DATAREG, mov.get_date(MOV_DATAREG), r);
|
||||
sf.set_row_cell(F_DATADOC, mov.get_date(MOV_DATADOC), r);
|
||||
sf.set_row_cell(F_CODCAUS, mov.get(MOV_CODCAUS), r);
|
||||
sf.set_row_cell(F_MESELIQ, month_liq, r);
|
||||
sf.set_row_cell(F_NUMDOC, mov.get(MOV_NUMDOC), r);
|
||||
sf.set_row_cell(F_PROTIVA, mov.get(MOV_PROTIVA), r);
|
||||
sf.set_row_cell(F_DESCR, mov.get(MOV_DESCR), r);
|
||||
TToken_string& row = sf.row(-1);
|
||||
row.add(movs.get(MOV_NUMREG));
|
||||
row.add(datareg);
|
||||
row.add(movs.get(MOV_DATADOC));
|
||||
row.add(TCausale(movs.get(MOV_CODCAUS)).tipo_doc());
|
||||
row.add(month_liq);
|
||||
row.add(movs.get(MOV_NUMDOC));
|
||||
row.add(movs.get(MOV_PROTIVA));
|
||||
row.add(movs.get(MOV_DESCR));
|
||||
}
|
||||
}
|
||||
}
|
||||
sf.force_update();
|
||||
sf.show();
|
||||
|
||||
fill_contc();
|
||||
}
|
||||
|
@ -118,7 +118,7 @@ END
|
||||
|
||||
NUMBER F_MESELIQ 2
|
||||
BEGIN
|
||||
PROMPT 1 5 "Mese Liq."
|
||||
PROMPT 1 5 "Causale "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
|
@ -68,8 +68,7 @@ class TListaMov_application : public TPrintapp
|
||||
int _ricser;
|
||||
bool _settata_prima_riga, _causale_gia_stampata,_mov_di_sola_iva;
|
||||
int _cur1,_cur2,_cur2b,_cur3,_cur4,_decidi,/*_tipod,*/_controllo_mov_errati;
|
||||
int _numero_riga, _alleg, _scelta_stampa, _nr, _n;
|
||||
tiporeg _tiporegistro;
|
||||
int _numero_riga, _alleg, _tiporegistro, _scelta_stampa, _nr, _n;
|
||||
int _provvis;
|
||||
liste _tipo_lista;
|
||||
word _flags;
|
||||
@ -117,6 +116,7 @@ public:
|
||||
bool RicercaDoc(const char* cod) const;
|
||||
const TString& SimboloValuta (const char* cod) const;
|
||||
const TString& DescrDoc(const char* cod) const;
|
||||
const TString& AttivitaRegistro(const char * cod, int anno) const;
|
||||
|
||||
TListaMov_application(char tipost);
|
||||
virtual ~TListaMov_application() {}
|
||||
@ -427,6 +427,19 @@ const TString& TListaMov_application::SimboloValuta(const char* cod) const
|
||||
const TString& TListaMov_application::DescrDoc(const char* tipo) const
|
||||
{ return cache().get(TAB_TPD, tipo, "S0"); }
|
||||
|
||||
const TString& TListaMov_application::AttivitaRegistro(const char* cod, int anno) const
|
||||
{
|
||||
TString8 key; key.format("%04d%-3s", anno, cod);
|
||||
return cache().get("REG", key, "S8");
|
||||
}
|
||||
|
||||
HIDDEN int tipo_registro(const char* cod, int anno)
|
||||
{
|
||||
TString8 codtab; codtab.format("%4d%-3s", anno, cod);
|
||||
const TString& tipo_reg = cache().get("REG", codtab, "I0");
|
||||
return atoi(tipo_reg);
|
||||
}
|
||||
|
||||
static bool between(const TString& code, const TString& mini, const TString& maxi)
|
||||
{
|
||||
if (mini.full() && code < mini)
|
||||
@ -495,11 +508,11 @@ bool TListaMov_application::filter_func_fatture (const TRelation* rel)
|
||||
|
||||
const int ann_reg = mov.get_int(MOV_ANNOIVA);
|
||||
const TString4 cod_reg = mov.get(MOV_REG);
|
||||
const tiporeg tipo_reg = cached_registro(cod_reg, ann_reg).tipo_registro();
|
||||
const int tipo_reg = tipo_registro(cod_reg, ann_reg);
|
||||
|
||||
// Considera solo iva acquisti o vendite
|
||||
if (tipo_reg != vendita && tipo_reg != acquisto)
|
||||
return false;
|
||||
if (tipo_reg != 1 && tipo_reg != 2)
|
||||
return FALSE;
|
||||
|
||||
if (app()._annoes > 0) //anno esercizio specificato nella maschera
|
||||
{
|
||||
@ -550,10 +563,8 @@ bool TListaMov_application::filter_func (const TRelation * rel)
|
||||
{
|
||||
const TString& cod_reg = mov.get(MOV_REG);
|
||||
const int ann_reg = mov.get_int(MOV_ANNOIVA);
|
||||
const tiporeg tipo_reg = cached_registro(cod_reg, ann_reg).tipo_registro();
|
||||
|
||||
// Considera solo iva acquisti o vendite
|
||||
if (tipo_reg != vendita && tipo_reg != acquisto)
|
||||
const int tipo_reg = tipo_registro(cod_reg, ann_reg);
|
||||
if (tipo_reg == 1 || tipo_reg == 2)
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -642,10 +653,9 @@ void TListaMov_application::stampa_errori_rmov()
|
||||
else set_row(_nr++, FR("@11gCodice C/F non presente in Anagrafica"));
|
||||
if (_registro.not_empty()) //se su mov e' indicato il codice registro
|
||||
{
|
||||
const TRegistro & reg = cached_registro(_registro, _ae);
|
||||
const tiporeg tipo = reg.tipo_registro();
|
||||
|
||||
if ((tipo == vendita && t != 'C') || (tipo == acquisto && t != 'F'))
|
||||
TRegistro rg (_registro, _ae);
|
||||
const int tiporeg = rg.tipo();
|
||||
if ((tiporeg == 1 && t != 'C') || (tiporeg == 2 && t != 'F'))
|
||||
set_row(_nr++, FR("@11gTipo C/F non compatibile con tipo registro"));
|
||||
}
|
||||
}
|
||||
@ -732,14 +742,14 @@ void TListaMov_application::stampa_errori_iva(int* nr, const TRigaiva& riva)
|
||||
const int tipocr = riva._tipocr;
|
||||
|
||||
if (tipodet == 1 || tipodet == 3 || tipodet == 5 || tipodet == 9)
|
||||
if (_tiporegistro != acquisto)
|
||||
if (_tiporegistro != 2)
|
||||
set_row(++(*nr), FR("@11gCodice di indetraibilita' errato"));
|
||||
|
||||
if (_tiporegistro == vendita)
|
||||
if (_tiporegistro == 1)
|
||||
if (tipocr != 0 && tipocr != 1 && tipocr != 4 && tipocr != 9)
|
||||
set_row(++(*nr), FR("@11gTipo costo/ricavo non valido"));
|
||||
|
||||
if (_tiporegistro == acquisto)
|
||||
if (_tiporegistro == 2)
|
||||
if (tipocr != 0 && tipocr != 1 && tipocr != 2 && tipocr != 3 && tipocr != 5 && tipocr != 8 && tipocr != 9)
|
||||
set_row(++(*nr), FR("@11gTipo costo/ricavo non valido"));
|
||||
}
|
||||
@ -799,11 +809,11 @@ void TListaMov_application::set_page(int file, int count)
|
||||
TString16 reg = current_cursor()->curr(LF_MOV).get(MOV_REG);
|
||||
int anno = current_cursor()->curr(LF_MOV).get_int(MOV_ANNOIVA);
|
||||
char prov = current_cursor()->curr(LF_MOV).get_char(MOV_PROVVIS);
|
||||
const tiporeg tipo = cached_registro(reg, anno).tipo_registro();
|
||||
int tipo = tipo_registro(reg, anno);
|
||||
|
||||
TEsercizi_contabili esc;
|
||||
|
||||
esc.date2esc(data); // qui verificare
|
||||
if ( (tipo == vendita) || (tipo == acquisto) )
|
||||
if ( (tipo == 1) || (tipo == 2) )
|
||||
{
|
||||
set_row (_n, FR("@103greg @3s"),FLD(LF_MOV,MOV_REG));
|
||||
set_row (_n, FR("@111gpr @5n"),FLD(LF_MOV,MOV_PROTIVA));
|
||||
@ -877,8 +887,7 @@ bool TListaMov_application::preprocess_page(int file,int counter)
|
||||
_codcf = curmov.get_long(MOV_CODCF);
|
||||
_numero = curmov.get_long(MOV_NUMREG);
|
||||
_codval = curmov.get(MOV_CODVALI);
|
||||
_tiporegistro = cached_registro(_registro, _anno).tipo_registro();
|
||||
|
||||
_tiporegistro = tipo_registro(_registro, _anno);
|
||||
|
||||
_causale_gia_stampata = FALSE;
|
||||
TEsercizi_contabili esc;
|
||||
@ -1005,9 +1014,11 @@ bool TListaMov_application::preprocess_page(int file,int counter)
|
||||
_descr_causale = caus.get(CAU_DESCR);
|
||||
_alleg_causale = caus.get_bool(CAU_ALLEG);
|
||||
_tipodocumento = caus.get(CAU_TIPODOC);
|
||||
_tiporegistro = cached_registro(_registro, _anno).tipo_registro();
|
||||
if ((_tiporegistro != vendita) && (_tiporegistro != acquisto))//se si tratta di un movimento di sola prima nota
|
||||
return true;
|
||||
|
||||
_tiporegistro = tipo_registro (_registro, _anno);
|
||||
|
||||
if ((_tiporegistro != 1)&&(_tiporegistro != 2))//se si tratta di un movimento di sola prima nota
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
else if (file == LF_RMOV)
|
||||
@ -1054,10 +1065,10 @@ bool TListaMov_application::preprocess_page(int file,int counter)
|
||||
_numr = curmov.get_long(MOV_NUMREG);
|
||||
_tipo_elenco = curmov.get(MOV_TIPO);
|
||||
_codcf = curmov.get_long(MOV_CODCF);
|
||||
const tiporeg tiporeg = cached_registro(codreg, anno).tipo_registro();
|
||||
const TString8 attreg = cached_registro(codreg, anno).attivita();
|
||||
const int tiporeg = tipo_registro (codreg, anno);
|
||||
const TString8 attreg = AttivitaRegistro (codreg, anno);
|
||||
|
||||
if (tiporeg == vendita || tiporeg == acquisto)//se si tratta di un movimento iva
|
||||
if (tiporeg == 1 || tiporeg == 2)//se si tratta di un movimento iva
|
||||
{
|
||||
_tipoatt = TipoAttivita(attreg, get_firm());
|
||||
_tipo_elenco = curmov.get(MOV_TIPO);
|
||||
@ -1886,18 +1897,18 @@ bool TListaMov_application::segnala_errori_iva()
|
||||
return true;
|
||||
}
|
||||
if (tipodet == 1 || tipodet == 3 || tipodet == 5 || tipodet == 9)
|
||||
if (_tiporegistro != acquisto)
|
||||
if (_tiporegistro != 2)
|
||||
{
|
||||
rmoviva.readat(nrec);
|
||||
return true;
|
||||
}
|
||||
if (_tiporegistro == vendita)
|
||||
if (_tiporegistro == 1)
|
||||
if (tipocr != 0 && tipocr != 1 && tipocr != 4 && tipocr != 9)
|
||||
{
|
||||
rmoviva.readat(nrec);
|
||||
return true;
|
||||
}
|
||||
if (_tiporegistro == acquisto)
|
||||
if (_tiporegistro == 2)
|
||||
if (tipocr != 0 && tipocr != 1 && tipocr != 2 && tipocr != 3 && tipocr != 5 && tipocr != 8 && tipocr != 9)
|
||||
{
|
||||
rmoviva.readat(nrec);
|
||||
|
@ -25,7 +25,6 @@
|
||||
|
||||
#include "cg3.h"
|
||||
#include "cg3300.h"
|
||||
#include "cglib.h"
|
||||
|
||||
#include "cg3300a.h"
|
||||
#include "cg3300b.h"
|
||||
@ -470,19 +469,18 @@ void TStampa_allegati::ricalcola(int anno_dic)
|
||||
{
|
||||
pi.addstatus(1);
|
||||
|
||||
const tiporeg tipo = cached_registro(reg).tipo_registro();
|
||||
|
||||
if ((tipo != acquisto) && (tipo != vendita))
|
||||
const int tiporeg = reg.get_int("I0");
|
||||
if ((tiporeg != 2) && (tiporeg != 1))
|
||||
continue;
|
||||
|
||||
if (tiporeg == vendita)
|
||||
if (tiporeg == 1)
|
||||
{
|
||||
if (cached_registro(reg).sospeso())
|
||||
continue;
|
||||
vendite = true;
|
||||
bool sosp = reg.get_bool ("B0");
|
||||
if (sosp) continue;
|
||||
vendite = TRUE;
|
||||
}
|
||||
else
|
||||
vendite = false;
|
||||
vendite = FALSE;
|
||||
|
||||
tipodoc = cau.get (CAU_TIPODOC);
|
||||
if (corrispettivo (tipodoc))
|
||||
|
@ -84,6 +84,7 @@ class TLista_fatture : public TPrintapp
|
||||
|
||||
protected:
|
||||
long select_firm_range(long from, long to);
|
||||
int tiporeg(const TString& );
|
||||
static bool mix_handler(TMask_field&, KEY);
|
||||
static bool date_handler(TMask_field&, KEY);
|
||||
static bool to_ditt_handler(TMask_field&, KEY);
|
||||
@ -116,6 +117,12 @@ public:
|
||||
|
||||
inline TLista_fatture& app() { return (TLista_fatture&) main_app(); }
|
||||
|
||||
int TLista_fatture::tiporeg(const TString& reg)
|
||||
{
|
||||
TString8 s; s.format("%4d%-3s",_date_from.year(),(const char*)reg);
|
||||
return atoi(cache().get("REG", s, "I0"));
|
||||
}
|
||||
|
||||
bool TLista_fatture::filter_func1(const TRelation *r)
|
||||
{
|
||||
TLista_fatture& a = app();
|
||||
@ -137,8 +144,8 @@ bool TLista_fatture::filter_func1(const TRelation *r)
|
||||
if (riv.get(RMI_TIPODET).blank() || percind.is_zero())
|
||||
return false;
|
||||
|
||||
const tiporeg tipo = cached_registro(rg).tipo_registro();
|
||||
if (tipo != acquisto)
|
||||
const int tiporeg = a.tiporeg(rg);
|
||||
if (tiporeg != 2)
|
||||
return false;
|
||||
}
|
||||
else // Tipo costo/ricavo
|
||||
@ -436,9 +443,8 @@ bool TLista_fatture::preprocess_page(int file, int counter)
|
||||
if (_tipo == intra)
|
||||
{
|
||||
TString4 codiva = rec.get(RMI_CODIVA);
|
||||
const tiporeg tipomov = cached_registro(mov.get(MOV_REG)).tipo_registro();
|
||||
|
||||
if (tipomov == acquisto && tipodet == 9)
|
||||
const int tipomov = tiporeg(mov.get(MOV_REG));
|
||||
if (tipomov == 2 && tipodet == 9)
|
||||
codiva = "~A19"; // Speciale per acquisti indeducibili art. 19
|
||||
const bool is_key = _intra_items.is_key(codiva); // Esiste l'elemento ?
|
||||
// Se si' allora prendi quello, altrimenti prendine uno nuovo
|
||||
@ -463,10 +469,8 @@ bool TLista_fatture::preprocess_page(int file, int counter)
|
||||
_tot_iva += iva;
|
||||
_tp_imp += imp;
|
||||
_tp_iva += iva;
|
||||
|
||||
const tiporeg tipomov = cached_registro(mov.get(MOV_REG)).tipo_registro();
|
||||
|
||||
if (_tipo == indetraibile && tipomov == acquisto && tipodet > 0)
|
||||
const int tipomov = tiporeg(mov.get(MOV_REG));
|
||||
if (_tipo == indetraibile && tipomov == 2 && tipodet > 0)
|
||||
{
|
||||
TString4 codiva = rec.get(RMI_CODIVA);
|
||||
_Iva_item * iva_row = (_Iva_item *) _indetr.objptr(codiva);
|
||||
|
@ -24,7 +24,7 @@
|
||||
#include <saldi.h>
|
||||
#include <causali.h>
|
||||
|
||||
#include "cglib.h"
|
||||
#include "cglib02.h"
|
||||
|
||||
struct therec
|
||||
{
|
||||
@ -89,7 +89,7 @@ bool CG4100_App::sort_sal()
|
||||
sal.set_anno_es(year);
|
||||
sal.clear_saldi(year);
|
||||
long numreg = 0L;
|
||||
tiposal tsal = saldo_normale;
|
||||
tiposal tsal = normale;
|
||||
char provvis;
|
||||
TDate datareg;
|
||||
|
||||
@ -127,11 +127,20 @@ bool CG4100_App::sort_sal()
|
||||
mov.put(MOV_NUMREG, numreg);
|
||||
mov.read();
|
||||
CHECK(mov.good(),"Archivi movimenti e righe inconsistenti");
|
||||
const TString& codcaus = mov.get(MOV_CODCAUS);
|
||||
|
||||
tsal = saldo_normale; // Tipo saldo normale per default
|
||||
if(codcaus.full())
|
||||
tsal = cached_causale(codcaus, year).tipo_saldo();
|
||||
// Tipo saldo normale per default
|
||||
tsal = normale;
|
||||
const TString& codcaus = mov.get(MOV_CODCAUS);
|
||||
const TRectype& causale = cache().get(LF_CAUSALI, codcaus);
|
||||
if (!causale.empty())
|
||||
{
|
||||
const char ac = causale.get_char(CAU_MOVAP);
|
||||
if (ac == 'A')
|
||||
tsal = apertura; else
|
||||
if (ac == 'C')
|
||||
tsal = chiusura;
|
||||
}
|
||||
|
||||
scaricato = mov.get_bool(MOV_SCARCON);
|
||||
provvis = mov.get_char(MOV_PROVVIS);
|
||||
datareg = mov.get_date(MOV_DATAREG);
|
||||
|
@ -208,6 +208,7 @@ bool TLiquidazione_app::user_create()
|
||||
_lam = new TTable("LAM");
|
||||
_pla = new TTable("%PLA");
|
||||
_reg = new TTable("REG");
|
||||
_iva = new TTable("%IVA");
|
||||
_del = new TTable("%DEL");
|
||||
|
||||
_mov = &_cur->file(LF_MOV);
|
||||
@ -224,6 +225,7 @@ bool TLiquidazione_app::user_create()
|
||||
_pum_r = &(_pum->curr());
|
||||
_pam_r = &(_pam->curr());
|
||||
_pom_r = &(_pom->curr());
|
||||
_iva_r = &(_iva->curr());
|
||||
_del_r = &(_del->curr());
|
||||
_lam_r = &(_lam->curr());
|
||||
_pla_r = &(_pla->curr());
|
||||
|
@ -338,6 +338,7 @@ class TLiquidazione_app : public TPrint_application
|
||||
TTable* _pla;
|
||||
TTable* _ppa;
|
||||
TTable* _reg;
|
||||
TTable* _iva;
|
||||
TTable* _del;
|
||||
|
||||
// a reference rectype per file/table
|
||||
@ -345,6 +346,7 @@ class TLiquidazione_app : public TPrint_application
|
||||
TRectype* _rmoviva_r;
|
||||
TRectype* _pcon_1_r;
|
||||
TRectype* _pcon_2_r;
|
||||
TRectype* _iva_r;
|
||||
TRectype* _pim_r;
|
||||
TRectype* _pis_r;
|
||||
TRectype* _prm_r;
|
||||
@ -620,7 +622,7 @@ public:
|
||||
bool look_pla(const char* a, bool create = false);
|
||||
bool look_ppa(int m, const char* a, int t, bool create = false);
|
||||
bool look_del(int month, int type, bool create = false);
|
||||
// bool look_iva(const char* cod);
|
||||
bool look_iva(const char* cod);
|
||||
bool look_reg(const char* reg);
|
||||
const TRectype & get_lia(long ditta = 0l, bool create = false, int anno = 0);
|
||||
const int put_lia(const TRectype & lia, bool re = true);
|
||||
|
@ -1450,7 +1450,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
|
||||
real nin_iva = ZERO; // imposta non incassati
|
||||
|
||||
const TString4 codiva = _rmoviva->get(RMI_CODIVA);
|
||||
const TCodiceIVA& civa = cached_codIVA(codiva);
|
||||
TCodiceIVA civa(codiva);
|
||||
|
||||
#ifdef DBG
|
||||
BREAK_DBG;
|
||||
@ -1466,16 +1466,17 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
|
||||
continue;
|
||||
}
|
||||
|
||||
const TString4 tipoiva = civa.tipo();
|
||||
const TString4 tipoes_v = civa.IVA11_vendite();
|
||||
const TString4 tipoes_a = civa.IVA11_acquisti();
|
||||
const int tipoagr = civa.tipo_IVA_agricola(); // 2/9/2015 was S4
|
||||
const int tipoag = civa.tipo_agenzie_viaggio();
|
||||
const int tipopla = civa.tipo_plafond();
|
||||
int isrimbinfr = civa.codice_rimborso_infrannuale(); // vale per calcolo rimborso se ES o NI
|
||||
const real perciva = civa.moltiplicatore_percentuale();
|
||||
int ivarimb = !civa.escluso_dal_rimborso(); // non escluso calcolo rimb. per al. media
|
||||
const bool den_prorata = civa.tipo_IVA_agricola(); // denominatore prorata nel caso di calcolo pro rata con numeratore e denominatore
|
||||
look_iva(codiva); // da eliminare esso per evitare un problema di non lettura _iva ve eliminato
|
||||
const TString4 tipoiva = _iva->get("S1");
|
||||
const TString4 tipoes_v = _iva->get("S2");
|
||||
const TString4 tipoes_a = _iva->get("S9");
|
||||
const int tipoagr = _iva->get_int("I4"); // 2/9/2015 was S4
|
||||
const int tipoag = _iva->get_int("S5");
|
||||
const int tipopla = _iva->get_int("S3");
|
||||
int isrimbinfr = _iva->get_bool("B3"); // vale per calcolo rimborso se ES o NI
|
||||
const real perciva = _iva->get_real("R0") / CENTO;
|
||||
int ivarimb = !_iva->get_bool("B4"); // non escluso calcolo rimb. per al. media
|
||||
const bool den_prorata = _iva->get_bool("B7"); // denominatore prorata nel caso di calcolo pro rata con numeratore e denominatore
|
||||
|
||||
const TString4 tipocr_s = _rmoviva->get(RMI_TIPOCR);
|
||||
const int tipocr = atoi(tipocr_s);
|
||||
@ -1558,7 +1559,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
|
||||
|
||||
sezfat = tipomov == vendita ? 'D' : 'A';
|
||||
|
||||
if (is_detr_diff == 1 || civa.iva_non_soggetta())
|
||||
if (is_detr_diff == 1 || civa.tipo() == "NS")
|
||||
continue;
|
||||
if (bIsMovDiff && tm == tm_fattura)
|
||||
{
|
||||
@ -2220,10 +2221,8 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
|
||||
if (_pcon_1_r->get_int(PCN_INDBIL) == 4)
|
||||
if (_cur->is_first_match(-AGR_PCON2)) // Esiste il sottoconto ?
|
||||
{
|
||||
const TCodiceIVA & civa = cached_codIVA(_pcon_2_r->get(PCN_IVACOMP));
|
||||
|
||||
if (civa.ok())
|
||||
ivacomp = civa.codice(); // Ecco il codice IVA di compensazione
|
||||
if (look_iva(_pcon_2_r->get(PCN_IVACOMP)))
|
||||
ivacomp = _iva->get("CODTAB"); // Ecco il codice IVA di compensazione
|
||||
}
|
||||
look_pia(month, codatt, codiva, ivacomp, true); // Crea il record in tabella se non esiste
|
||||
real pia_imp = _pia->get_real("R0") + agr_imp; // Aggiorna...
|
||||
@ -2728,10 +2727,11 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
|
||||
if (_pim->get_bool("B4"))
|
||||
{
|
||||
// ricalcola l'imposta a partire dal codice IVA
|
||||
const TCodiceIVA & civa = cached_codIVA(*_pim_codiva);
|
||||
const real old_iva = _pim->get_real("R1");
|
||||
real new_iva = _pim->get_real("R0") * civa.moltiplicatore_percentuale();
|
||||
look_iva(*_pim_codiva);
|
||||
real old_iva = _pim->get_real("R1");
|
||||
real perc = _iva->get_real("R0");
|
||||
|
||||
real new_iva = _pim->get_real("R0") * perc / CENTO;
|
||||
round_al_centesimo(new_iva);
|
||||
|
||||
if (new_iva != old_iva)
|
||||
@ -2759,9 +2759,10 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
|
||||
if (_pia->get_bool("B0"))
|
||||
{
|
||||
// calcola l'imposta a partire dal codice IVA di compensazione
|
||||
const TCodiceIVA & civa = cached_codIVA(*_pia_codcom);
|
||||
real iva = _pia->get_real("R0") * civa.moltiplicatore_percentuale();
|
||||
|
||||
look_iva(*_pia_codcom);
|
||||
real perc = _iva->get_real("R0");
|
||||
|
||||
real iva = _pia->get_real("R0") * perc / CENTO;
|
||||
round_al_centesimo(iva);
|
||||
agr_detIA += iva;
|
||||
_pia->put("R1",iva);
|
||||
@ -2993,14 +2994,12 @@ void TLiquidazione_app::iva11_set_arr_phase_1(const TString& codatt)
|
||||
|
||||
if (is_split_payment(_mov->curr()))
|
||||
imposta = ZERO;
|
||||
|
||||
const TCodiceIVA & civa = cached_codIVA(_rmoviva->get(RMI_CODIVA));
|
||||
const TString4 codiva = civa.codice();
|
||||
const TString4 tipoiva = civa.tipo();
|
||||
const real ali = civa.percentuale();
|
||||
const TString4 tipoes_v = civa.IVA11_vendite();
|
||||
const TString4 tipoes_a = civa.IVA11_acquisti();
|
||||
const int tipoagr = civa.tipo_IVA_agricola(); // 2/9/2015 was S4
|
||||
const TString4 codiva = _iva->get("CODTAB");
|
||||
const TString4 tipoiva = _iva->get("S1");
|
||||
const real ali = _iva->get_real("R0");
|
||||
const TString4 tipoes_v = _iva->get("S2");
|
||||
const TString4 tipoes_a = _iva->get("S9");
|
||||
const int tipoagr = _iva->get_int("I4"); // 2/9/2015 was S4
|
||||
const TRectype& rcs = _cur->curr(LF_CAUSALI);
|
||||
const bool autofattura = rcs.get_bool("AUTOFATT");
|
||||
const bool valintra = rcs.get_bool("VALINTRA");
|
||||
@ -3380,17 +3379,14 @@ void TLiquidazione_app::iva11_set_arr_phase_2(const TString& codatt)
|
||||
// Must consider current activity too...
|
||||
codiva = *_pim_codiva;
|
||||
reg = *_pim_codreg;
|
||||
|
||||
const TCodiceIVA & civa = cached_codIVA(codiva);
|
||||
|
||||
look_reg(reg); // posiziona la tabella registri e quella IVA
|
||||
tiva = civa.tipo(); // tipo IVA
|
||||
tpla = civa.tipo_plafond(); // tipo gestione plafond
|
||||
tagr = civa.tipo_IVA_agricola(); // tipo gestione regime agricolo 2/9/2015 was S4
|
||||
tvia = civa.tipo_agenzie_viaggio(); // tipo gestione ag. viaggio
|
||||
v11 = civa.IVA11_vendite(); // n.ro riga vendite per mod. IVA11
|
||||
a11 = civa.IVA11_acquisti(); // n.ro riga acquisti per mod. IVA11
|
||||
aliq = civa.percentuale(); // aliquota
|
||||
look_iva(codiva); look_reg(reg); // posiziona la tabella registri e quella IVA
|
||||
tiva = _iva->get("S1"); // tipo IVA
|
||||
tpla = _iva->get("S3"); // tipo gestione plafond
|
||||
tagr = _iva->get_int("I4"); // tipo gestione regime agricolo 2/9/2015 was S4
|
||||
tvia = _iva->get("S5"); // tipo gestione ag. viaggio
|
||||
v11 = _iva->get("S2"); // n.ro riga vendite per mod. IVA11
|
||||
a11 = _iva->get("S9"); // n.ro riga acquisti per mod. IVA11
|
||||
aliq = _iva->get_real("R0"); // aliquota
|
||||
treg = (tiporeg)_reg->get_long("I0");
|
||||
const bool is_vendita = treg == vendita;
|
||||
const bool is_acquisto = treg == acquisto;
|
||||
@ -3488,7 +3484,7 @@ void TLiquidazione_app::iva11_set_arr_phase_2(const TString& codatt)
|
||||
_CorrItem& ca = (_CorrItem&) corr_ann[codiva];
|
||||
ca._totale += lor;
|
||||
if (!is_present)
|
||||
ca._aliquota = civa.percentuale(); // Se e' nuovo setta l'aliquota
|
||||
ca._aliquota = _iva->get_real("R0"); // Se e' nuovo setta l'aliquota
|
||||
}
|
||||
|
||||
tt = _pim->get("S0");
|
||||
@ -4545,10 +4541,8 @@ void TLiquidazione_app::recalc_annual(const char* att, bool & first)
|
||||
const int tipocr = atoi(*_pim_tipocr);
|
||||
codiva = *_pim_codiva;
|
||||
reg = *_pim_codreg;
|
||||
const TCodiceIVA & civa = cached_codIVA(codiva);
|
||||
|
||||
look_reg(reg);
|
||||
tiva = civa.tipo();
|
||||
look_iva(codiva); look_reg(reg);
|
||||
tiva = _iva->get("S1");
|
||||
|
||||
const TRegistro & reg = cached_registro(_reg->curr());
|
||||
const tipo_sospensione simp = reg.sospensione();
|
||||
@ -4579,7 +4573,7 @@ void TLiquidazione_app::recalc_annual(const char* att, bool & first)
|
||||
_CorrItem& ca = (_CorrItem&)corr_ann[codiva];
|
||||
ca._totale += _pim->get_real("R3");
|
||||
if (!is_key) // se non c'e' lo aggiunge
|
||||
ca._aliquota = civa.moltiplicatore_percentuale(); // Se è nuovo setta l'aliquota
|
||||
ca._aliquota = _iva->get_real("R0") / CENTO; // Se è nuovo setta l'aliquota
|
||||
}
|
||||
if (tipoatt == 1)
|
||||
volaff1 += imp_ifs;
|
||||
|
@ -583,7 +583,6 @@ bool TLiquidazione_app::look_reg(const char* reg)
|
||||
return rt;
|
||||
}
|
||||
|
||||
/*
|
||||
bool TLiquidazione_app::look_iva(const char* cod)
|
||||
{
|
||||
bool rt = true;
|
||||
@ -604,7 +603,6 @@ bool TLiquidazione_app::look_iva(const char* cod)
|
||||
|
||||
return rt;
|
||||
}
|
||||
*/
|
||||
|
||||
bool TLiquidazione_app::look_ppa(int month, const char* codatt, int type, bool create)
|
||||
{
|
||||
@ -983,10 +981,8 @@ real TLiquidazione_app::aliquota_agvia()
|
||||
{
|
||||
real r;
|
||||
const TString& codagv = ini_get_string(CONFIG_STUDIO, "cg", "CodAgv");
|
||||
const TCodiceIVA & civa = cached_codIVA(codagv);
|
||||
|
||||
if (civa.ok()) // Controlla se è vuoto! CM600475
|
||||
r = civa.percentuale();
|
||||
if (codagv.full() && look_iva(codagv)) // Controlla se è vuoto! CM600475
|
||||
r = _iva->get_real("R0");
|
||||
return r;
|
||||
}
|
||||
|
||||
|
@ -95,13 +95,10 @@ void TLiquidazione_app::recalc_corrispettivi(int month, const char* codatt)
|
||||
vaf += imponibile;
|
||||
_pam->put("R1", vaf);
|
||||
_pam->rewrite();
|
||||
|
||||
// Aggiorna il totale IVA periodica CD1_1
|
||||
const TCodiceIVA & civa = cached_codIVA(ci->_codiva);
|
||||
|
||||
if (month == 13 && civa.ok())
|
||||
if (month == 13 && look_iva(ci->_codiva))
|
||||
{
|
||||
if (civa.tipo_comunicazione_attive().full()) // Solo CD1_1 ha senso coi corrispettivi...
|
||||
if (_iva->get("S10").not_empty()) // Solo CD1_1 ha senso coi corrispettivi...
|
||||
{
|
||||
_pum->curr().add("R14", imponibile); // CD1_1
|
||||
_pum->rewrite();
|
||||
@ -145,11 +142,12 @@ void TLiquidazione_app::recalc_ventilation(int month, const char* codatt)
|
||||
int tipocr = atoi(*_pim_tipocr);
|
||||
int mese = atoi(*_pim_mese);
|
||||
int tipodet = atoi(*_pim_tipodet);
|
||||
const TCodiceIVA & civa = cached_codIVA(*_pim_codiva);
|
||||
look_iva(*_pim_codiva);
|
||||
// base di riparto solo se non esente, non soggetto, non imponibile
|
||||
TString16 tipoiva(civa.tipo());
|
||||
TString16 tipoiva(_iva->get("S1"));
|
||||
TString16 reg = *_pim_codreg;
|
||||
|
||||
|
||||
/*
|
||||
* caso particolare SENSU Vladimiro (1995) #MI3001
|
||||
* questi vengono pero' conteggiati nel totale
|
||||
@ -163,15 +161,18 @@ void TLiquidazione_app::recalc_ventilation(int month, const char* codatt)
|
||||
if (tipocr == 1 && (mese == m) &&
|
||||
att == (const char*)(*_pim_codatt))
|
||||
{
|
||||
if (civa.iva_da_ventilare())
|
||||
if (tipoiva != "NS" && tipoiva != "NI" && tipoiva != "ES")
|
||||
{
|
||||
real lurd = _pim->get_real("R0");
|
||||
lurd += _pim->get_real("R1");
|
||||
real perc = civa.percentuale();
|
||||
TString other = civa.iva_a_cui_ventilare();
|
||||
|
||||
if (other.full())
|
||||
perc = cached_codIVA(other).percentuale(); // ventila a un altro codice
|
||||
real perc = _iva->get_real("R0");
|
||||
TString other = _iva->get("S6");
|
||||
if (!other.empty())
|
||||
{
|
||||
// ventila a un altro codice
|
||||
look_iva(other);
|
||||
perc = _iva->get_real("R0");
|
||||
}
|
||||
add_ventilation(perc / CENTO, lurd, *_pim_codiva, other);
|
||||
}
|
||||
}
|
||||
@ -340,11 +341,9 @@ void TLiquidazione_app::recalc_ventilation(int month, const char* codatt)
|
||||
_pam->rewrite();
|
||||
|
||||
// Aggiorna il totale IVA periodica CD1_1
|
||||
const TCodiceIVA & civa = cached_codIVA(vv->_codiva);
|
||||
|
||||
if (month == 13 && civa.ok())
|
||||
if (month == 13 && look_iva(vv->_codiva))
|
||||
{
|
||||
if (civa.get("S10").full()) // Solo CD1_1 ha senso coi corrispettivi
|
||||
if (_iva->get("S10").not_empty()) // Solo CD1_1 ha senso coi corrispettivi
|
||||
{
|
||||
_pum->curr().add("R14", imponibile); // CD1_1
|
||||
_pum->rewrite();
|
||||
@ -365,10 +364,9 @@ void TLiquidazione_app::recalc_ventilation(int month, const char* codatt)
|
||||
// viene amorosamente messo a quanto il codice IVA prevede
|
||||
if (!was)
|
||||
{
|
||||
const TCodiceIVA & civa = cached_codIVA((vv->_codiva));
|
||||
|
||||
look_iva(vv->_codiva);
|
||||
_pim->put("I1", (long)vendita);
|
||||
if (!civa.escluso_dal_rimborso())
|
||||
if (!_iva->get_bool("B4"))
|
||||
_pim->put("B3", "X");
|
||||
}
|
||||
_pim->rewrite();
|
||||
@ -535,8 +533,8 @@ _DescrItem* TLiquidazione_app::recalc_rimborso(int month, const char* codatts,
|
||||
if (!_pim->get_bool("B3")) continue;
|
||||
|
||||
// Se il tipo di codice e' NS non va considerato nella sommatoria del tot. acquisti
|
||||
const TCodiceIVA & civa = cached_codIVA(codiva);
|
||||
const bool non_sogg = civa.iva_non_soggetta();
|
||||
look_iva(codiva);
|
||||
const bool non_sogg = _iva->get("S1") == "NS";
|
||||
|
||||
if (!is_mens) // Trimestrali
|
||||
{
|
||||
@ -567,7 +565,7 @@ _DescrItem* TLiquidazione_app::recalc_rimborso(int month, const char* codatts,
|
||||
ca._totale += _pim->get_real("R3");
|
||||
if (!is_key) // se non c'e' lo aggiunge
|
||||
{
|
||||
ca._aliquota = civa.moltiplicatore_percentuale(); // Se e' nuovo setta l'aliquota
|
||||
ca._aliquota = _iva->get_real("R0")/CENTO; // Se e' nuovo setta l'aliquota
|
||||
corr_ann.add(codiva,ca);
|
||||
}
|
||||
}
|
||||
|
@ -286,7 +286,7 @@ void TLiquidazione_app::describe_ventilation(int month, const char* codatt)
|
||||
continue;
|
||||
|
||||
look_reg(*_pim_codreg);
|
||||
const TCodiceIVA & civa = cached_codIVA(*_pim_codiva);
|
||||
look_iva(*_pim_codiva);
|
||||
|
||||
int tipocr = atoi(*_pim_tipocr);
|
||||
int tipodet = atoi(*_pim_tipodet);
|
||||
@ -295,7 +295,7 @@ void TLiquidazione_app::describe_ventilation(int month, const char* codatt)
|
||||
real imponibile = _pim->get_real("R0");
|
||||
real imposta = _pim->get_real("R1");
|
||||
tiporeg tipomov = (tiporeg)_reg->get_long("I0");
|
||||
TString4 tipoiva = civa.tipo();
|
||||
TString4 tipoiva = _iva->get("S1");
|
||||
|
||||
if (_year != *_pim_anno || (month == 13 && mese < 13))
|
||||
continue;
|
||||
@ -564,19 +564,28 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt, const bool
|
||||
continue;
|
||||
|
||||
TString4 codiva = codtab.mid(16,4); codiva.trim();
|
||||
const TCodiceIVA & civa = cached_codIVA(codiva);
|
||||
|
||||
if (!civa.ok())
|
||||
if (!look_iva(codiva))
|
||||
continue;
|
||||
|
||||
tiporeg tipomov = (tiporeg)_reg->get_int("I0");
|
||||
bool corrisp = _reg->get_bool("B0");
|
||||
const TString4 tipoiva = civa.tipo();
|
||||
const TString4 tipoiva = _iva->get("S1");
|
||||
const TString4 other = tab->get("S4");
|
||||
TToken_string s1(tab->get("S1"), '!'); // Imponibile/iva fatture in ritardo
|
||||
real rit_imp(s1.get(0));
|
||||
real rit_iva(s1.get(1));
|
||||
|
||||
/* Perchè _pim invece di tab ? 17-10-2012
|
||||
diffimp = _pim->get_real("R26");
|
||||
diffiva = _pim->get_real("R27");
|
||||
diffincimp = _pim->get_real("R28");
|
||||
diffinciva = _pim->get_real("R29");
|
||||
|
||||
diffimp_acq = _pim->get_real("R30");
|
||||
diffiva_acq = _pim->get_real("R31");
|
||||
diffincimp_acq = _pim->get_real("R32");
|
||||
diffinciva_acq = _pim->get_real("R33"); */
|
||||
|
||||
diffimp = tab->get_real("R26");
|
||||
diffiva = tab->get_real("R27");
|
||||
diffincimp = tab->get_real("R28");
|
||||
@ -594,10 +603,10 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt, const bool
|
||||
issosp |= (sosp_imp != nessuna_sospensione); // Setta il flag di presenza registri in sospensione (qualsiasi tipo: sospensione_normale, vol_affari, liquidazione)
|
||||
// ACHTUNG! Corrispettivi da ventileer possono ventilare ad un altro codiva; in tal caso si scrive quello
|
||||
if (corrisp && other.full())
|
||||
{
|
||||
look_iva(other);
|
||||
codiva = other;
|
||||
|
||||
const TCodiceIVA & civa1 = cached_codIVA(codiva); // codice IVA aggiornato per eventuale ventilazione
|
||||
|
||||
}
|
||||
// se e' corrispettivo da ventilare non scrivo un cannolo ripieno visto che e' stato ventilato
|
||||
if (tipomov == vendita && tipoiva == "VE" && !describe_pis)
|
||||
continue;
|
||||
@ -704,7 +713,7 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt, const bool
|
||||
ca._totale_vf += tab->get_real(tipoiva == "VE" ? "R2" : "R3");
|
||||
if (!is_key) // se non c'e' lo aggiunge
|
||||
{
|
||||
ca._aliquota = civa.moltiplicatore_percentuale(); // Se e' nuovo setta l'aliquota
|
||||
ca._aliquota = _iva->get_real("R0")/CENTO; // Se e' nuovo setta l'aliquota
|
||||
corr_ann.add(codiva,ca);
|
||||
}
|
||||
// vedi corrispettivi veri e falsi
|
||||
@ -1795,9 +1804,8 @@ void TLiquidazione_app::set_pim(_DescrItem& d)
|
||||
rw++;
|
||||
else
|
||||
{
|
||||
const TCodiceIVA & civa = cached_codIVA(d._s1);
|
||||
|
||||
d._s2 = civa.get("S0");
|
||||
look_iva(d._s1);
|
||||
d._s2 = _iva->get("S0");
|
||||
if (d._s2.len() > 19) d._s2.cut(19);
|
||||
}
|
||||
|
||||
@ -2926,9 +2934,8 @@ void TLiquidazione_app::set_ventila(_DescrItem& d)
|
||||
for(i = 0; i < d._arr.items(); i++)
|
||||
{
|
||||
_vDesc& vd = (_vDesc&)d._arr[i];
|
||||
const TCodiceIVA & civa = cached_codIVA(vd._codiva);
|
||||
|
||||
s0 = civa.descrizione(); s0.cut(23);
|
||||
look_iva(vd._codiva);
|
||||
s0 = _iva->get("S0"); s0.cut(23);
|
||||
|
||||
set_row(row+i,"@8g%5s@17g%-23s@41g%r@68g%r@89g%r",
|
||||
(const char*)vd._codiva,
|
||||
@ -3058,15 +3065,13 @@ void TLiquidazione_app::set_regagr(_DescrItem& d)
|
||||
_DescrItem& di = (_DescrItem&) agr_array[i];
|
||||
if (di._flags != PROGAGR)
|
||||
continue;
|
||||
|
||||
const TCodiceIVA & civa = cached_codIVA(di._s0);
|
||||
|
||||
des = civa.descrizione(); des.cut(25);
|
||||
al = civa.percentuale();
|
||||
look_iva(di._s0);
|
||||
des = _iva->get("S0"); des.cut(25);
|
||||
al = _iva->get_real("R0");
|
||||
set_row(r,"%4s %-25s@48g%s %%", (const char*) di._s0, (const char*) des, al.string("#@,@@"));
|
||||
set_row(r,"@56g%r@75g%4s",&di._r0, (const char*)di._s1);
|
||||
const TCodiceIVA & civa1 = cached_codIVA(di._s1);
|
||||
al = civa1.percentuale();
|
||||
look_iva(di._s1);
|
||||
al = _iva->get_real("R0");
|
||||
set_row(r++,"@92g%s %%@100g%r", al.string("#@,@@"), &di._r1);
|
||||
t1 += di._r0;
|
||||
t2 += di._r1;
|
||||
|
@ -450,7 +450,7 @@ int TParaliq_app::read(TMask& m)
|
||||
TCursor cur(&relpla, "", 1, &pla, &pla);
|
||||
const TRecnotype items = cur.items();
|
||||
|
||||
sf.reset();
|
||||
sf.destroy();
|
||||
if (items == 0)
|
||||
init_array(sf); // Carica tutti i codici attività
|
||||
else
|
||||
|
@ -112,8 +112,6 @@ void TQuadro_VE_recordset::load()
|
||||
{
|
||||
const TRectype & pimr = pim.cursor()->curr();
|
||||
TString8 codiva(codtab.mid(16,4)); codiva.trim();
|
||||
if (codiva == "274")
|
||||
int i = 1;
|
||||
const TRectype & ivar = cache().get("%IVA", codiva);
|
||||
const TString8 aliquota = ivar.get("R0");
|
||||
const TString4 tipo_aliquota = ivar.get("S1");
|
||||
@ -162,16 +160,6 @@ void TQuadro_VE_recordset::load()
|
||||
add_value(STRING_TOKEN(imposta.objptr(aliquota)), iva);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
const int tipocr = atoi(codtab.mid(15, 1)); // tipo costo_ricavo
|
||||
|
||||
if (tipocr == 4)
|
||||
{
|
||||
if (int_tipo_iva11_ven == acq_ind_pass_int || int_tipo_iva11_ven == cess_amm)
|
||||
add_value("VE40.1", imp);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case acq_simp:
|
||||
break;
|
||||
@ -197,12 +185,12 @@ void TQuadro_VE_recordset::load()
|
||||
break;
|
||||
case acq_ind_pass_int: // passaggi interni
|
||||
if (vendite)
|
||||
add_value("VE40.1", imp);
|
||||
add_value("VE40.1", iva);
|
||||
break;
|
||||
case acq_ind_art_19: // indetr. art. 19
|
||||
break;
|
||||
case cess_amm: // cessioni amministrative
|
||||
add_value("VE40.1", imp);
|
||||
add_value("VE40.1", iva);
|
||||
break;
|
||||
case vend_rimborso: // vendite valide per rimborso
|
||||
break;
|
||||
@ -263,28 +251,24 @@ void TQuadro_VE_recordset::load()
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
TISAM_recordset & exp = get_recordset(REP_PAART17);
|
||||
|
||||
for (exp.move_first(); !exp.eof(); exp.move_next())
|
||||
{
|
||||
TString8 cod(exp.get(FIELD_NAME(LF_RMOVIVA, RMI_CODIVA)).as_string());
|
||||
const TCodiceIVA & codiva = cached_codIVA(cod);
|
||||
const TString & aliquota = codiva.aliquota();
|
||||
const TRectype & mov = cache().get(LF_MOV, exp.get(FIELD_NAME(LF_RMOVIVA, RMI_NUMREG)).as_int());
|
||||
TString8 cod(exp.get(FIELD_NAME(LF_RMOVIVA, RMI_CODIVA)).as_string());
|
||||
const TCodiceIVA & codiva = cached_codIVA(cod);
|
||||
const TString & aliquota = codiva.aliquota();
|
||||
|
||||
if (aliquota.full())
|
||||
{
|
||||
const real imp = exp.get(FIELD_NAME(LF_RMOVIVA, RMI_IMPONIBILE)).as_real();
|
||||
real iva = exp.get(FIELD_NAME(LF_RMOVIVA, RMI_IMPOSTA)).as_real();
|
||||
|
||||
if (codiva.is_agricola())
|
||||
sub_value(STRING_TOKEN(imponibile_agricolo.objptr(aliquota)), imp);
|
||||
else
|
||||
sub_value(STRING_TOKEN(imponibile.objptr(aliquota)), imp);
|
||||
}
|
||||
}
|
||||
*/
|
||||
if (aliquota.full())
|
||||
{
|
||||
const real imp = exp.get(FIELD_NAME(LF_RMOVIVA, RMI_IMPONIBILE)).as_real();
|
||||
|
||||
if (codiva.is_agricola())
|
||||
sub_value(STRING_TOKEN(imponibile_agricolo.objptr(aliquota)), imp);
|
||||
else
|
||||
sub_value(STRING_TOKEN(imponibile.objptr(aliquota)), imp);
|
||||
}
|
||||
}
|
||||
|
||||
TISAM_recordset & reg = get_recordset(REP_REGOLARIZ);
|
||||
|
||||
@ -321,7 +305,6 @@ void TQuadro_VE_recordset::load()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
query = "USE LIM\n FROM CODTAB==";
|
||||
query << year() << "13\nTO CODTAB==" << year() << "13";
|
||||
|
||||
|
@ -286,9 +286,9 @@ void TQuadro_VF_recordset::load()
|
||||
}
|
||||
if (non_soggetto)
|
||||
{
|
||||
if (int_tipo_iva11_acq == 15)
|
||||
if (tipo_iva11_acq == "15A" || int_tipo_iva11_acq == 15)
|
||||
{
|
||||
if (tipo_iva11_acq == "15B")
|
||||
if (tipo_iva11_acq == "15A")
|
||||
add_value("VF17.2", imp);
|
||||
add_value("VF17.1", imp);
|
||||
}
|
||||
|
@ -108,9 +108,30 @@ class TProgind;
|
||||
|
||||
|
||||
static const char * __date_field_name[] = { MOV_DATAREG, MOV_DATACOMP, MOV_DATACOMPCR };
|
||||
typedef enum { iva_errata = -1, nessuna_iva = 0, iva_vendite = 1, iva_acquisti = 2, libro_giornale = 5, iva_generica = 9 } TipoIVA;
|
||||
typedef enum { tm_nessuno = 0, tm_fattura = 1, tm_nota_credito = 2, tm_pagamento = 3, tm_insoluto = 5, tm_pagamento_insoluto = 6 } tipo_movimento;
|
||||
typedef enum {
|
||||
|
||||
enum TipoIVA
|
||||
{
|
||||
iva_errata = -1,
|
||||
nessuna_iva = 0,
|
||||
iva_vendite = 1,
|
||||
iva_acquisti = 2,
|
||||
libro_giornale = 5,
|
||||
iva_generica = 9
|
||||
};
|
||||
|
||||
enum tipo_movimento
|
||||
{
|
||||
tm_nessuno = 0,
|
||||
tm_fattura = 1,
|
||||
tm_nota_credito = 2,
|
||||
tm_pagamento = 3,
|
||||
tm_insoluto = 5,
|
||||
tm_pagamento_insoluto = 6
|
||||
};
|
||||
|
||||
|
||||
enum cgrowtypes
|
||||
{
|
||||
cgrowtype_contabile = ' ', // riga contabile
|
||||
cgrowtype_totale = 'T', // Totale documento
|
||||
cgrowtype_abbattivo = 'A', // Abbuoni attivi
|
||||
@ -128,12 +149,47 @@ typedef enum {
|
||||
cgrowtype_imponibile = 'I', // Imponibile/contropartita saldaconto
|
||||
cgrowtype_clisplit = '1', // Cliente per scissione pagamenti art.17-ter DPR 633/72
|
||||
cgrowtype_spese = 'G' // Spese del saladaconto
|
||||
} cgrowtypes;
|
||||
typedef enum { nessuna_sospensione, sospensione_normale, vol_affari, liquidazione } tipo_sospensione;
|
||||
typedef enum { DataLimite = 1, UltimaImmissione} tipobil;
|
||||
typedef enum { saldo_normale, saldo_apertura, saldo_chiusura} tiposal;
|
||||
typedef enum { Registrazione, Competenza, CostiRicavi } TTipo_data;
|
||||
typedef enum { vendita = 1, acquisto = 2, riepilogativo = 3, incassi = 4, giornale = 5, sociale = 6, cespiti = 7, giornale_magazzino = 9 } tiporeg;
|
||||
};
|
||||
|
||||
enum tipo_sospensione
|
||||
{
|
||||
nessuna_sospensione,
|
||||
sospensione_normale,
|
||||
vol_affari,
|
||||
liquidazione
|
||||
};
|
||||
|
||||
enum tipobil
|
||||
{
|
||||
DataLimite = 1,
|
||||
UltimaImmissione
|
||||
};
|
||||
|
||||
enum tiposal
|
||||
{
|
||||
saldo_normale,
|
||||
saldo_apertura,
|
||||
saldo_chiusura
|
||||
};
|
||||
|
||||
enum TTipo_data
|
||||
{
|
||||
Registrazione,
|
||||
Competenza,
|
||||
CostiRicavi
|
||||
};
|
||||
|
||||
enum tiporeg
|
||||
{
|
||||
vendita = 1,
|
||||
acquisto = 2,
|
||||
riepilogativo = 3,
|
||||
incassi = 4,
|
||||
giornale = 5,
|
||||
sociale = 6,
|
||||
cespiti = 7,
|
||||
giornale_magazzino = 9
|
||||
};
|
||||
|
||||
inline bool check_mov(const int tipomovprovv, const TString & provvis)
|
||||
{
|
||||
|
@ -172,7 +172,6 @@ public: // TObject
|
||||
real imposta(const real& imponibile, int ndec = AUTO_DECIMALS, const char * codval = "") const; // Calcola l'imposta sull'imponibile l'imposta e la ritorna
|
||||
real scorpora(real& imponibile, int ndec = AUTO_DECIMALS, const char * codval = "") const; // Scorpora dall'imponibile l'imposta e la ritorna
|
||||
real lordo(const real& imponibile, int ndec = AUTO_DECIMALS, const char * codval = "") const; // Calcola il lordo dell'imponibile l'imposta e la ritorna
|
||||
real imponibile(const real& imposta, int ndec = AUTO_DECIMALS, const char * codval = "") const; // Calcola l'imponibile dell'imposta e lo ritorna
|
||||
|
||||
// bool reverse_charge() const;
|
||||
// bool reverse_charge_pubb() const;
|
||||
|
@ -31,11 +31,11 @@ bool classify_pim(const TRectype& pimr, real& imp, real& iva, tiporec& t, bool t
|
||||
|
||||
switch(tocheck)
|
||||
{
|
||||
case acq_norm:
|
||||
case acq_norm:
|
||||
//found = tipomov == 2 && tipoiva != "NS";
|
||||
found = tipomov == 2;
|
||||
found &= (tipodet == 0 /* || tipodet == 1 || tipodet == 3 ||
|
||||
tipodet == 5 || tipodet == 9 */);
|
||||
tipodet == 5 || tipodet == 9 */);
|
||||
if (found)
|
||||
{
|
||||
if (tipost) //stampa
|
||||
@ -57,7 +57,7 @@ bool classify_pim(const TRectype& pimr, real& imp, real& iva, tiporec& t, bool t
|
||||
break;
|
||||
case vend_norm:
|
||||
//found = tipomov == 1 /* && corrisp == 1 */ && tipoiva != "NS";
|
||||
found = tipomov == 1 /* && corrisp == 1 */;
|
||||
found = tipomov == 1 /* && corrisp == 1 */;
|
||||
if (found)
|
||||
{
|
||||
imp = pimr.get_real("R0");
|
||||
|
@ -10,7 +10,7 @@
|
||||
#include <rmoviva.h>
|
||||
|
||||
#include "..\cg\cgsaldac.h"
|
||||
#include "..\cg\cglib.h"
|
||||
#include "..\cg\cg2103.h"
|
||||
#include "..\ve\velib.h"
|
||||
|
||||
#include "cm1100a.h"
|
||||
|
@ -11,7 +11,7 @@
|
||||
|
||||
#include "../ce/collces.h"
|
||||
#include "../ve/velib.h"
|
||||
#include "../cg/cglib.h"
|
||||
#include "../cg/cg2103.h"
|
||||
|
||||
#include "../ca/movana.h"
|
||||
#include "../ca/rmovana.h"
|
||||
|
@ -972,7 +972,7 @@ private:
|
||||
|
||||
protected:
|
||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
bool test_row(int nrow);
|
||||
bool test_row(const TToken_string& row);
|
||||
void load_um();
|
||||
|
||||
static void sheetrighe_get(TSheet_field &fld_righe, int item);
|
||||
@ -1071,13 +1071,12 @@ void TDistinta_mask::load_um()
|
||||
}
|
||||
|
||||
|
||||
bool TDistinta_mask::test_row(int nrow)
|
||||
bool TDistinta_mask::test_row(const TToken_string& row)
|
||||
{
|
||||
TSheet_field& sheet = sfield(F_SHEET);
|
||||
const TCodice_articolo father = get(F_CODICE);
|
||||
TCodice_articolo code = sheet.get_str_row_cell(nrow, F_CODART);
|
||||
bool ok = code != father;
|
||||
|
||||
TCodice_articolo code; row.get(1, code);
|
||||
bool ok = code != father;
|
||||
if (ok && _tree.find_node(father) > 0)
|
||||
{
|
||||
TToken_string path; _tree.curr_id(path);
|
||||
@ -1089,9 +1088,12 @@ bool TDistinta_mask::test_row(int nrow)
|
||||
"in quanto la distinta risulterebbe ciclica."), (const char*)code);
|
||||
|
||||
// Se e' una lavorazione
|
||||
if ((get(F_TIPO) == "L") &&
|
||||
!(sheet.get_str_row_cell(nrow, F_TIPOCOMP) == "L" && _tree.is_lav(code)))
|
||||
return error_box(FR("Il codice '%s' non e' una lavorazione"), (const char*)code);
|
||||
if (get(F_TIPO)[0] == 'L')
|
||||
{
|
||||
ok = row[0] == 'L' && _tree.is_lav(code);
|
||||
if (!ok)
|
||||
error_box(FR("Il codice '%s' non e' una lavorazione"), (const char*)code);
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
@ -1168,47 +1170,41 @@ bool TDistinta_mask::on_unitsheet_event(TOperable_field& o, TField_event e, long
|
||||
bool TDistinta_mask::on_distsheet_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
const short id = o.dlg();
|
||||
|
||||
switch (id)
|
||||
{
|
||||
case F_SHEET:
|
||||
if (e == se_notify_add || e == se_notify_modify || e == fe_close)
|
||||
if (e == se_notify_add || e == se_notify_modify || e == fe_close)
|
||||
{
|
||||
|
||||
|
||||
TSheet_field& sheet = (TSheet_field&)o;
|
||||
const int nrig = int(jolly);
|
||||
TToken_string& row = sheet.row(nrig);
|
||||
switch(e)
|
||||
{
|
||||
case se_notify_add:
|
||||
{
|
||||
TSheet_field& sheet = (TSheet_field&)o;
|
||||
const int nrig = int(jolly);
|
||||
|
||||
sheet.set_row_cell(F_TIPOCOMP, "A", nrig); // Forza il listbox ad articolo
|
||||
sheet.set_row_cell(F_EXPR, 1, nrig); // Forza la quantita' ad 1
|
||||
sheet.set_row_cell(F_SORT0, nrig + 1, nrig); // Inizializza numero riga
|
||||
sheet.select(nrig);
|
||||
sheet.force_update(nrig);
|
||||
}
|
||||
row.add("A", F_TIPOCOMP-FIRST_FIELD); // Forza il listbox ad articolo
|
||||
row.add("", F_EXPR-FIRST_FIELD); // Forza la quantita' ad 1
|
||||
row.add(nrig+1, F_SORT0-FIRST_FIELD); // Inizializza numero riga
|
||||
sheet.select(nrig);
|
||||
break;
|
||||
case se_notify_modify:
|
||||
return test_row(int(jolly));
|
||||
break;
|
||||
return test_row(row);
|
||||
case fe_close:
|
||||
{
|
||||
TSheet_field& sheet = (TSheet_field&)o;
|
||||
const int nrig = int(jolly);
|
||||
TString80 code;
|
||||
|
||||
TString80 code1;
|
||||
for (int n = sheet.items()-1; n >= 0; n--)
|
||||
{
|
||||
code = sheet.get_str_row_cell(n, F_CODART);
|
||||
if (code.full())
|
||||
const TToken_string& row = sheet.row(n);
|
||||
row.get(F_CODART-FIRST_FIELD, code);
|
||||
if (!code.blank())
|
||||
{
|
||||
if (!test_row(nrig))
|
||||
if (!test_row(row))
|
||||
return false;
|
||||
for (int m = n - 1; m >= 0; m--)
|
||||
{
|
||||
if (code == sheet.get_str_row_cell(m, F_CODART))
|
||||
const TToken_string& row = sheet.row(m);
|
||||
row.get(F_CODART-FIRST_FIELD, code1);
|
||||
if (code == code1)
|
||||
{
|
||||
int k = noyesall_box("Il codice %s e' ripetuto alla riga %d,\ncontinuare ugualmente ?", (const char *) code, n + 1);
|
||||
if (k == K_NO)
|
||||
@ -1223,7 +1219,7 @@ bool TDistinta_mask::on_distsheet_event(TOperable_field& o, TField_event e, long
|
||||
sheet.destroy(n);
|
||||
}
|
||||
}
|
||||
if (((TSheet_field&)o).items() == 0)
|
||||
if (sheet.items() == 0)
|
||||
message_box(TR("E' necessario inserire almeno una riga nella distinta"));
|
||||
break;
|
||||
default:
|
||||
|
@ -246,13 +246,13 @@ LIST F_TIPOCOMP 1 12
|
||||
BEGIN
|
||||
PROMPT 2 1 "Tipo "
|
||||
ITEM "A|Articolo"
|
||||
MESSAGE SHOW,11@|HIDE,12@|HIDE,13@|HIDE,14@|ENABLE,F_UMEXPR|ENABLE,11@|CLEAR,12@|CLEAR,13@|CLEAR,14@
|
||||
MESSAGE SHOW,11@|HIDE,12@|HIDE,13@|HIDE,14@|ENABLE,F_UMEXPR|ENABLE,11@|DISABLE,12@|DISABLE,13@|DISABLE,14@
|
||||
ITEM "L|Lavorazione"
|
||||
MESSAGE HIDE,11@|SHOW,12@|HIDE,13@|HIDE,14@|CLEAR,F_UMEXPR|CLEAR,11@|ENABLE,12@|CLEAR,13@|CLEAR,14@
|
||||
MESSAGE HIDE,11@|SHOW,12@|HIDE,13@|HIDE,14@|DISABLE,F_UMEXPR|DISABLE,11@|ENABLE,12@|DISABLE,13@|DISABLE,14@
|
||||
ITEM "D|Distinta"
|
||||
MESSAGE HIDE,11@|HIDE,12@|SHOW,13@|HIDE,14@|ENABLE,F_UMEXPR|CLEAR,11@|CLEAR,12@|ENABLE,13@|CLEAR,14@
|
||||
MESSAGE HIDE,11@|HIDE,12@|SHOW,13@|HIDE,14@|ENABLE,F_UMEXPR|DISABLE,11@|DISABLE,12@|ENABLE,13@|DISABLE,14@
|
||||
ITEM "V|Variabile"
|
||||
MESSAGE HIDE,11@|HIDE,12@|HIDE,13@|SHOW,14@|CLEAR,F_UMEXPR|CLEAR,11@|CLEAR,12@|CLEAR,13@|ENABLE,14@
|
||||
MESSAGE HIDE,11@|HIDE,12@|HIDE,13@|SHOW,14@|CLEAR,F_UMEXPR|DISABLE,11@|DISABLE,12@|DISABLE,13@|ENABLE,14@
|
||||
FIELD TIPO
|
||||
END
|
||||
|
||||
@ -282,8 +282,8 @@ BEGIN
|
||||
OUTPUT F_CODLAV CODTAB
|
||||
OUTPUT F_DESLAV S0
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD CODCOMP
|
||||
FLAGS "UHD"
|
||||
FIELD CODCOMP
|
||||
FLAGS "UHD"
|
||||
GROUP 12
|
||||
END
|
||||
|
||||
@ -297,7 +297,7 @@ BEGIN
|
||||
OUTPUT F_CODDIS CODDIST
|
||||
OUTPUT F_DESDIS DESCR
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD CODCOMP
|
||||
FIELD CODCOMP
|
||||
FLAGS "UHD"
|
||||
GROUP 13
|
||||
END
|
||||
|
@ -11,7 +11,7 @@
|
||||
#include <printer.h>
|
||||
#include <progind.h>
|
||||
|
||||
#include "../cg/cglib.h"
|
||||
#include "../cg/cglib01.h"
|
||||
#include "../mg/mglib.h"
|
||||
#include "../ve/velib.h"
|
||||
#include "dblib.h"
|
||||
|
@ -454,7 +454,7 @@ int TImplosion_mask::find_roots(const char* articolo, TAssoc_array& roots) const
|
||||
|
||||
TAssoc_array ass[2];
|
||||
int c = 0; // Array dei children = 0; fathers = 1
|
||||
ass[c].add(articolo);
|
||||
ass[c].add(articolo, NULL);
|
||||
|
||||
const char* cap = FR("Livello %d - Articoli %ld");
|
||||
TString caption; caption.format(cap, 0, 0L);
|
||||
@ -478,7 +478,7 @@ int TImplosion_mask::find_roots(const char* articolo, TAssoc_array& roots) const
|
||||
for (cur = 0L; cur.pos() < cur.items(); ++cur)
|
||||
{
|
||||
const TString& father = cur.curr().get("CODDIST");
|
||||
ass[!c].add(father);
|
||||
ass[!c].add(father, NULL);
|
||||
}
|
||||
cur.freeze(FALSE);
|
||||
}
|
||||
@ -559,7 +559,7 @@ void TImplosion_mask::implode_slow()
|
||||
key << row->get();
|
||||
key.rtrim();
|
||||
}
|
||||
_xmas.add(key);
|
||||
_xmas.add(key, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
@ -623,7 +623,7 @@ void TImplosion_mask::implode_medium()
|
||||
key = articolo;
|
||||
if (livello.not_empty())
|
||||
key << '|' << livello;
|
||||
_xmas.add(key);
|
||||
_xmas.add(key, NULL);
|
||||
|
||||
TAssoc_array roots;
|
||||
const long items = find_roots(articolo, roots);
|
||||
|
@ -1,25 +1,25 @@
|
||||
#define F_CODICE 201
|
||||
#define F_DESCR 202
|
||||
#define F_COSUNIT 203
|
||||
#define F_UNMIS 204
|
||||
#define F_STAMPA 205
|
||||
#define F_UMDESC 206
|
||||
#define F_CODICEART 207
|
||||
#define F_SEARCHART 208
|
||||
#define F_SHEET 209
|
||||
#define F_NUMPERS 210
|
||||
#define F_PRODUTTIV 211
|
||||
#define F_UNTEMPO 212
|
||||
#define F_DESUNTEMPO 213
|
||||
#define F_UNMIS2 214
|
||||
#define F_LINEESTD 215
|
||||
#define F_PERCMIN 216
|
||||
#define F_PRODNRIL 217
|
||||
#define F_CODICE 101
|
||||
#define F_DESCR 102
|
||||
#define F_COSUNIT 103
|
||||
#define F_UNMIS 104
|
||||
#define F_STAMPA 105
|
||||
#define F_UMDESC 106
|
||||
#define F_CODICEART 107
|
||||
#define F_SEARCHART 108
|
||||
#define F_SHEET 109
|
||||
#define F_NUMPERS 110
|
||||
#define F_PRODUTTIV 111
|
||||
#define F_UNTEMPO 112
|
||||
#define F_DESUNTEMPO 113
|
||||
#define F_UNMIS2 114
|
||||
#define F_LINEESTD 115
|
||||
#define F_PERCMIN 116
|
||||
#define F_PRODNRIL 117
|
||||
|
||||
|
||||
#define F_CODLIN 101
|
||||
#define F_DESCRLIN 102
|
||||
#define F_CODIMP 103
|
||||
#define F_LNUMPERS 104
|
||||
#define F_LPRODUTTIV 105
|
||||
#define F_CODLIN 101
|
||||
#define F_DESCRLIN 102
|
||||
#define F_CODIMP 103
|
||||
#define F_LNUMPERS 104
|
||||
#define F_LPRODUTTIV 105
|
||||
#define F_DESCRIMP 120
|
||||
|
@ -524,23 +524,6 @@ bool TEffetti_mask::on_field_event(TOperable_field& o, TField_event e, long joll
|
||||
if (e == fe_modify)
|
||||
sfield(F_SHEET_RIGHE).set_focusdirty();
|
||||
break;
|
||||
case F_IBAN_STATO:
|
||||
if (mode() == MODE_MOD && e == fe_init)
|
||||
{
|
||||
TRelation * rel = app().get_relation();
|
||||
|
||||
if (rel != nullptr)
|
||||
{
|
||||
TRectype & rec = rel->lfile().curr();
|
||||
|
||||
if (rec.get(EFF_IBAN).empty())
|
||||
{
|
||||
set(F_CODABI, rec.get(EFF_CODABI));
|
||||
set(F_CODCAB, rec.get(EFF_CODCAB));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
case F_SHEET_RIGHE:
|
||||
return on_sheet_event(o, e, jolly);
|
||||
default:
|
||||
|
283
src/f1/f1lib.cpp
283
src/f1/f1lib.cpp
@ -20,14 +20,20 @@ TFppro& fppro_db()
|
||||
return *fppro;
|
||||
}
|
||||
|
||||
bool TFppro::sql_inj(TToken_string& keys)
|
||||
bool TFppro::sql_inj(const TString& str)
|
||||
{
|
||||
TString appo; appo << str;
|
||||
appo.upper();
|
||||
return appo.contains("--") || appo.contains("SELECT") || appo.contains("DELETE") || appo.contains("DROP");
|
||||
}
|
||||
|
||||
bool TFppro::sql_inj(const keys_s& keys)
|
||||
{
|
||||
TToken_string str("", ';');
|
||||
|
||||
str.add(keys.get(0));
|
||||
str.add(keys.get(1));
|
||||
str.add(keys.get(2));
|
||||
return str.contains("--") || str.contains("SELECT") || str.contains("DELETE") || str.contains("DROP");
|
||||
str.add(keys.prginvio);
|
||||
str.add(keys.headerfatt);
|
||||
str.add(keys.bodyfatt);
|
||||
return sql_inj(str);
|
||||
}
|
||||
|
||||
bool TFppro::check_reg(TToken_string& keys, int numreg)
|
||||
@ -38,74 +44,68 @@ bool TFppro::check_reg(TToken_string& keys, int numreg)
|
||||
bool TFppro::guess_the_doc(const TLocalisamfile& mov)
|
||||
{
|
||||
// Prendo il fornitore del mov per controllare la p.iva
|
||||
TCli_for forn = cached_clifor('F', mov.get_long(MOV_CODCF));
|
||||
|
||||
const TString4 statopiva(forn.get(CLI_STATOPAIV));
|
||||
|
||||
TLocalisamfile clifo(LF_CLIFO);
|
||||
clifo.put(CLI_TIPOCF, "F");
|
||||
const TString& codforn = mov.get(MOV_CODCF);
|
||||
clifo.put(CLI_CODCF, codforn);
|
||||
clifo.read();
|
||||
TString cli_statopiva, cli_piva;
|
||||
cli_statopiva << clifo.get(CLI_STATOPAIV);
|
||||
cli_piva << clifo.get(CLI_PAIV);
|
||||
const real tot = mov.get_real(MOV_TOTDOC) + mov.get_real(MOV_RITFIS) + mov.get_real(MOV_RITSOC);
|
||||
TString numdoc = mov.get(MOV_NUMDOCEXT);
|
||||
|
||||
if (numdoc.empty())
|
||||
numdoc = mov.get(MOV_NUMDOC);
|
||||
// Controllo datadoc - numdoc - totdoc - p.iva
|
||||
|
||||
TString query;
|
||||
|
||||
query << "SELECT PQ_KEYPRGINVIO AS KEYPRGINVIO, PQ_KEYHEADERFATT AS KEYHEADERFATT, PQ_KEYBODYFATT AS KEYBODYFATT, P7_DATA AS DATA,\n" <<
|
||||
"\tP7_NUMERO AS NUMDOC, PQ_IMPTOTDOC AS IMPTOTDOC, P2_FISCIVAPAESE AS STATOPIVA, P2_FISCIVACOD AS PIVA FROM PAA2700F\n" <<
|
||||
"JOIN PAA0700F ON PQ_KEYPRGINVIO = P7_KEYPRGINVIO AND PQ_KEYHEADERFATT = P7_KEYHEADERFATT AND PQ_KEYBODYFATT = P7_KEYBODYFATT\n" <<
|
||||
"JOIN PAA0200F ON PQ_KEYPRGINVIO = P2_KEYPRGINVIO AND PQ_KEYHEADERFATT = P2_KEYHEADERFATT AND PQ_KEYBODYFATT = P2_KEYBODYFATT\n" <<
|
||||
"WHERE P7_DATA = '" << mov.get_date(MOV_DATADOC).date2ansi() << "' AND \n" <<
|
||||
"(P7_NUMERO = '" << numdoc << "' OR P7_NUMERO LIKE '%" << numdoc << "%') \n";
|
||||
if (statopiva.full())
|
||||
query << "' AND \n" << "P2_FISCIVAPAESE = '" << statopiva;
|
||||
query << "' AND \n" << "P2_FISCIVACOD = '" << forn.get(CLI_PAIV);
|
||||
if (forn.gruppo_IVA())
|
||||
query << "' AND \n" "P2_COCAZZO = '" << forn.get(CLI_COFI); // cazzo;
|
||||
query << "PQ_IMPTOTDOC = " << tot;
|
||||
query << "SELECT PQ_KEYPRGINVIO AS KEYPRGINVIO, PQ_KEYHEADERFATT AS KEYHEADERFATT, PQ_KEYBODYFATT AS KEYBODYFATT, P7_DATA AS DATA,\n" <<
|
||||
"\tP7_NUMERO AS NUMDOC, PQ_IMPTOTDOC AS IMPTOTDOC, P2_FISCIVAPAESE AS STATOPIVA, P2_FISCIVACOD AS PIVA FROM PAA2700F\n" <<
|
||||
"JOIN PAA0700F ON PQ_KEYPRGINVIO = P7_KEYPRGINVIO AND PQ_KEYHEADERFATT = P7_KEYHEADERFATT AND PQ_KEYBODYFATT = P7_KEYBODYFATT\n" <<
|
||||
"JOIN PAA0200F ON PQ_KEYPRGINVIO = P2_KEYPRGINVIO AND PQ_KEYHEADERFATT = P2_KEYHEADERFATT AND PQ_KEYBODYFATT = P2_KEYBODYFATT\n" <<
|
||||
"WHERE P7_DATA = '" << mov.get_date(MOV_DATADOC).date2ansi() << "' AND \n" <<
|
||||
"(P7_NUMERO = '" << numdoc << "' OR P7_NUMERO LIKE '%" << numdoc << "%') AND \n" <<
|
||||
(cli_statopiva.full() ? TString("P2_FISCIVAPAESE = '") << cli_statopiva << "' AND " : "") <<
|
||||
"P2_FISCIVACOD = '" << cli_piva << "' AND \n" << "PQ_IMPTOTDOC = " << tot;
|
||||
|
||||
if (_db->sq_set_exec(query) && _db->sq_items() == 1)
|
||||
{
|
||||
_keys = _db->sq_get("KEYPRGINVIO");
|
||||
_keys.add(_db->sq_get("KEYHEADERFATT"));
|
||||
_keys.add(_db->sq_get("KEYBODYFATT"));
|
||||
_keys = { _db->sq_get("KEYPRGINVIO"), _db->sq_get("KEYHEADERFATT"), _db->sq_get("KEYBODYFATT") };
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
const char* TFppro::get_keys_fppro()
|
||||
const char* TFppro::get_keys_fppro() const
|
||||
{
|
||||
TString& keys = get_tmp_string(64);
|
||||
|
||||
keys.cut(0) << _keys.get(0) << ";" << _keys.get(1) << ";" << _keys.get(2);
|
||||
return keys;
|
||||
static TString keys;
|
||||
keys.cut(0) << _keys.prginvio << ";" << _keys.headerfatt << ";" << _keys.bodyfatt;
|
||||
return (const char*)keys;
|
||||
}
|
||||
|
||||
long TFppro::get_numreg()
|
||||
int TFppro::get_numreg()
|
||||
{
|
||||
if (!_is_set)
|
||||
{
|
||||
if (set_query())
|
||||
return _db->sq_get_long("PZ_NUMREGCONT");
|
||||
return _db->sq_get_int("PZ_NUMREGCONT");
|
||||
return -1;
|
||||
}
|
||||
return _db->sq_get_long("PZ_NUMREGCONT");
|
||||
return _db->sq_get_int("PZ_NUMREGCONT");
|
||||
}
|
||||
|
||||
long TFppro::get_numreg(TToken_string& keys)
|
||||
int TFppro::get_numreg(TToken_string& keys)
|
||||
{
|
||||
set_keys(keys);
|
||||
return get_numreg();
|
||||
}
|
||||
|
||||
long TFppro::get_codforn()
|
||||
TString TFppro::get_codforn() const
|
||||
{
|
||||
TString query;
|
||||
|
||||
query << "SELECT PZ_CLIFOR FROM FPPRO00F\n" << where_str();
|
||||
_db->sq_set_exec(query);
|
||||
return _db->sq_get_long("PZ_CLIFOR");
|
||||
return _db->sq_get("PZ_CLIFOR");
|
||||
}
|
||||
|
||||
TDate TFppro::get_datareg()
|
||||
@ -127,13 +127,12 @@ TDate TFppro::get_datareg(TToken_string& keys)
|
||||
return TDate();
|
||||
}
|
||||
|
||||
real TFppro::get_ritenute()
|
||||
real TFppro::get_ritenute() const
|
||||
{
|
||||
real imp;
|
||||
real imp = ZERO;
|
||||
TString query;
|
||||
|
||||
query << "SELECT P7_IMPORTORIT AS IMPORTO FROM PAA0700F\n" <<
|
||||
"WHERE P7_KEYPRGINVIO = '" << _keys.get(0) << "' AND P7_KEYHEADERFATT = '" << _keys.get(1) << "' AND P7_KEYBODYFATT = '" << _keys.get(2) << "'";
|
||||
"WHERE P7_KEYPRGINVIO = '" << _keys.prginvio << "' AND P7_KEYHEADERFATT = '" << _keys.headerfatt << "' AND P7_KEYBODYFATT = '" << _keys.bodyfatt << "'";
|
||||
_db->sq_set_exec(query, false);
|
||||
for(bool ok = _db->sq_next(); ok; ok = _db->sq_next())
|
||||
imp += _db->sq_get_real("IMPORTO");
|
||||
@ -141,48 +140,49 @@ real TFppro::get_ritenute()
|
||||
}
|
||||
|
||||
TFppro& TFppro::set_keys(TToken_string& keys)
|
||||
{
|
||||
if (keys.items() == 3)
|
||||
{
|
||||
const keys_s k = { keys.get(0), keys.get(1), keys.get(2) };
|
||||
return set_keys(k);
|
||||
}
|
||||
_is_set = false;
|
||||
_keys_setted = false;
|
||||
return *this;
|
||||
}
|
||||
|
||||
TFppro& TFppro::set_keys(const keys_s& keys)
|
||||
{
|
||||
if (sql_inj(keys))
|
||||
{
|
||||
TString msg; msg << "Database error: Possibile SQL INJECTION:\n" << keys;
|
||||
;
|
||||
//throw std::exception(msg);
|
||||
error_box(msg);
|
||||
_last_error.cut(0) << msg;
|
||||
}
|
||||
else if (!keys.prginvio.empty() && !keys.headerfatt.empty() && !keys.bodyfatt.empty())
|
||||
{
|
||||
_keys = keys;
|
||||
_keys_setted = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
TString prginvio = keys.get(0);
|
||||
TString headerfatt = keys.get(1);
|
||||
TString bodyfatt = keys.get(2);
|
||||
|
||||
if (prginvio.full() && headerfatt.full() && bodyfatt.full())
|
||||
{
|
||||
_keys = keys;
|
||||
_keys_setted = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
_last_error = "Chiavi settate non valide:\n";
|
||||
_last_error << keys;
|
||||
_keys_setted = false;
|
||||
}
|
||||
_last_error.cut(0) << "Chiavi settate non valide:\n" << keys;
|
||||
_keys_setted = false;
|
||||
}
|
||||
_is_set = false;
|
||||
return *this;
|
||||
}
|
||||
|
||||
bool TFppro::associa_mov(const long numreg)
|
||||
bool TFppro::associa_mov(const int numreg) const
|
||||
{
|
||||
bool ok;
|
||||
TLocalisamfile mov(LF_MOV);
|
||||
|
||||
mov.put(MOV_NUMREG, numreg);
|
||||
ok = mov.read() == NOERR;
|
||||
if (ok)
|
||||
if ((ok = mov.read() == NOERR))
|
||||
{
|
||||
mov.put(MOV_KEYFPPRO, get_keys_fppro());
|
||||
ok = mov.rewrite() == NOERR;
|
||||
if (ok) // Scrivo sul movimento il riferimento al fppro
|
||||
if ((ok = mov.rewrite() == NOERR)) // Scrivo sul movimento il riferimento al fppro
|
||||
{
|
||||
TString query;
|
||||
query << "UPDATE FPPRO00F \nSET " <<
|
||||
@ -199,7 +199,7 @@ bool TFppro::associa_mov(const long numreg)
|
||||
return ok;
|
||||
}
|
||||
|
||||
const char* TFppro::get_tipoprot()
|
||||
const char* TFppro::get_tipoprot() const
|
||||
{
|
||||
TString query;
|
||||
|
||||
@ -208,88 +208,80 @@ const char* TFppro::get_tipoprot()
|
||||
return _db->sq_get("TIPOPROT");
|
||||
}
|
||||
|
||||
const char* TFppro::get_numprot()
|
||||
const char* TFppro::get_numprot() const
|
||||
{
|
||||
TString query;
|
||||
|
||||
static TString num;
|
||||
query << "SELECT PZ_NUMPROT AS NUMPROT FROM FPPRO00F\r\n" << where_str();
|
||||
_db->sq_set_exec(query);
|
||||
|
||||
return _db->sq_get("NUMPROT");
|
||||
return num.cut(0) = _db->sq_get("NUMPROT");
|
||||
}
|
||||
|
||||
const char* TFppro::get_annoprot()
|
||||
const char* TFppro::get_annoprot() const
|
||||
{
|
||||
TString query;
|
||||
|
||||
static TString anno;
|
||||
query << "SELECT PZ_ANNOPROT AS ANNOPROT FROM FPPRO00F\r\n" << where_str();
|
||||
_db->sq_set_exec(query);
|
||||
return _db->sq_get("ANNOPROT");
|
||||
return anno.cut(0) = _db->sq_get("ANNOPROT");
|
||||
}
|
||||
|
||||
const char * TFppro::get_dataoraric()
|
||||
const char* TFppro::get_dataoraric() const
|
||||
{
|
||||
TString query;
|
||||
TString & data = get_tmp_string(16);
|
||||
|
||||
query << "SELECT PZ_DATAORARIC AS DATAORARIC FROM FPPRO00F\r\n" << where_str();
|
||||
static TString data;
|
||||
query << "SELECT PZ_DATAORARIC AS DATAORARIC FROM FPPRO00F\r\n" << where_str();
|
||||
_db->sq_set_exec(query);
|
||||
data << _db->sq_get_date("DATAORARIC").date2ansi();
|
||||
return data;
|
||||
return data.cut(0) << _db->sq_get_date("DATAORARIC").date2ansi();
|
||||
}
|
||||
|
||||
const char* TFppro::get_tipodoc()
|
||||
const char* TFppro::get_tipodoc() const
|
||||
{
|
||||
TString query;
|
||||
|
||||
static TString tipodoc;
|
||||
query << "SELECT PZ_TIPODOC AS TIPODOC FROM FPPRO00F\r\n" << where_str();
|
||||
_db->sq_set_exec(query);
|
||||
return _db->sq_get("TIPODOC");
|
||||
return tipodoc.cut(0) << _db->sq_get("TIPODOC");
|
||||
}
|
||||
|
||||
const char* TFppro::get_numdoc()
|
||||
const char* TFppro::get_numdoc() const
|
||||
{
|
||||
TString query;
|
||||
|
||||
static TString numdoc;
|
||||
query << "SELECT PZ_NUMERO AS NUMDOC FROM FPPRO00F\r\n" << where_str();
|
||||
_db->sq_set_exec(query);
|
||||
return _db->sq_get("NUMDOC");
|
||||
return numdoc.cut(0) << _db->sq_get("NUMDOC");
|
||||
}
|
||||
|
||||
TDate TFppro::get_data_first_doc() const
|
||||
{
|
||||
TString query;
|
||||
|
||||
query << "SELECT min(a.DATA) AS DATA \nFROM( \n\tSELECT P7_DATA as DATA \n" <<
|
||||
"\tFROM PAA0700F \n\tUNION \n\tSELECT P7_DATA as DATA \n\tFROM PAF0700F \n) a";
|
||||
_db->sq_set_exec(query);
|
||||
return _db->sq_get_date("DATA");
|
||||
}
|
||||
|
||||
TDate TFppro::get_dataorarioric()
|
||||
TDate TFppro::get_dataorarioric() const
|
||||
{
|
||||
TString query;
|
||||
|
||||
query << "SELECT P1_DATAORARIC \nFROM PAA0100F \n" <<
|
||||
"WHERE P1_KEYPRGINVIO = '" << _keys.get(0) << "' AND P1_KEYHEADERFATT = '" << _keys.get(1) << "' AND P1_KEYBODYFATT = '" << _keys.get(2) << "'";
|
||||
"WHERE P1_KEYPRGINVIO = '" << _keys.prginvio << "' AND P1_KEYHEADERFATT = '" << _keys.headerfatt << "' AND P1_KEYBODYFATT = '" << _keys.bodyfatt << "'";
|
||||
_db->sq_set_exec(query);
|
||||
return _db->sq_get_date("P1_DATAORARIC");
|
||||
}
|
||||
|
||||
long TFppro::get_numregcont()
|
||||
int TFppro::get_numregcont() const
|
||||
{
|
||||
TString query;
|
||||
|
||||
query << "SELECT PZ_NUMREGCONT FROM FPPRO00F\n" << where_str();
|
||||
_db->sq_set_exec(query);
|
||||
return _db->sq_get_long("PZ_NUMREGCONT");
|
||||
return _db->sq_get_int("PZ_NUMREGCONT");
|
||||
}
|
||||
|
||||
TString TFppro::get_last_error(bool clear)
|
||||
{
|
||||
TString & l = get_tmp_string(128);
|
||||
|
||||
l = _last_error;
|
||||
TString l(_last_error);
|
||||
if(clear)
|
||||
_last_error.cut(0);
|
||||
return l;
|
||||
@ -305,14 +297,14 @@ bool TFppro::set_query()
|
||||
return _is_set = false;
|
||||
}
|
||||
|
||||
const char* TFppro::where_str()
|
||||
const char* TFppro::where_str() const
|
||||
{
|
||||
static TString str;
|
||||
str.cut(0) << " WHERE PZ_KEYPRGINVIO = '" << _keys.get(0) << "' AND PZ_KEYHEADERFATT = '" << _keys.get(1) << "' AND PZ_KEYBODYFATT = '" << _keys.get(2) << "'";
|
||||
str.cut(0) << " WHERE PZ_KEYPRGINVIO = '" << _keys.prginvio << "' AND PZ_KEYHEADERFATT = '" << _keys.headerfatt << "' AND PZ_KEYBODYFATT = '" << _keys.bodyfatt << "'";
|
||||
return str;
|
||||
}
|
||||
|
||||
TFppro::TFppro() : _keys("", ';'), _keys_setted(false), _is_set(false)
|
||||
TFppro::TFppro() : _keys({ "\0", "\0", "\0" }), _keys_setted(false), _is_set(false)
|
||||
{
|
||||
_db = new SSimple_query();
|
||||
const bool ok = set_connection(*_db);
|
||||
@ -332,12 +324,11 @@ prot_s TProtocollo::get_prot()
|
||||
|
||||
TString& TProtocollo::prot_in(const int year, const char* tipoprot, const char* progres)
|
||||
{
|
||||
TString & protocollo = get_tmp_string(128);
|
||||
static TString protocollo;
|
||||
TString tipo(tipoprot);
|
||||
|
||||
if (tipo.empty())
|
||||
tipo << "no_prot";
|
||||
protocollo << year << "-" << tipo << "/" << progres;
|
||||
protocollo.cut(0) << year << "-" << tipo << "/" << progres;
|
||||
return protocollo;
|
||||
}
|
||||
|
||||
@ -372,21 +363,29 @@ const char* get_ini_codcaus()
|
||||
return ini_get_string(FILE_CONFIG, FILE_SECTION, F1_CAUS);
|
||||
}
|
||||
|
||||
const char* get_codcaus(const char * tipodoc, long codcf)
|
||||
const char* get_codcaus(const char * tipodoc, const char* codcf)
|
||||
{
|
||||
TCli_for f = cached_clifor('F', codcf);
|
||||
TLocalisamfile cfven(LF_CFVEN);
|
||||
cfven.put(CFV_TIPOCF, "F");
|
||||
cfven.put(CFV_CODCF, codcf);
|
||||
const char* codcaus = "";
|
||||
const char* codcausnc = "";
|
||||
const bool nc = TString(tipodoc) == "TD04";
|
||||
|
||||
if (cfven.read() == NOERR)
|
||||
{
|
||||
codcaus = cfven.get(CFV_CODCAUS);
|
||||
codcausnc = cfven.get(CFV_CODCAUSNC);
|
||||
}
|
||||
|
||||
if (nc)
|
||||
{
|
||||
const TString & codcaus = f.vendite().get(CFV_CODCAUSNC);
|
||||
if (codcaus.full())
|
||||
return codcaus;
|
||||
if (!TString(codcausnc).empty())
|
||||
return codcausnc;
|
||||
}
|
||||
else
|
||||
{
|
||||
const TString & codcaus = f.vendite().get(CFV_CODCAUS);
|
||||
if (codcaus.full())
|
||||
if (!TString(codcaus).empty())
|
||||
return codcaus;
|
||||
}
|
||||
return get_ini_codcaus();
|
||||
@ -445,42 +444,74 @@ bool check_causale(const TString& cod_caus, bool acq)
|
||||
|
||||
bool check_causale(const TString& cod_caus, const TString& tipo_doc, bool acq)
|
||||
{
|
||||
const TCausale& c = cached_causale(cod_caus);
|
||||
const TCausale& caus = cached_causale(cod_caus);
|
||||
|
||||
if(tipo_doc == "FA" || tipo_doc == "BD" || tipo_doc == "AF" || tipo_doc == "FF")
|
||||
return c.tipo_doc() == tipo_doc;
|
||||
return caus.tipo_doc() == tipo_doc;
|
||||
|
||||
if (tipo_doc == "NC" || tipo_doc == "ND")
|
||||
{
|
||||
bool nota;
|
||||
bool nota_iva = false;
|
||||
|
||||
if ((nota = c.tipo_doc() == tipo_doc))
|
||||
if ((nota = caus.tipo_doc() == tipo_doc))
|
||||
{
|
||||
if (acq)
|
||||
nota_iva = c.reg().tipo() == iva_acquisti;
|
||||
nota_iva = caus.reg().tipo() == iva_acquisti;
|
||||
else
|
||||
nota_iva = c.reg().tipo() == iva_vendite;
|
||||
nota_iva = caus.reg().tipo() == iva_vendite;
|
||||
}
|
||||
return nota && nota_iva;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool check_caus_has_rit(const TString& cod_caus, int year)
|
||||
bool check_caus_has_rit(const TString& cod_caus, bool rit)
|
||||
{
|
||||
const TCausale & c = cached_causale(cod_caus, year);
|
||||
|
||||
return c.causale_770().full();
|
||||
TLocalisamfile causali(LF_CAUSALI);
|
||||
causali.put(CAU_CODCAUS, cod_caus);
|
||||
causali.read();
|
||||
return *causali.get(CAU_M770) != '\0';
|
||||
}
|
||||
|
||||
void run_cont_ini(bool liq)
|
||||
{
|
||||
TString cmd;
|
||||
|
||||
cmd.cut(0) << "cg2 -0 -i" << TFilename().temp("cg2CONTAB", "ini") << " -f1" << (liq ? " -liq" : " ") << " /u" << user();
|
||||
|
||||
TExternal_app app(cmd);
|
||||
|
||||
app.run();
|
||||
static TString run_string;
|
||||
#ifdef DBG
|
||||
run_string.cut(0) << "cg2 -0 -i" << F1_INIREGCONT << "*" << ".ini" << " -f1" << (liq? " -liq" : " ") << " /u" << user();
|
||||
#else
|
||||
run_string.cut(0) << "cg2 -0 -i" << TFilename().tempdir() << "\\" << F1_INIREGCONT << "*" << ".ini" << " -f1" << (liq ? " -liq" : " ") << " /u" << user();
|
||||
#endif
|
||||
TExternal_app(run_string).run();
|
||||
}
|
||||
|
||||
void TF1_log::log(int severity, const char* msg)
|
||||
{
|
||||
if (_log == nullptr)
|
||||
{
|
||||
_log = new TLog_report("Stato contabilizzazione:");
|
||||
// Tento l'eliminazione del file
|
||||
std::remove("f1_cg.log");
|
||||
}
|
||||
|
||||
static TString txt;
|
||||
txt.cut(0) << msg;
|
||||
_log->log(severity, txt);
|
||||
// Scrivo anche su file
|
||||
std::filebuf fb;
|
||||
fb.open("f1_cg.log", std::ios::out | std::ios::app);
|
||||
std::ostream os(&fb);
|
||||
os << txt << std::endl;
|
||||
fb.close();
|
||||
}
|
||||
|
||||
bool TF1_log::show_log()
|
||||
{
|
||||
if (_log)
|
||||
{
|
||||
_log->preview();
|
||||
delete _log;
|
||||
_log = nullptr;
|
||||
}
|
||||
return true;
|
||||
}
|
@ -8,6 +8,7 @@
|
||||
#define FILE_CONFIG CONFIG_DITTA
|
||||
#define FILE_SECTION "f1"
|
||||
#define F1_CAUS "caus"
|
||||
#define F1_INIREGCONT "cg2CONTAB"
|
||||
#define LOG_MSG 0
|
||||
#define LOG_WARN 1
|
||||
#define LOG_ERR 2
|
||||
@ -38,44 +39,61 @@ typedef struct _prot_s
|
||||
*/
|
||||
class TFppro : public TObject
|
||||
{
|
||||
TToken_string _keys;
|
||||
struct keys_s
|
||||
{
|
||||
TString prginvio;
|
||||
TString headerfatt;
|
||||
TString bodyfatt;
|
||||
|
||||
operator const char*() const
|
||||
{
|
||||
static TToken_string a("", ';');
|
||||
a.add(prginvio);
|
||||
a.add(headerfatt);
|
||||
a.add(bodyfatt);
|
||||
return a;
|
||||
}
|
||||
} _keys;
|
||||
|
||||
SSimple_query* _db;
|
||||
bool _keys_setted;
|
||||
bool _is_set; // Query is setted
|
||||
TString _fppro_query;
|
||||
TString _last_error;
|
||||
|
||||
bool sql_inj(TToken_string& keys);
|
||||
static bool sql_inj(const TString& str);
|
||||
static bool sql_inj(const keys_s& keys);
|
||||
public:
|
||||
const char* where_str();
|
||||
const char* where_str() const;
|
||||
|
||||
bool check_reg(TToken_string& keys, int numreg);
|
||||
// Se un mov. registrato non e' collegato all'FPPRO cerco di capire qual'e`
|
||||
bool guess_the_doc(const TLocalisamfile& mov);
|
||||
// Getters
|
||||
const char* get_keys_fppro();
|
||||
long get_numreg();
|
||||
long get_numreg(TToken_string& keys);
|
||||
long get_codforn();
|
||||
const char* get_keys_fppro() const;
|
||||
int get_numreg();
|
||||
int get_numreg(TToken_string& keys);
|
||||
TString get_codforn() const;
|
||||
TDate get_datareg();
|
||||
TDate get_datareg(TToken_string& keys);
|
||||
real get_ritenute();
|
||||
real get_ritenute() const;
|
||||
TDate get_data_first_doc() const;
|
||||
TDate get_dataorarioric();
|
||||
long get_numregcont();
|
||||
TDate get_dataorarioric() const;
|
||||
int get_numregcont() const;
|
||||
|
||||
TString get_last_error(bool clear = true);
|
||||
// Setters
|
||||
bool set_query();
|
||||
TFppro& set_keys(TToken_string& keys);
|
||||
TFppro& set_keys(const keys_s& keys);
|
||||
|
||||
bool associa_mov(long numreg);
|
||||
const char* get_tipoprot();
|
||||
const char* get_numprot();
|
||||
const char* get_annoprot();
|
||||
const char* get_dataoraric();
|
||||
const char* get_tipodoc();
|
||||
const char* get_numdoc();
|
||||
bool associa_mov(int numreg) const;
|
||||
const char* get_tipoprot() const;
|
||||
const char* get_numprot() const;
|
||||
const char* get_annoprot() const;
|
||||
const char* get_dataoraric() const;
|
||||
const char* get_tipodoc() const;
|
||||
const char* get_numdoc() const;
|
||||
|
||||
TFppro();
|
||||
TFppro(TToken_string& keys) : TFppro() { set_keys(keys); }
|
||||
@ -107,17 +125,19 @@ public:
|
||||
|
||||
};
|
||||
|
||||
class TF1_log : public TLog_report
|
||||
class TF1_log : TObject
|
||||
{
|
||||
TLog_report* _log;
|
||||
public:
|
||||
TF1_log() : TLog_report("Stato contabilizzazione:") {}
|
||||
bool show_log() { export_text("f1_cg.log", false); return preview(); }
|
||||
TF1_log() : _log(nullptr){}
|
||||
void log(int severity, const char* msg);
|
||||
bool show_log();
|
||||
};
|
||||
|
||||
TFppro& fppro_db();
|
||||
|
||||
const char* get_ini_codcaus();
|
||||
const char* get_codcaus(const char * tipodoc, long codcf);
|
||||
const char* get_codcaus(const char * tipodoc, const char* codcf);
|
||||
bool get_endatareg();
|
||||
TString get_datainireg();
|
||||
TString get_dataendreg();
|
||||
@ -133,7 +153,7 @@ void set_periodprec(bool flag);
|
||||
bool check_causale(const TString& cod_caus, bool acq = true);
|
||||
// Controlla se il "cod_caus" ha come "tipo_doc" FA o NC (di acquisto)
|
||||
bool check_causale(const TString& cod_caus, const TString& tipo_doc, bool acq = true);
|
||||
bool check_caus_has_rit(const TString& cod_caus, int year = 0);
|
||||
bool check_caus_has_rit(const TString& cod_caus, bool rit);
|
||||
void run_cont_ini(bool liq);
|
||||
|
||||
#endif // _F1LIB_H_
|
||||
|
@ -114,7 +114,7 @@ bool TEstrazione::check_documento_vendita(const TLocalisamfile& mov, _Out_ bool&
|
||||
const TDocumento doc(mov.get(MOV_DPROVV)[0], mov.get_int(MOV_DANNO), mov.get(MOV_DCODNUM), mov.get_int(MOV_DNDOC));
|
||||
|
||||
exist_doc = true;
|
||||
if (chiave_paf(doc, hfatt, bfatt))
|
||||
if (chiave_paf_doc(doc, hfatt, bfatt))
|
||||
{
|
||||
query << "SELECT * FROM PAF0100F WHERE P1_KEYHEADERFATT = '" << hfatt << "' AND P1_KEYBODYFATT = '" << bfatt << "';";
|
||||
fp_db().sq_set_exec(query);
|
||||
|
@ -593,9 +593,7 @@ bool TF9Prospetto_integr::operator()(const char* numreg_acq, const char* numreg_
|
||||
_items = _prosp_rs->items();
|
||||
if (_items == 0)
|
||||
{
|
||||
FILE* log;
|
||||
|
||||
fopen_s(&log, "TF9Prospetto_integr_error.txt", "a");
|
||||
FILE* log = fopen("TF9Prospetto_integr_error.txt", "a");
|
||||
if (!_prosp_rs->last_exec())
|
||||
{
|
||||
if (log != nullptr)
|
||||
|
Binary file not shown.
@ -104,10 +104,7 @@ void TPA_mask::load_all_fields()
|
||||
set(F_DATAEND, ini_get_string(CONFIG_DITTA, "fp", "dataend"));
|
||||
|
||||
const TToken_string s_accepted_docs(ini_get_string(CONFIG_DITTA, "fp", "accepted_docs"), ';');
|
||||
//
|
||||
auto& sheet = sfield(F_DOCUMENTI_TIPO);
|
||||
sheet.hide();
|
||||
|
||||
TSheet_field& sheet = sfield(F_DOCUMENTI_TIPO);
|
||||
TFP_selected_docs selected_docs;
|
||||
|
||||
if (selected_docs.has_selected_docs())
|
||||
@ -212,7 +209,7 @@ void TPA_mask::fill()
|
||||
continue;
|
||||
|
||||
bool sent = false;
|
||||
if (chiave_paf(doc, hfatt, bfatt))
|
||||
if (chiave_paf_doc(doc, hfatt, bfatt))
|
||||
{
|
||||
if (paf0100f.search(nullptr, hfatt, bfatt) && paf0100f.sq_get("P1_GESTIONE") != " " && paf0100f.sq_get("P1_ERRINT") != "*")
|
||||
{
|
||||
@ -307,7 +304,7 @@ void TPA_mask::set_pronto()
|
||||
static TString campo_hfatt, campo_bfatt, query;
|
||||
TDocumento doc('D', riga->get_int(xvtil_cid2index(S_ANNO)), riga->get(xvtil_cid2index(S_CODNUM)), riga->get_long(xvtil_cid2index(S_NDOC)));
|
||||
|
||||
if (chiave_paf(doc, campo_hfatt, campo_bfatt))
|
||||
if (chiave_paf_doc(doc, campo_hfatt, campo_bfatt))
|
||||
{
|
||||
// Come prima cosa controllo che effettivamente la chiave di questo doc sia in giro per il mondo
|
||||
query.cut(0) << "UPDATE PAF0100F SET P1_GESTIONE = 'P' WHERE P1_KEYHEADERFATT = '" << campo_hfatt << "' AND P1_KEYBODYFATT = '" << campo_bfatt << "'";
|
||||
@ -345,7 +342,7 @@ void TPA_mask::connect_keys()
|
||||
|
||||
TDocumento doc('D', riga->get_int(xvtil_cid2index(S_ANNO)), riga->get(xvtil_cid2index(S_CODNUM)), riga->get_long(xvtil_cid2index(S_NDOC)));
|
||||
static TString campo_hfatt, campo_bfatt, query;
|
||||
if (chiave_paf(doc, campo_hfatt, campo_bfatt))
|
||||
if (chiave_paf_doc(doc, campo_hfatt, campo_bfatt))
|
||||
{
|
||||
// Come prima cosa controllo che effettivamente la chiave di questo doc sia in giro per il mondo
|
||||
query.cut(0) << "SELECT * FROM PAF0100F WHERE P1_KEYHEADERFATT = '" << campo_hfatt << "' AND P1_KEYBODYFATT = '" << campo_bfatt << "'";
|
||||
@ -687,7 +684,7 @@ void TPA_mask::set_err_paf()
|
||||
|
||||
TString hfatt, bfatt;
|
||||
TPaf_record paf0100f("PAF0100F");
|
||||
if (fdoc.read() == NOERR && chiave_paf(fdoc.curr(), hfatt, bfatt) && paf0100f.search(nullptr, hfatt, bfatt))
|
||||
if (fdoc.read() == NOERR && chiave_paf_doc(fdoc.curr(), hfatt, bfatt) && paf0100f.search(nullptr, hfatt, bfatt))
|
||||
{
|
||||
static TString query;
|
||||
query.cut(0) <<
|
||||
|
@ -17,6 +17,7 @@
|
||||
#define FILTER_ALL "A"
|
||||
#define FILTER_CONT "C"
|
||||
#define PARA_FP "fp"
|
||||
#define F1_INIREGCONT "regcont"
|
||||
|
||||
enum
|
||||
{
|
||||
@ -669,7 +670,7 @@ int TPassive_mask::prepara_contab() const
|
||||
{
|
||||
TString prokeys = row->get(sf.cid2index(S_PROKEY));
|
||||
TToken_string keys(prokeys, ';');
|
||||
const TString codcaus(get_codcaus(row->get(cid2index(S_TIPODOCSDI)), row->get(cid2index(S_FORNITORE))));
|
||||
const TString codcaus(get_codcaus(row->get(cid2index(S_TIPODOCSDI)), row->get_long(cid2index(S_FORNITORE))));
|
||||
|
||||
TString tipodoc(row->get(sf.cid2index(S_TIPODOCSDI)));
|
||||
if (tipodoc == "TD01" && !check_causale(codcaus, "FA", true))
|
||||
@ -868,7 +869,7 @@ int TPassive_mask::check_err() const
|
||||
{
|
||||
if (row->starts_with("X"))
|
||||
{
|
||||
TString codcaus(get_codcaus(row->get(cid2index(S_TIPODOCSDI)), row->get(cid2index(S_FORNITORE))));
|
||||
TString codcaus(get_codcaus(row->get(cid2index(S_TIPODOCSDI)), row->get_long(cid2index(S_FORNITORE))));
|
||||
if (codcaus.empty())
|
||||
return no_codcaus;
|
||||
if (TString(row->get(cid2index(S_FORNITORE))).empty())
|
||||
|
@ -477,7 +477,8 @@ void TFP_expression::split_condition(const TString& cond, TString& cond_sx, TStr
|
||||
}
|
||||
}
|
||||
|
||||
// Questa funzione potrebbe diventare standard per TRectype
|
||||
// Questa funzione potrebbe diventare standard per TRectype. Ma vai a cagare i variant sono da eliminare
|
||||
|
||||
TVariant& TFP_expression::get_value(const TRectype& rec, const TString& campo)
|
||||
{
|
||||
TVariant& ret = get_tmp_var();
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user