Aggiunti ad elenco moduli IC
git-svn-id: svn://10.65.10.50/branches/R_10_00@22742 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
b7b44916a5
commit
54fad7d162
@ -1645,14 +1645,11 @@ static void clean_string(TString& str)
|
|||||||
str.upper();
|
str.upper();
|
||||||
}
|
}
|
||||||
|
|
||||||
TRecnotype TFuzzy_browse::find(const TString& raw_val)
|
TRecnotype TFuzzy_browse::find_magic(const TString& magic_val, double& best)
|
||||||
{
|
{
|
||||||
const TBrowse& b = *field().browse();
|
const TBrowse& b = *field().browse();
|
||||||
TCursor& c = cursor();
|
TCursor& c = cursor();
|
||||||
|
|
||||||
TString80 magic_val = raw_val;
|
|
||||||
clean_string(magic_val);
|
|
||||||
|
|
||||||
c = 0L;
|
c = 0L;
|
||||||
TRecnotype recno = -1;
|
TRecnotype recno = -1;
|
||||||
TRectype& curr = c.curr();
|
TRectype& curr = c.curr();
|
||||||
@ -1663,11 +1660,11 @@ TRecnotype TFuzzy_browse::find(const TString& raw_val)
|
|||||||
return recno;
|
return recno;
|
||||||
|
|
||||||
recno = -1;
|
recno = -1;
|
||||||
|
best = 0.66;
|
||||||
|
|
||||||
const int testlen = magic_val.len()+1;
|
const int testlen = magic_val.len()+1;
|
||||||
if (testlen > 3)
|
if (testlen > 3)
|
||||||
{
|
{
|
||||||
double best = 0.66;
|
|
||||||
for (c = 0L; c.ok(); ++c)
|
for (c = 0L; c.ok(); ++c)
|
||||||
{
|
{
|
||||||
TString80 val = curr.get(_altfld);
|
TString80 val = curr.get(_altfld);
|
||||||
@ -1690,6 +1687,40 @@ TRecnotype TFuzzy_browse::find(const TString& raw_val)
|
|||||||
|
|
||||||
if (recno >= 0)
|
if (recno >= 0)
|
||||||
c = recno;
|
c = recno;
|
||||||
|
else
|
||||||
|
best = 0;
|
||||||
|
return recno;
|
||||||
|
}
|
||||||
|
|
||||||
|
TRecnotype TFuzzy_browse::find(const TString& raw_val)
|
||||||
|
{
|
||||||
|
TString80 magic_val = raw_val;
|
||||||
|
clean_string(magic_val);
|
||||||
|
|
||||||
|
double best = 0;
|
||||||
|
TRecnotype recno = find_magic(magic_val, best);
|
||||||
|
|
||||||
|
if (best < 0.8 && raw_val.find(' ') > 0)
|
||||||
|
{
|
||||||
|
magic_val = raw_val;
|
||||||
|
magic_val.strip_double_spaces();
|
||||||
|
const int spc = magic_val.find(' ');
|
||||||
|
if (spc > 0)
|
||||||
|
{
|
||||||
|
const TString& left = magic_val.left(spc);
|
||||||
|
const TString& right = magic_val.mid(spc+1);
|
||||||
|
magic_val.cut(0) << right << ' ' << left;
|
||||||
|
clean_string(magic_val);
|
||||||
|
double altbest = 0;
|
||||||
|
const TRecnotype altrecno = find_magic(magic_val, altbest);
|
||||||
|
if (altbest > best)
|
||||||
|
{
|
||||||
|
best = altbest;
|
||||||
|
recno = altrecno;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return recno;
|
return recno;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1760,7 +1791,8 @@ KEY TFuzzy_browse::run()
|
|||||||
if (k == K_ENTER)
|
if (k == K_ENTER)
|
||||||
{
|
{
|
||||||
c = sheet.selected();
|
c = sheet.selected();
|
||||||
field().set(c.curr().get(_outfld));
|
const TFieldref fr(_outfld, 0);
|
||||||
|
field().set(fr.read(*c.relation()));
|
||||||
}
|
}
|
||||||
return k;
|
return k;
|
||||||
}
|
}
|
||||||
|
841
include/brwbut.h
841
include/brwbut.h
@ -1,420 +1,421 @@
|
|||||||
#ifndef __BRWBUT_H
|
#ifndef __BRWBUT_H
|
||||||
#define __BRWBUT_H
|
#define __BRWBUT_H
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
// TBrowse_button
|
// TBrowse_button
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
class TEdit_field;
|
class TEdit_field;
|
||||||
class TEditable_field;
|
class TEditable_field;
|
||||||
|
|
||||||
class TBrowse_button : public TObject
|
class TBrowse_button : public TObject
|
||||||
{
|
{
|
||||||
TEdit_field* _fld;
|
TEdit_field* _fld;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// @cmember Ritorna il primo valore di <p _fld>
|
// @cmember Ritorna il primo valore di <p _fld>
|
||||||
TEdit_field& field() const { return *_fld; }
|
TEdit_field& field() const { return *_fld; }
|
||||||
|
|
||||||
// @cmember Ritorna il campo <p n>-esimo
|
// @cmember Ritorna il campo <p n>-esimo
|
||||||
TEditable_field& field(short id) const;
|
TEditable_field& field(short id) const;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// @cmember Controlla la sintassi della input del campo e ne setta i membri
|
// @cmember Controlla la sintassi della input del campo e ne setta i membri
|
||||||
virtual void parse_input(TScanner& scanner) pure;
|
virtual void parse_input(TScanner& scanner) pure;
|
||||||
|
|
||||||
// @cmember Controlla la sintassi della output del campo e ne setta i membri
|
// @cmember Controlla la sintassi della output del campo e ne setta i membri
|
||||||
virtual void parse_output(TScanner& scanner) pure;
|
virtual void parse_output(TScanner& scanner) pure;
|
||||||
|
|
||||||
virtual KEY run() pure;
|
virtual KEY run() pure;
|
||||||
|
|
||||||
// @cmember Controlla la validita' del campo
|
// @cmember Controlla la validita' del campo
|
||||||
virtual bool check(CheckTime = RUNNING_CHECK) pure;
|
virtual bool check(CheckTime = RUNNING_CHECK) pure;
|
||||||
|
|
||||||
virtual bool is_browse() const { return false; }
|
virtual bool is_browse() const { return false; }
|
||||||
virtual bool is_sheet() const { return false; }
|
virtual bool is_sheet() const { return false; }
|
||||||
virtual bool is_filesel() const { return false; }
|
virtual bool is_filesel() const { return false; }
|
||||||
virtual bool is_profile() const { return false; }
|
virtual bool is_profile() const { return false; }
|
||||||
|
|
||||||
TBrowse_button(TEdit_field* f);
|
TBrowse_button(TEdit_field* f);
|
||||||
virtual ~TBrowse_button();
|
virtual ~TBrowse_button();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
// TBrowse
|
// TBrowse
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
// @class TList_sheet | Classe per la gestione dei list sheet
|
// @class TList_sheet | Classe per la gestione dei list sheet
|
||||||
class TList_sheet : public TBrowse_button
|
class TList_sheet : public TBrowse_button
|
||||||
// @author:(INTERNAL) Guido
|
// @author:(INTERNAL) Guido
|
||||||
{
|
{
|
||||||
// @access:(INTERNAL) Private Memeber
|
// @access:(INTERNAL) Private Memeber
|
||||||
|
|
||||||
// @cmember:(INTERNAL) Numero di riga corrente dello sheet
|
// @cmember:(INTERNAL) Numero di riga corrente dello sheet
|
||||||
int _row;
|
int _row;
|
||||||
|
|
||||||
// @cmember:(INTERNAL) Titolo dello sheet
|
// @cmember:(INTERNAL) Titolo dello sheet
|
||||||
TString _caption;
|
TString _caption;
|
||||||
|
|
||||||
// @cmember:(INTERNAL) Testate delle colonne dello sheet
|
// @cmember:(INTERNAL) Testate delle colonne dello sheet
|
||||||
TToken_string _head;
|
TToken_string _head;
|
||||||
|
|
||||||
// @cmember:(INTERNAL) Righe dello sheet
|
// @cmember:(INTERNAL) Righe dello sheet
|
||||||
TString_array _data;
|
TString_array _data;
|
||||||
|
|
||||||
// @cmember:(INTERNAL) Campi di input sulla maschera
|
// @cmember:(INTERNAL) Campi di input sulla maschera
|
||||||
TToken_string _inp_id;
|
TToken_string _inp_id;
|
||||||
|
|
||||||
// @cmember:(INTERNAL) Campi di output sulla maschera
|
// @cmember:(INTERNAL) Campi di output sulla maschera
|
||||||
TToken_string _out_id;
|
TToken_string _out_id;
|
||||||
|
|
||||||
// @access Protected Member
|
// @access Protected Member
|
||||||
protected:
|
protected:
|
||||||
// @cmember Ritorna il numero di riga selezionata
|
// @cmember Ritorna il numero di riga selezionata
|
||||||
int do_input();
|
int do_input();
|
||||||
// @cmember Scrive l'output della ricerca sulla maschera
|
// @cmember Scrive l'output della ricerca sulla maschera
|
||||||
void do_output(CheckTime = RUNNING_CHECK);
|
void do_output(CheckTime = RUNNING_CHECK);
|
||||||
|
|
||||||
// @cmember Controlla la sintassi della input del campo e ne setta i membri
|
// @cmember Controlla la sintassi della input del campo e ne setta i membri
|
||||||
void parse_input(TScanner& scanner);
|
void parse_input(TScanner& scanner);
|
||||||
// @cmember Controlla la sintassi della output del campo e ne setta i membri
|
// @cmember Controlla la sintassi della output del campo e ne setta i membri
|
||||||
void parse_output(TScanner& scanner);
|
void parse_output(TScanner& scanner);
|
||||||
|
|
||||||
// @access Public Memeber
|
// @access Public Memeber
|
||||||
public:
|
public:
|
||||||
// @cmember Legge dal file gli item dello sheet
|
// @cmember Legge dal file gli item dello sheet
|
||||||
void parse_item(TScanner& scanner);
|
void parse_item(TScanner& scanner);
|
||||||
|
|
||||||
// @cmember Controlla la validita' del campo
|
// @cmember Controlla la validita' del campo
|
||||||
virtual bool check(CheckTime = RUNNING_CHECK);
|
virtual bool check(CheckTime = RUNNING_CHECK);
|
||||||
|
|
||||||
// @cmember Esegue la ricerca. Torna il tasto che ha terminato la ricerca
|
// @cmember Esegue la ricerca. Torna il tasto che ha terminato la ricerca
|
||||||
virtual KEY run();
|
virtual KEY run();
|
||||||
|
|
||||||
virtual bool is_sheet() const { return true; }
|
virtual bool is_sheet() const { return true; }
|
||||||
|
|
||||||
TString_array& rows_array() { return _data; }
|
TString_array& rows_array() { return _data; }
|
||||||
|
|
||||||
// @cmember Costruttore
|
// @cmember Costruttore
|
||||||
TList_sheet(TEdit_field* f, const char* caption, const char* head);
|
TList_sheet(TEdit_field* f, const char* caption, const char* head);
|
||||||
// @cmember Distruttore
|
// @cmember Distruttore
|
||||||
virtual ~TList_sheet();
|
virtual ~TList_sheet();
|
||||||
};
|
};
|
||||||
|
|
||||||
// @doc INTERNAL
|
// @doc INTERNAL
|
||||||
|
|
||||||
// @class TBrowse | Classe per la definizione dei campi con ricerca
|
// @class TBrowse | Classe per la definizione dei campi con ricerca
|
||||||
class TBrowse : public TBrowse_button
|
class TBrowse : public TBrowse_button
|
||||||
// @author:(INTERNAL) Guido
|
// @author:(INTERNAL) Guido
|
||||||
{
|
{
|
||||||
// @access:(INTERNAL) Private Member
|
// @access:(INTERNAL) Private Member
|
||||||
|
|
||||||
// @cmember:(INTERNAL) Relazione della ricerca
|
// @cmember:(INTERNAL) Relazione della ricerca
|
||||||
TRelation* _relation;
|
TRelation* _relation;
|
||||||
// @cmember:(INTERNAL) Cursore sulla relazione
|
// @cmember:(INTERNAL) Cursore sulla relazione
|
||||||
TCursor* _cursor;
|
TCursor* _cursor;
|
||||||
// @cmember:(INTERNAL) Comando da eseguire alla pressione del tasto Gestione
|
// @cmember:(INTERNAL) Comando da eseguire alla pressione del tasto Gestione
|
||||||
TString _insert;
|
TString _insert;
|
||||||
// @cmember:(INTERNAL) Filtro sul cursore
|
// @cmember:(INTERNAL) Filtro sul cursore
|
||||||
TString _filter;
|
TString _filter;
|
||||||
// @cmember:(INTERNAL) Record selezionato
|
// @cmember:(INTERNAL) Record selezionato
|
||||||
long _rec;
|
long _rec;
|
||||||
// @cmember:(INTERNAL) Indica se e' presente un campo secondario nella ricerca
|
// @cmember:(INTERNAL) Indica se e' presente un campo secondario nella ricerca
|
||||||
bool _secondary;
|
bool _secondary;
|
||||||
// @cmember:(INTERNAL) Indica se sul campo e' gia' stato effettuato il check
|
// @cmember:(INTERNAL) Indica se sul campo e' gia' stato effettuato il check
|
||||||
bool _checked;
|
bool _checked;
|
||||||
// @cmember:(INTERNAL) Chiave di ricerca alternativa (quando il testo del campo comincia con %)
|
// @cmember:(INTERNAL) Chiave di ricerca alternativa (quando il testo del campo comincia con %)
|
||||||
TBrowse_button* _alt_browse;
|
TBrowse_button* _alt_browse;
|
||||||
|
|
||||||
// @cmember:(INTERNAL) Testate della maschera di ricerca
|
// @cmember:(INTERNAL) Testate della maschera di ricerca
|
||||||
TToken_string _head;
|
TToken_string _head;
|
||||||
// @cmember:(INTERNAL) Campi visualizzati dalla maschera di ricerca
|
// @cmember:(INTERNAL) Campi visualizzati dalla maschera di ricerca
|
||||||
TToken_string _items;
|
TToken_string _items;
|
||||||
// @cmember:(INTERNAL) Campi di input sulla maschera
|
// @cmember:(INTERNAL) Campi di input sulla maschera
|
||||||
TToken_string _inp_id;
|
TToken_string _inp_id;
|
||||||
// @cmember:(INTERNAL) Campi di input sul file
|
// @cmember:(INTERNAL) Campi di input sul file
|
||||||
TToken_string _inp_fn;
|
TToken_string _inp_fn;
|
||||||
// @cmember:(INTERNAL) Campi di output sulla maschera
|
// @cmember:(INTERNAL) Campi di output sulla maschera
|
||||||
TToken_string _out_id;
|
TToken_string _out_id;
|
||||||
// @cmember:(INTERNAL) Campi di output sul file
|
// @cmember:(INTERNAL) Campi di output sul file
|
||||||
TToken_string _out_fn;
|
TToken_string _out_fn;
|
||||||
// @cmember:(INTERNAL) handler di filtro custom
|
// @cmember:(INTERNAL) handler di filtro custom
|
||||||
CONTROL_HANDLER _custom_filter_handler;
|
CONTROL_HANDLER _custom_filter_handler;
|
||||||
|
|
||||||
// @access Protected Member
|
// @access Protected Member
|
||||||
protected:
|
protected:
|
||||||
// @cmember Azzera i campi di output sulla maschera
|
// @cmember Azzera i campi di output sulla maschera
|
||||||
void do_clear(CheckTime t);
|
void do_clear(CheckTime t);
|
||||||
// @cmember Chiama la maschera di gestione della ricerca
|
// @cmember Chiama la maschera di gestione della ricerca
|
||||||
bool do_link(bool insert);
|
bool do_link(bool insert);
|
||||||
|
|
||||||
// @cmember Modifica il cursore
|
// @cmember Modifica il cursore
|
||||||
void custom_cursor();
|
void custom_cursor();
|
||||||
|
|
||||||
// @cmember Crea lista identificatori di ricerca
|
// @cmember Crea lista identificatori di ricerca
|
||||||
TToken_string& create_siblings(TToken_string& siblings) const;
|
TToken_string& create_siblings(TToken_string& siblings) const;
|
||||||
|
|
||||||
// @access Public Member
|
// @access Public Member
|
||||||
public:
|
public:
|
||||||
// @cmember Modifica il display
|
// @cmember Modifica il display
|
||||||
void custom_display();
|
void custom_display();
|
||||||
|
|
||||||
// @cmember Ritorna il numero di inputs senza contare quelli che funzionano
|
// @cmember Ritorna il numero di inputs senza contare quelli che funzionano
|
||||||
// solo da filtro
|
// solo da filtro
|
||||||
int input_fields();
|
int input_fields();
|
||||||
|
|
||||||
// @cmember Ritorna la lista completa degli identificatori dei campi di input
|
// @cmember Ritorna la lista completa degli identificatori dei campi di input
|
||||||
const char* get_input_fields() const;
|
const char* get_input_fields() const;
|
||||||
|
|
||||||
// @cmember Ritorna la lista completa dei nomi dei campi di input
|
// @cmember Ritorna la lista completa dei nomi dei campi di input
|
||||||
const char* get_input_field_names() const;
|
const char* get_input_field_names() const;
|
||||||
|
|
||||||
// @cmember Aggiorna la lista completa degli identificatori dei campi di input
|
// @cmember Aggiorna la lista completa degli identificatori dei campi di input
|
||||||
void set_input_fields(const char * inp_id) { _inp_id = inp_id;}
|
void set_input_fields(const char * inp_id) { _inp_id = inp_id;}
|
||||||
|
|
||||||
// @cmember Aggiorna la lista completa degli identificatori dei campi di input da un campo
|
// @cmember Aggiorna la lista completa degli identificatori dei campi di input da un campo
|
||||||
void copy_input(const TBrowse * b);
|
void copy_input(const TBrowse * b);
|
||||||
|
|
||||||
// @cmember Aggiorna la lista completa dei nomi dei campi di input
|
// @cmember Aggiorna la lista completa dei nomi dei campi di input
|
||||||
void set_input_field_names(const char * inp_names) { _inp_fn = inp_names;}
|
void set_input_field_names(const char * inp_names) { _inp_fn = inp_names;}
|
||||||
|
|
||||||
// @cmember Aggiunge un campo di input alla posizione <pos>
|
// @cmember Aggiunge un campo di input alla posizione <pos>
|
||||||
void add_input_field(const char * id, const char * name, const int pos = - 1, bool select = false);
|
void add_input_field(const char * id, const char * name, const int pos = - 1, bool select = false);
|
||||||
|
|
||||||
// @cmember Elimina un campo di display alla posizione <pos>
|
// @cmember Elimina un campo di display alla posizione <pos>
|
||||||
void remove_display_field(const int pos = -1);
|
void remove_display_field(const int pos = -1);
|
||||||
|
|
||||||
// @cmember Aggiorna la lista completa degli identificatori dei campi di output
|
// @cmember Aggiorna la lista completa degli identificatori dei campi di output
|
||||||
void set_display_fields(const char * hds, const char * names) { _head = hds; _items = names;}
|
void set_display_fields(const char * hds, const char * names) { _head = hds; _items = names;}
|
||||||
int get_display_fields(TToken_string& hds, TToken_string& names) const { hds =_head; names = _items; return names.items(); }
|
int get_display_fields(TToken_string& hds, TToken_string& names) const { hds =_head; names = _items; return names.items(); }
|
||||||
|
|
||||||
// @cmember Aggiorna la display da un campo
|
// @cmember Aggiorna la display da un campo
|
||||||
void copy_display(const TBrowse * b);
|
void copy_display(const TBrowse * b);
|
||||||
|
|
||||||
// @cmember Aggiunge un campo di diplay alla posizione <pos>
|
// @cmember Aggiunge un campo di diplay alla posizione <pos>
|
||||||
void add_display_field(const char * hd, const char * name, const int pos = -1);
|
void add_display_field(const char * hd, const char * name, const int pos = -1);
|
||||||
|
|
||||||
// @cmember Elimina un campo di input alla posizione <pos>
|
// @cmember Elimina un campo di input alla posizione <pos>
|
||||||
void remove_input_field(const int pos = -1);
|
void remove_input_field(const int pos = -1);
|
||||||
|
|
||||||
// @cmember Ritorna la lista completa dei campi di output
|
// @cmember Ritorna la lista completa dei campi di output
|
||||||
const char* get_output_fields() const;
|
const char* get_output_fields() const;
|
||||||
|
|
||||||
// @cmember Ritorna la lista completa dei nomi dei campi di output
|
// @cmember Ritorna la lista completa dei nomi dei campi di output
|
||||||
const char* get_output_field_names() const;
|
const char* get_output_field_names() const;
|
||||||
|
|
||||||
// @cmember Aggiorna la lista completa degli identificatori dei campi di output
|
// @cmember Aggiorna la lista completa degli identificatori dei campi di output
|
||||||
void set_output_fields(const char * out_id) { _out_id = out_id;}
|
void set_output_fields(const char * out_id) { _out_id = out_id;}
|
||||||
|
|
||||||
// @cmember Aggiorna la lista completa dei nomi dei campi di input
|
// @cmember Aggiorna la lista completa dei nomi dei campi di input
|
||||||
void set_output_field_names(const char * out_names) { _out_fn = out_names;}
|
void set_output_field_names(const char * out_names) { _out_fn = out_names;}
|
||||||
|
|
||||||
// @cmember Aggiorna la lista completa degli identificatori dei campi di output da un campo
|
// @cmember Aggiorna la lista completa degli identificatori dei campi di output da un campo
|
||||||
void copy_output(const TBrowse * b);
|
void copy_output(const TBrowse * b);
|
||||||
|
|
||||||
// @cmember Aggiunge un campo di output alla posizione <pos>
|
// @cmember Aggiunge un campo di output alla posizione <pos>
|
||||||
void add_output_field(const char * id, const char * name, const int pos = -1);
|
void add_output_field(const char * id, const char * name, const int pos = -1);
|
||||||
|
|
||||||
// @cmember Elimina un campo di output alla posizione <pos>
|
// @cmember Elimina un campo di output alla posizione <pos>
|
||||||
void remove_output_field(const int pos = -1);
|
void remove_output_field(const int pos = -1);
|
||||||
|
|
||||||
// @cmember Ritorna il numero di campi non vuoti e non filtrati
|
// @cmember Ritorna il numero di campi non vuoti e non filtrati
|
||||||
int do_input(bool filter = false);
|
int do_input(bool filter = false);
|
||||||
|
|
||||||
// @cmember Scrive l'output della ricerca sulla maschera
|
// @cmember Scrive l'output della ricerca sulla maschera
|
||||||
void do_output(CheckTime = RUNNING_CHECK);
|
void do_output(CheckTime = RUNNING_CHECK);
|
||||||
|
|
||||||
// @cmember Costruttore
|
// @cmember Costruttore
|
||||||
TBrowse(TEdit_field* f, TRelation* r, int key = 1, const char* filter = "");
|
TBrowse(TEdit_field* f, TRelation* r, int key = 1, const char* filter = "");
|
||||||
// @cmember Costruttore
|
// @cmember Costruttore
|
||||||
TBrowse(TEdit_field* f, TCursor* c);
|
TBrowse(TEdit_field* f, TCursor* c);
|
||||||
// @cmember Distruttore
|
// @cmember Distruttore
|
||||||
~TBrowse();
|
~TBrowse();
|
||||||
|
|
||||||
// @cmember Controlla la sintassi della join del campo e ne setta i membri
|
// @cmember Controlla la sintassi della join del campo e ne setta i membri
|
||||||
void parse_join(TScanner& scanner);
|
void parse_join(TScanner& scanner);
|
||||||
// @cmember Controlla la sintassi della input del campo e ne setta i membri
|
// @cmember Controlla la sintassi della input del campo e ne setta i membri
|
||||||
void parse_input(TScanner& scanner);
|
void parse_input(TScanner& scanner);
|
||||||
// @cmember Controlla la sintassi della display del campo e ne setta i membri
|
// @cmember Controlla la sintassi della display del campo e ne setta i membri
|
||||||
void parse_display(TScanner& scanner);
|
void parse_display(TScanner& scanner);
|
||||||
// @cmember Controlla la sintassi della output del campo e ne setta i membri
|
// @cmember Controlla la sintassi della output del campo e ne setta i membri
|
||||||
void parse_output(TScanner& scanner);
|
void parse_output(TScanner& scanner);
|
||||||
// @cmember Controlla la sintassi della insert del campo e ne setta i membri
|
// @cmember Controlla la sintassi della insert del campo e ne setta i membri
|
||||||
void parse_insert(TScanner& scanner);
|
void parse_insert(TScanner& scanner);
|
||||||
// @cmember Controlla la sintassi della copy del campo e ne setta i membri
|
// @cmember Controlla la sintassi della copy del campo e ne setta i membri
|
||||||
bool parse_copy(const TString& what, const TBrowse& b);
|
bool parse_copy(const TString& what, const TBrowse& b);
|
||||||
|
|
||||||
// @cmember Permette di settare il comando alla pressione del tasto Gestione
|
// @cmember Permette di settare il comando alla pressione del tasto Gestione
|
||||||
void set_insert(const char* s)
|
void set_insert(const char* s)
|
||||||
{ _insert = s;}
|
{ _insert = s;}
|
||||||
// @cmember Ritorna il valore di <p _insert>
|
// @cmember Ritorna il valore di <p _insert>
|
||||||
const TString& get_insert() const
|
const TString& get_insert() const
|
||||||
{ return _insert;}
|
{ return _insert;}
|
||||||
|
|
||||||
// @cmember Ritorna il valore di <p _filter>
|
// @cmember Ritorna il valore di <p _filter>
|
||||||
const TString& get_filter() const
|
const TString& get_filter() const
|
||||||
{ return _filter;}
|
{ return _filter;}
|
||||||
|
|
||||||
// @cmember Cambia il filtro della browse
|
// @cmember Cambia il filtro della browse
|
||||||
void set_filter(const char * filter)
|
void set_filter(const char * filter)
|
||||||
{ _filter = filter;}
|
{ _filter = filter;}
|
||||||
|
|
||||||
// @cmember Cambia il cursore della browse
|
// @cmember Cambia il cursore della browse
|
||||||
void set_cursor(TCursor * c);
|
void set_cursor(TCursor * c);
|
||||||
|
|
||||||
// @cmember Cambia il filtro della browse
|
// @cmember Cambia il filtro della browse
|
||||||
void set_custom_filter_handler(CONTROL_HANDLER custom_filter_handler) { _custom_filter_handler = custom_filter_handler;}
|
void set_custom_filter_handler(CONTROL_HANDLER custom_filter_handler) { _custom_filter_handler = custom_filter_handler;}
|
||||||
|
|
||||||
// @cmember Controlla la validita' del campo
|
// @cmember Controlla la validita' del campo
|
||||||
bool check(CheckTime = RUNNING_CHECK);
|
bool check(CheckTime = RUNNING_CHECK);
|
||||||
// @cmember Controlla se il campo puo' essere vuoto
|
// @cmember Controlla se il campo puo' essere vuoto
|
||||||
bool empty_check();
|
bool empty_check();
|
||||||
// @cmember Ritorna il valore di <p _head>
|
// @cmember Ritorna il valore di <p _head>
|
||||||
const TToken_string& head() const
|
const TToken_string& head() const
|
||||||
{ return _head;}
|
{ return _head;}
|
||||||
// @cmember Ritorna il valore di <p _items>
|
// @cmember Ritorna il valore di <p _items>
|
||||||
const TToken_string& items() const
|
const TToken_string& items() const
|
||||||
{ return _items;}
|
{ return _items;}
|
||||||
// @cmember Ritorna il valore di <p _cursor>
|
// @cmember Ritorna il valore di <p _cursor>
|
||||||
TCursor* cursor() const
|
TCursor* cursor() const
|
||||||
{ return _cursor;}
|
{ return _cursor;}
|
||||||
// @cmember Ritorna il valore di <p _checked>
|
// @cmember Ritorna il valore di <p _checked>
|
||||||
bool checked() const
|
bool checked() const
|
||||||
{ return _checked;}
|
{ return _checked;}
|
||||||
// @cmember Ritorna il valore di <p _secondary>
|
// @cmember Ritorna il valore di <p _secondary>
|
||||||
bool secondary() const
|
bool secondary() const
|
||||||
{ return _secondary;}
|
{ return _secondary;}
|
||||||
|
|
||||||
bool set_alt_browse(int altkey);
|
bool set_alt_browse(int altkey);
|
||||||
|
|
||||||
virtual bool is_browse() const { return true; }
|
virtual bool is_browse() const { return true; }
|
||||||
|
|
||||||
// @cmember Esegue la ricerca. Torna il tasto che ha terminato la ricerca
|
// @cmember Esegue la ricerca. Torna il tasto che ha terminato la ricerca
|
||||||
virtual KEY run();
|
virtual KEY run();
|
||||||
};
|
};
|
||||||
|
|
||||||
class TFuzzy_browse : public TBrowse_button
|
class TFuzzy_browse : public TBrowse_button
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
virtual void parse_input(TScanner& scanner) {}
|
virtual void parse_input(TScanner& scanner) {}
|
||||||
virtual void parse_output(TScanner& scanner) {}
|
virtual void parse_output(TScanner& scanner) {}
|
||||||
|
long find_magic(const TString& magic_val, double& best);
|
||||||
protected:
|
|
||||||
const int _altkey;
|
protected:
|
||||||
TString16 _altfld, _outfld;
|
const int _altkey;
|
||||||
virtual TCursor& cursor();
|
TString16 _altfld, _outfld;
|
||||||
|
virtual TCursor& cursor();
|
||||||
public:
|
|
||||||
virtual bool check(CheckTime = RUNNING_CHECK);
|
public:
|
||||||
virtual KEY run();
|
virtual bool check(CheckTime = RUNNING_CHECK);
|
||||||
virtual long find(const TString& val);
|
virtual KEY run();
|
||||||
TFuzzy_browse (TEdit_field* ef, int key);
|
virtual long find(const TString& val);
|
||||||
};
|
TFuzzy_browse (TEdit_field* ef, int key);
|
||||||
|
};
|
||||||
|
|
||||||
class TAlternative_browse : public TFuzzy_browse
|
|
||||||
{
|
class TAlternative_browse : public TFuzzy_browse
|
||||||
TCursor* _cursor;
|
{
|
||||||
|
TCursor* _cursor;
|
||||||
protected:
|
|
||||||
virtual TCursor& cursor();
|
protected:
|
||||||
|
virtual TCursor& cursor();
|
||||||
public:
|
|
||||||
virtual KEY run();
|
public:
|
||||||
|
virtual KEY run();
|
||||||
TAlternative_browse(TEdit_field* ef, int altkey);
|
|
||||||
~TAlternative_browse();
|
TAlternative_browse(TEdit_field* ef, int altkey);
|
||||||
};
|
~TAlternative_browse();
|
||||||
|
};
|
||||||
class TFile_select : public TBrowse_button
|
|
||||||
{
|
class TFile_select : public TBrowse_button
|
||||||
TFilename _filter;
|
{
|
||||||
|
TFilename _filter;
|
||||||
public:
|
|
||||||
// @cmember Controlla la sintassi della input del campo e ne setta i membri
|
public:
|
||||||
virtual void parse_input(TScanner& scanner);
|
// @cmember Controlla la sintassi della input del campo e ne setta i membri
|
||||||
|
virtual void parse_input(TScanner& scanner);
|
||||||
// @cmember Controlla la sintassi della output del campo e ne setta i membri
|
|
||||||
virtual void parse_output(TScanner& scanner);
|
// @cmember Controlla la sintassi della output del campo e ne setta i membri
|
||||||
|
virtual void parse_output(TScanner& scanner);
|
||||||
virtual KEY run();
|
|
||||||
|
virtual KEY run();
|
||||||
// @cmember Controlla la validita' del campo
|
|
||||||
virtual bool check(CheckTime = RUNNING_CHECK);
|
// @cmember Controlla la validita' del campo
|
||||||
|
virtual bool check(CheckTime = RUNNING_CHECK);
|
||||||
virtual bool is_filesel() const { return true; }
|
|
||||||
|
virtual bool is_filesel() const { return true; }
|
||||||
TFile_select(TEdit_field* ef, const char* filter);
|
|
||||||
virtual ~TFile_select() { }
|
TFile_select(TEdit_field* ef, const char* filter);
|
||||||
};
|
virtual ~TFile_select() { }
|
||||||
|
};
|
||||||
class TDir_select : public TBrowse_button
|
|
||||||
{
|
class TDir_select : public TBrowse_button
|
||||||
public:
|
{
|
||||||
// @cmember Controlla la sintassi della input del campo e ne setta i membri
|
public:
|
||||||
virtual void parse_input(TScanner& scanner);
|
// @cmember Controlla la sintassi della input del campo e ne setta i membri
|
||||||
|
virtual void parse_input(TScanner& scanner);
|
||||||
// @cmember Controlla la sintassi della output del campo e ne setta i membri
|
|
||||||
virtual void parse_output(TScanner& scanner);
|
// @cmember Controlla la sintassi della output del campo e ne setta i membri
|
||||||
|
virtual void parse_output(TScanner& scanner);
|
||||||
virtual KEY run();
|
|
||||||
|
virtual KEY run();
|
||||||
// @cmember Controlla la validita' del campo
|
|
||||||
virtual bool check(CheckTime = RUNNING_CHECK);
|
// @cmember Controlla la validita' del campo
|
||||||
|
virtual bool check(CheckTime = RUNNING_CHECK);
|
||||||
virtual bool is_filesel() const { return TRUE; }
|
|
||||||
|
virtual bool is_filesel() const { return TRUE; }
|
||||||
TDir_select(TEdit_field* ef);
|
|
||||||
virtual ~TDir_select() { }
|
TDir_select(TEdit_field* ef);
|
||||||
};
|
virtual ~TDir_select() { }
|
||||||
|
};
|
||||||
class TReport_select : public TBrowse_button
|
|
||||||
{
|
class TReport_select : public TBrowse_button
|
||||||
TString _classe;
|
{
|
||||||
|
TString _classe;
|
||||||
public:
|
|
||||||
// @cmember Controlla la sintassi della input del campo e ne setta i membri
|
public:
|
||||||
virtual void parse_input(TScanner& scanner);
|
// @cmember Controlla la sintassi della input del campo e ne setta i membri
|
||||||
|
virtual void parse_input(TScanner& scanner);
|
||||||
// @cmember Controlla la sintassi della output del campo e ne setta i membri
|
|
||||||
virtual void parse_output(TScanner& scanner);
|
// @cmember Controlla la sintassi della output del campo e ne setta i membri
|
||||||
|
virtual void parse_output(TScanner& scanner);
|
||||||
virtual KEY run();
|
|
||||||
|
virtual KEY run();
|
||||||
// @cmember Controlla la validita' del campo
|
|
||||||
virtual bool check(CheckTime = RUNNING_CHECK);
|
// @cmember Controlla la validita' del campo
|
||||||
|
virtual bool check(CheckTime = RUNNING_CHECK);
|
||||||
virtual bool is_filesel() const { return true; }
|
|
||||||
|
virtual bool is_filesel() const { return true; }
|
||||||
TReport_select(TEdit_field* ef, const char* classe);
|
|
||||||
virtual ~TReport_select() { }
|
TReport_select(TEdit_field* ef, const char* classe);
|
||||||
};
|
virtual ~TReport_select() { }
|
||||||
|
};
|
||||||
|
|
||||||
class TProfile_select : public TBrowse_button
|
|
||||||
{
|
class TProfile_select : public TBrowse_button
|
||||||
protected:
|
{
|
||||||
// @cmember Controlla la sintassi della input del campo e ne setta i membri
|
protected:
|
||||||
virtual void parse_input(TScanner& scanner);
|
// @cmember Controlla la sintassi della input del campo e ne setta i membri
|
||||||
|
virtual void parse_input(TScanner& scanner);
|
||||||
// @cmember Controlla la sintassi della output del campo e ne setta i membri
|
|
||||||
virtual void parse_output(TScanner& scanner);
|
// @cmember Controlla la sintassi della output del campo e ne setta i membri
|
||||||
|
virtual void parse_output(TScanner& scanner);
|
||||||
public:
|
|
||||||
virtual KEY run();
|
public:
|
||||||
|
virtual KEY run();
|
||||||
// @cmember Controlla la validita' del campo
|
|
||||||
virtual bool check(CheckTime = RUNNING_CHECK);
|
// @cmember Controlla la validita' del campo
|
||||||
|
virtual bool check(CheckTime = RUNNING_CHECK);
|
||||||
// @cmember E' un campo profilo
|
|
||||||
virtual bool is_profile() const { return true; }
|
// @cmember E' un campo profilo
|
||||||
|
virtual bool is_profile() const { return true; }
|
||||||
// @cmember Estrae dal .ini tutti i profili
|
|
||||||
int get_descriptions(TString_array& a) const;
|
// @cmember Estrae dal .ini tutti i profili
|
||||||
|
int get_descriptions(TString_array& a) const;
|
||||||
TProfile_select(TEdit_field* ef);
|
|
||||||
virtual ~TProfile_select() { }
|
TProfile_select(TEdit_field* ef);
|
||||||
};
|
virtual ~TProfile_select() { }
|
||||||
|
};
|
||||||
#endif
|
|
||||||
|
#endif
|
||||||
|
@ -22,7 +22,7 @@ ab Analisi di bilancio
|
|||||||
gv Gestione versamenti F24
|
gv Gestione versamenti F24
|
||||||
ca Contabilita' Analitica
|
ca Contabilita' Analitica
|
||||||
vd Vendita al dettaglio
|
vd Vendita al dettaglio
|
||||||
af Autoformazione
|
ic IVA per cassa
|
||||||
pe Preventivazione
|
pe Preventivazione
|
||||||
ep Effetti Passivi
|
ep Effetti Passivi
|
||||||
tc Trasferimento altre Contabilita'
|
tc Trasferimento altre Contabilita'
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
#include <config.h>
|
#include <config.h>
|
||||||
#include <dongle.h>
|
#include <dongle.h>
|
||||||
#include <isamrpc.h>
|
#include <isamrpc.h>
|
||||||
#include <modaut.h>
|
|
||||||
#include <scanner.h>
|
#include <scanner.h>
|
||||||
#include <utility.h>
|
#include <utility.h>
|
||||||
#include <xvtility.h>
|
#include <xvtility.h>
|
||||||
@ -383,8 +382,8 @@ bool TDongle::ssa_login(const char* mod)
|
|||||||
_last_update = TDate(TODAY);
|
_last_update = TDate(TODAY);
|
||||||
_year_assist = _last_update.year();
|
_year_assist = _last_update.year();
|
||||||
|
|
||||||
_module.reset(); // Disattiva tutti i moduli
|
_module.reset(); // Disattiva tutti i moduli ...
|
||||||
_module.set(0L); // Attiva la base
|
_module.set(long(BAAUT)); // ... tranne la base
|
||||||
|
|
||||||
const int err = xvt_dongle_sa_login(NULL);
|
const int err = xvt_dongle_sa_login(NULL);
|
||||||
_serno = (err >= 0) ? err : 0xFFFF;
|
_serno = (err >= 0) ? err : 0xFFFF;
|
||||||
@ -403,7 +402,7 @@ bool TDongle::ssa_login(const char* mod)
|
|||||||
{
|
{
|
||||||
const TString& name = module_code2name(m);
|
const TString& name = module_code2name(m);
|
||||||
if (xvt_dongle_sa_test(name) == 0)
|
if (xvt_dongle_sa_test(name) == 0)
|
||||||
_module.set(m);
|
_module.set(long(m));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -188,6 +188,7 @@
|
|||||||
#define LF_LVCONDV 168
|
#define LF_LVCONDV 168
|
||||||
#define LF_LVRCONDV 169
|
#define LF_LVRCONDV 169
|
||||||
#define LF_CONTACT 170
|
#define LF_CONTACT 170
|
||||||
|
#define LF_IVADIFF 171
|
||||||
|
|
||||||
#define LF_EXTERNAL 1000 // Files with id >= are considered to be externals
|
#define LF_EXTERNAL 1000 // Files with id >= are considered to be externals
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
#define GVAUT 21
|
#define GVAUT 21
|
||||||
#define CAAUT 22
|
#define CAAUT 22
|
||||||
#define VDAUT 23
|
#define VDAUT 23
|
||||||
#define AFAUT 24
|
#define ICAUT 24
|
||||||
#define PEAUT 25
|
#define PEAUT 25
|
||||||
#define EPAUT 26
|
#define EPAUT 26
|
||||||
#define TCAUT 27
|
#define TCAUT 27
|
||||||
|
@ -47,6 +47,7 @@
|
|||||||
#define MOV_DNDOC "DNDOC"
|
#define MOV_DNDOC "DNDOC"
|
||||||
#define MOV_DATAINC "DATAINC"
|
#define MOV_DATAINC "DATAINC"
|
||||||
#define MOV_LIQDIFF "LIQDIFF"
|
#define MOV_LIQDIFF "LIQDIFF"
|
||||||
|
#define MOV_IVAXCASSA "IVAXCASSA"
|
||||||
#define MOV_MODPAG "MODPAG"
|
#define MOV_MODPAG "MODPAG"
|
||||||
#define MOV_CONTRATTO "CONTRATTO"
|
#define MOV_CONTRATTO "CONTRATTO"
|
||||||
#define MOV_DATARETT "DATARETT"
|
#define MOV_DATARETT "DATARETT"
|
||||||
|
@ -2534,6 +2534,8 @@ bool TSpreadsheet::notify(int rec, KEY k)
|
|||||||
KEY TSpreadsheet::edit(int n)
|
KEY TSpreadsheet::edit(int n)
|
||||||
{
|
{
|
||||||
str2mask(n);
|
str2mask(n);
|
||||||
|
if (_needs_update == n) // Altrimenti grossi problemi chiamando edit() durante editing cella
|
||||||
|
_needs_update = -1;
|
||||||
KEY k = owner().run_editmask(n);
|
KEY k = owner().run_editmask(n);
|
||||||
if (active())
|
if (active())
|
||||||
{
|
{
|
||||||
|
@ -119,7 +119,7 @@ void TRecord_info::translate_key(TToken_string& t) const// Traduce l'espressione
|
|||||||
int paren2,last,from = 0,to = 0;
|
int paren2,last,from = 0,to = 0;
|
||||||
|
|
||||||
if (paren1 >= 0 && is_sub && is_upper)
|
if (paren1 >= 0 && is_sub && is_upper)
|
||||||
paren1 = ws.find('('); // Trova la seconda parentesi (in questo caso c'e' per forza)
|
paren1 = ws.find('(', paren1+1); // Trova la seconda parentesi (in questo caso c'e' per forza)
|
||||||
|
|
||||||
if (paren1 >= 0) // Trova la prima virgola o parentesi chiusa (per qualsiasi espressione)
|
if (paren1 >= 0) // Trova la prima virgola o parentesi chiusa (per qualsiasi espressione)
|
||||||
{
|
{
|
||||||
@ -170,7 +170,7 @@ void TRecord_info::compute_len()
|
|||||||
for (int f = _recdes.NFields-1; f >= 0; f--)
|
for (int f = _recdes.NFields-1; f >= 0; f--)
|
||||||
_len += _recdes.Fd[f].Len;
|
_len += _recdes.Fd[f].Len;
|
||||||
if (_len > 0)
|
if (_len > 0)
|
||||||
_len++;
|
_len++; // Deleted record flag
|
||||||
}
|
}
|
||||||
|
|
||||||
TToken_string & TRecord_info::relation(int logicnum)
|
TToken_string & TRecord_info::relation(int logicnum)
|
||||||
|
@ -227,6 +227,11 @@ bool TIndwin::setstatus(long l)
|
|||||||
|
|
||||||
_status = l > _max ? _max : l;
|
_status = l > _max ? _max : l;
|
||||||
|
|
||||||
|
if (_can_cancel && !xvt_vobj_is_valid(win()))
|
||||||
|
{
|
||||||
|
_gauge = NULL_WIN;
|
||||||
|
on_key(K_ESC);
|
||||||
|
}
|
||||||
if (_gauge != NULL_WIN)
|
if (_gauge != NULL_WIN)
|
||||||
xvt_sbar_set_pos(_gauge, HVGAUGE, _status);
|
xvt_sbar_set_pos(_gauge, HVGAUGE, _status);
|
||||||
|
|
||||||
|
@ -83,8 +83,9 @@ const TToken_string& TRecordset::sheet_head() const
|
|||||||
case _boolfld: head << 'C'; break;
|
case _boolfld: head << 'C'; break;
|
||||||
case _wordfld:
|
case _wordfld:
|
||||||
case _intfld:
|
case _intfld:
|
||||||
case _longfld:
|
case _longfld: head << 'R'; break;
|
||||||
case _realfld: head << 'R'; break;
|
case _datefld: head << 'D'; break;
|
||||||
|
case _realfld: head << 'V'; break;
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -136,6 +137,7 @@ bool TRecordset::save_as_html(const char* path)
|
|||||||
case _longfld:
|
case _longfld:
|
||||||
case _realfld: out << "align=\"right\""; break;
|
case _realfld: out << "align=\"right\""; break;
|
||||||
case _boolfld: out << "align=\"center\""; break;
|
case _boolfld: out << "align=\"center\""; break;
|
||||||
|
case _datefld: out << "style=\"mso-number-format:\\Short Date\""; break;
|
||||||
default : out << "style=\"mso-number-format:\\@\""; break; // Stringa!
|
default : out << "style=\"mso-number-format:\\@\""; break; // Stringa!
|
||||||
}
|
}
|
||||||
out << " />" << endl;
|
out << " />" << endl;
|
||||||
|
@ -166,7 +166,9 @@ TSheet_control::TSheet_control(
|
|||||||
if (wi.find('M') >= 0)
|
if (wi.find('M') >= 0)
|
||||||
_type[i] = 'M'; else
|
_type[i] = 'M'; else
|
||||||
if (wi.find('C') >= 0)
|
if (wi.find('C') >= 0)
|
||||||
_type[i] = 'C';
|
_type[i] = 'C'; else
|
||||||
|
if (wi.find('D') >= 0)
|
||||||
|
_type[i] = 'D';
|
||||||
|
|
||||||
if (i == 0 && v <= 1)
|
if (i == 0 && v <= 1)
|
||||||
{
|
{
|
||||||
@ -1390,6 +1392,7 @@ bool TSheet::export_handler(TMask_field& f, KEY k)
|
|||||||
switch (ct)
|
switch (ct)
|
||||||
{
|
{
|
||||||
case 'C': col.SetAttr("align", "center"); break;
|
case 'C': col.SetAttr("align", "center"); break;
|
||||||
|
case 'D': col.SetAttr("style", "mso-number-format:\\Short Date"); break;
|
||||||
case 'P':
|
case 'P':
|
||||||
case 'R':
|
case 'R':
|
||||||
case 'V': col.SetAttr("align", "right"); break;
|
case 'V': col.SetAttr("align", "right"); break;
|
||||||
@ -1426,8 +1429,22 @@ bool TSheet::export_handler(TMask_field& f, KEY k)
|
|||||||
if (str.full())
|
if (str.full())
|
||||||
{
|
{
|
||||||
const char ct = s._sheet->column_type(idx);
|
const char ct = s._sheet->column_type(idx);
|
||||||
if (ct == 'P' || ct == 'V')
|
switch (ct)
|
||||||
|
{
|
||||||
|
case 'D':
|
||||||
|
if (str.len() == 8)
|
||||||
|
{
|
||||||
|
const TDate d(atol(str));
|
||||||
|
str = d.stringa();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'P':
|
||||||
|
case 'V':
|
||||||
xvt_str_number_format(str.get_buffer(), str.size());
|
xvt_str_number_format(str.get_buffer(), str.size());
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
xls << str;
|
xls << str;
|
||||||
}
|
}
|
||||||
xls << "</td>" << endl;
|
xls << "</td>" << endl;
|
||||||
@ -1564,7 +1581,7 @@ TCursor_sheet::TCursor_sheet(TCursor* cursor, const char* fields,
|
|||||||
const TFieldtypes tipo = rf->type();
|
const TFieldtypes tipo = rf->type();
|
||||||
if (tipo == _intfld || tipo == _longfld || tipo == _realfld)
|
if (tipo == _intfld || tipo == _longfld || tipo == _realfld)
|
||||||
{
|
{
|
||||||
byte c = sheet().column_type(campo);
|
const byte c = sheet().column_type(campo);
|
||||||
if (c == ' ')
|
if (c == ' ')
|
||||||
sheet().align_column(campo, TRUE);
|
sheet().align_column(campo, TRUE);
|
||||||
}
|
}
|
||||||
|
@ -429,7 +429,19 @@ int TSQL_recordset::on_get_items(int argc, char** values, char** columns)
|
|||||||
{
|
{
|
||||||
const int len = strlen(values[i]);
|
const int len = strlen(values[i]);
|
||||||
if (len > info._width)
|
if (len > info._width)
|
||||||
|
{
|
||||||
info._width = len;
|
info._width = len;
|
||||||
|
if (info._type == _alfafld)
|
||||||
|
{
|
||||||
|
if (len == 8 && atol(values[i]) > 19000000)
|
||||||
|
{
|
||||||
|
info._type = _datefld;
|
||||||
|
info._width = 10;
|
||||||
|
} else
|
||||||
|
if (real::is_real(values[i]))
|
||||||
|
info._type = _realfld;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -779,23 +779,25 @@ COLOR trans_color(
|
|||||||
|
|
||||||
// @doc INTERNAL
|
// @doc INTERNAL
|
||||||
// @func HIDDEN void | set_cursor | Cambia il cursore del mouse
|
// @func HIDDEN void | set_cursor | Cambia il cursore del mouse
|
||||||
HIDDEN void set_cursor(
|
HIDDEN void set_wait_cursor(
|
||||||
bool w) // @parm Indica il tipo di cursore da utilizzare:
|
bool w) // @parm Indica il tipo di cursore da utilizzare:
|
||||||
//
|
//
|
||||||
// @flag TRUE | Cursore a clessidra per le wait
|
// @flag TRUE | Cursore a clessidra per le wait
|
||||||
// @flag FALSE | Cursore a frecca normale
|
// @flag FALSE | Cursore a frecca normale
|
||||||
{
|
{
|
||||||
static int _count = 0;
|
static int _count = 0;
|
||||||
static WINDOW _win = NULL_WIN;
|
// static WINDOW _win = NULL_WIN;
|
||||||
|
|
||||||
if (w)
|
if (w)
|
||||||
{
|
{
|
||||||
if (_count == 0)
|
if (_count == 0)
|
||||||
{
|
{
|
||||||
_win = cur_win();
|
/* _win = cur_win();
|
||||||
if (_win == NULL_WIN)
|
if (_win == NULL_WIN)
|
||||||
_win = TASK_WIN;
|
_win = TASK_WIN;
|
||||||
xvt_win_set_cursor(_win, CURSOR_WAIT);
|
xvt_win_set_cursor(_win, CURSOR_WAIT);
|
||||||
|
*/
|
||||||
|
xvt_win_set_cursor(TASK_WIN, CURSOR_WAIT);
|
||||||
}
|
}
|
||||||
_count++;
|
_count++;
|
||||||
}
|
}
|
||||||
@ -805,20 +807,23 @@ HIDDEN void set_cursor(
|
|||||||
CHECK(_count >= 0, "end_wait without matching begin_wait");
|
CHECK(_count >= 0, "end_wait without matching begin_wait");
|
||||||
if (_count == 0)
|
if (_count == 0)
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
WINDOW cur = cur_win();
|
WINDOW cur = cur_win();
|
||||||
if (cur == _win)
|
if (cur == _win)
|
||||||
xvt_win_set_cursor(_win, CURSOR_ARROW);
|
xvt_win_set_cursor(_win, CURSOR_ARROW);
|
||||||
else
|
else
|
||||||
xvt_win_set_cursor(TASK_WIN, CURSOR_ARROW);
|
xvt_win_set_cursor(TASK_WIN, CURSOR_ARROW);
|
||||||
|
*/
|
||||||
|
xvt_win_set_cursor(TASK_WIN, CURSOR_ARROW);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void begin_wait()
|
void begin_wait()
|
||||||
{ set_cursor(TRUE); }
|
{ set_wait_cursor(true); }
|
||||||
|
|
||||||
void end_wait()
|
void end_wait()
|
||||||
{ set_cursor(FALSE); }
|
{ set_wait_cursor(false); }
|
||||||
|
|
||||||
|
|
||||||
// @doc INTERNAL
|
// @doc INTERNAL
|
||||||
|
Loading…
x
Reference in New Issue
Block a user