Patch level : 2.2

Files correlati     : ca0.exee ca0400a.msk ca2100a.msk f106.dir f106.trr
Ricompilazione Demo : [ ]
Commento            :

Aggiunto indicatore di bilancio sui conti analitici
Corretta posizione descrizione nelle righe di contabilita' analitica


git-svn-id: svn://10.65.10.50/trunk@13189 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2005-06-09 14:50:21 +00:00
parent ad41d81df6
commit 7538c911f6
7 changed files with 128 additions and 77 deletions

View File

@ -3,7 +3,9 @@
#include <relapp.h>
#include "calib01.h"
#include "calibmsk.h"
#include "ca0400a.h"
#include "pdcana.h"
#include "panapdc.h"
#include <pconti.h>
@ -24,47 +26,47 @@ bool TPiano_conti_anal_msk::on_field_event(TOperable_field& o, TField_event e, l
{
switch (o.dlg())
{
case F_SHEET:
if (e == fe_init)
case F_SHEET:
if (e == fe_init)
{
_ind_bilancio = 0;
TSheet_field & s = (TSheet_field &) o;
if (s.items() > 0)
{
TToken_string str = s.row(0);
TString key;
key << str.get(0) << "|";
key << str.get();
_ind_bilancio = atoi(cache().get(LF_PCON, key, PCN_INDBIL));
}
}
else
if (e == se_leave)
{
_ind_bilancio = 0;
TSheet_field & s = (TSheet_field &) o;
if (s.items() > 0)
TToken_string str = s.row(s.selected());
TString key;
key << str.get(0) << "|";
key << str.get();
const TRectype & pcon = cache().get(LF_PCON, key);
if (!pcon.empty())
{
TToken_string str = s.row(0);
TString key;
key << str.get(0) << "|";
key << str.get();
_ind_bilancio = atoi(cache().get(LF_PCON, key, PCN_INDBIL));
const int ind_bilancio = pcon.get_int(PCN_INDBIL);
if (_ind_bilancio == 0)
_ind_bilancio = ind_bilancio;
if (_ind_bilancio != ind_bilancio)
return error_box("Indicatore di bilancio errato %d", ind_bilancio);
else
return true;
}
}
else
if (e == se_leave)
{
TSheet_field & s = (TSheet_field &) o;
TToken_string str = s.row(s.selected());
TString key;
key << str.get(0) << "|";
key << str.get();
const TRectype & pcon = cache().get(LF_PCON, key);
if (!pcon.empty())
{
const int ind_bilancio = pcon.get_int(PCN_INDBIL);
if (_ind_bilancio == 0)
_ind_bilancio = ind_bilancio;
if (_ind_bilancio != ind_bilancio)
return error_box("Indicatore di bilancio errato %d", ind_bilancio);
else
return true;
}
}
break;
default:
break;
break;
default:
break;
}
return TSimple_anal_msk::on_field_event(o, e, jolly);
}
@ -101,8 +103,11 @@ protected:
virtual int write(const TMask& m);
virtual int rewrite(const TMask& m);
virtual bool remove();
void init_modify_mode(TMask& mask);
void init_insert_mode(TMask& mask);
void init_indbil(TMask& mask);
virtual void init_query_mode(TMask& mask);
virtual void init_insert_mode(TMask& mask);
virtual void init_modify_mode(TMask& mask);
virtual bool create();
virtual bool user_create();
@ -209,20 +214,60 @@ bool TAnalisi_app::remove()
return err == NOERR;
}
void TAnalisi_app::init_indbil(TMask& mask)
{
bool enabled = true;
if ((_maxlev > 0) && (mask.insert_mode() || mask.edit_mode()))
{
int level = 0;
for (level = _maxlev; level > 0; level--)
{
if (mask.field(F_KEY1+level).shown())
break;
}
enabled = level < _maxlev; // Le foglie sono sempre disabilitate
if (level > 0) // Devo controllare i nodi padre
{
TString code; // Codice del piano dei conti
for (int i = 0; i <= level; i++)
{
code << mask.get(F_KEY1+i); // Allungo il codice
const TRectype& rec = cache().get(LF_PCONANA, code);
const int indbil = rec.get_int(PANA_INDBIL);
if (indbil > 0) // Controllo se ha impostato l'indicatore
{
enabled = false;
mask.set(F_INDBIL, indbil);
break;
}
}
}
}
mask.enable(F_INDBIL, enabled);
}
void TAnalisi_app::init_modify_mode(TMask& mask)
{
const short id = ((TPiano_conti_anal_msk &)mask).get_field_id(_maxlev, 1);
mask.enable_page(1, mask.get(id).not_empty());
TAnal_app::init_modify_mode(mask);
TAnal_app::init_modify_mode(mask);
init_indbil(mask);
}
void TAnalisi_app::init_insert_mode(TMask& mask)
{
const short id = ((TPiano_conti_anal_msk &)mask).get_field_id(_maxlev, 1);
mask.enable_page(1, mask.get(id).not_empty());
TAnal_app::init_insert_mode(mask);
TAnal_app::init_insert_mode(mask);
init_indbil(mask);
}
void TAnalisi_app::init_query_mode(TMask& mask)
{
TAnal_app::init_query_mode(mask);
init_indbil(mask);
}
bool TAnalisi_app::create()
@ -274,6 +319,6 @@ bool TAnalisi_app::user_destroy()
int ca0400(int argc, char* argv[])
{
TAnalisi_app app;
app.run(argc, argv, TR("Gestione Piano dei conti analitico"));
app.run(argc, argv, TR("Piano dei conti"));
return 0;
}

