From 0bd4accb45a57a8ad37eba22c36f1f1084c0ea63 Mon Sep 17 00:00:00 2001 From: alex Date: Mon, 5 Dec 2005 20:35:18 +0000 Subject: [PATCH] Patch level : 2.2 232 Files correlati : ca2.exe ve0.ee Ricompilazione Demo : [ ] Commento Se utilizzo le fasi legate al centro di costo o alla commessa non posso lasciare vuoti i campi come nel caso che non siano legate git-svn-id: svn://10.65.10.50/trunk@13576 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ca/calib01.cpp | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/ca/calib01.cpp b/ca/calib01.cpp index da516c7ec..e1abd1750 100755 --- a/ca/calib01.cpp +++ b/ca/calib01.cpp @@ -9,6 +9,7 @@ #include "calibmsk.h" #include "../cg/cg2103.h" +#include "fasi.h" #include "movana.h" #include "rmovana.h" #include "rip.h" @@ -342,7 +343,7 @@ bool ca_test_multilevel_field(TEdit_field& fld, int level) // Utilities /////////////////////////////////////////////////////////// -static void ca_append_select_clause(ostream& out, int level, int logic) +static void ca_append_select_clause(ostream& out, int level, int logic, bool upper_limit) { TString str; if (logic == LF_PCON) @@ -360,11 +361,11 @@ static void ca_append_select_clause(ostream& out, int level, int logic) const TFieldref& key = mci.fieldref(level); str << "STR("; - if (level > 1) + if (level > 1 && !upper_limit) str << "(NUM(LEN(" << key.name() << "))>" << key.from() << ')'; // SE LEN(CODCONTO)>=4 if (level < mci.levels()) { - if (level > 1) str << "&&"; + if (level > 1 && !upper_limit) str << "&&"; str << "(NUM(LEN(" << key.name() << "))<=" << key.to() << ')'; // SE LEN(CODCONTO)<=7 } str << ')'; @@ -389,6 +390,7 @@ static void init_tmp_filename(TFilename& name) void ca_create_browse1(TEdit_field& kfld, int level, int logic, short key_id, short des_id) { const TMultilevel_code_info& main_info = ca_multilevel_code_info(logic); + bool add_select = false; if (logic == LF_FASI) { const int par = main_info.parent(); @@ -397,6 +399,8 @@ void ca_create_browse1(TEdit_field& kfld, int level, int logic, short key_id, sh const TMultilevel_code_info& parinfo = ca_multilevel_code_info(par); if (level < parinfo.levels()) logic = par; + else + add_select = true; } } @@ -406,7 +410,7 @@ void ca_create_browse1(TEdit_field& kfld, int level, int logic, short key_id, sh ofstream out(tmp); out << "US " << logic << '\n'; - ca_append_select_clause(out, level, logic); + ca_append_select_clause(out, level, logic, add_select); ca_append_run_clause(out, logic); for (int i = 0; i <= level; i++) @@ -415,7 +419,11 @@ void ca_create_browse1(TEdit_field& kfld, int level, int logic, short key_id, sh const TString& prompt = mci.prompt(i); const TFieldref& field = mci.fieldref(i); const int length = field.to() - field.from(); - out << "IN " << field << ' ' << (key_id+i) << '\n'; + out << "IN " << field << ' ' << (key_id+i); + if (add_select && field.name() == FASI_CODCMSFAS) + out << " SE"; + + out << '\n'; out << "DI \"" << prompt; if (length > prompt.len()) out << '@' << length; @@ -440,6 +448,7 @@ void ca_create_browse1(TEdit_field& kfld, int level, int logic, short key_id, sh void ca_create_browse2(TEdit_field& kfld, int level, int logic, short key_id, short des_id) { const TMultilevel_code_info& main_info = ca_multilevel_code_info(logic); + bool add_select = false; if (logic == LF_FASI) { const int par = main_info.parent(); @@ -448,6 +457,8 @@ void ca_create_browse2(TEdit_field& kfld, int level, int logic, short key_id, sh const TMultilevel_code_info& parinfo = ca_multilevel_code_info(par); if (level < parinfo.levels()) logic = par; + else + add_select = true; } } @@ -460,7 +471,7 @@ void ca_create_browse2(TEdit_field& kfld, int level, int logic, short key_id, sh ofstream out(tmp); out << "US " << logic << " KE 2" << '\n'; - ca_append_select_clause(out, level, logic); + ca_append_select_clause(out, level, logic, add_select); ca_append_run_clause(out, logic); out << "IN " << str2 << ' ' << kfld.dlg() << '\n';