Patch level : 12.0 780

Files correlati     : ve0200
Commento            :
- Modificata dicitura fissa per CONAI da stringa a memo
- Aggiunta gestione w/r ini per memo (testo su piu' righe)
This commit is contained in:
Simone Palacino 2019-05-03 10:32:15 +02:00
parent 538faa84c6
commit eaebfe0a7b
4 changed files with 98 additions and 5 deletions

View File

@ -895,6 +895,7 @@ TConfig::~TConfig()
#define DECLARE_VARNAME(name, idx) const char* varname = idx >= 0 ? (const char*)(get_tmp_string() << name << '(' << idx << ')') : name
#define DECLARE_FILENAME(cfg) TFilename filename; cfg2file(cfg, filename)
#define STOP_LINE "FERMATioSTREGA"
const TString& ini_get_string(const char* file, const char* paragraph, const char* name, const char* defval, int idx)
{
@ -916,6 +917,53 @@ const TString& ini_get_string(const char* file, const char* paragraph, const cha
return tmp;
}
const TString& ini_get_line_memo(const char* file, const char* para, const char* name, int idx)
{
return ini_get_string(file, para, name, STOP_LINE, idx);
}
void ini_del_memo(const char* file, const char* para, const char* name)
{
for (int i = 0; i < ini_get_rows_memo(file, para, name); i++)
ini_remove(file, para, name, i);
}
int ini_get_rows_memo(const char* file, const char* para, const char* name)
{
int idx = 0;
for (TString row = ini_get_line_memo(file, para, name, idx); row != STOP_LINE; row = ini_get_line_memo(file, para, name, idx))
idx++;
return idx;
}
const TString& ini_get_memo(const char* file, const char* para, const char* name)
{
static TString msg; msg.cut(0);
const int rows = ini_get_rows_memo(file, para, name);
for(int i=0; i < rows; i++)
{
TString row = ini_get_line_memo(file, para, name, i);
if (i > 0)
msg << '\n';
msg << row;
}
return msg;
}
void ini_set_memo(const char* file, const char* para, const char* name, const char* msg)
{
// Rimuovo tutte le precedenti righe per non rischiare di lasciarmi vecchie righe indietro (le nuove righe sono meno di prima)
const int rows = ini_get_rows_memo(file, para, name);
for(int i=0; i < rows; i++)
ini_remove(file, para, name, i);
if (!TString(msg).empty())
{
TToken_string msg_tok(msg, '\n');
for (int i = 0; i < msg_tok.items(); i++)
ini_set_string(file, para, name, msg_tok.get(), i);
}
}
bool ini_set_string(const char* file, const char* paragraph, const char* name, const char* val, int idx)
{
DECLARE_VARNAME(name, idx);
@ -976,6 +1024,12 @@ bool ini_remove(int cfg, const char* para, const char* name, int idx)
return ini_remove(filename, para, name, idx);
}
const TString& ini_get_memo(int cfg, const char* para, const char* name)
{
DECLARE_FILENAME(cfg);
return ini_get_memo(filename, para, name);
}
int ini_get_int(int cfg, const char* paragraph, const char* name, int defval, int idx)
{
DECLARE_FILENAME(cfg);
@ -994,6 +1048,18 @@ bool ini_set_bool(int cfg, const char* paragraph, const char* name, bool val, in
return ini_set_string(filename, paragraph, name, val ? "1" : "0", idx);
}
void ini_set_memo(int cfg, const char* para, const char* name, const char* msg)
{
DECLARE_FILENAME(cfg);
ini_set_memo(filename, para, name, msg);
}
void ini_del_memo(int cfg, const char* para, const char* name)
{
DECLARE_FILENAME(cfg);
ini_del_memo(filename, para, name);
}
const TString& get_oem_info(const char* varname, const char* def)
{
TString& tmp = get_tmp_string(50);

View File

@ -192,6 +192,12 @@ bool ini_set_bool (const char* file, const char* para, const char* na
bool ini_set_int (const char* file, const char* para, const char* name, int val, int idx = -1);
bool ini_set_string(const char* file, const char* para, const char* name, const char* val, int idx = -1);
bool ini_remove (const char* file, const char* para, const char* name, int idx = -1);
const TString& ini_get_memo (const char* file, const char* para, const char* name);
void ini_set_memo (const char* file, const char* paragraph, const char* name, const char* msg);
int ini_get_rows_memo(const char* file, const char* paragraph, const char* name);
const TString& ini_get_line_memo(const char* file, const char* paragraph, const char* name, int idx);
void ini_del_memo (const char* file, const char* para, const char* name);
// High level utilities
bool ini_get_bool (int cfg, const char* para, const char* name, bool defval = false, int idx = -1);
int ini_get_int (int cfg, const char* para, const char* name, int defval = 0, int idx = -1);
@ -200,6 +206,9 @@ bool ini_set_bool (int cfg, const char* para, const char* name, bool
bool ini_set_int (int cfg, const char* para, const char* name, int val, int idx = -1);
bool ini_set_string(int cfg, const char* para, const char* name, const char* val, int idx = -1);
bool ini_remove (int cfg, const char* para, const char* name, int idx = -1);
const TString& ini_get_memo (int cfg, const char* para, const char* name);
void ini_set_memo (int cfg, const char* para, const char* name, const char* msg);
void ini_del_memo (int cfg, const char* para, const char* name);
const TString& get_oem_info(const char* varname, const char* defval = ""); // ini_get_string(CONFIG_OEM, "OEM_?", varname, defval);
bool is_aga_version(bool power_user_only = false);

View File

@ -15,6 +15,8 @@ class TConf_vendite : public TConfig_application
static bool check_fields(TMask_field& f, KEY k);
static bool check_fields_iva(TMask_field& f, KEY k);
bool load_conai_ini(TMask& mask);
bool save_conai_ini(TMask& mask);
virtual const char * extra_modules() const {return "dt";}
@ -64,13 +66,29 @@ bool TConf_vendite::check_fields_iva(TMask_field& f, KEY k)
return TRUE;
}
bool TConf_vendite::load_conai_ini(TMask& mask)
{
TString msg = ini_get_memo(CONFIG_DITTA, "ve", "DESCCONAIASS");
mask.set(F_DESCONAIASS, !msg.empty()? msg : "");
return true;
}
bool TConf_vendite::save_conai_ini(TMask& mask)
{
TString msg = mask.get(F_DESCONAIASS);
ini_set_memo(CONFIG_DITTA, "ve", "DESCCONAIASS", msg);
return true;
}
bool TConf_vendite::preprocess_config (TMask& mask, TConfig& config)
{
disable_menu_item(M_FILE_NEW);
switch (_current)
{
case 1:
load_conai_ini(mask);
break;
case 5: // solo per configurazione "e"
{
TToken_string ric(config.get("RICERCACR"));
@ -153,7 +171,9 @@ bool TConf_vendite::postprocess_config (TMask& mask, TConfig& config)
switch (_current)
{
case 1:
save_conai_ini(mask);
break;
case 5: // solo per configurazione "e"
{
TToken_string ric;

View File

@ -466,11 +466,9 @@ BEGIN
PROMPT 2 15 "@bMessaggio alternativo a 'CONTRIBUTO CONAI ASSOLTO'"
END
STRING F_DESCONAIASS 50
ZOOM F_DESCONAIASS 110 50
BEGIN
PROMPT 2 16 ""
FIELD DESCCONAIASS
GROUP 7
END
BOOLEAN F_ESPONIESENTI