Patch level : 12.0 800

Files correlati     : cg5.exe
Commento            :

Spostata la colonna iva a credito o debito nella seconda colonna nella visualizzazione liquidazione
This commit is contained in:
AlexBonazzi 2019-05-27 18:05:00 +02:00
parent 13b002ef43
commit 2cd2de17dd
2 changed files with 180 additions and 88 deletions

View File

@ -18,6 +18,11 @@ extern "C"
#include <urldefid.h>
#include <utility.h>
int cid2index(short cid)
{
return xvtil_cid2index(cid);
}
class TCell_property : public TObject
{
COLOR _back, _fore;
@ -3064,6 +3069,71 @@ const char* TSheet_field::cell(int r, int c) const
return v ? v : " ";
}
int TSheet_field::set_row_cell(short id, const char * value, int nrow)
{
if (nrow < 0)
nrow = first_empty();
set_row_cell(row(nrow), id, value);
#ifdef DBG
const TToken_string & r = row(nrow);
#endif
return nrow;
}
int TSheet_field::set_row_cell(short id, char value, int nrow)
{
if (nrow < 0)
nrow = first_empty();
set_row_cell(row(nrow), id, value);
#ifdef DBG
const TToken_string & r = row(nrow);
#endif
return nrow;
}
int TSheet_field::set_row_cell(short id, long value, int nrow)
{
if (nrow < 0)
nrow = first_empty();
set_row_cell(row(nrow), id, value);
#ifdef DBG
const TToken_string & r = row(nrow);
#endif
return nrow;
}
int TSheet_field::set_row_cell(short id, int value, int nrow)
{
if (nrow < 0)
nrow = first_empty();
set_row_cell(row(nrow), id, value);
#ifdef DBG
const TToken_string & r = row(nrow);
#endif
return nrow;
}
int TSheet_field::set_row_cell(short id, const real& value, int nrow)
{
if (nrow < 0)
nrow = first_empty();
set_row_cell(row(nrow), id, value);
#ifdef DBG
const TToken_string & r = row(nrow);
#endif
return nrow;
}
int TSheet_field::set_row_cell(short id, const TDate& value, int nrow)
{
if (nrow < 0)
nrow = first_empty();
set_row_cell(row(nrow), id, value);
#ifdef DBG
const TToken_string & r = row(nrow);
#endif
return nrow;
}
// Certified 100%
// Ritorna l'indice della prima riga vuota dello sheet

View File