View File

@ -1,16 +1,8 @@
//#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
#define F_SEZSALDI 121
#define F_SOSPESO 122
#define F_SHEET 123
#define F_INDBIL 123
#define F_SHEET 300
#define FR_GRUPPO 101
#define FR_CONTO 102

View File

@ -6,7 +6,7 @@ TOOLBAR "" 0 -3 0 3
ENDPAGE
PAGE "Piano dei conti analitica" -1 -1 80 20
PAGE "Piano dei conti" -1 -1 80 20
GROUPBOX DLG_NULL 78 6
BEGIN
@ -21,6 +21,18 @@ BEGIN
FIELD SEZSALDI
END
RADIOBUTTON F_INDBIL 1 24
BEGIN
PROMPT 40 7 "Indicatore di bilancio"
ITEM "0|0. Non definito"
ITEM "1|1. Attivita'"
ITEM "2|2. Passivita'"
ITEM "3|3. Costi"
ITEM "4|4. Ricavi"
// ITEM "5|5. Conti d'ordine"
FIELD INDBIL
END
BOOLEAN F_SOSPESO
BEGIN
PROMPT 2 12 "Sospeso"

View File

@ -274,23 +274,23 @@ PAGE "Riga" -1 -1 78 19
CURRENCY S_DARE 15
BEGIN
PROMPT 1 0 "Dare "
PROMPT 1 1 "Dare "
END
CURRENCY S_AVERE 15
BEGIN
PROMPT 31 0 "Avere "
PROMPT 31 1 "Avere "
END
STRING S_DESCR 50
BEGIN
PROMPT 1 1 "Descrizione "
PROMPT 1 2 "Descrizione "
FIELD DESCR
END
STRING S_CDC1 20
BEGIN
PROMPT 1 2 "Cdc 1"
PROMPT 1 4 "Cdc 1"
USE LF_CDC
CHECKTYPE NORMAL
GROUP 1
@ -298,7 +298,7 @@ END
STRING S_CDC2 20
BEGIN
PROMPT 21 2 "Cdc 2"
PROMPT 21 5 "Cdc 2"
COPY USE S_CDC1
CHECKTYPE NORMAL
GROUP 1
@ -306,7 +306,7 @@ END
STRING S_CDC3 20
BEGIN
PROMPT 41 2 "Cdc 3"
PROMPT 41 6 "Cdc 3"
COPY USE S_CDC1
CHECKTYPE NORMAL
GROUP 1
@ -314,7 +314,7 @@ END
STRING S_CDC4 20
BEGIN
PROMPT 61 2 "Cdc 4"
PROMPT 61 7 "Cdc 4"
COPY USE S_CDC1
CHECKTYPE NORMAL
GROUP 1
@ -322,7 +322,7 @@ END
STRING S_CMS1 20
BEGIN
PROMPT 1 3 "Cms 1"
PROMPT 1 8 "Cms 1"
USE LF_COMMESSE
CHECKTYPE NORMAL
GROUP 1
@ -330,7 +330,7 @@ END
STRING S_CMS2 20
BEGIN
PROMPT 21 3 "Cms 2"
PROMPT 21 9 "Cms 2"
COPY USE S_CMS1
CHECKTYPE NORMAL
GROUP 1
@ -338,7 +338,7 @@ END
STRING S_CMS3 20
BEGIN
PROMPT 41 3 "Cms 3"
PROMPT 41 10 "Cms 3"
COPY USE S_CMS1
CHECKTYPE NORMAL
GROUP 1
@ -346,7 +346,7 @@ END
STRING S_CMS4 20
BEGIN
PROMPT 61 3 "Cms 4"
PROMPT 61 11 "Cms 4"
COPY USE S_CMS1
CHECKTYPE NORMAL
GROUP 1
@ -354,7 +354,7 @@ END
STRING S_FAS1 20
BEGIN
PROMPT 1 4 "Fas 1"
PROMPT 1 12 "Fas 1"
USE LF_FASI
CHECKTYPE NORMAL
GROUP 1
@ -362,7 +362,7 @@ END
STRING S_FAS2 20
BEGIN
PROMPT 21 4 "Fas 2"
PROMPT 21 13 "Fas 2"
COPY USE S_FAS1
CHECKTYPE NORMAL
GROUP 1
@ -370,7 +370,7 @@ END
STRING S_FAS3 20
BEGIN
PROMPT 41 4 "Fas 3"
PROMPT 41 14 "Fas 3"
COPY USE S_FAS1
CHECKTYPE NORMAL
GROUP 1
@ -378,7 +378,7 @@ END
STRING S_FAS4 20
BEGIN
PROMPT 61 4 "Fas 4"
PROMPT 61 15 "Fas 4"
COPY USE S_FAS1
CHECKTYPE NORMAL
GROUP 1
@ -386,7 +386,7 @@ END
STRING S_CON1 20
BEGIN
PROMPT 1 5 "Con 1"
PROMPT 1 16 "Con 1"
USE LF_PCON
CHECKTYPE NORMAL
GROUP 1
@ -394,7 +394,7 @@ END
STRING S_CON2 20
BEGIN
PROMPT 21 5 "Con 2"
PROMPT 21 17 "Con 2"
COPY USE S_CON1
CHECKTYPE NORMAL
GROUP 1
@ -402,7 +402,7 @@ END
STRING S_CON3 20
BEGIN
PROMPT 41 5 "Con 3"
PROMPT 41 18 "Con 3"
COPY USE S_CON1
CHECKTYPE NORMAL
GROUP 1
@ -410,7 +410,7 @@ END
STRING S_CON4 20
BEGIN
PROMPT 61 5 "Con 4"
PROMPT 61 19 "Con 4"
COPY USE S_CON1
CHECKTYPE NORMAL
GROUP 1

View File

@ -1,3 +1,3 @@
106
0
$pconana|0|0|73|0|Piano dei Conti Analitica|||
$pconana|0|0|74|0|Piano dei Conti Analitico|||

View File

@ -1,9 +1,10 @@
106
4
CODCONTO|1|20|0|Codice Conto analitica
5
CODCONTO|1|20|0|Codice Conto analitico
DESCR|1|50|0|Descrizione
SEZSALDI|1|1|0|Sezione preferenziale del saldo
SOSPESO|8|1|0|Conto sospeso
INDBIL|1|1|0|Indicatore di bilancio
2
CODCONTO|
UPPER(DESCR)|X

View File

@ -4,6 +4,7 @@
#define PANA_CODCONTO "CODCONTO"
#define PANA_DESCR "DESCR"
#define PANA_SEZSALDI "SEZSALDI"
#define PANA_INDBIL "INDBIL"
#define PANA_SOSPESO "SOSPESO"
#endif