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
This commit is contained in:
parent
fe2d0103d7
commit
0bd4accb45
@ -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';
|
||||
|
Loading…
x
Reference in New Issue
Block a user