Patch level :2.2 nopatch

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :stampa pagato per contabilita' analitica: lavori in stato di avanzamento. Le maschere funzionano quasi del tutto.


git-svn-id: svn://10.65.10.50/trunk@13511 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2005-11-21 18:19:36 +00:00
parent e16e3c656d
commit 39623fd119
8 changed files with 153 additions and 311 deletions

View File

@ -26,8 +26,8 @@ protected:
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
const TString& get_report_class() const; const TString& get_report_class() const;
bool test_compatible_report(); bool test_compatible_report();
bool esistono_riclassificazioni() const;
bool esistono_riclassificazioni() const;
void create_sheet(); void create_sheet();
int create_sheet_fields(int lf, int& y, short& dlg, bool required); int create_sheet_fields(int lf, int& y, short& dlg, bool required);
public: public:
@ -73,6 +73,12 @@ bool TPrint_bilancio_ca_mask::test_compatible_report()
return ok; return ok;
} }
bool TPrint_bilancio_ca_mask::esistono_riclassificazioni() const
{
TLocalisamfile ric(LF_PANAPDC);
return ric.first() == NOERR;
}
bool TPrint_bilancio_ca_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) bool TPrint_bilancio_ca_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{ {
switch (o.dlg()) switch (o.dlg())
@ -225,11 +231,6 @@ void TPrint_bilancio_ca_mask::create_sheet()
} }
} }
bool TPrint_bilancio_ca_mask::esistono_riclassificazioni() const
{
TLocalisamfile ric(LF_PANAPDC);
return ric.first() == NOERR;
}
TPrint_bilancio_ca_mask::TPrint_bilancio_ca_mask() TPrint_bilancio_ca_mask::TPrint_bilancio_ca_mask()
:TAutomask("ca3300") :TAutomask("ca3300")

View File

