ve0100.cpp Aggiunto supporto per il caricamento delle righe da .ini

ve0100.h     Aggiunto metodo mask2ini
ve0100c.cpp  Corretto #include errato di cgpagame.h
velib.h      Reso pubblico il metodo TTipo_riga_documento::read
velib02.cpp  Sostituito "TIPORIGA" con RDOC_TIPORIGA


git-svn-id: svn://10.65.10.50/trunk@5866 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1998-01-09 09:57:01 +00:00
parent b147bb60ed
commit 22328a76d7
5 changed files with 60 additions and 23 deletions

View File

@ -692,7 +692,6 @@ int TMotore_application::read( TMask& m )
f.insert(-1, FALSE);
TToken_string & r = f.row(i-1);
TRiga_documento & rec = (*_doc)[i];
rec.autoload(f);
f.check_row(i - 1);
}
@ -715,6 +714,45 @@ int TMotore_application::rewrite( const TMask& m ) // C 90
return TRelation_application::rewrite(m);
}
// Riempie lo sheet con le righe documento specificate nel .ini
void TMotore_application::ini2mask(TConfig& ini, TMask& msk, bool query)
{
TRelation_application::ini2mask(ini, msk, query); // Default processing
if (query)
{
}
else
{
TSheet_field& f = msk.sfield(F_SHEET);
TTipo_riga_documento tr;
// Scorre tutti i pragrafi delle righe documento
for (int i = 1; ini.set_paragraph(format("%d,%d", LF_RIGHEDOC, i)); i++)
{
// Considera solo i tipi riga validi
const TString16 tipo = ini.get(RDOC_TIPORIGA);
if (tr.read(tipo) == NOERR)
{
// Crea una nuova riga documento
TRiga_documento& rec = _doc->new_row(tipo);
// Riempie i campi della nuova riga
TAssoc_array& var = ini.list_variables();
FOR_EACH_ASSOC_STRING(var, obj, key, val)
{
if (stricmp(key, RDOC_NRIGA) != 0) // Ignora il numero riga
rec.put(key, val);
}
// solo la insert chiama la post_insert necessaria alla disabilitazione verifichiamo
// l'autoload ??
// f.insert(-1, FALSE);
// Aggiunge la riga allo sheet
rec.autoload(f);
f.check_row(rec.numero()-1);
}
}
}
}
void TMotore_application::open_files(int logicnum, ...)
{

View File

@ -65,6 +65,7 @@ class TMotore_application : public TRelation_application
virtual int read( TMask& m );
virtual int write( const TMask& m );
virtual int rewrite( const TMask& m );
virtual void ini2mask(TConfig& ini, TMask& msk, bool query);
// Funzioni da associare ad ogni procedura
int user_function( int index );
@ -105,8 +106,8 @@ protected:
void configura_sheet( TSheet_field& sheet, TConfig& config );
public:
virtual TRelation* get_relation( ) const { return _rel;}
virtual const char* get_next_key( );
// Funzioni di accesso alle variabili private
@ -129,8 +130,6 @@ public:
TSheet_field & ss( ) const { return *_sheet; }
TMotore_application( ) { _pro = NULL; }
virtual ~TMotore_application( ) { if ( _pro ) delete _pro; }
virtual const char* get_next_key( );
};
inline TMotore_application& app() { return (TMotore_application &) main_app(); }

View File

@ -37,7 +37,7 @@
#endif
#ifndef __PAGAMENT_H
#include "..\cg\pagament.h"
#include "..\cg\cgpagame.h"
#endif
#ifndef __SCONTI_H

View File

@ -316,7 +316,6 @@ class TTipo_riga_documento : public TRectype // velib02
protected:
void read_formule();
int read(const char* tiporig);
public:
TObject* dup() const { return new TTipo_riga_documento(codice()); }
@ -336,6 +335,7 @@ public:
TFormula_documento* first_formula() { return succ_formula(TRUE); }
TFormula_documento* succ_formula(bool restart = FALSE);
int read(const char* tiporig);
TTipo_riga_documento(const char* tiporig = NULL);
TTipo_riga_documento(const TRectype& rec);
virtual ~TTipo_riga_documento();

View File

@ -557,11 +557,11 @@ bool TRiga_documento::doc_dependent() const
void TRiga_documento::put_str(const char* fieldname, const char* val)
{
if (strcmp(fieldname, "TIPORIGA") == 0)
if (strcmp(fieldname, RDOC_TIPORIGA) == 0)
{
const TString v(val);
const TString16 v(val);
if (TRectype::get("TIPORIGA") != v)
if (TRectype::get(RDOC_TIPORIGA) != v)
{
TAuto_variable_rectype::put_str(fieldname, v);
reset_fields(*this);