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 "calibmsk.h"
|
||||||
#include "../cg/cg2103.h"
|
#include "../cg/cg2103.h"
|
||||||
|
|
||||||
|
#include "fasi.h"
|
||||||
#include "movana.h"
|
#include "movana.h"
|
||||||
#include "rmovana.h"
|
#include "rmovana.h"
|
||||||
#include "rip.h"
|
#include "rip.h"
|
||||||
@ -342,7 +343,7 @@ bool ca_test_multilevel_field(TEdit_field& fld, int level)
|
|||||||
// Utilities
|
// 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;
|
TString str;
|
||||||
if (logic == LF_PCON)
|
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);
|
const TFieldref& key = mci.fieldref(level);
|
||||||
|
|
||||||
str << "STR(";
|
str << "STR(";
|
||||||
if (level > 1)
|
if (level > 1 && !upper_limit)
|
||||||
str << "(NUM(LEN(" << key.name() << "))>" << key.from() << ')'; // SE LEN(CODCONTO)>=4
|
str << "(NUM(LEN(" << key.name() << "))>" << key.from() << ')'; // SE LEN(CODCONTO)>=4
|
||||||
if (level < mci.levels())
|
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 << "(NUM(LEN(" << key.name() << "))<=" << key.to() << ')'; // SE LEN(CODCONTO)<=7
|
||||||
}
|
}
|
||||||
str << ')';
|
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)
|
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);
|
const TMultilevel_code_info& main_info = ca_multilevel_code_info(logic);
|
||||||
|
bool add_select = false;
|
||||||
if (logic == LF_FASI)
|
if (logic == LF_FASI)
|
||||||
{
|
{
|
||||||
const int par = main_info.parent();
|
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);
|
const TMultilevel_code_info& parinfo = ca_multilevel_code_info(par);
|
||||||
if (level < parinfo.levels())
|
if (level < parinfo.levels())
|
||||||
logic = par;
|
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);
|
ofstream out(tmp);
|
||||||
|
|
||||||
out << "US " << logic << '\n';
|
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);
|
ca_append_run_clause(out, logic);
|
||||||
|
|
||||||
for (int i = 0; i <= level; i++)
|
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 TString& prompt = mci.prompt(i);
|
||||||
const TFieldref& field = mci.fieldref(i);
|
const TFieldref& field = mci.fieldref(i);
|
||||||
const int length = field.to() - field.from();
|
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;
|
out << "DI \"" << prompt;
|
||||||
if (length > prompt.len())
|
if (length > prompt.len())
|
||||||
out << '@' << length;
|
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)
|
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);
|
const TMultilevel_code_info& main_info = ca_multilevel_code_info(logic);
|
||||||
|
bool add_select = false;
|
||||||
if (logic == LF_FASI)
|
if (logic == LF_FASI)
|
||||||
{
|
{
|
||||||
const int par = main_info.parent();
|
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);
|
const TMultilevel_code_info& parinfo = ca_multilevel_code_info(par);
|
||||||
if (level < parinfo.levels())
|
if (level < parinfo.levels())
|
||||||
logic = par;
|
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);
|
ofstream out(tmp);
|
||||||
|
|
||||||
out << "US " << logic << " KE 2" << '\n';
|
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);
|
ca_append_run_clause(out, logic);
|
||||||
|
|
||||||
out << "IN " << str2 << ' ' << kfld.dlg() << '\n';
|
out << "IN " << str2 << ' ' << kfld.dlg() << '\n';
|
||||||
|
Loading…
x
Reference in New Issue
Block a user