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();
|
||||
}
|
||||
|
||||
TRecnotype TFuzzy_browse::find(const TString& raw_val)
|
||||
TRecnotype TFuzzy_browse::find_magic(const TString& magic_val, double& best)
|
||||
{
|
||||
const TBrowse& b = *field().browse();
|
||||
TCursor& c = cursor();
|
||||
|
||||
TString80 magic_val = raw_val;
|
||||
clean_string(magic_val);
|
||||
|
||||
c = 0L;
|
||||
TRecnotype recno = -1;
|
||||
TRectype& curr = c.curr();
|
||||
@ -1663,11 +1660,11 @@ TRecnotype TFuzzy_browse::find(const TString& raw_val)
|
||||
return recno;
|
||||
|
||||
recno = -1;
|
||||
best = 0.66;
|
||||
|
||||
const int testlen = magic_val.len()+1;
|
||||
if (testlen > 3)
|
||||
{
|
||||
double best = 0.66;
|
||||
for (c = 0L; c.ok(); ++c)
|
||||
{
|
||||
TString80 val = curr.get(_altfld);
|
||||
@ -1690,6 +1687,40 @@ TRecnotype TFuzzy_browse::find(const TString& raw_val)
|
||||
|
||||
if (recno >= 0)
|
||||
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;
|
||||
}
|
||||
|
||||
@ -1760,7 +1791,8 @@ KEY TFuzzy_browse::run()
|
||||
if (k == K_ENTER)
|
||||
{
|
||||
c = sheet.selected();
|
||||
field().set(c.curr().get(_outfld));
|
||||
const TFieldref fr(_outfld, 0);
|
||||
field().set(fr.read(*c.relation()));
|
||||
}
|
||||
return k;
|
||||
}
|
||||
|
@ -299,6 +299,7 @@ class TFuzzy_browse : public TBrowse_button
|
||||
protected:
|
||||
virtual void parse_input(TScanner& scanner) {}
|
||||
virtual void parse_output(TScanner& scanner) {}
|
||||
long find_magic(const TString& magic_val, double& best);
|
||||
|
||||
protected:
|
||||
const int _altkey;
|
||||
|
@ -22,7 +22,7 @@ ab Analisi di bilancio
|
||||
gv Gestione versamenti F24
|
||||
ca Contabilita' Analitica
|
||||
vd Vendita al dettaglio
|
||||
af Autoformazione
|
||||
ic IVA per cassa
|
||||
pe Preventivazione
|
||||
ep Effetti Passivi
|
||||
tc Trasferimento altre Contabilita'
|
||||
|
@ -4,7 +4,6 @@
|
||||
#include <config.h>
|
||||
#include <dongle.h>
|
||||
#include <isamrpc.h>
|
||||
#include <modaut.h>
|
||||
#include <scanner.h>
|
||||
#include <utility.h>
|
||||
#include <xvtility.h>
|
||||
@ -383,8 +382,8 @@ bool TDongle::ssa_login(const char* mod)
|
||||
_last_update = TDate(TODAY);
|
||||
_year_assist = _last_update.year();
|
||||
|
||||
_module.reset(); // Disattiva tutti i moduli
|
||||
_module.set(0L); // Attiva la base
|
||||
_module.reset(); // Disattiva tutti i moduli ...
|
||||
_module.set(long(BAAUT)); // ... tranne la base
|
||||
|
||||
const int err = xvt_dongle_sa_login(NULL);
|
||||
_serno = (err >= 0) ? err : 0xFFFF;
|
||||
@ -403,7 +402,7 @@ bool TDongle::ssa_login(const char* mod)
|
||||
{
|
||||
const TString& name = module_code2name(m);
|
||||
if (xvt_dongle_sa_test(name) == 0)
|
||||
_module.set(m);
|
||||
_module.set(long(m));
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -188,6 +188,7 @@
|
||||
#define LF_LVCONDV 168
|
||||
#define LF_LVRCONDV 169
|
||||
#define LF_CONTACT 170
|
||||
#define LF_IVADIFF 171
|
||||
|
||||
#define LF_EXTERNAL 1000 // Files with id >= are considered to be externals
|
||||
|
||||
|
@ -25,7 +25,7 @@
|
||||
#define GVAUT 21
|
||||
#define CAAUT 22
|
||||
#define VDAUT 23
|
||||
#define AFAUT 24
|
||||
#define ICAUT 24
|
||||
#define PEAUT 25
|
||||
#define EPAUT 26
|
||||
#define TCAUT 27
|
||||
|
@ -47,6 +47,7 @@
|
||||
#define MOV_DNDOC "DNDOC"
|
||||
#define MOV_DATAINC "DATAINC"
|
||||
#define MOV_LIQDIFF "LIQDIFF"
|
||||
#define MOV_IVAXCASSA "IVAXCASSA"
|
||||
#define MOV_MODPAG "MODPAG"
|
||||
#define MOV_CONTRATTO "CONTRATTO"
|
||||
#define MOV_DATARETT "DATARETT"
|
||||
|
@ -2534,6 +2534,8 @@ bool TSpreadsheet::notify(int rec, KEY k)
|
||||
KEY TSpreadsheet::edit(int n)
|
||||
{
|
||||
str2mask(n);
|
||||
if (_needs_update == n) // Altrimenti grossi problemi chiamando edit() durante editing cella
|
||||
_needs_update = -1;
|
||||
KEY k = owner().run_editmask(n);
|
||||
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;
|
||||
|
||||
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)
|
||||
{
|
||||
@ -170,7 +170,7 @@ void TRecord_info::compute_len()
|
||||
for (int f = _recdes.NFields-1; f >= 0; f--)
|
||||
_len += _recdes.Fd[f].Len;
|
||||
if (_len > 0)
|
||||
_len++;
|
||||
_len++; // Deleted record flag
|
||||
}
|
||||
|
||||
TToken_string & TRecord_info::relation(int logicnum)
|
||||
|
@ -227,6 +227,11 @@ bool TIndwin::setstatus(long 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)
|
||||
xvt_sbar_set_pos(_gauge, HVGAUGE, _status);
|
||||
|
||||
|
@ -83,8 +83,9 @@ const TToken_string& TRecordset::sheet_head() const
|
||||
case _boolfld: head << 'C'; break;
|
||||
case _wordfld:
|
||||
case _intfld:
|
||||
case _longfld:
|
||||
case _realfld: head << 'R'; break;
|
||||
case _longfld: head << 'R'; break;
|
||||
case _datefld: head << 'D'; break;
|
||||
case _realfld: head << 'V'; break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
@ -136,6 +137,7 @@ bool TRecordset::save_as_html(const char* path)
|
||||
case _longfld:
|
||||
case _realfld: out << "align=\"right\""; 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!
|
||||
}
|
||||
out << " />" << endl;
|
||||
|
@ -166,7 +166,9 @@ TSheet_control::TSheet_control(
|
||||
if (wi.find('M') >= 0)
|
||||
_type[i] = 'M'; else
|
||||
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)
|
||||
{
|
||||
@ -1390,6 +1392,7 @@ bool TSheet::export_handler(TMask_field& f, KEY k)
|
||||
switch (ct)
|
||||
{
|
||||
case 'C': col.SetAttr("align", "center"); break;
|
||||
case 'D': col.SetAttr("style", "mso-number-format:\\Short Date"); break;
|
||||
case 'P':
|
||||
case 'R':
|
||||
case 'V': col.SetAttr("align", "right"); break;
|
||||
@ -1426,8 +1429,22 @@ bool TSheet::export_handler(TMask_field& f, KEY k)
|
||||
if (str.full())
|
||||
{
|
||||
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());
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
xls << str;
|
||||
}
|
||||
xls << "</td>" << endl;
|
||||
@ -1564,7 +1581,7 @@ TCursor_sheet::TCursor_sheet(TCursor* cursor, const char* fields,
|
||||
const TFieldtypes tipo = rf->type();
|
||||
if (tipo == _intfld || tipo == _longfld || tipo == _realfld)
|
||||
{
|
||||
byte c = sheet().column_type(campo);
|
||||
const byte c = sheet().column_type(campo);
|
||||
if (c == ' ')
|
||||
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]);
|
||||
if (len > info._width)
|
||||
{
|
||||
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
|
||||
// @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:
|
||||
//
|
||||
// @flag TRUE | Cursore a clessidra per le wait
|
||||
// @flag FALSE | Cursore a frecca normale
|
||||
{
|
||||
static int _count = 0;
|
||||
static WINDOW _win = NULL_WIN;
|
||||
// static WINDOW _win = NULL_WIN;
|
||||
|
||||
if (w)
|
||||
{
|
||||
if (_count == 0)
|
||||
{
|
||||
_win = cur_win();
|
||||
/* _win = cur_win();
|
||||
if (_win == NULL_WIN)
|
||||
_win = TASK_WIN;
|
||||
xvt_win_set_cursor(_win, CURSOR_WAIT);
|
||||
*/
|
||||
xvt_win_set_cursor(TASK_WIN, CURSOR_WAIT);
|
||||
}
|
||||
_count++;
|
||||
}
|
||||
@ -805,20 +807,23 @@ HIDDEN void set_cursor(
|
||||
CHECK(_count >= 0, "end_wait without matching begin_wait");
|
||||
if (_count == 0)
|
||||
{
|
||||
/*
|
||||
WINDOW cur = cur_win();
|
||||
if (cur == _win)
|
||||
xvt_win_set_cursor(_win, CURSOR_ARROW);
|
||||
else
|
||||
xvt_win_set_cursor(TASK_WIN, CURSOR_ARROW);
|
||||
*/
|
||||
xvt_win_set_cursor(TASK_WIN, CURSOR_ARROW);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void begin_wait()
|
||||
{ set_cursor(TRUE); }
|
||||
{ set_wait_cursor(true); }
|
||||
|
||||
void end_wait()
|
||||
{ set_cursor(FALSE); }
|
||||
{ set_wait_cursor(false); }
|
||||
|
||||
|
||||
// @doc INTERNAL
|
||||
|
Loading…
x
Reference in New Issue
Block a user