Patch level : 10.0 200
Files correlati : ba1.exe Ricompilazione Demo : [ ] Commento : 0001036: installazione cd patch 180 Installando ex novo ed indicando una società esistente di dati su una cartella diversa viene segnalato l'errore ba1.exe in fase di conversione archivi, richiamando da manutenzione archivi la conversione vengono generati gli errori allegati. Nell'area ftp di Aga, cartella Ilaria allego l'area dati SIDA per il test. git-svn-id: svn://10.65.10.50/trunk@17971 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
d22c4e852f
commit
2a3e35827d
@ -128,6 +128,10 @@ TInfo_mask::TInfo_mask()
|
||||
add_row(TR("Ragione Sociale"), f.ragione_sociale());
|
||||
add_row(TR("Valuta"), f.codice_valuta());
|
||||
}
|
||||
else
|
||||
{
|
||||
add_row(TR("Ragione Sociale"), campoini.get("Company"));
|
||||
}
|
||||
|
||||
add_row(TR("Programma"), arg);
|
||||
add_row(TR("Config locale"), campoini.name(), campoini.name().find(' ') >= 0);
|
||||
|
@ -1054,10 +1054,7 @@ const char* TControl::parse_caption(const char* cap, bool& bold, bool& big, COLO
|
||||
else
|
||||
{
|
||||
int r = 0, g = 0, b = 0;
|
||||
sscanf(t, "%d,%d,%d", &r, &g, &b);
|
||||
if (r == 0 && g == 0 && b == 0)
|
||||
color = COLOR_BLACK;
|
||||
else
|
||||
if (sscanf(t, "%d,%d,%d", &r, &g, &b) == 3)
|
||||
color = XVT_MAKE_COLOR(r, g, b);
|
||||
}
|
||||
while (*t && *t != ']') t++;
|
||||
@ -1111,8 +1108,7 @@ bool TControl::is_edit_key(KEY k) const
|
||||
|
||||
bool TControl::event_handler(XI_OBJ* itf, XI_EVENT* xiev)
|
||||
{
|
||||
bool ok = true;
|
||||
return ok;
|
||||
return true;
|
||||
}
|
||||
|
||||
void TControl::change_attrib(unsigned long mask, bool on, XI_OBJ* obj)
|
||||
@ -1123,28 +1119,7 @@ void TControl::change_attrib(unsigned long mask, bool on, XI_OBJ* obj)
|
||||
if (on) attr |= mask;
|
||||
else attr &= ~mask;
|
||||
if (attr != old_attr) // C'e' un vero cambiamento d'attributo
|
||||
{
|
||||
/*
|
||||
#ifndef XI_R4
|
||||
// Se la finestra e' chiusa e il campo e un bottone o e' editabile allora cambia l'attributo
|
||||
// senza ridisegnare il campo, il che provocherebbe problemi di funzionamento degli sheet
|
||||
if (_obj->type == XIT_BTN || _obj->type == XIT_FIELD)
|
||||
{
|
||||
const TWindow* w = (const TWindow*)_obj->itf->app_data;
|
||||
if (!w->is_open())
|
||||
{
|
||||
if (_obj->type == XIT_FIELD)
|
||||
((STX_DATA*)_obj->v.field->stx)->attrib = attr;
|
||||
else
|
||||
_obj->v.btn->attrib = attr;
|
||||
return;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
*/
|
||||
// Usa tranquillamente il metodo ortodosso
|
||||
xi_set_attrib(obj, attr);
|
||||
}
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
@ -383,45 +383,33 @@ bool get_tabapp(const char * tabname, TString& app)
|
||||
// @doc INTERNAL
|
||||
|
||||
// @func Ritorna una Token_string con in nome dell'indice
|
||||
void get_idx_names(
|
||||
int logicnum, // @parm Numero logico del file di cui riconoscere l'indice
|
||||
TToken_string& i_names) // @parm Token_string in cui inserire il nome dell'indice
|
||||
int get_table_names(
|
||||
int logicnum, // @parm Numero logico del file di cui riconoscere l'indice
|
||||
TToken_string& i_names, // @parm Token_string in cui inserire il nome dell'indice
|
||||
int mode)
|
||||
|
||||
// @comm Ritorna il nome con il prefisso corrente
|
||||
{
|
||||
const long c = DB_getconf();
|
||||
CHECKD(c & 1, "Bad index file format ", c);
|
||||
|
||||
TFilename f = prefix().get_filename(logicnum);
|
||||
/*
|
||||
if (c & 1) f.ext("cdx");
|
||||
if (c & 4) f.ext("mdx");
|
||||
i_names.cut(0);
|
||||
i_names.add(f);
|
||||
f.ext("");
|
||||
f.rtrim(1);
|
||||
if ((c & 2) || (c & 8)) // DBIII or CLIPPER format, returns f_name + .cgp, f_nameX + .n{d|t}x
|
||||
|
||||
if (mode & 1)
|
||||
i_names = f;
|
||||
|
||||
if (mode & 2)
|
||||
{
|
||||
TTrec r;
|
||||
r.get(logicnum);
|
||||
for (int j=1; j<=r.keys();j++)
|
||||
{
|
||||
TString xx=f.name();
|
||||
if (xx.len()<8)
|
||||
f << ('0' + j);
|
||||
else
|
||||
f[8] = ('0' + j);
|
||||
if (c & 2) // CLIPPER
|
||||
f.ext("ndx");
|
||||
else // DBIII
|
||||
f.ext("ntx");
|
||||
i_names.add(f);
|
||||
}
|
||||
f.ext("cdx");
|
||||
i_names.add(f);
|
||||
}
|
||||
i_names.restart();
|
||||
*/
|
||||
f.ext("cdx");
|
||||
i_names = f;
|
||||
|
||||
if (mode & 4)
|
||||
{
|
||||
f.ext("fpt");
|
||||
if (f.exist())
|
||||
i_names.add(f);
|
||||
}
|
||||
|
||||
return i_names.items();
|
||||
}
|
||||
|
||||
// Converte un errore di codebase in un errore isam
|
||||
@ -484,18 +472,17 @@ HIDDEN int error_codes_rb[] = {-1,-1,_isreinsert,-1,-1,_islocked,-1,_isalropen,_
|
||||
}
|
||||
|
||||
// Used also by varrec
|
||||
bool rec_has_memo(const RecDes* rd)
|
||||
bool rec_has_memo(const RecDes& rd)
|
||||
{
|
||||
CHECKD(rd->NFields <= MaxFields, "Tracciato con troppi campi ", rd->NFields);
|
||||
for( int i = rd->NFields - 1; i >= 0; i--)
|
||||
if (rd->Fd[i].TypeF == _memofld)
|
||||
return TRUE;
|
||||
return FALSE;
|
||||
for( int i = rd.NFields - 1; i >= 0; i--)
|
||||
if (rd.Fd[i].TypeF == _memofld)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
HIDDEN bool lf_has_memo(int lffile)
|
||||
{
|
||||
return rec_has_memo(&prefix().get_recdes(lffile));
|
||||
return rec_has_memo(prefix().get_recdes(lffile));
|
||||
}
|
||||
|
||||
HIDDEN void browse_null(char *start, int nc)
|
||||
@ -2137,14 +2124,10 @@ int TSystemisamfile::update(
|
||||
TString s(256); s << TR("Aggiornamento") << ' ' << fname;
|
||||
|
||||
const TRecnotype nitems = items();
|
||||
#ifdef DBG
|
||||
TProgind p(nitems > 0 ? nitems : 1, s, true, true);
|
||||
#else
|
||||
TProgind p(nitems > 0 ? nitems : 1, s, false, true);
|
||||
#endif
|
||||
TProgind p(nitems > 0 ? nitems : 1, s, is_power_station(), true);
|
||||
|
||||
TExtrectype nrec(wrec);
|
||||
|
||||
|
||||
const int nflds = curr().items();
|
||||
TArray infld, outfld;
|
||||
int j;
|
||||
@ -2155,7 +2138,7 @@ int TSystemisamfile::update(
|
||||
if (nrec.exist(fld_name))
|
||||
outfld.add(new TRecfield(nrec, fld_name), j);
|
||||
}
|
||||
|
||||
const bool memo_inside = rec_has_memo(nrec.rec_des());
|
||||
for (int errore = first(); errore == NOERR; errore = next())
|
||||
{
|
||||
if (!p.addstatus(1))
|
||||
@ -2167,7 +2150,7 @@ int TSystemisamfile::update(
|
||||
|
||||
if (curr().isdeleted())
|
||||
continue;
|
||||
|
||||
|
||||
nrec.zero();
|
||||
for (j = outfld.last(); j >= 0; j = outfld.pred(j))
|
||||
{
|
||||
@ -2196,7 +2179,7 @@ int TSystemisamfile::update(
|
||||
browse_null(nrec.string(),lenr);
|
||||
memcpy(DB_getrecord(fhnd),nrec.string(),lenr);
|
||||
err=DB_add(fhnd);
|
||||
if ( err == NOERR && nrec.has_memo())
|
||||
if ( err == NOERR && memo_inside)
|
||||
nrec.write_memo(ishandle, DB_recno(fhnd));
|
||||
if (err != NOERR)
|
||||
err=get_error(err);
|
||||
@ -2879,7 +2862,7 @@ int TSystemisamfile::dump(
|
||||
TRecnotype i = 0;
|
||||
const TRecnotype nitems = items();
|
||||
|
||||
s.format(FR("Esportazione archivio %s"), filename());
|
||||
s.format(FR("Esportazione %s"), filename());
|
||||
TProgind p(nitems, s, TRUE, TRUE, 70);
|
||||
TString s1, sfld;
|
||||
|
||||
@ -3087,7 +3070,7 @@ int TSystemisamfile::dump(
|
||||
TRecnotype i = 0;
|
||||
const TRecnotype nitems = items();
|
||||
|
||||
s.format(FR("Esportazione archivio %s"), filename());
|
||||
s.format(FR("Esportazione %s"), filename());
|
||||
TProgind p(nitems, s, TRUE, TRUE, 70);
|
||||
TString s1, sfld;
|
||||
|
||||
@ -3356,16 +3339,15 @@ void TRectype::write_memo(TIsam_handle file, const TRecnotype recno)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
CHECKD(recno >= 0, "Maiale! Non fare le GO con _recno < 0: ", recno);
|
||||
TCodeb_handle cb_handle = prefix().get_handle(file);
|
||||
const TCodeb_handle cb_handle = prefix().get_handle(file);
|
||||
DB_go( cb_handle, recno);
|
||||
for( int i = _memo_data->last( ); i > 0; i = _memo_data->pred( i ) )
|
||||
{
|
||||
if (_memo_data->is_dirty(i))
|
||||
DB_memowrite( cb_handle, r.Fd[ i ].Name, _memo_data->row( i ) );
|
||||
}
|
||||
*this = (const char *) DB_getrecord(cb_handle);
|
||||
*this = (const char*)DB_getrecord(cb_handle);
|
||||
init_memo(recno, file);
|
||||
}
|
||||
|
||||
|
@ -853,7 +853,7 @@ for (int _e##isamfile = isamfile.first(); \
|
||||
_e##isamfile = isamfile.next())
|
||||
|
||||
|
||||
void get_idx_names(int logicnum, TToken_string& i_names);
|
||||
int get_table_names(int logicnum, TToken_string& i_names, int mode); // 1=dbf, 2=cdx, 4=fpt
|
||||
void set_autoload_new_files(bool on);
|
||||
|
||||
#endif // __ISAM_
|
@ -340,7 +340,7 @@ public:
|
||||
// @cmember Forza la visualizzazione della pagina p
|
||||
void show_page(int p);
|
||||
// @cmember Abilita/disabilita una pagina e tutte le successive
|
||||
void enable_page(byte p, bool on = TRUE);
|
||||
void enable_page(byte p, bool on = true);
|
||||
// @cmember Disabilita una pagina e tutte le successive (chiama <mf TMask::enable_page>)
|
||||
void disable_page(byte p)
|
||||
{ enable_page(p, false); }
|
||||
|
@ -4,6 +4,7 @@
|
||||
#include <agasys.h>
|
||||
#include <diction.h>
|
||||
#include <progind.h>
|
||||
#include <real.h>
|
||||
#include <utility.h>
|
||||
|
||||
// skstream.h
|
||||
@ -796,12 +797,16 @@ bool TSocketClient::HttpIsRedirectedServer(CONNID id, TString & http_server, TFi
|
||||
|
||||
static const TString& bytes2str(long b)
|
||||
{
|
||||
TString& tmp = get_tmp_string(50);
|
||||
TString& tmp = get_tmp_string(24);
|
||||
if (b > 0)
|
||||
{
|
||||
const double mega = 1024*1024;
|
||||
const long mega = 1024*1024;
|
||||
if (b >= mega)
|
||||
tmp.format("%.2lf MBytes", double(b)/mega);
|
||||
{
|
||||
real m(b); m /= mega;
|
||||
tmp = m.stringe(-1, 2); // Numero in formato digeribile da Excel (segue impostazionei internazionali)
|
||||
tmp << " MBytes";
|
||||
}
|
||||
else
|
||||
{
|
||||
const long kappa = 1024;
|
||||
@ -869,6 +874,7 @@ bool TSocketClient::HttpGetFile(CONNID id, const char* remote, const char* local
|
||||
else
|
||||
{
|
||||
TProgind pi(size, strpi, true, true);
|
||||
pi.set_caption(TR("Trasferimento in corso..."));
|
||||
while (!cur_socket->eof() && !pi.iscancelled())
|
||||
{
|
||||
const int nchars = min(buf.size(), size - total);
|
||||
|
@ -869,8 +869,7 @@ const TFilename& TFile_manager::get_filename(TIsam_handle id) const
|
||||
TFile_manager::TFile_manager()
|
||||
: _open_files(0)
|
||||
{
|
||||
TConfig prawin(CONFIG_INSTALL, "Main");
|
||||
_max_open_files = prawin.get_int("MaxHandles", NULL, -1, 16);
|
||||
_max_open_files = xvt_sys_get_profile_int(NULL, "Main", "MaxHandles", 32);
|
||||
if (_max_open_files < 16)
|
||||
_max_open_files = 16;
|
||||
else
|
||||
@ -1082,7 +1081,7 @@ bool TPrefix::exist(long codditta) const
|
||||
return s.exist();
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
bool TPrefix::test(const char* s) const
|
||||
@ -1139,8 +1138,11 @@ bool TPrefix::set_codditta(long codditta, bool force)
|
||||
set(s, force);
|
||||
CPutPref(_prefix);
|
||||
if (_firm)
|
||||
{
|
||||
_firm->read(codditta);
|
||||
return TRUE;
|
||||
xvt_sys_set_profile_string(NULL, "Main", "Company", _firm->get(NDT_RAGSOC));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
@ -459,10 +459,7 @@ public:
|
||||
// @base public | TString
|
||||
class TFilename : public TString
|
||||
// @author:(INTERNAL) Guido
|
||||
|
||||
{
|
||||
|
||||
|
||||
// @access Public Member
|
||||
public:
|
||||
// @cmember Costruttore
|
||||
|
@ -220,15 +220,13 @@ class TExtrectype : public TVariable_rectype
|
||||
RecDes _rd;
|
||||
|
||||
protected: // TRectype
|
||||
virtual const RecDes& rec_des() const { return _rd; }
|
||||
virtual bool auto_virtual_fields() const { return TRUE; }
|
||||
virtual bool auto_virtual_fields() const { return true; }
|
||||
|
||||
public:
|
||||
|
||||
virtual const RecDes& rec_des() const { return _rd; }
|
||||
virtual word class_id() const { return CLASS_EXT_RECTYPE; }
|
||||
virtual bool is_kind_of(word id) const { return id == class_id() || TVariable_rectype::is_kind_of(id); }
|
||||
|
||||
|
||||
TExtrectype(const TTrec& r); // Costruisce il record a partire da r
|
||||
virtual ~TExtrectype() ;
|
||||
};
|
||||
|
@ -4,10 +4,11 @@
|
||||
#include <controls.h>
|
||||
#include <mask.h>
|
||||
#include <prefix.h>
|
||||
#include <statbar.h>
|
||||
#include <urldefid.h>
|
||||
#include <utility.h>
|
||||
|
||||
#include <statbar.h>
|
||||
#include <nditte.h>
|
||||
|
||||
short CHARX = 8;
|
||||
short CHARY = 14;
|
||||
@ -557,12 +558,13 @@ void xvtil_statbar_set(
|
||||
t.add(text);
|
||||
if (prefix_valid() && main_app().get_firm() > 0)
|
||||
{
|
||||
t.add(prefix().firm().get("RAGSOC"));
|
||||
t.add(prefix().firm().get(NDT_RAGSOC));
|
||||
}
|
||||
else
|
||||
{
|
||||
const TDate oggi(TODAY);
|
||||
t.add(oggi.string());
|
||||
TString80 ragsoc;
|
||||
xvt_sys_get_profile_string(NULL, "Main", "Company", "", ragsoc.get_buffer(), ragsoc.size());
|
||||
t.add(ragsoc);
|
||||
}
|
||||
t.add(main_app().title());
|
||||
if (def)
|
||||
|
Loading…
x
Reference in New Issue
Block a user