Patch level :10.0

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :
riporti dalla 11 per hardy


git-svn-id: svn://10.65.10.50/branches/R_10_00@20944 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2010-10-04 14:02:18 +00:00
parent d2d15769e3
commit 1cb6a01820
3 changed files with 141 additions and 1 deletions

View File

@ -6,6 +6,7 @@
#include <progind.h>
#include <relapp.h>
#include <recarray.h>
#include <recset.h>
#include <tabutil.h>
#include <utility.h>
@ -61,6 +62,7 @@ class TCondizioni_vendita: public TRelation_application
virtual int write(const TMask &); // metodo usato per scrivere il record sul file
virtual int rewrite(const TMask &); // metodo usato per aggiornare il record sul file
virtual bool remove(); // metodo usato per cancellare il record sul file
virtual void mask2ini(const TMask& m, TConfig& ini);
public:
bool codlis_catven() { return _codlis_catven; }
@ -409,6 +411,55 @@ bool TCondizioni_vendita::remove()
return (TRelation_application::remove()); // viene invocata la funzione standard di cancellazione del record corrente
}
void TCondizioni_vendita::mask2ini(const TMask& m, TConfig& ini)
{
TRelation_application::mask2ini(m, ini);
TString query;
query << "USE RCONDV";
query << "\nFROM TIPO=#TIPO CATVEN=#CATVEN TIPOCF=#TCF CODCF=#CODCF COD=#COD";
query << "\nTO TIPO=#TIPO CATVEN=#CATVEN TIPOCF=#TCF CODCF=#CODCF COD=#COD";
TISAM_recordset rcondv(query);
const TString& tipo = m.get(CONDV_TIPO);
rcondv.set_var("#TIPO", tipo);
if (tipo == "L")
rcondv.set_var("#CATVEN", m.get(CONDV_CATVEN));
else
rcondv.set_var("#CATVEN", "");
if (tipo == "C")
{
rcondv.set_var("#TCF", m.get(CONDV_TIPOCF));
rcondv.set_var("#CODCF", m.get(CONDV_CODCF));
}
else
{
rcondv.set_var("#TCF", "");
rcondv.set_var("#CODCF", "");
}
rcondv.set_var("#COD", m.get(CONDV_COD));
const long items = rcondv.items();
TString16 paragraph;
int j = 0;
for (bool ok = rcondv.move_first(); ok; ok = rcondv.move_next())
{
paragraph.format("%d,%d", LF_RCONDV, ++j);
ini.set_paragraph(paragraph);
const TRectype& rec = rcondv.cursor()->curr();
const int nfields = rec.items();
for (int i = 0; i < nfields; i++)
{
const char* field_name = rec.fieldname(i);
ini.set(field_name, rec.get(field_name));
}
}
}
bool TCondizioni_vendita::handle_copy(TMask_field &b, KEY k)
{
if (k==K_SPACE)

View File

@ -66,7 +66,7 @@ BEGIN
END
// campo riservato ai contratti
LIST F_C_TIPOCF 10
LIST F_C_TIPOCF 1 10
BEGIN
PROMPT 2 2 "Tipo "
FIELD LF_CONDV->TIPOCF

View File

@ -606,6 +606,8 @@ protected:
virtual int write(const TMask& m);
virtual int rewrite(const TMask& m);
virtual bool remove();
virtual void mask2ini(const TMask& m, TConfig& ini);
virtual void ini2mask(TConfig& ini, TMask&m, bool query);
const TString& find_descr(TToken_string& row);
@ -823,6 +825,89 @@ bool TGestione_listini_semplice::remove()
}
//metodi per il caricamento e l'invio da files tipo .ini (transizioni)
void TGestione_listini_semplice::ini2mask(TConfig& ini, TMask& m, bool query)
{
TRelation_application::ini2mask(ini, m, query);
if (!query)
{
TSheet_field& righe = m.sfield(FA_RIGHE);
righe.destroy();
TMask& rm = righe.sheet_mask();
for (int r = 1;; r++)
{
TString8 paragraph;
paragraph.format("%d,%d", LF_RCONDV, r);
if (!ini.set_paragraph(paragraph))
break;
TToken_string& row = righe.row(-1);
FOR_EACH_MASK_FIELD(rm, i, f)
{
const TFieldref* fr = f->field();
if (fr != NULL)
{
const int idx = righe.cid2index(f->dlg());
const TString& val = ini.get(fr->name());
row.add(val, idx);
}
}
righe.check_row(righe.items() - 1);
}
righe.force_update();
}
}
void TGestione_listini_semplice::mask2ini(const TMask& m, TConfig& ini)
{
TRelation_application::mask2ini(m, ini);
TString query;
query << "USE RCONDV";
query << "\nFROM TIPO=#TIPO CATVEN=#CATVEN TIPOCF=#TCF CODCF=#CODCF COD=#COD";
query << "\nTO TIPO=#TIPO CATVEN=#CATVEN TIPOCF=#TCF CODCF=#CODCF COD=#COD";
TISAM_recordset rcondv(query);
const TString& tipo = m.get(CONDV_TIPO);
rcondv.set_var("#TIPO", tipo);
if (tipo == "L")
rcondv.set_var("#CATVEN", m.get(CONDV_CATVEN));
else
rcondv.set_var("#CATVEN", "");
if (tipo == "C")
{
rcondv.set_var("#TCF", m.get(CONDV_TIPOCF));
rcondv.set_var("#CODCF", m.get(CONDV_CODCF));
}
else
{
rcondv.set_var("#TCF", "");
rcondv.set_var("#CODCF", "");
}
rcondv.set_var("#COD", m.get(CONDV_COD));
const long items = rcondv.items();
TString16 paragraph;
int j = 0;
for (bool ok = rcondv.move_first(); ok; ok = rcondv.move_next())
{
paragraph.format("%d,%d", LF_RCONDV, ++j);
ini.set_paragraph(paragraph);
const TRectype& rec = rcondv.cursor()->curr();
const int nfields = rec.items();
for (int i = 0; i < nfields; i++)
{
const char* field_name = rec.fieldname(i);
ini.set(field_name, rec.get(field_name));
}
}
}
void TGestione_listini_semplice::init_query_mode(TMask& m)
{
m.disable(DLG_CREA);
@ -836,6 +921,10 @@ void TGestione_listini_semplice::init_insert_mode(TMask& m)
void TGestione_listini_semplice::init_modify_mode(TMask& m)
{
m.enable(DLG_CREA);
const bool ges_um = m.get_bool(FA_GESTUM);
TSheet_field& righe = m.sfield(FA_RIGHE);
righe.enable_column(S_UM, ges_um);
}
bool TGestione_listini_semplice::user_create()