Patch level : XX.282
Files correlati : Ricompilazione Demo : [ ] Commento : Riportata la versione 01.05 patch 282 git-svn-id: svn://10.65.10.50/trunk@8021 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
a0a36d6b33
commit
583a7074cb
@ -519,18 +519,6 @@ void TApplication::set_perms()
|
||||
}
|
||||
}
|
||||
|
||||
void TApplication::open_files(int logicnum, ...)
|
||||
{
|
||||
va_list marker;
|
||||
va_start(marker, logicnum);
|
||||
while (logicnum > 0)
|
||||
{
|
||||
CHECKD(_used_files.objptr(logicnum) == NULL, "File gia' aperto: ", logicnum);
|
||||
_used_files.add(new TLocalisamfile(logicnum), logicnum);
|
||||
logicnum = va_arg(marker, int);
|
||||
}
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Legge il parametro /uUTENTE e lo toglie dalla lista
|
||||
|
@ -10,21 +10,6 @@
|
||||
|
||||
#include <statbar.h>
|
||||
|
||||
/* COLOR MASK_BACK_COLOR = COLOR_DKCYAN;
|
||||
COLOR MASK_LIGHT_COLOR = COLOR_CYAN;
|
||||
COLOR MASK_DARK_COLOR = COLOR_GRAY;
|
||||
COLOR BTN_BACK_COLOR = COLOR_LTGRAY;
|
||||
COLOR BTN_LIGHT_COLOR = COLOR_WHITE;
|
||||
COLOR BTN_DARK_COLOR = COLOR_GRAY;
|
||||
COLOR TOOL_BACK_COLOR = COLOR_GRAY;
|
||||
COLOR NORMAL_COLOR = COLOR_BLACK;
|
||||
COLOR NORMAL_BACK_COLOR = COLOR_LTGRAY;
|
||||
COLOR DISABLED_COLOR = COLOR_GRAY;
|
||||
COLOR DISABLED_BACK_COLOR = MASK_BACK_COLOR;
|
||||
COLOR FOCUS_COLOR = NORMAL_COLOR;
|
||||
COLOR FOCUS_BACK_COLOR = COLOR_CYAN;
|
||||
BOOLEAN CAMPI_SCAVATI = FALSE;
|
||||
BOOLEAN AUTOSELECT = FALSE; */
|
||||
COLOR MASK_BACK_COLOR = COLOR_LTGRAY;
|
||||
COLOR MASK_LIGHT_COLOR = COLOR_WHITE;
|
||||
COLOR MASK_DARK_COLOR = COLOR_GRAY;
|
||||
@ -38,8 +23,8 @@ COLOR DISABLED_COLOR = COLOR_DKGRAY;
|
||||
COLOR DISABLED_BACK_COLOR = MASK_BACK_COLOR;
|
||||
COLOR FOCUS_COLOR = NORMAL_COLOR;
|
||||
COLOR FOCUS_BACK_COLOR = COLOR_YELLOW;
|
||||
BOOLEAN CAMPI_SCAVATI = FALSE;
|
||||
BOOLEAN AUTOSELECT = FALSE;
|
||||
bool CAMPI_SCAVATI = FALSE;
|
||||
bool AUTOSELECT = FALSE;
|
||||
|
||||
#ifndef STX_DATA
|
||||
// Very deep hacking
|
||||
|
@ -430,7 +430,6 @@ void TDate::addyear(int nyear)
|
||||
_val = makedata(wday, wmonth, wyear);
|
||||
}
|
||||
|
||||
|
||||
bool TDate::isdate(const char* s)
|
||||
{
|
||||
const int len = strlen(s);
|
||||
@ -475,16 +474,6 @@ bool TDate::ok() const
|
||||
return _val > 0;
|
||||
}
|
||||
|
||||
TDate& TDate::operator +=(long nday)
|
||||
{
|
||||
const long d = day() + nday;
|
||||
if (d > 0 && d < 29)
|
||||
_val += nday;
|
||||
else
|
||||
_val = julian2date(date2julian() + nday);
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
|
247
include/form.cpp
247
include/form.cpp
@ -1,7 +1,5 @@
|
||||
#define __FORM_CPP
|
||||
|
||||
#include <ctype.h>
|
||||
#include <stdlib.h>
|
||||
#include <applicat.h>
|
||||
#include <currency.h>
|
||||
#include <defmask.h>
|
||||
@ -613,7 +611,7 @@ bool TForm_item::update()
|
||||
{
|
||||
if (_prompt.right(1) == "#")
|
||||
{
|
||||
TString256 prompt(_prompt);
|
||||
TString prompt(_prompt);
|
||||
for (int i = prompt.len()-2; i >= 0; i--)
|
||||
if (prompt[i] != '#') break;
|
||||
prompt.cut(i+1);
|
||||
@ -644,19 +642,19 @@ void TForm_item::print_on(TToken_string& row) const
|
||||
|
||||
const TString& TForm_item::picture() const
|
||||
{
|
||||
NFCHECK("Can't get the picture of a generic form item!");
|
||||
return EMPTY_STRING;
|
||||
CHECK(0, "Can't get the picture of a generic form item!");
|
||||
return _prompt;
|
||||
}
|
||||
|
||||
void TForm_item::set_picture(const char*)
|
||||
{
|
||||
NFCHECK("Can't set the picture of a generic form item!");
|
||||
CHECK(0, "Can't set the picture of a generic form item!");
|
||||
}
|
||||
|
||||
TToken_string& TForm_item::memo_info()
|
||||
{
|
||||
NFCHECK("Can't get a memo of a generic form item!");
|
||||
return (TToken_string&)EMPTY_STRING;
|
||||
CHECK(0, "Can't get a memo of a generic form item!");
|
||||
return TToken_string();
|
||||
}
|
||||
|
||||
short TForm_item::x()
|
||||
@ -838,7 +836,6 @@ bool TForm_subsection::print_qtitle()
|
||||
|
||||
bool TForm_subsection::parse(TScanner& s)
|
||||
{
|
||||
|
||||
_section->add_subsection(this);
|
||||
name(s.pop());
|
||||
//_width = s.integer(); // ...unused
|
||||
@ -953,8 +950,7 @@ bool TForm_subsection::print_body(sec_print_mode showfields)
|
||||
if (cur->is_first_match(_file_id))
|
||||
{
|
||||
bool again;
|
||||
do
|
||||
{
|
||||
do {
|
||||
form().match_result(_file_id);
|
||||
ok |= _ssec.update_and_print(showfields,at_newpage);
|
||||
_ssec.set_repeat_count(++i);
|
||||
@ -962,8 +958,8 @@ bool TForm_subsection::print_body(sec_print_mode showfields)
|
||||
again=form().last_match_result(_file_id);
|
||||
else
|
||||
again= cur->next_match(_file_id);
|
||||
} while (again);
|
||||
ok |= (_ssec.repeat_count()>0); // (ovvero, sempre true: se c'e' un first match)
|
||||
} while (again);
|
||||
ok |=_ssec.repeat_count()>0; // (ovvero, sempre true: se c'e' un first match)
|
||||
}
|
||||
// _ssec.set_repeat_count(0);
|
||||
}
|
||||
@ -973,84 +969,6 @@ bool TForm_subsection::print_body(sec_print_mode showfields)
|
||||
}
|
||||
|
||||
|
||||
bool TForm_subsection::edit(TMask& m)
|
||||
{
|
||||
// mask con nome e bottone edit contents / annulla
|
||||
TMask mu("ba2100u");
|
||||
mu.set(F_CAPTION, _name);
|
||||
mu.set(F_WIDTH, _width);
|
||||
mu.set(F_HEIGHT, _height);
|
||||
mu.set(F_X, _x);
|
||||
mu.set(F_Y, _y);
|
||||
|
||||
mu.set_handler(F_BUT_FILE1, but_file_handler_sub);
|
||||
|
||||
if (_file_id != -1)
|
||||
{
|
||||
// set file description
|
||||
form().rel_desc().set_cur_file(_file_id);
|
||||
TString80 desc; desc << form().rel_desc().file_desc();
|
||||
mu.set(F_FILE1, desc);
|
||||
}
|
||||
|
||||
KEY k;
|
||||
|
||||
// vedere se e' nuova etc.
|
||||
// gestire aggiunta / modifica menu
|
||||
|
||||
while ((k = mu.run()) != K_ESC)
|
||||
{
|
||||
if (mu.field(F_CAPTION).dirty())
|
||||
_name = mu.get(F_CAPTION);
|
||||
|
||||
if (mu.field(F_WIDTH).dirty())
|
||||
_width = mu.get_int(F_WIDTH);
|
||||
|
||||
if (mu.field(F_HEIGHT).dirty())
|
||||
_height = mu.get_int(F_HEIGHT);
|
||||
|
||||
if (mu.field(F_X).dirty())
|
||||
_x = mu.get_int(F_X);
|
||||
|
||||
if (mu.field(F_Y).dirty())
|
||||
_y = mu.get_int(F_Y);
|
||||
|
||||
if (mu.field(F_FILE1).dirty())
|
||||
{
|
||||
if (mu.get(F_FILE1).empty())
|
||||
_file_id = -1;
|
||||
else
|
||||
_file_id = form().rel_desc().file_num();
|
||||
}
|
||||
|
||||
if (k == K_INS)
|
||||
_ssec.edit(_name);
|
||||
else if (k == K_DEL)
|
||||
{
|
||||
// remove myself
|
||||
|
||||
}
|
||||
else if (k == K_ENTER)
|
||||
break;
|
||||
}
|
||||
|
||||
return k != K_ESC;
|
||||
}
|
||||
|
||||
|
||||
void TForm_subsection::print_on(ostream& out) const
|
||||
{
|
||||
out << "SEZIONE " << _name << ' ' << _width << ' ' << _height
|
||||
<< ' ' << _x << ' ' << _y;
|
||||
|
||||
if (_file_id != -1)
|
||||
out << " FILE " << _file_id;
|
||||
out << "\n";
|
||||
|
||||
for (word i = 0; i < _ssec.fields(); i++)
|
||||
out << _ssec.field(i);
|
||||
out << "\nEND" << "\n";
|
||||
}
|
||||
|
||||
// @mfunc Abilita (default) o disabilita la stampa di tutti i campi della sottosezione
|
||||
/*void TForm_subsection::show(bool on)
|
||||
@ -1159,7 +1077,7 @@ void TForm_string::put_paragraph(const char* s)
|
||||
|
||||
#ifdef DBG
|
||||
if (plen>0 && *s)
|
||||
NFCHECK("Nei form la stampa di un item su più righe con prompt ora non pone più il prompt isolato sulla prima riga ma allinea a sinistra del prompt ");
|
||||
yesno_box("Nei form la stampa di un item su più righe con prompt ora non pone più il prompt isolato sulla prima riga ma allinea a sinistra del prompt ");
|
||||
#endif
|
||||
for (int i=0; (s = p.get()) != NULL && i < h; i++)
|
||||
{
|
||||
@ -1464,57 +1382,25 @@ const char* TForm_number::example() const
|
||||
///////////////////////////////////////////////////////////
|
||||
class TForm_currency : public TForm_number
|
||||
{
|
||||
TString16 _driver_id;
|
||||
TForm_item* _driver;
|
||||
|
||||
protected: // TForm_string
|
||||
virtual const char* class_name() const { return "VALUTA"; }
|
||||
virtual bool parse_head(TScanner& scanner);
|
||||
virtual bool parse_item(TScanner& scanner);
|
||||
virtual bool update();
|
||||
|
||||
const char* codval();
|
||||
|
||||
public:
|
||||
virtual TObject* dup() const;
|
||||
TForm_currency(TPrint_section* section);
|
||||
TForm_currency(TPrint_section* section) : TForm_number(section) {}
|
||||
virtual ~TForm_currency() {}
|
||||
};
|
||||
///////////////////////////////////////////////////////////
|
||||
// TForm_currency
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
bool TForm_currency::parse_head(TScanner& scanner)
|
||||
{
|
||||
return TForm_item::parse_head(scanner);
|
||||
}
|
||||
|
||||
bool TForm_currency::parse_item(TScanner& scanner)
|
||||
{
|
||||
if (scanner.key() == "DR") // DRIVENBY
|
||||
{
|
||||
_driver_id = scanner.pop();
|
||||
return TRUE;
|
||||
}
|
||||
return TForm_number::parse_item(scanner);
|
||||
}
|
||||
|
||||
const char* TForm_currency::codval()
|
||||
{
|
||||
if (_driver == NULL)
|
||||
{
|
||||
if (_driver_id.empty())
|
||||
return "_FIRM";
|
||||
_driver = &find_field(_driver_id);
|
||||
}
|
||||
return _driver->get();
|
||||
}
|
||||
|
||||
TObject* TForm_currency::dup() const
|
||||
{
|
||||
TForm_currency *fn = new TForm_currency(_section);
|
||||
copy_to_form_item(fn);
|
||||
fn->_driver_id = _driver_id;
|
||||
return fn;
|
||||
}
|
||||
|
||||
@ -1524,43 +1410,25 @@ bool TForm_currency::update()
|
||||
{
|
||||
TForm_item::update();
|
||||
|
||||
int nm = 0;
|
||||
if (_message.objptr(1) != NULL)
|
||||
{
|
||||
const real oldn(get());
|
||||
if (oldn.is_zero())
|
||||
nm =1;
|
||||
}
|
||||
const real oldn(get());
|
||||
const int nm = (_message.objptr(1) != NULL && oldn.is_zero()) ? 1 : 0;
|
||||
|
||||
do_message(nm);
|
||||
|
||||
const real n(get());
|
||||
TCurrency curr(n, codval(), ZERO, _flag.price != 0);
|
||||
real n(get());
|
||||
TCurrency curr(n, "_FIRM");
|
||||
curr.set_price(_flag.price != 0);
|
||||
const TString& codval = form().get_curr_codval();
|
||||
if (codval.not_empty())
|
||||
curr.change_value(codval);
|
||||
|
||||
const TString& pic = picture();
|
||||
TString80 str;
|
||||
if (n.is_zero())
|
||||
{
|
||||
if (pic.not_empty() && pic.right(1) != "#")
|
||||
str = curr.string(TRUE);
|
||||
}
|
||||
else
|
||||
{
|
||||
const bool dotted = pic.empty() || pic.find('.') >= 0;
|
||||
str = curr.string(dotted);
|
||||
}
|
||||
str.right_just(width() - prompt().len());
|
||||
put_paragraph(str);
|
||||
// Niente apply_format(), la picture viene ignorata per i TForm_currency
|
||||
const bool dotted = picture().empty() || picture().find('.') >= 0;
|
||||
put_paragraph(curr.string(dotted));
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
TForm_currency::TForm_currency(TPrint_section* section)
|
||||
: TForm_number(section), _driver(NULL)
|
||||
{ }
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TForm_date
|
||||
@ -2346,28 +2214,27 @@ bool TPrint_section::update()
|
||||
return ok;
|
||||
}
|
||||
|
||||
|
||||
TForm_item& TPrint_section::find_field(short id) const
|
||||
{
|
||||
TForm_item * f = find_field_everywhere(id,this);
|
||||
if (f) return *f;
|
||||
NFCHECK("Can't find item with id %d", id);
|
||||
yesnofatal_box("Can't find item with id %d", id);
|
||||
return field(0);
|
||||
}
|
||||
|
||||
// Ricerca i campi verso l'alto:
|
||||
// prima la sezione attuale, poi le sezioni sopra
|
||||
TForm_item* TPrint_section::find_field_everywhere(short id,const TPrint_section *starting_section) const
|
||||
TForm_item *TPrint_section::find_field_everywhere(short id,const TPrint_section *starting_section) const
|
||||
{
|
||||
TForm_item * f ;
|
||||
for(word i = 0; i < fields(); i++)
|
||||
{
|
||||
f = &field(i);
|
||||
if (f->id() == id)
|
||||
return f;
|
||||
if (f->id() == id) return f;
|
||||
}
|
||||
// look into the section above ("father" )
|
||||
if (section_above() && section_above() != starting_section)
|
||||
{
|
||||
if (section_above() && section_above()!=starting_section) {
|
||||
f=section_above()->find_field_everywhere(id,this);
|
||||
if (f)
|
||||
return f;
|
||||
@ -2376,12 +2243,11 @@ TForm_item* TPrint_section::find_field_everywhere(short id,const TPrint_section
|
||||
for (int j = 0; j < subsections(); j++)
|
||||
{
|
||||
const TPrint_section &bs=subsection(j)->printsection();
|
||||
if (&bs!=starting_section)
|
||||
{
|
||||
f = bs.find_field_everywhere(id,this);
|
||||
if (&bs!=starting_section) {
|
||||
f=bs.find_field_everywhere(id,this);
|
||||
if (f)
|
||||
return f;
|
||||
}
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
@ -2390,7 +2256,7 @@ TForm_item& TPrint_section::find_field(const char *sec_name) const
|
||||
{
|
||||
TForm_item * f = find_field_everywhere(sec_name,this);
|
||||
if (f) return *f;
|
||||
NFCHECK("Can't find item with id %s", sec_name);
|
||||
yesnofatal_box("Can't find item with id %s", sec_name);
|
||||
return field(0);
|
||||
}
|
||||
|
||||
@ -2399,15 +2265,13 @@ TForm_item& TPrint_section::find_field(const char *sec_name) const
|
||||
TForm_item *TPrint_section::find_field_everywhere(const char *sec_name,const TPrint_section *starting_section) const
|
||||
{
|
||||
// search here
|
||||
for (int j = 0; j < subsections(); j++)
|
||||
{
|
||||
for (int j = 0; j < subsections(); j++) {
|
||||
const char *n=subsection(j)->name();
|
||||
if (strcmp(n,sec_name)==0)
|
||||
return subsection(j);
|
||||
}
|
||||
// search down
|
||||
for (j = 0; j < subsections(); j++)
|
||||
{
|
||||
for (j = 0; j < subsections(); j++) {
|
||||
TForm_item *it=subsection(j)->printsection().find_field_everywhere(sec_name,starting_section);
|
||||
if (it)
|
||||
return it;
|
||||
@ -2549,14 +2413,14 @@ bool TForm::parse_sortedjoin(TScanner& scanner)
|
||||
if (filter.empty() && sortexp.empty())
|
||||
yesnofatal_box("Sort senza espressioni di ordinamento o filtri");
|
||||
TRelation * sortrel=new TRelation(atoi(j));
|
||||
while (scanner.popkey() != "JO" )
|
||||
while (ok && scanner.popkey() != "JO" )
|
||||
{
|
||||
if (scanner.key() == "US") // USING keyword
|
||||
{
|
||||
TString16 subj(scanner.pop()); // File or table
|
||||
parse_join_param(scanner,sortrel,subj,atoi(j));
|
||||
} else
|
||||
NFCHECK("Token non riconosciuto in SORT:%s",scanner.key());
|
||||
yesnofatal_box("Token non riconosciuto in SORT:%s",scanner.key());
|
||||
}
|
||||
|
||||
int to = 0;
|
||||
@ -3237,15 +3101,37 @@ void TForm::arrange_form()
|
||||
TString str_pos;
|
||||
TMask m("ba2100c");
|
||||
|
||||
#if XVT_OS == XVT_OS_WIN || XVT_OS == XVT_OS_NT
|
||||
/*
|
||||
char defPrinter[80];
|
||||
char szDevice[50];
|
||||
|
||||
// get default printer driver
|
||||
GetProfileString ("windows", "device", ",,,", defPrinter, sizeof(defPrinter));
|
||||
TToken_string pdev (defPrinter, ',');
|
||||
GetProfileString ("devices", pdev, "", szDevice, sizeof(szDevice));
|
||||
pdev.add(szDevice);
|
||||
device = pdev.get(2);
|
||||
device = device.left(4); //Legge solo LPTx...
|
||||
*/
|
||||
#else
|
||||
TString device(printer.printername());
|
||||
FILE* lpt = fopen(device,"w");
|
||||
|
||||
if (lpt == NULL)
|
||||
fatal_box("Impossibile aprire il device %s.",device);
|
||||
#endif
|
||||
|
||||
// _ipy viene assunto uguale per entrambi i posizionamneti
|
||||
str_pos = "\017"; // Questo e' 15 in ottale...
|
||||
for (i=1; i < _ipy; i++) str_pos << "\n";
|
||||
|
||||
os_open_spool_row(printer().printername());
|
||||
os_spool_row(str_pos);
|
||||
os_close_spool_row();
|
||||
|
||||
#if XVT_OS == XVT_OS_WIN || XVT_OS == XVT_OS_NT
|
||||
os_spool_row(str_pos);
|
||||
#else
|
||||
fprintf(lpt,"%s",(const char*) str_pos);
|
||||
fflush(lpt); // Salta le righe...
|
||||
fclose(lpt);
|
||||
#endif
|
||||
str_pos = ""; //Azzera la stringa di posizionamento
|
||||
for (i=1; i < _ipx; i++) str_pos << " "; //Aggiunge gli spazi necessari...
|
||||
if (_ipx > 0)
|
||||
@ -3258,9 +3144,16 @@ void TForm::arrange_form()
|
||||
// TString bspc; bspc.fill('\b',str_pos.len()); // Questi servono per tornare indietro...
|
||||
do
|
||||
{
|
||||
os_open_spool_row(printer().printername());
|
||||
#if XVT_OS == XVT_OS_WIN || XVT_OS == XVT_OS_NT
|
||||
os_spool_row(str_pos);
|
||||
os_close_spool_row();
|
||||
#else
|
||||
lpt = fopen(device,"w");
|
||||
if (lpt == NULL) fatal_box("Impossibile aprire il device %s.",device);
|
||||
// fprintf(lpt,"%s",(const char*) bspc);
|
||||
fprintf(lpt,"%s\r",(const char*) str_pos);
|
||||
fflush(lpt);
|
||||
fclose(lpt);
|
||||
#endif
|
||||
} while (m.run() == K_ESC); // cicla sulla stampa posizionamento...
|
||||
/* const int h = height(odd_page);
|
||||
str_pos.cut(0);
|
||||
@ -4555,7 +4448,7 @@ void TForm::match_result(int file,int val)
|
||||
info.match_number=((TForm_skip_info &)_skip_info[file]).match_number;
|
||||
if (val)
|
||||
info.match_number++;
|
||||
info.match_result = val != 0;
|
||||
info.match_result=val;
|
||||
_skip_info.add(info,file);
|
||||
}
|
||||
}
|
||||
|
@ -1768,7 +1768,7 @@ int TSystemisamfile::update(
|
||||
if (toconvert)
|
||||
fname = filename();
|
||||
|
||||
if (toconvert) && (dir.eox() > 0L || fname.exist()))
|
||||
if (toconvert && (dir.eox() > 0L || fname.exist()))
|
||||
{
|
||||
TRecnotype ni = 0L;
|
||||
TFilename tmpfname; tmpfname.temp("tf");
|
||||
@ -2198,10 +2198,10 @@ int TSystemisamfile::load(
|
||||
s2[strlen(s2) - 1] = '\0';
|
||||
}
|
||||
if (curr().type((const TString&) fld[j]) == _memofld)
|
||||
sfld = esc(s2);
|
||||
s1 = esc(s2);
|
||||
else
|
||||
sfld = s2;
|
||||
put((const TString&) fld[j], sfld);
|
||||
s1 = s2;
|
||||
put((const TString&) fld[j], s1);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2409,7 +2409,7 @@ void TRectype::init(int logicnum)
|
||||
if (wdir.is_com())
|
||||
wdir.get(_logicnum, _nolock, _comdir, _sysdirop);
|
||||
_length = wdir.len();
|
||||
has_memo_fld = _length > 0 && lf_has_memo(_logicnum);
|
||||
has_memo_fld = _length > 0 && rec_has_memo(rec_des());
|
||||
}
|
||||
_rec = new char [ _length ];
|
||||
*_tab = '\0';
|
||||
|
@ -1178,7 +1178,6 @@ const char* TEditable_field::prompt() const
|
||||
return _prompt ? _prompt->caption() : "";
|
||||
}
|
||||
|
||||
<<<<<<< maskfld.cpp
|
||||
|
||||
TOperable_field* TEditable_field::add_driver(short id)
|
||||
{
|
||||
@ -1966,7 +1965,7 @@ int TBrowse::input_fields()
|
||||
{
|
||||
if (*fld != '"' && strchr(fld, '@') == NULL)
|
||||
{
|
||||
TMask_field& f = field(f.atodlg(fld));
|
||||
TMask_field& f = field(field().atodlg(fld));
|
||||
if (f.active() && f.is_editable())
|
||||
inp++;
|
||||
}
|
||||
|
@ -459,9 +459,6 @@ public:
|
||||
// @cmember Esegue il messaggio <p n>-esimo sul campo
|
||||
bool do_message(int n);
|
||||
|
||||
// @cmember Ritorna il messaggio <p n>-esimo del campo
|
||||
TToken_string* message(int m, bool crea = FALSE);
|
||||
|
||||
// @cmember Controlla se il campo ha un messaggio
|
||||
virtual bool has_message() const
|
||||
{ return _message != NULL; }
|
||||
|
@ -223,8 +223,6 @@ public:
|
||||
|
||||
// @cmember Controlla se l'utente ha salvato la disposizione delle colonne
|
||||
bool user_saved_columns_order() const;
|
||||
// @cmember Setta la disposizione delle colonne
|
||||
void set_columns_order(TToken_string* order = NULL);
|
||||
|
||||
// @cmember Setta la larghezza della colonna
|
||||
void set_column_width( const int col, const int width ) const;
|
||||
|
@ -619,6 +619,36 @@ BOOL TSocketClient::ReadLine(DWORD, TString& str)
|
||||
|
||||
BOOL TSocketClient::HttpGetFile(const char* remote, const char* local)
|
||||
{
|
||||
if (!cur_socket->is_open())
|
||||
return FALSE;
|
||||
|
||||
BOOL ok = FALSE;
|
||||
|
||||
TString buf(4096);
|
||||
buf << "GET " << remote << " HTTP/1.0\r\n\r\n";
|
||||
|
||||
cur_socket->sync();
|
||||
cur_socket->write(buf, buf.len());
|
||||
cur_socket->flush();
|
||||
if (cur_socket->good())
|
||||
{
|
||||
const clock_t start = clock();
|
||||
|
||||
long size = 0;
|
||||
for (int r = 0; !cur_socket->eof(); r++)
|
||||
{
|
||||
cur_socket->getline(buf.get_buffer(), buf.size(), '\n');
|
||||
if (buf.blank())
|
||||
break;
|
||||
if (r == 0 && buf.find("404") > 0)
|
||||
return FALSE; // File not found
|
||||
if (buf.compare("Content-length:", 15, TRUE) == 0)
|
||||
{
|
||||
const int colon = buf.find(':');
|
||||
size = atol(buf.mid(colon+1));
|
||||
}
|
||||
}
|
||||
ofstream outfile(local, ios::out | ios::binary);
|
||||
if (outfile.good())
|
||||
{
|
||||
TString msg;
|
||||
|
@ -314,6 +314,7 @@ int TFile_info::open_low(bool exclusive, bool index)
|
||||
err = get_error(_handle);
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
int TFile_info::close_low()
|
||||
{
|
||||
|
@ -1289,7 +1289,7 @@ bool TPrint_application::print_one (
|
||||
to = atoi ((const char *) ttt.get ());
|
||||
}
|
||||
// get field val
|
||||
const TRectype& f = _cur->curr(ln);
|
||||
TLocalisamfile &f = _cur->file(ln);
|
||||
if (ft->_flags & TRANS_FLAG)
|
||||
{
|
||||
_Transfield *tr = NULL;
|
||||
@ -1325,16 +1325,16 @@ bool TPrint_application::print_one (
|
||||
else if (ft->_flags & NUMBER_FLAG)
|
||||
{
|
||||
TString80 pict;
|
||||
real r(f.get(fn));
|
||||
real r(f.get (fn));
|
||||
|
||||
bool isreal = f.type(fn) == _realfld;
|
||||
bool isreal = f.curr ().type (fn) == _realfld;
|
||||
|
||||
if (ft->_flags & PICTURE_FLAG)
|
||||
pict = pic;
|
||||
else if (!(ft->_flags & DEC_FLAG) && _picture.not_empty() && isreal)
|
||||
else if (!(ft->_flags & DEC_FLAG) && *_picture && isreal)
|
||||
pict = _picture;
|
||||
|
||||
if (pict.not_empty())
|
||||
if (pict.len () > 0)
|
||||
toprint = r.string (pict);
|
||||
else if (ft->_flags & DEC_FLAG)
|
||||
toprint = r.string (ft->_size, ft->_dec);
|
||||
@ -1346,7 +1346,7 @@ bool TPrint_application::print_one (
|
||||
}
|
||||
else if (ft->_flags & STRING_FLAG)
|
||||
{
|
||||
toprint = f.get (fn);
|
||||
toprint = f.curr().get (fn);
|
||||
// perform string extraction
|
||||
if (from != -1)
|
||||
toprint = toprint.sub (from, to);
|
||||
@ -1453,8 +1453,6 @@ bool TPrint_application::print_one (
|
||||
break;
|
||||
}
|
||||
case 'r':
|
||||
{
|
||||
if (pr->_fmt.len () == 2 && _picture.not_empty())
|
||||
{
|
||||
const real& rrr = *(real*)pr->_what;
|
||||
const char* fff = pr->_fmt;
|
||||
@ -1520,7 +1518,7 @@ bool TPrint_application::print_one (
|
||||
break;
|
||||
}
|
||||
//if (_auto_ff && last /* _maxrox */ < printer().formlen ())
|
||||
if (_auto_ff && printer().rows_left() > 0)
|
||||
if (_auto_ff && prn.rows_left() > 0)
|
||||
printer().formfeed ();
|
||||
delete pos;
|
||||
|
||||
|
@ -452,7 +452,7 @@ real& real::operator /= (const real & b)
|
||||
|
||||
bool real::is_zero () const
|
||||
{
|
||||
return diszero (ptr ());
|
||||
return (bool) diszero (ptr ());
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
@ -155,11 +155,6 @@ class real : public TObject
|
||||
// @cmember:(INTERNAL) Numero reale
|
||||
DEC _dec;
|
||||
|
||||
// @access Protected Member
|
||||
protected:
|
||||
// @cmember Permette di stampare l'oggetto
|
||||
virtual void print_on(ostream& out) const;
|
||||
|
||||
// @access Protected Member
|
||||
protected:
|
||||
// @cmember Permette di stampare l'oggetto
|
||||
|
@ -1563,7 +1563,6 @@ void TRelation_application::mask2ini(const TMask& m, TConfig& ini)
|
||||
|
||||
ini.set("Firm", get_firm(), "Transaction");
|
||||
|
||||
TString16 defpar; defpar << get_relation()->lfile().num();
|
||||
TString str(80);
|
||||
for (int f = 0; f < m.fields(); f++)
|
||||
{
|
||||
|
@ -920,7 +920,6 @@ static bool _last_created = FALSE;
|
||||
// @rdesc Ritorna l'handle del file aperto
|
||||
FILE* TCursor::open_index(
|
||||
bool create) // @parm Indica se creare l'indice nel caso manchi (default FALSE)
|
||||
<<<<<<< relation.cpp
|
||||
{
|
||||
_last_created = create;
|
||||
if (_indexname.empty())
|
||||
|
@ -108,7 +108,6 @@ void operator delete(
|
||||
}
|
||||
|
||||
#endif // FOXPRO
|
||||
#endif // DBG
|
||||
|
||||
|
||||
|
||||
|
@ -265,7 +265,7 @@ TString& TString::operator <<(const TObject& obj)
|
||||
ostrstream out(spark.get_buffer(), spark.size());
|
||||
obj.print_on(out);
|
||||
out << ends;
|
||||
return operator <<(spork);
|
||||
return operator <<(spark);
|
||||
}
|
||||
|
||||
|
||||
|
@ -82,7 +82,6 @@ TString & TVariable_field::get() const
|
||||
{
|
||||
CHECK(_rec, "NULL Record pointer with an expression");
|
||||
_rec->set_variables(_e);
|
||||
_e->setvar(i, _rec->get(_e->varname(i)));
|
||||
v = _e->as_string();
|
||||
}
|
||||
else
|
||||
|
@ -126,12 +126,6 @@ public:
|
||||
// @cmember Setta l'<p n>.esime entry della paletta al colore <p c>
|
||||
void set_clut(byte n, COLOR c);
|
||||
|
||||
// @cmember Legge il colore del pixel
|
||||
COLOR get_pixel(int x, int y) const;
|
||||
|
||||
// @cmember Setta il colore del pixel
|
||||
void set_pixel(int x, int y, COLOR c);
|
||||
|
||||
// @cmember Costruttore. Viene passato il nome del file
|
||||
TImage(const char* n);
|
||||
// @cmember Costruttore. Viene passato l'identificatore dell'immagine sul file di risorsa
|
||||
@ -231,8 +225,6 @@ public:
|
||||
// @cmember Ritorna il descrittore della finestra
|
||||
virtual WINDOW win() const
|
||||
{ return _win; }
|
||||
// @cmember Ritorna il descrittore della finestra padre
|
||||
WINDOW parent() const;
|
||||
|
||||
// @cmember Gestisce la pressione del tasto
|
||||
virtual bool on_key(KEY)
|
||||
|
Loading…
x
Reference in New Issue
Block a user