Collegamento ca <-> ci

git-svn-id: svn://10.65.10.50/branches/R_10_00@22900 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2013-12-13 09:20:43 +00:00
parent 56722f3773
commit a9517e3cf5
6 changed files with 74 additions and 34 deletions

View File

@ -50,7 +50,7 @@ END
STRING F_CMS_LOC 35
BEGIN
PROMPT 2 16 "Localita' "
PROMPT 2 16 "Località "
FIELD LOC
END
@ -130,7 +130,7 @@ PAGE "Parametri" -1 -1 64 6
LIST F_CMS_REGIVA 2 14
BEGIN
PROMPT 2 2 "Regime IVA "
PROMPT 2 2 "Regime IVA "
ITEM " |Normale" MESSAGE CLEAR,F_CMS_INDETR
ITEM "NR|Non rilevante" MESSAGE CLEAR,F_CMS_INDETR
ITEM "ES|Esente" MESSAGE CLEAR,F_CMS_INDETR
@ -148,7 +148,7 @@ BEGIN
USE LF_ATTIV
INPUT CODDITTA F_CMS_CODDITTA SELECT
INPUT CODATT F_CMS_CODATT
DISPLAY "Attivita'" CODATT
DISPLAY "Attività" CODATT
DISPLAY "Prevalente" ATTPREV
DISPLAY " @48" DESCR
OUTPUT F_CMS_CODATT CODATT
@ -158,7 +158,7 @@ END
STRING F_CMS_INDETR 1
BEGIN
PROMPT 62 2 "Indetraibilita' "
PROMPT 62 2 "Indetraibilità "
USE %DET
INPUT CODTAB F_CMS_INDETR
DISPLAY "Codice" CODTAB
@ -208,19 +208,19 @@ END
BOOLEAN F_CMS_PUBBLICA
BEGIN
PROMPT 22 6 "Pubblica"
PROMPT 26 6 "Pubblica"
FIELD PUBBLICA
END
BOOLEAN F_CMS_RENDIC
BEGIN
PROMPT 35 6 "Da rendicontare"
PROMPT 42 6 "Da rendicontare"
FIELD RENDIC
END
BOOLEAN F_CMS_CHIUSA
BEGIN
PROMPT 55 6 "Chiusa"
PROMPT 68 6 "Chiusa"
FIELD CHIUSA
END
@ -240,7 +240,7 @@ END
STRING F_CMS_CODTIPCM 5
BEGIN
PROMPT 2 8 "Tipologia di commessa "
PROMPT 2 8 "Tipo commessa "
FIELD CODTIPCM
USE TPC
INPUT CODTAB F_CMS_CODTIPCM
@ -251,9 +251,9 @@ BEGIN
CHECKTYPE NORMAL
END
STRING F_CMS_DESTIPCM 50 42
STRING F_CMS_DESTIPCM 50 44
BEGIN
PROMPT 32 8 ""
PROMPT 30 8 ""
USE TPC KEY 2
INPUT S0 F_CMS_DESTIPCM
DISPLAY "Descrizione@50" S0
@ -263,7 +263,7 @@ END
STRING F_CMS_CODTIPOL 5
BEGIN
PROMPT 2 9 "Tipologia di lavoro "
PROMPT 2 9 "Tipo lavoro "
FIELD CODTIPO
USE TPL
INPUT CODTAB F_CMS_CODTIPOL
@ -274,9 +274,9 @@ BEGIN
CHECKTYPE NORMAL
END
STRING F_CMS_DESTIPOL 50 42
STRING F_CMS_DESTIPOL 50 44
BEGIN
PROMPT 32 9 ""
PROMPT 30 9 ""
USE TPL KEY 2
INPUT S0 F_CMS_DESTIPOL
DISPLAY "Descrizione@50" S0
@ -286,7 +286,7 @@ END
STRING F_CMS_CODRESP 10
BEGIN
PROMPT 2 10 "Responsabile "
PROMPT 2 10 "Responsabile "
FIELD CODRESP
USE RSP
INPUT CODTAB F_CMS_CODRESP
@ -297,9 +297,9 @@ BEGIN
CHECKTYPE NORMAL
END
STRING F_CMS_DESRESP 50 42
STRING F_CMS_DESRESP 50 44
BEGIN
PROMPT 32 10 ""
PROMPT 30 10 ""
USE RSP KEY 2
INPUT S0 F_CMS_DESRESP
DISPLAY "Descrizione@50" S0