@ -23,6 +23,7 @@
#include "ca3601.h" #include "ca3601.h"
#include "calib01.h" #include "calib01.h"
#include "calib02.h" #include "calib02.h"
#include "camask.h"
//=============================================================================================== //===============================================================================================
//////////////////////////////////////////////////////// ////////////////////////////////////////////////////////
@ -35,7 +36,6 @@ protected:
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
void config_loader(TSheet_field& sf, const char* paragrafo); void config_loader(TSheet_field& sf, const char* paragrafo);
void config_setter(TSheet_field& sf, const char* paragrafo); void config_setter(TSheet_field& sf, const char* paragrafo);
bool esistono_riclassificazioni() const;
public: public:
TPag_per_cms_configmask(); TPag_per_cms_configmask();
@ -70,7 +70,7 @@ TPag_per_cms_configmask::TPag_per_cms_configmask()
if (levels >= 2 && pref < levels && esistono_riclassificazioni()) if (levels >= 2 && pref < levels && esistono_riclassificazioni())
{ {
enable(F_PIANO); enable(F_PIANO);
ca_create_fields(*this, 1, LF_PCONANA, 2, 4, F_PRE1, F_PREDES1, 0x0, PCONANA_CODCONTO); ca_create_fields(*this, 0, LF_PCONANA, 2, 2, F_PRE1, F_PREDES1, 0x0, PCONANA_CODCONTO);
// Nascondi i campi che non fanno parte del prefisso // Nascondi i campi che non fanno parte del prefisso
for (int i = 0; i < levels; i++) for (int i = 0; i < levels; i++)
@ -90,43 +90,19 @@ TPag_per_cms_configmask::TPag_per_cms_configmask()
} }
} }
for (int g = 5; g <= 6; g++) // creazione dei campi della pagina della maschera con lo sheet dei conti
{ if (use_pdcc) //usa conti contabili
const int logicnum = g == 5 ? LF_PCON : LF_PCONANA; config_loader(sfield(F_PDCC), "Pdcc");
const short da_dlg = g == 5 ? F_PDC1_INI : F_PAN1_INI;
const short da_des = g == 5 ? F_PDCDES1_INI : F_PANDES1_INI;
const short a_dlg = g == 5 ? F_PDC1_FIN : F_PAN1_FIN;
const short a_des = g == 5 ? F_PDCDES1_FIN : F_PANDES1_FIN;
const int nfields = ca_create_fields(*this, 1, logicnum, 2, 10, da_dlg, da_des, 0x0, PCONANA_CODCONTO);
ca_create_fields(*this, 1, logicnum, 2, 16, a_dlg, a_des, 0x0, PCONANA_CODCONTO);
for (int i = 0; i < nfields; i++) short dlg = S_CDC2 + 100; // id del primo campo da generare
{ int y = 2;
TMask_field& daconto = field(da_dlg + i); const int nfields = create_sheet_fields(F_PDCA, LF_PCONANA, y, dlg);
daconto.set_group(1); sfield(F_PDCA).sheet_mask().hide(-1);
daconto.set_group(4);
daconto.set_group(g); config_loader(sfield(F_PDCA), "Pdca");
daconto.check_type(CHECK_SEARCH);
set_handlers();
field(da_des+i).set_group(4);
field(da_des+i).set_group(g);
TMask_field& aconto = field(a_dlg + i);
aconto.set_group(2);
aconto.set_group(4);
aconto.set_group(g);
aconto.check_type(CHECK_SEARCH);
field(a_des+i).set_group(4);
field(a_des+i).set_group(g);
}
}
/* config_loader(sfield(F_COSTI), "Costi");
config_loader(sfield(F_PAGAMENTI), "Pagamenti");
config_loader(sfield(F_RITFIS), "Fiscali");
config_loader(sfield(F_RITSOC), "Sociali");*/
} }
bool TPag_per_cms_configmask::on_field_event(TOperable_field& o, TField_event e, long jolly) bool TPag_per_cms_configmask::on_field_event(TOperable_field& o, TField_event e, long jolly)
@ -134,28 +110,12 @@ bool TPag_per_cms_configmask::on_field_event(TOperable_field& o, TField_event e,
switch (o.dlg()) switch (o.dlg())
{ {
case DLG_SAVEREC: case DLG_SAVEREC:
if (e == fe_button)
{ {
config_setter(sfield(F_COSTI), "Costi"); config_setter(sfield(F_PDCC), "Pdcc");
config_setter(sfield(F_PAGAMENTI), "Pagamenti"); config_setter(sfield(F_PDCA), "Pdca");
config_setter(sfield(F_RITFIS), "Fiscali");
config_setter(sfield(F_RITSOC), "Sociali");
} }
break; break;
/*case F_PRE1:
case F_PRE2:
case F_PRE3:
if ((e == fe_init || e == fe_modify) && o.active())
{
const int k = o.dlg()-F_PRE1;
set(F_PAN1_INI + k, o.get(), 0x2);
disable(F_PAN1_INI + k);
disable(F_PANDES1_INI + k);
set(F_PAN1_FIN + k, o.get(), 0x2);
disable(F_PAN1_FIN + k);
disable(F_PANDES1_FIN + k);
}
break;*/
default: default:
break; break;
} }
@ -164,41 +124,40 @@ bool TPag_per_cms_configmask::on_field_event(TOperable_field& o, TField_event e,
void TPag_per_cms_configmask::config_loader(TSheet_field& sf, const char* paragrafo) void TPag_per_cms_configmask::config_loader(TSheet_field& sf, const char* paragrafo)
{ {
TConfig config("ca3600.ini", paragrafo); TFilename configname = "ca3600.ini"; //carica file configurazione conti
configname.custom_path();
TConfig configfile(configname, paragrafo);
TString_array conti; TString_array conti;
int n = config.list_variables(conti, true, paragrafo, true); int n = configfile.list_variables(conti, false, paragrafo, true);
FOR_EACH_ARRAY_ROW(conti, i, row) FOR_EACH_ARRAY_ROW(conti, i, row)
{ {
TToken_string conto(row->get(1), '.'); //prende il valore della riga sf.row(-1) = configfile.get(*row); //carica la riga del .ini senza il contatore
TBill uncle(conto, 0); sf.check_row(i);
uncle.add_to(sf.row(i), 0, 0x2);
} }
} }
void TPag_per_cms_configmask::config_setter(TSheet_field& sf, const char* paragrafo) void TPag_per_cms_configmask::config_setter(TSheet_field& sf, const char* paragrafo)
{ {
TConfig config("ca3600.ini", paragrafo); TFilename configname = "ca3600.ini"; //carica file configurazione conti
configname.custom_path();
TConfig configfile(configname, paragrafo);
config.remove_all(); //svuota il paragrafo sul .ini prima di ricompilarlo (se non si facesse configfile.remove_all(); //svuota il paragrafo sul .ini prima di ricompilarlo (se non si facesse
//non si riuscirebbero ad ammazzare le righe sul .ini //non si riuscirebbero ad ammazzare le righe sul .ini
FOR_EACH_SHEET_ROW (sf, i, row) FOR_EACH_SHEET_ROW (sf, i, row)
{ {
TToken_string conto("", '.'); TToken_string conto("");
conto.add(row->get(0)); conto.add(row->get(0));
conto.add(row->get(1)); conto.add(row->get(1));
conto.add(row->get(2)); conto.add(row->get(2));
conto.add(row->get(3)); //*****nel caso di pdca deve tener conto dei livelli variabili
config.set("conto", conto, NULL, true, i); configfile.set("conto", conto, NULL, true, i);
} }
} }
bool TPag_per_cms_configmask::esistono_riclassificazioni() const
{
TLocalisamfile ric(LF_PANAPDC);
return ric.first() == NOERR;
}
//=============================================================================================== //===============================================================================================
//////////////////////////////////////////////////////// ////////////////////////////////////////////////////////
// MASCHERA PRINCIPALE // MASCHERA PRINCIPALE
@ -306,7 +265,6 @@ class TPag_per_cms_recordset : public TISAM_recordset
// TString _prefix, _da_conto_riclas, _a_conto_riclas; // TString _prefix, _da_conto_riclas, _a_conto_riclas;
protected: protected:
// int _anno;
// int _tipoconti; // int _tipoconti;
// TDate _dadata, _adata; // TDate _dadata, _adata;
// long _danumreg, _anumreg; // long _danumreg, _anumreg;
@ -389,11 +347,6 @@ void TPag_per_cms_recordset::set_filter(const TPag_per_cms_mask& msk, int cms_ro
_codfas = rel.curr().get(RMOVANA_CODFASE); _codfas = rel.curr().get(RMOVANA_CODFASE);
} }
/* for (int i = 0; msk.id2pos(F_CDC1_INI+i) > 0; i++)
{
_daconto << msk.get(F_CDC1_INI+i);
_aconto << msk.get(F_CDC1_FIN+i);
}*/
} }
//////////////////////////////////////////////////////// ////////////////////////////////////////////////////////

