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
|
// @doc EXTERNAL
|
||||||
|
|
||||||
// @mfunc Legge il parametro /uUTENTE e lo toglie dalla lista
|
// @mfunc Legge il parametro /uUTENTE e lo toglie dalla lista
|
||||||
|
@ -10,21 +10,6 @@
|
|||||||
|
|
||||||
#include <statbar.h>
|
#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_BACK_COLOR = COLOR_LTGRAY;
|
||||||
COLOR MASK_LIGHT_COLOR = COLOR_WHITE;
|
COLOR MASK_LIGHT_COLOR = COLOR_WHITE;
|
||||||
COLOR MASK_DARK_COLOR = COLOR_GRAY;
|
COLOR MASK_DARK_COLOR = COLOR_GRAY;
|
||||||
@ -38,8 +23,8 @@ COLOR DISABLED_COLOR = COLOR_DKGRAY;
|
|||||||
COLOR DISABLED_BACK_COLOR = MASK_BACK_COLOR;
|
COLOR DISABLED_BACK_COLOR = MASK_BACK_COLOR;
|
||||||
COLOR FOCUS_COLOR = NORMAL_COLOR;
|
COLOR FOCUS_COLOR = NORMAL_COLOR;
|
||||||
COLOR FOCUS_BACK_COLOR = COLOR_YELLOW;
|
COLOR FOCUS_BACK_COLOR = COLOR_YELLOW;
|
||||||
BOOLEAN CAMPI_SCAVATI = FALSE;
|
bool CAMPI_SCAVATI = FALSE;
|
||||||
BOOLEAN AUTOSELECT = FALSE;
|
bool AUTOSELECT = FALSE;
|
||||||
|
|
||||||
#ifndef STX_DATA
|
#ifndef STX_DATA
|
||||||
// Very deep hacking
|
// Very deep hacking
|
||||||
|
@ -430,7 +430,6 @@ void TDate::addyear(int nyear)
|
|||||||
_val = makedata(wday, wmonth, wyear);
|
_val = makedata(wday, wmonth, wyear);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool TDate::isdate(const char* s)
|
bool TDate::isdate(const char* s)
|
||||||
{
|
{
|
||||||
const int len = strlen(s);
|
const int len = strlen(s);
|
||||||
@ -475,16 +474,6 @@ bool TDate::ok() const
|
|||||||
return _val > 0;
|
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
|
// @doc EXTERNAL
|
||||||
|
|
||||||
|
239
include/form.cpp
239
include/form.cpp
@ -1,7 +1,5 @@
|
|||||||
#define __FORM_CPP
|
#define __FORM_CPP
|
||||||
|
|
||||||
#include <ctype.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <applicat.h>
|
#include <applicat.h>
|
||||||
#include <currency.h>
|
#include <currency.h>
|
||||||
#include <defmask.h>
|
#include <defmask.h>
|
||||||
@ -613,7 +611,7 @@ bool TForm_item::update()
|
|||||||
{
|
{
|
||||||
if (_prompt.right(1) == "#")
|
if (_prompt.right(1) == "#")
|
||||||
{
|
{
|
||||||
TString256 prompt(_prompt);
|
TString prompt(_prompt);
|
||||||
for (int i = prompt.len()-2; i >= 0; i--)
|
for (int i = prompt.len()-2; i >= 0; i--)
|
||||||
if (prompt[i] != '#') break;
|
if (prompt[i] != '#') break;
|
||||||
prompt.cut(i+1);
|
prompt.cut(i+1);
|
||||||
@ -644,19 +642,19 @@ void TForm_item::print_on(TToken_string& row) const
|
|||||||
|
|
||||||
const TString& TForm_item::picture() const
|
const TString& TForm_item::picture() const
|
||||||
{
|
{
|
||||||
NFCHECK("Can't get the picture of a generic form item!");
|
CHECK(0, "Can't get the picture of a generic form item!");
|
||||||
return EMPTY_STRING;
|
return _prompt;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TForm_item::set_picture(const char*)
|
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()
|
TToken_string& TForm_item::memo_info()
|
||||||
{
|
{
|
||||||
NFCHECK("Can't get a memo of a generic form item!");
|
CHECK(0, "Can't get a memo of a generic form item!");
|
||||||
return (TToken_string&)EMPTY_STRING;
|
return TToken_string();
|
||||||
}
|
}
|
||||||
|
|
||||||
short TForm_item::x()
|
short TForm_item::x()
|
||||||
@ -838,7 +836,6 @@ bool TForm_subsection::print_qtitle()
|
|||||||
|
|
||||||
bool TForm_subsection::parse(TScanner& s)
|
bool TForm_subsection::parse(TScanner& s)
|
||||||
{
|
{
|
||||||
|
|
||||||
_section->add_subsection(this);
|
_section->add_subsection(this);
|
||||||
name(s.pop());
|
name(s.pop());
|
||||||
//_width = s.integer(); // ...unused
|
//_width = s.integer(); // ...unused
|
||||||
@ -953,8 +950,7 @@ bool TForm_subsection::print_body(sec_print_mode showfields)
|
|||||||
if (cur->is_first_match(_file_id))
|
if (cur->is_first_match(_file_id))
|
||||||
{
|
{
|
||||||
bool again;
|
bool again;
|
||||||
do
|
do {
|
||||||
{
|
|
||||||
form().match_result(_file_id);
|
form().match_result(_file_id);
|
||||||
ok |= _ssec.update_and_print(showfields,at_newpage);
|
ok |= _ssec.update_and_print(showfields,at_newpage);
|
||||||
_ssec.set_repeat_count(++i);
|
_ssec.set_repeat_count(++i);
|
||||||
@ -963,7 +959,7 @@ bool TForm_subsection::print_body(sec_print_mode showfields)
|
|||||||
else
|
else
|
||||||
again= cur->next_match(_file_id);
|
again= cur->next_match(_file_id);
|
||||||
} while (again);
|
} while (again);
|
||||||
ok |= (_ssec.repeat_count()>0); // (ovvero, sempre true: se c'e' un first match)
|
ok |=_ssec.repeat_count()>0; // (ovvero, sempre true: se c'e' un first match)
|
||||||
}
|
}
|
||||||
// _ssec.set_repeat_count(0);
|
// _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
|
// @mfunc Abilita (default) o disabilita la stampa di tutti i campi della sottosezione
|
||||||
/*void TForm_subsection::show(bool on)
|
/*void TForm_subsection::show(bool on)
|
||||||
@ -1159,7 +1077,7 @@ void TForm_string::put_paragraph(const char* s)
|
|||||||
|
|
||||||
#ifdef DBG
|
#ifdef DBG
|
||||||
if (plen>0 && *s)
|
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
|
#endif
|
||||||
for (int i=0; (s = p.get()) != NULL && i < h; i++)
|
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
|
class TForm_currency : public TForm_number
|
||||||
{
|
{
|
||||||
TString16 _driver_id;
|
|
||||||
TForm_item* _driver;
|
|
||||||
|
|
||||||
protected: // TForm_string
|
protected: // TForm_string
|
||||||
virtual const char* class_name() const { return "VALUTA"; }
|
virtual const char* class_name() const { return "VALUTA"; }
|
||||||
virtual bool parse_head(TScanner& scanner);
|
virtual bool parse_head(TScanner& scanner);
|
||||||
virtual bool parse_item(TScanner& scanner);
|
|
||||||
virtual bool update();
|
virtual bool update();
|
||||||
|
|
||||||
const char* codval();
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual TObject* dup() const;
|
virtual TObject* dup() const;
|
||||||
TForm_currency(TPrint_section* section);
|
TForm_currency(TPrint_section* section) : TForm_number(section) {}
|
||||||
virtual ~TForm_currency() {}
|
virtual ~TForm_currency() {}
|
||||||
};
|
};
|
||||||
///////////////////////////////////////////////////////////
|
|
||||||
// TForm_currency
|
|
||||||
///////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
bool TForm_currency::parse_head(TScanner& scanner)
|
bool TForm_currency::parse_head(TScanner& scanner)
|
||||||
{
|
{
|
||||||
return TForm_item::parse_head(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
|
TObject* TForm_currency::dup() const
|
||||||
{
|
{
|
||||||
TForm_currency *fn = new TForm_currency(_section);
|
TForm_currency *fn = new TForm_currency(_section);
|
||||||
copy_to_form_item(fn);
|
copy_to_form_item(fn);
|
||||||
fn->_driver_id = _driver_id;
|
|
||||||
return fn;
|
return fn;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1524,43 +1410,25 @@ bool TForm_currency::update()
|
|||||||
{
|
{
|
||||||
TForm_item::update();
|
TForm_item::update();
|
||||||
|
|
||||||
int nm = 0;
|
|
||||||
if (_message.objptr(1) != NULL)
|
|
||||||
{
|
|
||||||
const real oldn(get());
|
const real oldn(get());
|
||||||
if (oldn.is_zero())
|
const int nm = (_message.objptr(1) != NULL && oldn.is_zero()) ? 1 : 0;
|
||||||
nm =1;
|
|
||||||
}
|
|
||||||
do_message(nm);
|
do_message(nm);
|
||||||
|
|
||||||
const real n(get());
|
real n(get());
|
||||||
TCurrency curr(n, codval(), ZERO, _flag.price != 0);
|
TCurrency curr(n, "_FIRM");
|
||||||
|
curr.set_price(_flag.price != 0);
|
||||||
const TString& codval = form().get_curr_codval();
|
const TString& codval = form().get_curr_codval();
|
||||||
if (codval.not_empty())
|
if (codval.not_empty())
|
||||||
curr.change_value(codval);
|
curr.change_value(codval);
|
||||||
|
// Niente apply_format(), la picture viene ignorata per i TForm_currency
|
||||||
const TString& pic = picture();
|
const bool dotted = picture().empty() || picture().find('.') >= 0;
|
||||||
TString80 str;
|
put_paragraph(curr.string(dotted));
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
TForm_currency::TForm_currency(TPrint_section* section)
|
|
||||||
: TForm_number(section), _driver(NULL)
|
|
||||||
{ }
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
// TForm_date
|
// TForm_date
|
||||||
@ -2346,28 +2214,27 @@ bool TPrint_section::update()
|
|||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
TForm_item& TPrint_section::find_field(short id) const
|
TForm_item& TPrint_section::find_field(short id) const
|
||||||
{
|
{
|
||||||
TForm_item * f = find_field_everywhere(id,this);
|
TForm_item * f = find_field_everywhere(id,this);
|
||||||
if (f) return *f;
|
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);
|
return field(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ricerca i campi verso l'alto:
|
// Ricerca i campi verso l'alto:
|
||||||
// prima la sezione attuale, poi le sezioni sopra
|
// 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 ;
|
TForm_item * f ;
|
||||||
for(word i = 0; i < fields(); i++)
|
for(word i = 0; i < fields(); i++)
|
||||||
{
|
{
|
||||||
f = &field(i);
|
f = &field(i);
|
||||||
if (f->id() == id)
|
if (f->id() == id) return f;
|
||||||
return f;
|
|
||||||
}
|
}
|
||||||
// look into the section above ("father" )
|
// 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);
|
f=section_above()->find_field_everywhere(id,this);
|
||||||
if (f)
|
if (f)
|
||||||
return f;
|
return f;
|
||||||
@ -2376,9 +2243,8 @@ TForm_item* TPrint_section::find_field_everywhere(short id,const TPrint_section
|
|||||||
for (int j = 0; j < subsections(); j++)
|
for (int j = 0; j < subsections(); j++)
|
||||||
{
|
{
|
||||||
const TPrint_section &bs=subsection(j)->printsection();
|
const TPrint_section &bs=subsection(j)->printsection();
|
||||||
if (&bs!=starting_section)
|
if (&bs!=starting_section) {
|
||||||
{
|
f=bs.find_field_everywhere(id,this);
|
||||||
f = bs.find_field_everywhere(id,this);
|
|
||||||
if (f)
|
if (f)
|
||||||
return f;
|
return f;
|
||||||
}
|
}
|
||||||
@ -2390,7 +2256,7 @@ TForm_item& TPrint_section::find_field(const char *sec_name) const
|
|||||||
{
|
{
|
||||||
TForm_item * f = find_field_everywhere(sec_name,this);
|
TForm_item * f = find_field_everywhere(sec_name,this);
|
||||||
if (f) return *f;
|
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);
|
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
|
TForm_item *TPrint_section::find_field_everywhere(const char *sec_name,const TPrint_section *starting_section) const
|
||||||
{
|
{
|
||||||
// search here
|
// search here
|
||||||
for (int j = 0; j < subsections(); j++)
|
for (int j = 0; j < subsections(); j++) {
|
||||||
{
|
|
||||||
const char *n=subsection(j)->name();
|
const char *n=subsection(j)->name();
|
||||||
if (strcmp(n,sec_name)==0)
|
if (strcmp(n,sec_name)==0)
|
||||||
return subsection(j);
|
return subsection(j);
|
||||||
}
|
}
|
||||||
// search down
|
// 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);
|
TForm_item *it=subsection(j)->printsection().find_field_everywhere(sec_name,starting_section);
|
||||||
if (it)
|
if (it)
|
||||||
return it;
|
return it;
|
||||||
@ -2549,14 +2413,14 @@ bool TForm::parse_sortedjoin(TScanner& scanner)
|
|||||||
if (filter.empty() && sortexp.empty())
|
if (filter.empty() && sortexp.empty())
|
||||||
yesnofatal_box("Sort senza espressioni di ordinamento o filtri");
|
yesnofatal_box("Sort senza espressioni di ordinamento o filtri");
|
||||||
TRelation * sortrel=new TRelation(atoi(j));
|
TRelation * sortrel=new TRelation(atoi(j));
|
||||||
while (scanner.popkey() != "JO" )
|
while (ok && scanner.popkey() != "JO" )
|
||||||
{
|
{
|
||||||
if (scanner.key() == "US") // USING keyword
|
if (scanner.key() == "US") // USING keyword
|
||||||
{
|
{
|
||||||
TString16 subj(scanner.pop()); // File or table
|
TString16 subj(scanner.pop()); // File or table
|
||||||
parse_join_param(scanner,sortrel,subj,atoi(j));
|
parse_join_param(scanner,sortrel,subj,atoi(j));
|
||||||
} else
|
} else
|
||||||
NFCHECK("Token non riconosciuto in SORT:%s",scanner.key());
|
yesnofatal_box("Token non riconosciuto in SORT:%s",scanner.key());
|
||||||
}
|
}
|
||||||
|
|
||||||
int to = 0;
|
int to = 0;
|
||||||
@ -3237,15 +3101,37 @@ void TForm::arrange_form()
|
|||||||
TString str_pos;
|
TString str_pos;
|
||||||
TMask m("ba2100c");
|
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
|
// _ipy viene assunto uguale per entrambi i posizionamneti
|
||||||
str_pos = "\017"; // Questo e' 15 in ottale...
|
str_pos = "\017"; // Questo e' 15 in ottale...
|
||||||
for (i=1; i < _ipy; i++) str_pos << "\n";
|
for (i=1; i < _ipy; i++) str_pos << "\n";
|
||||||
|
#if XVT_OS == XVT_OS_WIN || XVT_OS == XVT_OS_NT
|
||||||
os_open_spool_row(printer().printername());
|
|
||||||
os_spool_row(str_pos);
|
os_spool_row(str_pos);
|
||||||
os_close_spool_row();
|
#else
|
||||||
|
fprintf(lpt,"%s",(const char*) str_pos);
|
||||||
|
fflush(lpt); // Salta le righe...
|
||||||
|
fclose(lpt);
|
||||||
|
#endif
|
||||||
str_pos = ""; //Azzera la stringa di posizionamento
|
str_pos = ""; //Azzera la stringa di posizionamento
|
||||||
for (i=1; i < _ipx; i++) str_pos << " "; //Aggiunge gli spazi necessari...
|
for (i=1; i < _ipx; i++) str_pos << " "; //Aggiunge gli spazi necessari...
|
||||||
if (_ipx > 0)
|
if (_ipx > 0)
|
||||||
@ -3258,9 +3144,16 @@ void TForm::arrange_form()
|
|||||||
// TString bspc; bspc.fill('\b',str_pos.len()); // Questi servono per tornare indietro...
|
// TString bspc; bspc.fill('\b',str_pos.len()); // Questi servono per tornare indietro...
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
os_open_spool_row(printer().printername());
|
#if XVT_OS == XVT_OS_WIN || XVT_OS == XVT_OS_NT
|
||||||
os_spool_row(str_pos);
|
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...
|
} while (m.run() == K_ESC); // cicla sulla stampa posizionamento...
|
||||||
/* const int h = height(odd_page);
|
/* const int h = height(odd_page);
|
||||||
str_pos.cut(0);
|
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;
|
info.match_number=((TForm_skip_info &)_skip_info[file]).match_number;
|
||||||
if (val)
|
if (val)
|
||||||
info.match_number++;
|
info.match_number++;
|
||||||
info.match_result = val != 0;
|
info.match_result=val;
|
||||||
_skip_info.add(info,file);
|
_skip_info.add(info,file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1768,7 +1768,7 @@ int TSystemisamfile::update(
|
|||||||
if (toconvert)
|
if (toconvert)
|
||||||
fname = filename();
|
fname = filename();
|
||||||
|
|
||||||
if (toconvert) && (dir.eox() > 0L || fname.exist()))
|
if (toconvert && (dir.eox() > 0L || fname.exist()))
|
||||||
{
|
{
|
||||||
TRecnotype ni = 0L;
|
TRecnotype ni = 0L;
|
||||||
TFilename tmpfname; tmpfname.temp("tf");
|
TFilename tmpfname; tmpfname.temp("tf");
|
||||||
@ -2198,10 +2198,10 @@ int TSystemisamfile::load(
|
|||||||
s2[strlen(s2) - 1] = '\0';
|
s2[strlen(s2) - 1] = '\0';
|
||||||
}
|
}
|
||||||
if (curr().type((const TString&) fld[j]) == _memofld)
|
if (curr().type((const TString&) fld[j]) == _memofld)
|
||||||
sfld = esc(s2);
|
s1 = esc(s2);
|
||||||
else
|
else
|
||||||
sfld = s2;
|
s1 = s2;
|
||||||
put((const TString&) fld[j], sfld);
|
put((const TString&) fld[j], s1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2409,7 +2409,7 @@ void TRectype::init(int logicnum)
|
|||||||
if (wdir.is_com())
|
if (wdir.is_com())
|
||||||
wdir.get(_logicnum, _nolock, _comdir, _sysdirop);
|
wdir.get(_logicnum, _nolock, _comdir, _sysdirop);
|
||||||
_length = wdir.len();
|
_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 ];
|
_rec = new char [ _length ];
|
||||||
*_tab = '\0';
|
*_tab = '\0';
|
||||||
|
@ -1178,7 +1178,6 @@ const char* TEditable_field::prompt() const
|
|||||||
return _prompt ? _prompt->caption() : "";
|
return _prompt ? _prompt->caption() : "";
|
||||||
}
|
}
|
||||||
|
|
||||||
<<<<<<< maskfld.cpp
|
|
||||||
|
|
||||||
TOperable_field* TEditable_field::add_driver(short id)
|
TOperable_field* TEditable_field::add_driver(short id)
|
||||||
{
|
{
|
||||||
@ -1966,7 +1965,7 @@ int TBrowse::input_fields()
|
|||||||
{
|
{
|
||||||
if (*fld != '"' && strchr(fld, '@') == NULL)
|
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())
|
if (f.active() && f.is_editable())
|
||||||
inp++;
|
inp++;
|
||||||
}
|
}
|
||||||
|
@ -459,9 +459,6 @@ public:
|
|||||||
// @cmember Esegue il messaggio <p n>-esimo sul campo
|
// @cmember Esegue il messaggio <p n>-esimo sul campo
|
||||||
bool do_message(int n);
|
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
|
// @cmember Controlla se il campo ha un messaggio
|
||||||
virtual bool has_message() const
|
virtual bool has_message() const
|
||||||
{ return _message != NULL; }
|
{ return _message != NULL; }
|
||||||
|
@ -223,8 +223,6 @@ public:
|
|||||||
|
|
||||||
// @cmember Controlla se l'utente ha salvato la disposizione delle colonne
|
// @cmember Controlla se l'utente ha salvato la disposizione delle colonne
|
||||||
bool user_saved_columns_order() const;
|
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
|
// @cmember Setta la larghezza della colonna
|
||||||
void set_column_width( const int col, const int width ) const;
|
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)
|
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())
|
if (outfile.good())
|
||||||
{
|
{
|
||||||
TString msg;
|
TString msg;
|
||||||
|
@ -314,6 +314,7 @@ int TFile_info::open_low(bool exclusive, bool index)
|
|||||||
err = get_error(_handle);
|
err = get_error(_handle);
|
||||||
}
|
}
|
||||||
return err;
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
int TFile_info::close_low()
|
int TFile_info::close_low()
|
||||||
{
|
{
|
||||||
|
@ -1289,7 +1289,7 @@ bool TPrint_application::print_one (
|
|||||||
to = atoi ((const char *) ttt.get ());
|
to = atoi ((const char *) ttt.get ());
|
||||||
}
|
}
|
||||||
// get field val
|
// get field val
|
||||||
const TRectype& f = _cur->curr(ln);
|
TLocalisamfile &f = _cur->file(ln);
|
||||||
if (ft->_flags & TRANS_FLAG)
|
if (ft->_flags & TRANS_FLAG)
|
||||||
{
|
{
|
||||||
_Transfield *tr = NULL;
|
_Transfield *tr = NULL;
|
||||||
@ -1325,16 +1325,16 @@ bool TPrint_application::print_one (
|
|||||||
else if (ft->_flags & NUMBER_FLAG)
|
else if (ft->_flags & NUMBER_FLAG)
|
||||||
{
|
{
|
||||||
TString80 pict;
|
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)
|
if (ft->_flags & PICTURE_FLAG)
|
||||||
pict = pic;
|
pict = pic;
|
||||||
else if (!(ft->_flags & DEC_FLAG) && _picture.not_empty() && isreal)
|
else if (!(ft->_flags & DEC_FLAG) && *_picture && isreal)
|
||||||
pict = _picture;
|
pict = _picture;
|
||||||
|
|
||||||
if (pict.not_empty())
|
if (pict.len () > 0)
|
||||||
toprint = r.string (pict);
|
toprint = r.string (pict);
|
||||||
else if (ft->_flags & DEC_FLAG)
|
else if (ft->_flags & DEC_FLAG)
|
||||||
toprint = r.string (ft->_size, ft->_dec);
|
toprint = r.string (ft->_size, ft->_dec);
|
||||||
@ -1346,7 +1346,7 @@ bool TPrint_application::print_one (
|
|||||||
}
|
}
|
||||||
else if (ft->_flags & STRING_FLAG)
|
else if (ft->_flags & STRING_FLAG)
|
||||||
{
|
{
|
||||||
toprint = f.get (fn);
|
toprint = f.curr().get (fn);
|
||||||
// perform string extraction
|
// perform string extraction
|
||||||
if (from != -1)
|
if (from != -1)
|
||||||
toprint = toprint.sub (from, to);
|
toprint = toprint.sub (from, to);
|
||||||
@ -1453,8 +1453,6 @@ bool TPrint_application::print_one (
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 'r':
|
case 'r':
|
||||||
{
|
|
||||||
if (pr->_fmt.len () == 2 && _picture.not_empty())
|
|
||||||
{
|
{
|
||||||
const real& rrr = *(real*)pr->_what;
|
const real& rrr = *(real*)pr->_what;
|
||||||
const char* fff = pr->_fmt;
|
const char* fff = pr->_fmt;
|
||||||
@ -1520,7 +1518,7 @@ bool TPrint_application::print_one (
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
//if (_auto_ff && last /* _maxrox */ < printer().formlen ())
|
//if (_auto_ff && last /* _maxrox */ < printer().formlen ())
|
||||||
if (_auto_ff && printer().rows_left() > 0)
|
if (_auto_ff && prn.rows_left() > 0)
|
||||||
printer().formfeed ();
|
printer().formfeed ();
|
||||||
delete pos;
|
delete pos;
|
||||||
|
|
||||||
|
@ -452,7 +452,7 @@ real& real::operator /= (const real & b)
|
|||||||
|
|
||||||
bool real::is_zero () const
|
bool real::is_zero () const
|
||||||
{
|
{
|
||||||
return diszero (ptr ());
|
return (bool) diszero (ptr ());
|
||||||
}
|
}
|
||||||
|
|
||||||
// @doc EXTERNAL
|
// @doc EXTERNAL
|
||||||
|
@ -155,11 +155,6 @@ class real : public TObject
|
|||||||
// @cmember:(INTERNAL) Numero reale
|
// @cmember:(INTERNAL) Numero reale
|
||||||
DEC _dec;
|
DEC _dec;
|
||||||
|
|
||||||
// @access Protected Member
|
|
||||||
protected:
|
|
||||||
// @cmember Permette di stampare l'oggetto
|
|
||||||
virtual void print_on(ostream& out) const;
|
|
||||||
|
|
||||||
// @access Protected Member
|
// @access Protected Member
|
||||||
protected:
|
protected:
|
||||||
// @cmember Permette di stampare l'oggetto
|
// @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");
|
ini.set("Firm", get_firm(), "Transaction");
|
||||||
|
|
||||||
TString16 defpar; defpar << get_relation()->lfile().num();
|
|
||||||
TString str(80);
|
TString str(80);
|
||||||
for (int f = 0; f < m.fields(); f++)
|
for (int f = 0; f < m.fields(); f++)
|
||||||
{
|
{
|
||||||
|
@ -920,7 +920,6 @@ static bool _last_created = FALSE;
|
|||||||
// @rdesc Ritorna l'handle del file aperto
|
// @rdesc Ritorna l'handle del file aperto
|
||||||
FILE* TCursor::open_index(
|
FILE* TCursor::open_index(
|
||||||
bool create) // @parm Indica se creare l'indice nel caso manchi (default FALSE)
|
bool create) // @parm Indica se creare l'indice nel caso manchi (default FALSE)
|
||||||
<<<<<<< relation.cpp
|
|
||||||
{
|
{
|
||||||
_last_created = create;
|
_last_created = create;
|
||||||
if (_indexname.empty())
|
if (_indexname.empty())
|
||||||
|
@ -108,7 +108,6 @@ void operator delete(
|
|||||||
}
|
}
|
||||||
|
|
||||||
#endif // FOXPRO
|
#endif // FOXPRO
|
||||||
#endif // DBG
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -265,7 +265,7 @@ TString& TString::operator <<(const TObject& obj)
|
|||||||
ostrstream out(spark.get_buffer(), spark.size());
|
ostrstream out(spark.get_buffer(), spark.size());
|
||||||
obj.print_on(out);
|
obj.print_on(out);
|
||||||
out << ends;
|
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");
|
CHECK(_rec, "NULL Record pointer with an expression");
|
||||||
_rec->set_variables(_e);
|
_rec->set_variables(_e);
|
||||||
_e->setvar(i, _rec->get(_e->varname(i)));
|
|
||||||
v = _e->as_string();
|
v = _e->as_string();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -126,12 +126,6 @@ public:
|
|||||||
// @cmember Setta l'<p n>.esime entry della paletta al colore <p c>
|
// @cmember Setta l'<p n>.esime entry della paletta al colore <p c>
|
||||||
void set_clut(byte n, COLOR 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
|
// @cmember Costruttore. Viene passato il nome del file
|
||||||
TImage(const char* n);
|
TImage(const char* n);
|
||||||
// @cmember Costruttore. Viene passato l'identificatore dell'immagine sul file di risorsa
|
// @cmember Costruttore. Viene passato l'identificatore dell'immagine sul file di risorsa
|
||||||
@ -231,8 +225,6 @@ public:
|
|||||||
// @cmember Ritorna il descrittore della finestra
|
// @cmember Ritorna il descrittore della finestra
|
||||||
virtual WINDOW win() const
|
virtual WINDOW win() const
|
||||||
{ return _win; }
|
{ return _win; }
|
||||||
// @cmember Ritorna il descrittore della finestra padre
|
|
||||||
WINDOW parent() const;
|
|
||||||
|
|
||||||
// @cmember Gestisce la pressione del tasto
|
// @cmember Gestisce la pressione del tasto
|
||||||
virtual bool on_key(KEY)
|
virtual bool on_key(KEY)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user