View File

@ -86,6 +86,7 @@ protected:
virtual TMask* get_mask(int);
virtual bool get_next_key(TToken_string& key);
bool link_ci(const TMask& m);
void write_rows(const TMask& m);
void read_rows(const TMask& m);
@ -1055,8 +1056,8 @@ void TMovanal_msk::create_sheet()
if (!main_app().has_module(CIAUT))
{
hide(S_CODART);
hide(S_DESCART);
sm.hide(S_CODART);
sm.hide(S_DESCART);
sf.delete_column(S_CODART);
sf.delete_column(S_DESCART);
}
@ -1108,17 +1109,24 @@ void TMovanal_app::write_rows(const TMask& m)
TRectype& rec = mov.new_row(); // Crea una riga nuova
_msk->row2rec(i, rec);
} //FOR_EACH_SHEET...
}
if (has_module(CIAUT))
bool TMovanal_app::link_ci(const TMask& m)
{
bool done = has_module(CIAUT);
if (done)
{
const TRectype& caus = cache().get(LF_CAUSALI, m.get(F_CODCAUS));
if (caus.get_bool(CAU_MOVCGIND))
const TRectype& mov = _rel->curr();
const TRectype& caus = cache().get(LF_CAUSALI, mov.get(MOVANA_CODCAUS));
done = caus.get_bool(CAU_MOVCGIND);
if (done)
{
TFilename n; n.tempdir(); n.add("mov_caci.ini");
n.fremove();
if (n.full()) // dummy test
{
TConfig cini(n, "105");
m.field(F_NUMREG).set(mov.get(MOVANA_NUMREG));
TConfig cini(n, "107");
mask2ini(m, cini);
}
TString cmd; cmd << "ci0 -6 -i" << n;
@ -1126,6 +1134,7 @@ void TMovanal_app::write_rows(const TMask& m)
ci0.run();
}
}
return done;
}
void TMovanal_app::read_rows(const TMask& m)
@ -1156,14 +1165,20 @@ int TMovanal_app::write(const TMask& m)
{
m.autosave(*_rel);
write_rows(m);
return _rel->write();
const int err = _rel->write();
if (err == NOERR)
link_ci(m);
return err;
}
int TMovanal_app::rewrite(const TMask& m)
{
m.autosave(*_rel);
write_rows(m);
return _rel->rewrite();
const int err = _rel->rewrite();
if (err == NOERR)
link_ci(m);
return err;
}
int TMovanal_app::read(TMask& m)

View File

@ -111,6 +111,7 @@ BEGIN
FLAGS "UG"
FIELD CODCAUS
GROUP 5
ADD RUN cg0 -4
END
STRINGA F_DESCAUS 50 40
@ -124,6 +125,7 @@ BEGIN
COPY OUTPUT F_CODCAUS
CHECKTYPE REQUIRED
GROUP 5
ADD RUN cg0 -4
END
STRING F_TIPODOC 2

View File

@ -1,5 +1,5 @@
[CMMENU_001]
Caption = "Contabilita' analitica"
Caption = "Contabilità analitica"
Picture = <ca01>
Module = 15
Flags = "F"

View File