View File

@ -12,16 +12,6 @@
#define F_ORDINAMENTO 207 #define F_ORDINAMENTO 207
#define F_REPORT 208 #define F_REPORT 208
//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
//sheet e righe relative //sheet e righe relative
#define F_RIGHE 260 #define F_RIGHE 260

View File

@ -1,28 +1,9 @@
// campi per la maschera ca3601 // campi per la maschera ca3601
#define F_COSTI 200 #define F_PDCC 301
#define F_PAGAMENTI 201 #define F_PDCA 302
#define F_RITFIS 202
#define F_RITSOC 203
/*#define F_SC_GRUPPO 101 #define S_TIPO 101
#define F_SC_CONTO 102 #define S_DESCRIZIONE 105
#define F_SC_SOTTOCONTO 103
#define F_SC_DESCRIZIONE 104
#define F_SP_GRUPPO 101
#define F_SP_CONTO 102
#define F_SP_SOTTOCONTO 103
#define F_SP_DESCRIZIONE 104
#define F_FI_GRUPPO 101
#define F_FI_CONTO 102
#define F_FI_SOTTOCONTO 103
#define F_FI_DESCRIZIONE 104
#define F_SO_GRUPPO 101
#define F_SO_CONTO 102
#define F_SO_SOTTOCONTO 103
#define F_SO_DESCRIZIONE 104*/
//campi generati dai piani dei conti //campi generati dai piani dei conti
#define F_PIANO 319 #define F_PIANO 319

View File