@ -18,6 +18,7 @@ class TRecord_array;
class TRelation;
#endif
#define FIRST_FIELD 101
#define K_ROWEDIT ( K_CTRL + 'I' )
@ -35,6 +36,7 @@ typedef bool (*SPREADSHEET_NOTIFY)(TSheet_field& s, int r, KEY k);
// @type SHEET_USERGETPUT| Prototipo funzione utente che gestisce il caricamento/salvataggio dei dati dello sheet
typedef void (*SHEET_USERGETPUT)(TSheet_field &fld_righe, int item);
int cid2index(short cid);
// @doc EXTERNAL
// @class TSheet_field | Classe per la gestione dei campi di uno spreadsheet
@ -42,113 +44,133 @@ typedef void (*SHEET_USERGETPUT)(TSheet_field &fld_righe, int item);
// @base public | TMask_field
class TSheet_field : public TLoadable_field
{
// @author:(INTERNAL) Guido
// @author:(INTERNAL) Guido
// @cfriend TSpreadsheet
friend class TSpreadsheet;
// @cfriend TSpreadsheet
friend class TSpreadsheet;
// @access:(INTERNAL) Private Member
// @access:(INTERNAL) Private Member
// @cmember:(INTERNAL) Indica se aggiungere a fondo dello spreadsheet o nella riga in cui ti trovi
bool _append;
// @cmember:(INTERNAL) Indica se aggiungere a fondo dello spreadsheet o nella riga in cui ti trovi
bool _append;
// @cmember:(INTERNAL) Separatore delle TToken_string
char _separator;
// @cmember:(INTERNAL) Separatore delle TToken_string
char _separator;
// @cmember:(INTERNAL) Flag di autoload
bool _enable_autoload;
// @cmember:(INTERNAL) Campi di input sulla maschera (key field names)
TToken_string _file_k_names;
// @cmember:(INTERNAL) Campi di input sulla maschera (key field ids)
TToken_string _file_k_ids;
// @cmember:(INTERNAL) file delle righe
TLocalisamfile * _sheetfile;
// @cmember:(INTERNAL) record array delle righe
TRecord_array* _linee_rec;
// @cmember:(INTERNAL) indicatore di record array gestito esternamente
bool _external_record;
// @cmember:(INTERNAL) funzioni utente per get tra record (array) e array righe
SHEET_USERGETPUT _userput;
// @cmember:(INTERNAL) funzioni utente per put tra righe e record (array)
SHEET_USERGETPUT _userget;
// @cmember:(INTERNAL) Flag di autoload
bool _enable_autoload;
// @cmember:(INTERNAL) Campi di input sulla maschera (key field names)
TToken_string _file_k_names;
// @cmember:(INTERNAL) Campi di input sulla maschera (key field ids)
TToken_string _file_k_ids;
// @cmember:(INTERNAL) file delle righe
TLocalisamfile * _sheetfile;
// @cmember:(INTERNAL) record array delle righe
TRecord_array* _linee_rec;
// @cmember:(INTERNAL) indicatore di record array gestito esternamente
bool _external_record;
// @cmember:(INTERNAL) funzioni utente per get tra record (array) e array righe
SHEET_USERGETPUT _userput;
// @cmember:(INTERNAL) funzioni utente per put tra righe e record (array)
SHEET_USERGETPUT _userget;
// @access Protected Member
// @access Protected Member
protected:
// @cmember:(INTERNAL) Identificatore dell' ultima colonna dello sheet
short _last_column_id;
// @cmember:(INTERNAL) Identificatore dell' ultima colonna dello sheet
short _last_column_id;
// @cmember Ritorna l'identificatore della classe
virtual word class_id() const;
virtual bool is_kind_of(word cid) const;
// @cmember Ritorna l'identificatore della classe
virtual word class_id() const;
// @cmember Gestisce la chiamata all'handler del campo
virtual bool on_hit();
// @cmember Legge la testata dello spreadsheet da <p scanner>
virtual void parse_head(TScanner& scanner);
// @cmember Legge gli item dello spreadsheet da <p scanner>
virtual bool parse_item(TScanner& scanner);
// @cmember Legge gli input (campi chiave) dello spreadsheet da <p scanner>
void parse_input(TScanner& scanner);
// @cmember Crea lo spreadsheet
virtual void create(WINDOW parent);
virtual bool is_kind_of(word cid) const;
// @cmember Setta il focus sul campo
virtual void highlight() const;
// @cmember Ricopia i campi della maschera nel record <p n>-esimo
virtual void mask2row(int n, TToken_string & rec);
// @cmember Ricopia i campi del record <p n>-esimo nella maschera
virtual void row2mask(int n, TToken_string & rec, int mode = 0x3);
// @cmember Permette di mettere il focus su una cella
bool set_focus_cell(int riga, int colonna);
// @cmember Gestisce la chiamata all'handler del campo
virtual bool on_hit();
//Copy Costructor per impedire la duplicazione accidentale degli sheet
TSheet_field(const TSheet_field& s): TLoadable_field(&s.mask()){CHECK(false, "Can't duplicate TSheet_field");}
// @cmember Legge la testata dello spreadsheet da <p scanner>
virtual void parse_head(TScanner& scanner);
// @cmember Legge gli item dello spreadsheet da <p scanner>
virtual bool parse_item(TScanner& scanner);
// @cmember Legge gli input (campi chiave) dello spreadsheet da <p scanner>
void parse_input(TScanner& scanner);
// @cmember Crea lo spreadsheet
virtual void create(WINDOW parent);
// @access Public Member
// @cmember Setta il focus sul campo
virtual void highlight() const;
// @cmember Ricopia i campi della maschera nel record <p n>-esimo
virtual void mask2row(int n, TToken_string & rec);
// @cmember Ricopia i campi del record <p n>-esimo nella maschera
virtual void row2mask(int n, TToken_string & rec, int mode = 0x3);
// @cmember Permette di mettere il focus su una cella
bool set_focus_cell(int riga, int colonna);
//Copy Costructor per impedire la duplicazione accidentale degli sheet
TSheet_field(const TSheet_field& s) : TLoadable_field(&s.mask()) { CHECK(false, "Can't duplicate TSheet_field"); }
// @access Public Member
public:
// @cmember Permette di mettere il focus su una cella
bool set_focus_cell_id(long rec, short cid);
bool set_focus_cell_id(long rec, short cid);
// @cmember Gestisce la pressione del tasto (true se la gestione ha avuto successo)
virtual bool on_key(KEY k);
// @cmember Gestisce la pressione del tasto (true se la gestione ha avuto successo)
virtual bool on_key(KEY k);
// @cmember Si, sono uno spreadsheet
virtual bool is_sheet() const { return true; }
virtual bool empty() const { return items() == 0; }
// @cmember Si, sono uno spreadsheet
virtual bool is_sheet() const { return true; }
virtual bool empty() const { return items() == 0; }
// @cmember Legge automaticamente la linea dal record array assegnato
virtual bool autoload_line(int i,const TRectype & rec);
// @cmember Salva automaticamente la linea nel record array assegnato
virtual bool autosave_line(int i,TRectype & rec);
// @cmember Legge automaticamente la linea dal record array assegnato
virtual bool autoload_line(int i, const TRectype & rec);
// @cmember Salva automaticamente la linea nel record array assegnato
virtual bool autosave_line(int i, TRectype & rec);
// @cmember Legge automaticamente lo sheet dal record array assegnato
virtual bool autoload(const TRelation& r);
// @cmember Salva automaticamente lo sheet nel record array assegnato
virtual bool autosave(TRelation& r) ;
// @cmember setta la funzione utente che Legge i campi dello sheet
void set_userget(SHEET_USERGETPUT handler);
// @cmember setta la funzione utente che scrive i campi dello sheet
void set_userput(SHEET_USERGETPUT handler);
// @cmember carica le chiavi del record array dello sheet
TRectype * putkey(const TRelation& r);
// @cmember restituisce il record array assegnato allo sheet
TRecord_array * record() const {return _linee_rec;}
// @cmember Imposta un record array esterno che contiene le righe dello sheet
void set_lines_record(TRecord_array &);
// @cmember Ritorna se il record assegnato è gestito esternamente (read/write/remove)
bool external_record() const {return _external_record;}
// @cmember Gestisce i campi della chiave
void restart_key();
TMask_field *get_key(TString & dbfieldname);
// @cmember Legge automaticamente lo sheet dal record array assegnato
virtual bool autoload(const TRelation& r);
// @cmember Salva automaticamente lo sheet nel record array assegnato
virtual bool autosave(TRelation& r);
// @cmember setta la funzione utente che Legge i campi dello sheet
void set_userget(SHEET_USERGETPUT handler);
// @cmember setta la funzione utente che scrive i campi dello sheet
void set_userput(SHEET_USERGETPUT handler);
// @cmember carica le chiavi del record array dello sheet
TRectype * putkey(const TRelation& r);
// @cmember restituisce il record array assegnato allo sheet
TRecord_array * record() const { return _linee_rec; }
// @cmember Imposta un record array esterno che contiene le righe dello sheet
void set_lines_record(TRecord_array &);
// @cmember Ritorna se il record assegnato è gestito esternamente (read/write/remove)
bool external_record() const { return _external_record; }
// @cmember Gestisce i campi della chiave
void restart_key();
TMask_field *get_key(TString & dbfieldname);
// @cmember Ritorna una riga dello spreadsheet
TToken_string& row(int n);
// @cmember Ritorna un array con tutte le righe dello spreadsheet
TString_array& rows_array() const;
// @cmember Ritorna l'elemento <p c>-esimo della riga <p r>
const char* cell(int r, int c) const;
// @cmember Ritorna una riga dello spreadsheet
TToken_string& row(int n);
// @cmember Ritorna un array con tutte le righe dello spreadsheet
TString_array& rows_array() const;
// @cmember Ritorna l'elemento <p c>-esimo della riga <p r>
const char* cell(int r, int c) const;
virtual void set_row_cell(TToken_string & row, short id, const char * value) { row.add(value, cid2index(id)); }
virtual void set_row_cell(TToken_string & row, short id, char value) { row.add(value, cid2index(id)); }
virtual void set_row_cell(TToken_string & row, short id, long value) { row.add(value, cid2index(id)); }
virtual void set_row_cell(TToken_string & row, short id, int value) { row.add(value, cid2index(id)); }
virtual void set_row_cell(TToken_string & row, short id, const real& value) { row.add(value, cid2index(id)); }
virtual void set_row_cell(TToken_string & row, short id, const TDate& value) { row.add(value, cid2index(id)); }
virtual int set_row_cell(short id, const char * value, int nrow = -1);
virtual int set_row_cell(short id, char value, int nrow = -1);
virtual int set_row_cell(short id, long value, int nrow = -1);
virtual int set_row_cell(short id, int value, int nrow = -1);
virtual int set_row_cell(short id, const real& value, int nrow = -1);
virtual int set_row_cell(short id, const TDate& value, int nrow = -1);
virtual const char * get_str_row_cell(int nrow, short id) { return row(nrow).get(); }
virtual char get_char_row_cell(int nrow, short id) { return row(nrow).get_char(); }
virtual long get_long_row_cell(int nrow, short id) { return row(nrow).get_long(); }
virtual int get_int_row_cell(int nrow, short id) { return row(nrow).get_int(); }
virtual real get_real_row_cell(int nrow, short id) { return real(row(nrow).get()); }
virtual TDate get_date_row_cell(int nrow, short id) { return TDate(row(nrow).get()); }
char separator() const { return _separator; }