Patch level :
Files correlati : 2.2 Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/trunk@12512 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
cae10c1e45
commit
b33993e97d
@ -9,7 +9,7 @@ int main(int argc, char** argv)
|
|||||||
{
|
{
|
||||||
// case 1: ca0200(argc,argv); break; // stampa tabelle
|
// case 1: ca0200(argc,argv); break; // stampa tabelle
|
||||||
case 2: ca0300(argc,argv); break; // parametri configurazione Contabilita' Analitica
|
case 2: ca0300(argc,argv); break; // parametri configurazione Contabilita' Analitica
|
||||||
// case 3: ca0400(argc,argv); break; //immissione dati nei files CDC,CMS,FSC
|
case 3: ca0400(argc,argv); break; //immissione piano dei conti
|
||||||
// case 5: ca0600(argc,argv); break; // ribaltamenti
|
// case 5: ca0600(argc,argv); break; // ribaltamenti
|
||||||
default: ca0100(argc,argv); break; // gestione tabelle
|
default: ca0100(argc,argv); break; // gestione tabelle
|
||||||
}
|
}
|
||||||
|
2
ca/ca0.h
2
ca/ca0.h
@ -4,7 +4,7 @@
|
|||||||
int ca0100(int argc, char* argv[]);
|
int ca0100(int argc, char* argv[]);
|
||||||
//int ca0200(int argc, char* argv[]);
|
//int ca0200(int argc, char* argv[]);
|
||||||
int ca0300(int argc, char* argv[]);
|
int ca0300(int argc, char* argv[]);
|
||||||
//int ca0400(int argc, char* argv[]);
|
int ca0400(int argc, char* argv[]);
|
||||||
//int ca0600(int argc, char* argv[]);
|
//int ca0600(int argc, char* argv[]);
|
||||||
|
|
||||||
#endif // __CA0_H
|
#endif // __CA0_H
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
#include <automask.h>
|
#include <automask.h>
|
||||||
#include <modaut.h>
|
#include <modaut.h>
|
||||||
#include <tabapp.h>
|
#include <tabapp.h>
|
||||||
#include <tabutil.h>
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
//MASCHERA
|
//MASCHERA
|
||||||
@ -58,8 +57,8 @@ public:
|
|||||||
virtual ~Tab_app_ca() {}
|
virtual ~Tab_app_ca() {}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
HIDDEN inline Tab_app_ca& app() { return (Tab_app_ca&)main_app(); }
|
HIDDEN inline Tab_app_ca& app() { return (Tab_app_ca&)main_app(); }
|
||||||
|
|
||||||
// costruttore
|
// costruttore
|
||||||
Tab_app_ca::Tab_app_ca() {}
|
Tab_app_ca::Tab_app_ca() {}
|
||||||
|
|
||||||
@ -98,10 +97,9 @@ int Tab_app_ca::rewrite(const TMask& m)
|
|||||||
return Tab_application::rewrite(m);
|
return Tab_application::rewrite(m);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int ca0100(int argc, char* argv[])
|
int ca0100(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
Tab_app_ca a;
|
Tab_app_ca a;
|
||||||
a.run(argc, argv, TR("Tabella"));
|
a.run(argc, argv, TR("Tabella"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
#include "ca0300a.h"
|
#include "ca0300a.h"
|
||||||
|
|
||||||
TOOLBAR "" 0 20 0 2
|
TOOLBAR "" 0 -2 0 2
|
||||||
|
|
||||||
BUTTON DLG_OK 10 2
|
BUTTON DLG_OK 10 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT -12 -1 ""
|
PROMPT -12 -11 ""
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON DLG_QUIT 10 2
|
BUTTON DLG_QUIT 10 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT -22 -1 ""
|
PROMPT -22 -11 ""
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
48
ca/ca0400.cpp
Executable file
48
ca/ca0400.cpp
Executable file
@ -0,0 +1,48 @@
|
|||||||
|
// Gestione Contabilita' Analitica
|
||||||
|
#include <relapp.h>
|
||||||
|
|
||||||
|
#include "calib01.h"
|
||||||
|
#include "ca0400a.h"
|
||||||
|
|
||||||
|
class TPiano_conti_anal_msk : public TSimple_anal_msk
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
virtual int get_logicnum() const { return LF_PCONANA; }
|
||||||
|
virtual const char* get_key_var() const { return "Pdci"; }
|
||||||
|
virtual const char* get_des_var() const { return "PdciDes"; }
|
||||||
|
virtual short get_key_id(int n) const { return n >= 0 && n < 4 ? F_KEY_1+n : 0; }
|
||||||
|
virtual short get_des_id(int n) const { return n >= 0 && n < 4 ? F_DES_1+n : 0; }
|
||||||
|
|
||||||
|
public:
|
||||||
|
TPiano_conti_anal_msk();
|
||||||
|
virtual ~TPiano_conti_anal_msk();
|
||||||
|
};
|
||||||
|
|
||||||
|
TPiano_conti_anal_msk::TPiano_conti_anal_msk() : TSimple_anal_msk("ca0400a")
|
||||||
|
{
|
||||||
|
create_key_fields();
|
||||||
|
offset_fields();
|
||||||
|
}
|
||||||
|
|
||||||
|
TPiano_conti_anal_msk::~TPiano_conti_anal_msk()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
// TAnalisi_app
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
class TAnalisi_app : public TAnal_app
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
virtual TAnal_msk* create_mask() const { return new TPiano_conti_anal_msk; }
|
||||||
|
virtual TConfig* create_config() const { return new TConfig(CONFIG_DITTA, "ca"); }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
int ca0400(int argc, char* argv[])
|
||||||
|
{
|
||||||
|
TAnalisi_app app;
|
||||||
|
app.run(argc, argv, TR("Gestione Piano dei conti analitico"));
|
||||||
|
return 0;
|
||||||
|
}
|
10
ca/ca0400a.h
Executable file
10
ca/ca0400a.h
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
#define F_KEY_1 101
|
||||||
|
#define F_KEY_2 102
|
||||||
|
#define F_KEY_3 103
|
||||||
|
#define F_KEY_4 104
|
||||||
|
|
||||||
|
#define F_DES_1 111
|
||||||
|
#define F_DES_2 112
|
||||||
|
#define F_DES_3 113
|
||||||
|
#define F_DES_4 114
|
||||||
|
|
26
ca/ca0400a.uml
Executable file
26
ca/ca0400a.uml
Executable file
@ -0,0 +1,26 @@
|
|||||||
|
#include "ca0400a.h"
|
||||||
|
|
||||||
|
TOOLBAR "" 0 20 0 2
|
||||||
|
|
||||||
|
BUTTON DLG_OK 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -12 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_QUIT 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -22 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
|
||||||
|
PAGE "Piano dei conti" -1 -1 78 10
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 78 6
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 0 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
|
||||||
|
ENDMASK
|
174
ca/calib01.cpp
Executable file
174
ca/calib01.cpp
Executable file
@ -0,0 +1,174 @@
|
|||||||
|
#include "calib01.h"
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
// TAnal_msk
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
bool TAnal_msk::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TAnal_msk::offset_fields()
|
||||||
|
{
|
||||||
|
const WINDOW tw = toolwin();
|
||||||
|
|
||||||
|
RCT rct; xvt_vobj_get_client_rect(win(), &rct);
|
||||||
|
const int width = rct.right;
|
||||||
|
int rightmost = 0;
|
||||||
|
|
||||||
|
for (int i = fields()-1; i > 0; i--)
|
||||||
|
{
|
||||||
|
TMask_field& f = fld(i);
|
||||||
|
if (f.dlg() < 1000 && f.parent() != tw)
|
||||||
|
{
|
||||||
|
f.get_rect(rct);
|
||||||
|
if (rct.right > rightmost)
|
||||||
|
rightmost = rct.right;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const int delta = width - rightmost;
|
||||||
|
if (delta > 0)
|
||||||
|
{
|
||||||
|
for (int i = fields()-1; i >= 0; i--)
|
||||||
|
{
|
||||||
|
TMask_field& f = fld(i);
|
||||||
|
if (f.dlg() < 1000 && f.parent() != tw)
|
||||||
|
{
|
||||||
|
f.get_rect(rct);
|
||||||
|
xvt_rect_offset(&rct, delta, 0);
|
||||||
|
f.set_rect(rct);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
TAnal_msk::TAnal_msk(const char* name)
|
||||||
|
{
|
||||||
|
read_mask(name, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
// TSimple_anal_msk
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
void TSimple_anal_msk::get_key_fields(TString& key1, TString& key2) const
|
||||||
|
{
|
||||||
|
const RecDes& des = prefix().get_recdes(get_logicnum());
|
||||||
|
|
||||||
|
const KeyDes k1 = des.Ky[0];
|
||||||
|
key1 = des.Fd[k1.FieldSeq[0] % MaxFields].Name;
|
||||||
|
|
||||||
|
const KeyDes k2 = des.Ky[1];
|
||||||
|
key2 = des.Fd[k2.FieldSeq[0] % MaxFields].Name;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TSimple_anal_msk::create_key_browse(TEdit_field& kfld, int level, TConfig& cfg)
|
||||||
|
{
|
||||||
|
TString16 key1, key2;
|
||||||
|
get_key_fields(key1, key2);
|
||||||
|
|
||||||
|
TFilename tmp; tmp.temp();
|
||||||
|
ofstream out(tmp);
|
||||||
|
out << "US " << get_logicnum() << endl;
|
||||||
|
out << "KE 1" << endl;
|
||||||
|
|
||||||
|
int from = 1, to = 1;
|
||||||
|
for (int i = 0; i < level; i++)
|
||||||
|
{
|
||||||
|
const TString& picture = cfg.get(get_key_var(), NULL, i);
|
||||||
|
const TString& prompt = cfg.get(get_des_var(), NULL, i);
|
||||||
|
to = from + picture.len()-1;
|
||||||
|
TString field; field.format("%s[%d,%d]", (const char*)key1, from, to);
|
||||||
|
out << "IN " << field << ' ' << get_key_id(i) << endl;
|
||||||
|
out << "DI \"" << prompt << '@' << (from-to+1) << "\" " << field << endl;
|
||||||
|
out << "OU " << get_key_id(i) << ' ' << field << endl;
|
||||||
|
from = to+1;
|
||||||
|
}
|
||||||
|
out << "DI \"Descrizione@50\" " << key2 << endl;
|
||||||
|
out << "OU " << get_des_id(level-1) << ' ' << key2 << endl;
|
||||||
|
out << "CH " << (level == 1 ? "RE" : "NO") << endl;
|
||||||
|
out << "EN" << endl;
|
||||||
|
out.close();
|
||||||
|
|
||||||
|
TScanner scan(tmp);
|
||||||
|
while (scan.pop() != "EN")
|
||||||
|
kfld.parse_item(scan);
|
||||||
|
|
||||||
|
xvt_fsys_removefile(tmp);
|
||||||
|
}
|
||||||
|
|
||||||
|
int TSimple_anal_msk::create_key_fields()
|
||||||
|
{
|
||||||
|
TConfig cfg(CONFIG_DITTA, "ca");
|
||||||
|
const char* keyvar = get_key_var();
|
||||||
|
const char* desvar = get_des_var();
|
||||||
|
|
||||||
|
int maxkeylen = 0, maxdeslen = 0;
|
||||||
|
int level;
|
||||||
|
for (level = 1; ; level++)
|
||||||
|
{
|
||||||
|
const TString& prompt = cfg.get(desvar, NULL, level);
|
||||||
|
if (prompt.blank())
|
||||||
|
break;
|
||||||
|
const TString& picture = cfg.get(keyvar, NULL, level);
|
||||||
|
const int keylen = picture.len();
|
||||||
|
const int deslen = prompt.len();
|
||||||
|
if (keylen > maxkeylen) maxkeylen = keylen;
|
||||||
|
if (deslen > maxdeslen) maxdeslen = deslen;
|
||||||
|
}
|
||||||
|
maxdeslen++;
|
||||||
|
const int tab0 = 2;
|
||||||
|
const int tab1 = tab0 + maxdeslen + maxkeylen + 3;
|
||||||
|
for (int i = 1; i < level; i++)
|
||||||
|
{
|
||||||
|
const short kid = get_key_id(i-1);
|
||||||
|
CHECKD(kid > 100, "Invalid field id:", kid);
|
||||||
|
|
||||||
|
const TString& picture = cfg.get(keyvar, NULL, i);
|
||||||
|
TString80 prompt = cfg.get(desvar, NULL, i);
|
||||||
|
prompt.left_just(maxdeslen);
|
||||||
|
TEdit_field& kfld = add_string(kid, 0, prompt, tab0, i, picture.len(), "B");
|
||||||
|
create_key_browse(kfld, i, cfg);
|
||||||
|
|
||||||
|
const short did = get_des_id(i-1);
|
||||||
|
if (did > kid)
|
||||||
|
{
|
||||||
|
add_string(did, 0, "", tab1, i, 50, "", 76-tab1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return level;
|
||||||
|
}
|
||||||
|
|
||||||
|
TSimple_anal_msk::TSimple_anal_msk(const char* name) : TAnal_msk(name)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
// TAnal_app
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
TRelation* TAnal_app::create_relation() const
|
||||||
|
{
|
||||||
|
return new TRelation(_msk->get_logicnum());
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TAnal_app::user_create()
|
||||||
|
{
|
||||||
|
_msk = create_mask();
|
||||||
|
_rel = create_relation();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TAnal_app::user_destroy()
|
||||||
|
{
|
||||||
|
if (_msk != NULL)
|
||||||
|
delete _msk;
|
||||||
|
if (_rel != NULL)
|
||||||
|
delete _rel;
|
||||||
|
return true;
|
||||||
|
}
|
71
ca/calib01.h
Executable file
71
ca/calib01.h
Executable file
@ -0,0 +1,71 @@
|
|||||||
|
#ifndef __CALIB01_H
|
||||||
|
#define __CALIB01_H
|
||||||
|
|
||||||
|
#ifndef __AUTOMASK_H
|
||||||
|
#include <automask.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __RELAPP_H
|
||||||
|
#include <relapp.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
// TAnal_msk
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
class TAnal_msk : public TAutomask
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
virtual int create_key_fields() pure;
|
||||||
|
void offset_fields();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||||
|
TAnal_msk(const char* name);
|
||||||
|
|
||||||
|
public:
|
||||||
|
virtual int get_logicnum() const pure;
|
||||||
|
};
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
// TSimple_anal_msk
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
class TSimple_anal_msk : public TAnal_msk
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
virtual const char* get_key_var() const pure;
|
||||||
|
virtual const char* get_des_var() const pure;
|
||||||
|
virtual short get_key_id(int n) const pure;
|
||||||
|
virtual short get_des_id(int n) const pure;
|
||||||
|
|
||||||
|
void get_key_fields(TString& key1, TString& key2) const;
|
||||||
|
void create_key_browse(TEdit_field& kfld, int level, TConfig& cfg);
|
||||||
|
virtual int create_key_fields();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
TSimple_anal_msk(const char* name);
|
||||||
|
};
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
// TAnal_app
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
class TAnal_app : public TRelation_application
|
||||||
|
{
|
||||||
|
TRelation* _rel;
|
||||||
|
TAnal_msk* _msk;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual bool changing_mask(int) { return false; }
|
||||||
|
virtual TMask* get_mask(int) { return _msk; }
|
||||||
|
virtual TRelation* get_relation() const { return _rel; }
|
||||||
|
virtual bool user_create();
|
||||||
|
virtual bool user_destroy();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual TAnal_msk* create_mask() const pure;
|
||||||
|
virtual TRelation* create_relation() const;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
Loading…
x
Reference in New Issue
Block a user