@ -17,119 +17,131 @@ END
ENDPAGE ENDPAGE
PAGE "Costi / Pagamenti" -1 -1 78 20 PAGE "Configurazione conti" -1 -1 78 20
LIST F_PIANO 1 12 LIST F_PIANO 1 12
BEGIN BEGIN
PROMPT 1 1 "Piano dei conti " PROMPT 1 0 "Piano dei conti "
ITEM "A|Analitico" ITEM "A|Analitico"
MESSAGE HIDE,5@|SHOW,6@ MESSAGE HIDE,5@|SHOW,6@
ITEM "C|Contabile" ITEM "C|Contabile"
MESSAGE HIDE,6@|SHOW,5@ MESSAGE HIDE,6@|SHOW,5@
FLAGS "G"
END END
GROUPBOX F_PRE0 76 6 GROUPBOX F_PRE0 76 4
BEGIN BEGIN
PROMPT 1 3 "@bPrefisso del piano dei conti analitico:" PROMPT 1 1 "@bPrefisso del piano dei conti analitico:"
GROUP 6 GROUP 6
END END
TEXT -1 TEXT -1
BEGIN BEGIN
PROMPT 1 0 "@bCosti" PROMPT 1 5 "@bPiano dei conti contabile"
GROUP 5
END END
SPREADSHEET F_COSTI 78 10 SPREADSHEET F_PDCC 78 12
BEGIN BEGIN
PROMPT 1 1 "Costi" PROMPT 1 6 "Pdcc"
ITEM "Tipo"
ITEM "Gruppo" ITEM "Gruppo"
ITEM "Conto" ITEM "Conto"
ITEM "Sottoconto" ITEM "Sottoconto"
ITEM "Descrizione@50" ITEM "Descrizione@50"
GROUP 5
END END
TEXT -1 TEXT -1
BEGIN BEGIN
PROMPT 1 11 "@bPagamenti" PROMPT 1 5 "@bPiano dei conti analitico"
GROUP 6
END END
SPREADSHEET F_PAGAMENTI 78 SPREADSHEET F_PDCA 78 12
BEGIN BEGIN
PROMPT 1 12 "Pagamenti" PROMPT 1 6 "Pdca"
ITEM "Gruppo" ITEM "Tipo"
ITEM "Conto" ITEM "Cdc2"
ITEM "Sottoconto" ITEM "Cdc3"
ITEM "Descrizione@50" ITEM "Cdc4"
END ITEM "Cdc5"
GROUP 6
ENDPAGE
PAGE "Ritenute Fiscali / Sociali" -1 -1 78 20
TEXT -1
BEGIN
PROMPT 1 0 "@bRitenute fiscali"
END
SPREADSHEET F_RITFIS 78 10
BEGIN
PROMPT 1 1 "Costi"
ITEM "Gruppo"
ITEM "Conto"
ITEM "Sottoconto"
ITEM "Descrizione@50"
END
TEXT -1
BEGIN
PROMPT 1 11 "@bRitenute sociali"
END
SPREADSHEET F_RITSOC 78
BEGIN
PROMPT 1 12 "Pagamenti"
ITEM "Gruppo"
ITEM "Conto"
ITEM "Sottoconto"
ITEM "Descrizione@50"
END END
ENDPAGE ENDPAGE
ENDMASK ENDMASK
//----------------------MOVIMENTI IVA------------------------------// //----------------------Piano dei conti contabile------------------------------//
//-----------Pagina di riga dello sheet costi----------------------// //-----------Pagina di riga dello sheet PDCC----------------------//
PAGE "Riga Costo" -1 -1 78 19 PAGE "Riga Piano dei conti contabile" -1 -1 78 8
STRING S_CDC1 20 LIST S_TIPO 1 18
BEGIN BEGIN
PROMPT 1 2 "Cdc1" PROMPT 1 1 "Tipo "
FLAGS "B" ITEM "C|Costo"
ITEM "P|Pagamento"
ITEM "F|Ritenute fiscali"
ITEM "S|Ritenute sociali"
END
NUMBER S_CDC2 3
BEGIN
PROMPT 1 2 "Gruppo "
USE LF_PCON KEY 1 SELECT CONTO=""
INPUT GRUPPO S_CDC2
DISPLAY "Gruppo" GRUPPO
DISPLAY "Descrizione@50" DESCR
OUTPUT S_CDC2 GRUPPO
CHECKTYPE REQUIRED
END
NUMBER S_CDC3 3
BEGIN
PROMPT 1 3 "Conto "
USE LF_PCON KEY 1 SELECT ((CONTO!="")&&(SOTTOCONTO=""))
COPY INPUT S_CDC2
INPUT CONTO S_CDC3
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Descrizione@50" DESCR
OUTPUT S_CDC2 GRUPPO
OUTPUT S_CDC3 CONTO
CHECKTYPE NORMAL
VALIDATE REQIF_FUNC 1 S_CDC4
END
NUMBER S_CDC4 6
BEGIN
PROMPT 1 4 "Sottoconto "
USE LF_PCON KEY 1 SELECT SOTTOCONTO!=""
COPY INPUT S_CDC3
INPUT SOTTOCONTO S_CDC4
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione@50" DESCR
OUTPUT S_CDC4 SOTTOCONTO
OUTPUT S_CDC3 CONTO
OUTPUT S_CDC2 GRUPPO
OUTPUT S_DESCRIZIONE DESCR
CHECKTYPE NORMAL CHECKTYPE NORMAL
END END
STRING S_CDC2 20 STRING S_DESCRIZIONE 50
BEGIN BEGIN
PROMPT 21 2 "Cdc2" PROMPT 1 5 "Descrizione "
FLAGS "B" KEY 2
CHECKTYPE NORMAL USE LF_PCON KEY 2
END INPUT DESCR S_DESCRIZIONE
DISPLAY "Descrizione@50" DESCR
STRING S_CDC3 20 DISPLAY "Gruppo" GRUPPO
BEGIN DISPLAY "Conto" CONTO
PROMPT 41 2 "Cdc3" DISPLAY "Sottoconto" SOTTOCONTO
FLAGS "B" COPY OUTPUT S_CDC4
CHECKTYPE NORMAL CHECKTYPE REQUIRED
END
STRING S_CDC4 20
BEGIN
PROMPT 61 2 "Cdc4"
FLAGS "B"
CHECKTYPE NORMAL
END END
BUTTON DLG_OK 10 2 BUTTON DLG_OK 10 2
@ -151,144 +163,50 @@ ENDPAGE
ENDMASK ENDMASK
//-----------Pagina di riga dello sheet pagamenti----------------------// //----------------------Piano dei conti analitico------------------------------//
//-----------Pagina di riga dello sheet PDCA----------------------//
PAGE "Riga Pagamento" -1 -1 78 19 PAGE "Riga Piano dei conti analitico" -1 -1 78 8
STRING S_CDC1 20 LIST S_TIPO 1 18
BEGIN BEGIN
PROMPT 1 2 "Cdc1" PROMPT 1 1 "Tipo "
FLAGS "B" ITEM "C|Costo"
CHECKTYPE NORMAL ITEM "P|Pagamento"
ITEM "F|Ritenute fiscali"
ITEM "S|Ritenute sociali"
END END
STRING S_CDC2 20 STRING S_CDC2 20
BEGIN BEGIN
PROMPT 21 2 "Cdc2" PROMPT 1 2 "Cdc2"
FLAGS "B" FLAGS "B"
CHECKTYPE NORMAL CHECKTYPE NORMAL
GROUP 1
END END
STRING S_CDC3 20 STRING S_CDC3 20
BEGIN BEGIN
PROMPT 41 2 "Cdc3" PROMPT 1 3 "Cdc3"
FLAGS "B" FLAGS "B"
CHECKTYPE NORMAL CHECKTYPE NORMAL
GROUP 1
END END
STRING S_CDC4 20 STRING S_CDC4 20
BEGIN BEGIN
PROMPT 61 2 "Cdc4" PROMPT 1 4 "Cdc4"
FLAGS "B"
CHECKTYPE NORMAL
END
BUTTON DLG_OK 10 2
BEGIN
PROMPT -13 -1 ""
END
BUTTON DLG_DELREC 10 2
BEGIN
PROMPT -23 -1 ""
END
BUTTON DLG_CANCEL 10 2
BEGIN
PROMPT -33 -1 ""
END
ENDPAGE
ENDMASK
//-------------------MOVIMENTI CONTABILI---------------------------//
//-----------Pagina di riga dello sheet costi----------------------//
PAGE "Riga Ritenuta Fiscale" -1 -1 78 19
STRING S_CDC1 20
BEGIN
PROMPT 1 2 "Cdc1"
FLAGS "B"
CHECKTYPE NORMAL
END
STRING S_CDC2 20
BEGIN
PROMPT 21 2 "Cdc2"
FLAGS "B"
CHECKTYPE NORMAL
END
STRING S_CDC3 20
BEGIN
PROMPT 41 2 "Cdc3"
FLAGS "B"
CHECKTYPE NORMAL
END
STRING S_CDC4 20
BEGIN
PROMPT 61 2 "Cdc4"
FLAGS "B"
CHECKTYPE NORMAL
END
BUTTON DLG_OK 10 2
BEGIN
PROMPT -13 -1 ""
END
BUTTON DLG_OK 10 2
BEGIN
PROMPT -13 -1 ""
END
BUTTON DLG_DELREC 10 2
BEGIN
PROMPT -23 -1 ""
END
BUTTON DLG_CANCEL 10 2
BEGIN
PROMPT -33 -1 ""
END
ENDPAGE
ENDMASK
//-----------Pagina di riga dello sheet pagamenti----------------------//
PAGE "Riga Ritenuta Sociale" -1 -1 78 19
STRING S_CDC1 20
BEGIN
PROMPT 1 2 "Cdc1"
FLAGS "B"
CHECKTYPE NORMAL
END
STRING S_CDC2 20
BEGIN
PROMPT 21 2 "Cdc2"
FLAGS "B"
CHECKTYPE NORMAL
END
STRING S_CDC3 20
BEGIN
PROMPT 41 2 "Cdc3"
FLAGS "B"
CHECKTYPE NORMAL
END
STRING S_CDC4 20
BEGIN
PROMPT 61 2 "Cdc4"
FLAGS "B" FLAGS "B"
CHECKTYPE NORMAL CHECKTYPE NORMAL
GROUP 1
END
STRING S_CDC5 20
BEGIN
PROMPT 1 5 "Cdc5"
FLAGS "B"
CHECKTYPE NORMAL
GROUP 1
END END
BUTTON DLG_OK 10 2 BUTTON DLG_OK 10 2

