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

View File

@ -86,6 +86,7 @@ protected:
virtual TMask* get_mask(int); virtual TMask* get_mask(int);
virtual bool get_next_key(TToken_string& key); virtual bool get_next_key(TToken_string& key);
bool link_ci(const TMask& m);
void write_rows(const TMask& m); void write_rows(const TMask& m);
void read_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)) if (!main_app().has_module(CIAUT))
{ {
hide(S_CODART); sm.hide(S_CODART);
hide(S_DESCART); sm.hide(S_DESCART);
sf.delete_column(S_CODART); sf.delete_column(S_CODART);
sf.delete_column(S_DESCART); 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 TRectype& rec = mov.new_row(); // Crea una riga nuova
_msk->row2rec(i, rec); _msk->row2rec(i, rec);
} //FOR_EACH_SHEET... } //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)); const TRectype& mov = _rel->curr();
if (caus.get_bool(CAU_MOVCGIND)) 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"); TFilename n; n.tempdir(); n.add("mov_caci.ini");
n.fremove(); n.fremove();
if (n.full()) // dummy test 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); mask2ini(m, cini);
} }
TString cmd; cmd << "ci0 -6 -i" << n; TString cmd; cmd << "ci0 -6 -i" << n;
@ -1126,6 +1134,7 @@ void TMovanal_app::write_rows(const TMask& m)
ci0.run(); ci0.run();
} }
} }
return done;
} }
void TMovanal_app::read_rows(const TMask& m) void TMovanal_app::read_rows(const TMask& m)
@ -1156,14 +1165,20 @@ int TMovanal_app::write(const TMask& m)
{ {
m.autosave(*_rel); m.autosave(*_rel);
write_rows(m); 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) int TMovanal_app::rewrite(const TMask& m)
{ {
m.autosave(*_rel); m.autosave(*_rel);
write_rows(m); 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) int TMovanal_app::read(TMask& m)

View File

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

View File

@ -1,5 +1,5 @@
[CMMENU_001] [CMMENU_001]
Caption = "Contabilita' analitica" Caption = "Contabilità analitica"
Picture = <ca01> Picture = <ca01>
Module = 15 Module = 15
Flags = "F" 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_select_clause(out, level, logic, add_select);
ca_append_run_clause(out, logic); 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++) for (int i = 0; i <= level; i++)
{ {
const TString& picture = mci.picture(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 << "DI \"" << TR("Chiusa") << "\" CHIUSA" << '\n';
} }
out << "OU " << (des_id+level) << ' ' << field << '\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 << "FI " << main_info.fieldref(level) << '\n';
out << "EN" << '\n'; out << "EN" << '\n';
out.close(); out.close();
@ -745,9 +755,9 @@ void ca_create_browse2(TEdit_field& kfld, int level, int logic, short key_id)
} }
if (logic == LF_COMMESSE) if (logic == LF_COMMESSE)
{ {
out << "DI \"" << TR("Proroga") << "\" PROROGA" << '\n'; out << "DI \"" << HR("Proroga") << "\" PROROGA" << '\n';
out << "DI \"" << TR("Data") << "@10" << "\" DATAPROR" << '\n'; out << "DI \"" << HR("Data") << "@10" << "\" DATAPROR" << '\n';
out << "DI \"" << TR("Chiusa") << "\" CHIUSA" << '\n'; out << "DI \"" << HR("Chiusa") << "\" CHIUSA" << '\n';
} }
out << "CH NO" << '\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); str.format("%s[%d,%d]", fieldname, fr.from()+from+1, fr.to()+from);
kfld->set_field(str); 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; offset += prompt.len() + picture.len() + 4;
if (desc_offset < offset) if (desc_offset < offset)
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++; row_offset++;
offset = 0; 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; 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); TMask_field& f = m.fld(pos);
const int size = f.size(); 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_header(id, prompt);
s.set_column_justify(id, f.is_kind_of(CLASS_REAL_FIELD)); 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.set_column_width(id, (max(3+size, prompt.len()+1)) * CHARX);
s.enable_column(id); 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 else
s.delete_column(id); s.delete_column(id);
@ -1492,7 +1515,7 @@ void TSimple_anal_msk::read(const char* name)
read_mask(outname, 0, 0); read_mask(outname, 0, 0);
xvt_fsys_remove_file(outname); xvt_fsys_remove_file(outname);
set_source_file(name); set_source_file(inpname);
} }
else else
read_mask(name, 0, 0); read_mask(name, 0, 0);

View File

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