@ -655,6 +655,16 @@ void ca_create_browse1(TEdit_field& kfld, int level, int logic, short key_id, sh
ca_append_select_clause(out, level, logic, add_select);
ca_append_run_clause(out, logic);
bool req = false;
if ((logic == LF_COMMESSE || logic == LF_CDC) && kfld.mask().get_sheet()) // Sono in una maschera di riga?
{
TConfig& ini = ca_config();
if (logic == LF_COMMESSE)
req = ini.get_bool("CmsRequired");
else
req = ini.get_bool("CdcRequired");
}
for (int i = 0; i <= level; i++)
{
const TString& picture = mci.picture(i);
@ -681,7 +691,7 @@ void ca_create_browse1(TEdit_field& kfld, int level, int logic, short key_id, sh
out << "DI \"" << TR("Chiusa") << "\" CHIUSA" << '\n';
}
out << "OU " << (des_id+level) << ' ' << field << '\n';
out << "CH NO" << '\n';
out << "CH " << (req ? "RE" : "NO") << '\n';
out << "FI " << main_info.fieldref(level) << '\n';
out << "EN" << '\n';
out.close();
@ -745,9 +755,9 @@ void ca_create_browse2(TEdit_field& kfld, int level, int logic, short key_id)
}
if (logic == LF_COMMESSE)
{
out << "DI \"" << TR("Proroga") << "\" PROROGA" << '\n';
out << "DI \"" << TR("Data") << "@10" << "\" DATAPROR" << '\n';
out << "DI \"" << TR("Chiusa") << "\" CHIUSA" << '\n';
out << "DI \"" << HR("Proroga") << "\" PROROGA" << '\n';
out << "DI \"" << HR("Data") << "@10" << "\" DATAPROR" << '\n';
out << "DI \"" << HR("Chiusa") << "\" CHIUSA" << '\n';
}
out << "CH NO" << '\n';
@ -934,7 +944,8 @@ int ca_create_fields_compact(TMask& msk, int page, int logicnum, int x, int y,
str.format("%s[%d,%d]", fieldname, fr.from()+from+1, fr.to()+from);
kfld->set_field(str);
}
kfld->set_warning(mci.prompt(i));
TString war; war << mci.prompt(i) << ' ' << TR("assente");
kfld->set_warning(war);
offset += prompt.len() + picture.len() + 4;
if (desc_offset < offset)
desc_offset = offset;
@ -943,6 +954,11 @@ int ca_create_fields_compact(TMask& msk, int page, int logicnum, int x, int y,
row_offset++;
offset = 0;
}
// Copio il checktype nel campo fantasma per colorare correttamente la colonna
if (msk.get_sheet() != NULL && kfld->required())
msk.efield(kid-100).check_type(kfld->check_type());
}
}
row_offset = 0;
@ -1051,11 +1067,18 @@ int ca_create_fields_ext(TMask& m, int page, int x, int y, short first_id,
{
TMask_field& f = m.fld(pos);
const int size = f.size();
const TString prompt = ((TEditable_field &)f).get_warning();
TString80 prompt = f.prompt(); prompt.trim();
if (prompt.blank())
{
TToken_string ts(((TEditable_field &)f).get_warning(), ' ');
prompt = ts.get(0);
}
s.set_column_header(id, prompt);
s.set_column_justify(id, f.is_kind_of(CLASS_REAL_FIELD));
s.set_column_width(id, (max(3+size, prompt.len()+1)) * CHARX);
s.enable_column(id);
m.efield(id-100).check_type(f.check_type()); // Copio il checktype nel campo fantasma per colorare correttamente la colonna
}
else
s.delete_column(id);
@ -1492,7 +1515,7 @@ void TSimple_anal_msk::read(const char* name)
read_mask(outname, 0, 0);
xvt_fsys_remove_file(outname);
set_source_file(name);
set_source_file(inpname);
}
else
read_mask(name, 0, 0);

View File

@ -1,5 +1,5 @@
[CAMENU_001]
Caption = "Contabilita' analitica"
Caption = "Contabilità analitica"
Picture = <ca01>
Module = 22
Flags = "F"
@ -16,7 +16,7 @@ Caption = "Configurazione"
Picture = <ca01>
Module = 22
Flags = ""
Item_01 = "Parametri Contabilita' Analitica", "ca0 -2", "F"
Item_01 = "Parametri Contabilità Analitica", "ca0 -2", "F"
Item_02 = "Tabelle di ripartizione", "ca0 -7", "F"
[CAMENU_020]