View File

@ -27,7 +27,6 @@ protected:
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
const TString& get_report_class() const; const TString& get_report_class() const;
bool test_compatible_report(); bool test_compatible_report();
bool esistono_riclassificazioni() const;
public: public:
TPrint_rendiconto_ca_mask(); TPrint_rendiconto_ca_mask();
@ -137,12 +136,6 @@ bool TPrint_rendiconto_ca_mask::on_field_event(TOperable_field& o, TField_event
} }
bool TPrint_rendiconto_ca_mask::esistono_riclassificazioni() const
{
TLocalisamfile ric(LF_PANAPDC);
return ric.first() == NOERR;
}
TPrint_rendiconto_ca_mask::TPrint_rendiconto_ca_mask() TPrint_rendiconto_ca_mask::TPrint_rendiconto_ca_mask()
:TAnal_report_mask("ca3700") :TAnal_report_mask("ca3700")
{ {

View File

@ -1093,3 +1093,8 @@ int TAnal_report_mask::set_row_bill(TSheet_field& sf, int r, const TAnal_bill& b
return flag; return flag;
} }
bool TAnal_report_mask::esistono_riclassificazioni() const
{
TLocalisamfile ric(LF_PANAPDC);
return ric.first() == NOERR;
}

View File

@ -147,6 +147,7 @@ protected:
public: public:
int get_row_bill(TSheet_field& sf, int r, TAnal_bill& bill); 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); int set_row_bill(TSheet_field& sf, int r, const TAnal_bill& bill);
bool esistono_riclassificazioni() const;
TAnal_report_mask(const char* name) : TAutomask(name) {} TAnal_report_mask(const char* name) : TAutomask(name) {}
}; };