Patch level :
Files correlati : Ricompilazione Demo : [ ] Commento : Riportata la verione 98.01.04 sul main trunk git-svn-id: svn://10.65.10.50/trunk@6986 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
588b3f3199
commit
1df67d66c8
@ -10,7 +10,7 @@
|
||||
|
||||
#include <statbar.h>
|
||||
|
||||
COLOR MASK_BACK_COLOR = COLOR_DKCYAN;
|
||||
/* COLOR MASK_BACK_COLOR = COLOR_DKCYAN;
|
||||
COLOR MASK_LIGHT_COLOR = COLOR_CYAN;
|
||||
COLOR MASK_DARK_COLOR = COLOR_GRAY;
|
||||
COLOR BTN_BACK_COLOR = COLOR_LTGRAY;
|
||||
@ -23,8 +23,23 @@ COLOR DISABLED_COLOR = COLOR_GRAY;
|
||||
COLOR DISABLED_BACK_COLOR = MASK_BACK_COLOR;
|
||||
COLOR FOCUS_COLOR = NORMAL_COLOR;
|
||||
COLOR FOCUS_BACK_COLOR = COLOR_CYAN;
|
||||
bool CAMPI_SCAVATI = FALSE;
|
||||
bool AUTOSELECT = FALSE;
|
||||
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;
|
||||
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_WHITE;
|
||||
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;
|
||||
|
||||
#ifndef STX_DATA
|
||||
// Very deep hacking
|
||||
|
||||
@ -29,6 +29,7 @@
|
||||
#define DLG_SETPRINT 25 /* TAG del bottone Imposta Stampa */
|
||||
#define DLG_RECALC 26 /* TAG del bottone Ricalcola */
|
||||
#define DLG_ELABORA 27 /* TAG del bottone <Elabora> */
|
||||
#define DLG_F8 27 /* TAG del bottone <Ricerca zoom> */
|
||||
#define DLG_FAX 28 /* TAG del bottone <Fax> */
|
||||
#define DLG_EMAIL 29 /* TAG del bottone <Posta> */
|
||||
#define DLG_USER 100 /* TAG del primo controllo definito dall'utente */
|
||||
|
||||
@ -317,7 +317,8 @@ void TForm_flags::read_from(const TMask& m)
|
||||
// TForm_item
|
||||
///////////////////////////////////////////////////////////
|
||||
TForm_item::TForm_item(TPrint_section* section)
|
||||
: _section(section), _x(-1), _y(-1), _width(0), _height(0), _id(0), _ofs(0),
|
||||
: _section(section), _x(-1), _y(-1), _width(0),
|
||||
_height(0),_effective_height(0), _id(0), _ofs(0),
|
||||
_temp(FALSE)
|
||||
{}
|
||||
|
||||
@ -1229,11 +1230,13 @@ bool TForm_subsection::update()
|
||||
|
||||
bool TForm_subsection::print_body(sec_print_mode showfields)
|
||||
{
|
||||
const bool at_newpage=(atnewpage() || printer().rows_left() < (word)height());
|
||||
const bool at_newpage=(atnewpage() || printer().rows_left() < (word)minheight());
|
||||
bool ok = FALSE;
|
||||
TCursor* cur = form().cursor();
|
||||
TRelation* rel = (TRelation* )form().relation();
|
||||
|
||||
set_effective_height(0); // resetta l'altezza della sottosezione al suo "minimo"
|
||||
|
||||
if (!enabled() )
|
||||
return FALSE;
|
||||
|
||||
@ -1257,9 +1260,9 @@ bool TForm_subsection::print_body(sec_print_mode showfields)
|
||||
_ssec.set_repeat_count(0);
|
||||
if (_condexpr) { // sottosezione di raggruppamenti su file
|
||||
int i = 0;
|
||||
TString group_expr((const char *)(_section->eval_expr(*_condexpr,_file_id)));
|
||||
TString group_expr(_section->eval_expr(*_condexpr,_file_id).as_string());
|
||||
bool again=TRUE;
|
||||
while (again && group_expr==(const char *)(_section->eval_expr(*_condexpr,_file_id)))
|
||||
while (again && group_expr==_section->eval_expr(*_condexpr,_file_id).as_string())
|
||||
{
|
||||
form().match_result(_file_id);
|
||||
if (!_bigskip || i==0)
|
||||
@ -1600,6 +1603,19 @@ void TForm_string::put_paragraph(const char* s)
|
||||
string_at(x()+plen, _y+i, s+plen);
|
||||
}
|
||||
_effective_height = i;
|
||||
TForm_subsection *subsec= section().subsection_above();
|
||||
if (subsec)
|
||||
{
|
||||
// aggiorno l'altezza effettiva della sottosezione
|
||||
if (effective_height() > 1)
|
||||
{
|
||||
// il campo si è "espanso"
|
||||
const int last_y=effective_height()+y()-1;
|
||||
if (last_y > subsec->height())
|
||||
subsec->set_effective_height(last_y);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -2334,6 +2350,10 @@ TMask* TPrint_section::_msk = NULL;
|
||||
word TPrint_section::height() const
|
||||
{
|
||||
word h = _height;
|
||||
if (subsection_above() && (word)subsection_above()->effective_height() > h)
|
||||
{
|
||||
h = subsection_above()->effective_height();
|
||||
}
|
||||
if (int(h) < 0) // Can't write h < 0!
|
||||
{
|
||||
if (section_type() == 'F')
|
||||
@ -2346,7 +2366,7 @@ word TPrint_section::height() const
|
||||
if (h == 0)
|
||||
h = 0xFFFF - _height + 1; // Same as abs(_height)
|
||||
}
|
||||
}
|
||||
}
|
||||
return h;
|
||||
}
|
||||
|
||||
@ -2401,7 +2421,7 @@ void TPrint_section::insert_field(int n, TForm_item* f)
|
||||
_item.insert(f,n);
|
||||
}
|
||||
|
||||
inline void TPrint_section::add_field(TForm_item* f)
|
||||
void TPrint_section::add_field(TForm_item* f)
|
||||
{
|
||||
_item.add(f);
|
||||
}
|
||||
@ -2534,7 +2554,7 @@ word TPrint_section::subs_height() const
|
||||
if (subsections())
|
||||
{
|
||||
fss=subsection(0);
|
||||
h=subsection(0)->height();
|
||||
h=subsection(0)->minheight();
|
||||
h+=subsection(0)->printsection().subs_height(); // ricorsione...
|
||||
}
|
||||
return h;
|
||||
@ -4071,12 +4091,13 @@ bool TPrint_section::update_and_print(const sec_print_mode show_fields, bool new
|
||||
last_printed_row=print_rows(show_fields,last_printed_row,last_hpos);
|
||||
|
||||
// process subsection
|
||||
if (ss.enabled())
|
||||
if (ss.enabled())
|
||||
ok |= ss.print_body(show_fields) ;
|
||||
}
|
||||
} // ... loop for each field
|
||||
|
||||
const word hgt = height();
|
||||
|
||||
if (print_rows(show_fields,last_printed_row,hgt) > 0 && show_fields==printmode_normal)
|
||||
ok = TRUE;
|
||||
// print footers
|
||||
@ -4566,8 +4587,10 @@ bool TForm::print(
|
||||
{
|
||||
pr.formlen(height());
|
||||
}
|
||||
pr.set_char_size(_fontsize); // Set font name and size
|
||||
pr.set_fontname(_fontname); // according to current form
|
||||
if (_fontsize != 0)
|
||||
pr.set_char_size(_fontsize); // Set font name and size
|
||||
if (_fontname.not_empty())
|
||||
pr.set_fontname(_fontname); // according to current form
|
||||
const bool was_open = pr.isopen();
|
||||
|
||||
set_last_page(FALSE); // non e' l'ultima pagina
|
||||
@ -4849,7 +4872,7 @@ bool TForm::validate(TForm_item &cf, TToken_string &s)
|
||||
TForm_item &fi= cf.find_field(var);
|
||||
rval.setvar(j, fi.get()); // il valore corrente del campo viene settato nell'espressione
|
||||
}
|
||||
file->put(fld, (const char *)rval); // scrive il risultato dell'espressione nel campo del file
|
||||
file->put(fld, rval.as_string()); // scrive il risultato dell'espressione nel campo del file
|
||||
}
|
||||
if (file->read()== NOERR)
|
||||
{ // tenta una lettura del file
|
||||
@ -4961,7 +4984,7 @@ bool TForm::validate(TForm_item &cf, TToken_string &s)
|
||||
else
|
||||
if (align== "MIDDLE") cf.y()= fi.y()+ fi.effective_height()/2;
|
||||
else
|
||||
if (align== "BOTTOM") cf.y()= fi.y()+ fi.effective_height()-1;
|
||||
if (align== "BOTTOM") cf.y()= fi.y()+ (fi.effective_height() ? fi.effective_height()-1 : 0);
|
||||
else
|
||||
if (align== "LEFT") cf.set_x(fi.x());
|
||||
else
|
||||
@ -4991,9 +5014,8 @@ bool TForm::validate(TForm_item &cf, TToken_string &s)
|
||||
int comma = s.find(',');
|
||||
TExpression rval(s.mid(comma+1),code[1]=='N' ? _numexpr:_strexpr,TRUE);
|
||||
cf.section().eval_expr(rval);
|
||||
const char *res = (const char *)rval;
|
||||
if (!rval.error())
|
||||
cf.set(res);
|
||||
cf.set(rval.as_string());
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -5284,8 +5306,8 @@ void TForm::init()
|
||||
_cursor= NULL;
|
||||
_rel_desc= NULL;
|
||||
_isnew= FALSE;
|
||||
_fontname= "Roman 17cpi";
|
||||
_fontsize= 12;
|
||||
_fontname= "";
|
||||
_fontsize= 0;
|
||||
_x= 0;
|
||||
_y= 0;
|
||||
_char_to_pos= '\0';
|
||||
|
||||
@ -608,7 +608,7 @@ public:
|
||||
{ tab(0); return _nfld; }
|
||||
// @cmember Ritorna l'altezza della sezione
|
||||
word height() const ;
|
||||
// @cmember Ritorna l'altezza minima delle sottosezioni
|
||||
// @cmember Ritorna l'altezza minima delle sottosezioni (non più usato)
|
||||
word subs_height() const ;
|
||||
// @cmember Ritorna l'offset della prima colonna
|
||||
word ofspc() const
|
||||
@ -804,6 +804,9 @@ public:
|
||||
// @cmember Ritorna l'altezza effettiva del campo
|
||||
virtual int effective_height() const
|
||||
{ return _effective_height; }
|
||||
// @cmember Imposta l'altezza effettiva del campo
|
||||
virtual void set_effective_height(int val)
|
||||
{ _effective_height=val; }
|
||||
// @cmember Formatta la stringa <p s>. Funzione che per default non fa nulla.
|
||||
// Ridefinita solo per TForm_number e TForm_string.
|
||||
virtual void apply_format(TString & s) const {}
|
||||
@ -1024,6 +1027,12 @@ public:
|
||||
virtual bool parse(TScanner& s);
|
||||
virtual bool update();
|
||||
virtual bool edit(TMask& m);
|
||||
// @cmember Ritorna l'altezza (in caratteri)
|
||||
virtual int height() const
|
||||
{return _ssec.height();}
|
||||
// @cmember Ritorna l'altezza minima (in caratteri)
|
||||
int minheight() const
|
||||
{return _height;}
|
||||
|
||||
virtual const char* class_name() const { return "SEZIONE"; }
|
||||
virtual bool is_section() const { return TRUE; }
|
||||
|
||||
@ -1545,7 +1545,7 @@ void TSystemisamfile::makelc(TRectype& rec)
|
||||
|
||||
for (int k = 0; k < e.numvar(); k++)
|
||||
e.setvar(k, get(e.varname(k)));
|
||||
f.write(e, rec);
|
||||
f.write(e.as_string(), rec);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1766,11 +1766,9 @@ int TSystemisamfile::update(
|
||||
prefix().update_recdes(num());
|
||||
|
||||
if (toconvert)
|
||||
{
|
||||
packindex();
|
||||
if (err == NOERR)
|
||||
err = exec_convapp(lev, FALSE); // Post - conversion
|
||||
}
|
||||
if (err == NOERR)
|
||||
err = exec_convapp(lev, FALSE); // Post - conversion
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -23,7 +23,7 @@ bool rpc_Start()
|
||||
{
|
||||
delete _client;
|
||||
_client = NULL;
|
||||
ok = error_box("Errore di inizializzazione del socket client");
|
||||
ok = error_box("Errore di inizializzazione del socket client.");
|
||||
}
|
||||
}
|
||||
return ok;
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
|
||||
#ifndef __SCANNER_H
|
||||
#include <scanner.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
class TControl; // __CONTROL_H
|
||||
class TText_control;
|
||||
@ -913,6 +913,10 @@ public:
|
||||
const TString& get_filter() const
|
||||
{ return _filter;}
|
||||
|
||||
// @cmember Cambia il filtro della browse
|
||||
void set_filter(const char * filter)
|
||||
{ _filter = filter;}
|
||||
|
||||
// @cmember Controlla la validita' del campo
|
||||
bool check(CheckTime = RUNNING_CHECK);
|
||||
// @cmember Controlla se il campo puo' essere vuoto
|
||||
|
||||
@ -297,6 +297,30 @@ int TMultiple_rectype::loaded_rows(int logicnum) const
|
||||
return r->rows();
|
||||
}
|
||||
|
||||
// @mfunc confronta due record multipli
|
||||
int TMultiple_rectype::compare(const TSortable& s) const
|
||||
{
|
||||
int res = TRectype::compare(s);
|
||||
TMultiple_rectype & m = (TMultiple_rectype &) s;
|
||||
for (int i = 0 ; res == 0 && i < _nfiles; i++)
|
||||
{
|
||||
int logicnum = _logicnums[i];
|
||||
TRecord_array & r = body(logicnum);
|
||||
TRecord_array & r1 = m.body(logicnum);
|
||||
res = r.rows() - r1.rows();
|
||||
if (res == 0 && r.rows() > 0 && r1.rows() > 0)
|
||||
{
|
||||
for (int j = r.last_row(), k = r1.last_row(); res == 0 && j > 0 && k > 0; j = r.pred_row(j), k = r1.pred_row(k))
|
||||
{
|
||||
res = j - k;
|
||||
if (res == 0)
|
||||
res = r[j] != r1[j];
|
||||
}
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
int TMultiple_rectype::remove(TBaseisamfile & f) const
|
||||
{
|
||||
int err = NOERR;
|
||||
|
||||
@ -36,7 +36,7 @@ class TSocketClient : public TLanClient
|
||||
{
|
||||
BYTE* m_pData;
|
||||
DWORD m_dwSize;
|
||||
|
||||
|
||||
protected: // TLanManager
|
||||
virtual BOOL Boot();
|
||||
virtual BOOL ShutDown();
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
ba Base
|
||||
74 Modello 740
|
||||
75 Modello 750
|
||||
76 Modello 760
|
||||
74
|
||||
75
|
||||
76
|
||||
77 Modello 770
|
||||
iv Gestione IVA
|
||||
se Contabilita' Semplificata
|
||||
@ -19,8 +19,8 @@ at AVIS Provinciale
|
||||
in Elenchi Intracomunitari
|
||||
po Gestione Penna Ottica
|
||||
ab Analisi di bilancio
|
||||
ni Nota Integrativa
|
||||
nr Nota Integrativa Ridotta
|
||||
ni
|
||||
nr
|
||||
pc Parcellazione
|
||||
af Autoformazione
|
||||
gi Gestione ICI
|
||||
|
||||
@ -952,9 +952,7 @@ void TPrinter::init_formlen(
|
||||
int w;
|
||||
while (mincol < maxcol )
|
||||
{
|
||||
|
||||
w = xvt_dwin_get_text_width(prwin, (char*)(const char*)spc, _formwidth);
|
||||
|
||||
w = xvt_dwin_get_text_width(prwin, (char*)(const char*)spc, _formwidth);
|
||||
if (w < pw)
|
||||
mincol = _formwidth+1;
|
||||
else
|
||||
|
||||
@ -205,7 +205,7 @@ bool TProgind::setstatus(long l)
|
||||
{
|
||||
CHECK(l >= 0, "Bad progind status");
|
||||
const long old_perc = _status * 100L / _max;
|
||||
_status = l > _max ? _max : l;
|
||||
_status = l > _max ? _max : l;
|
||||
const long new_perc = _status * 100L / _max;
|
||||
const bool tictac = new_perc != old_perc;
|
||||
if (tictac)
|
||||
|
||||
@ -20,6 +20,11 @@
|
||||
#define RDOC_PREZZO "PREZZO"
|
||||
#define RDOC_UMQTA "UMQTA"
|
||||
#define RDOC_QTA "QTA"
|
||||
#define RDOC_QTAGG1 "QTAGG1"
|
||||
#define RDOC_QTAGG2 "QTAGG2"
|
||||
#define RDOC_QTAGG3 "QTAGG3"
|
||||
#define RDOC_QTAGG4 "QTAGG4"
|
||||
#define RDOC_QTAGG5 "QTAGG5"
|
||||
#define RDOC_QTAEVASA "QTAEVASA"
|
||||
#define RDOC_RIGAEVASA "RIGAEVASA"
|
||||
#define RDOC_TARA "TARA"
|
||||
|
||||
@ -82,8 +82,8 @@ real& real::operator *= (long double b)
|
||||
}
|
||||
|
||||
real& real::operator /= (long double b)
|
||||
{
|
||||
CHECK(b != 0.0, "Disivision by zero");
|
||||
{
|
||||
CHECK(b != 0.0, "Division by zero");
|
||||
_dec /= b;
|
||||
return *this;
|
||||
}
|
||||
@ -346,6 +346,7 @@ HIDDEN real __tmp_real;
|
||||
real::real ()
|
||||
{
|
||||
dzero (ptr ());
|
||||
trail();
|
||||
}
|
||||
|
||||
real::real (const real & b)
|
||||
@ -389,6 +390,8 @@ real::real (const char *s)
|
||||
atod (ptr (), (char *) s);
|
||||
else
|
||||
dzero (ptr ());
|
||||
|
||||
trail();
|
||||
}
|
||||
|
||||
real& real::operator =(const real & b)
|
||||
@ -550,6 +553,7 @@ istream & operator >> (
|
||||
{
|
||||
in >> __string;
|
||||
atod (a.ptr (), __string);
|
||||
a.trail();
|
||||
return in;
|
||||
}
|
||||
|
||||
|
||||
@ -29,8 +29,6 @@ protected:
|
||||
// @cmember Permette di stampare l'oggetto
|
||||
virtual void print_on(ostream& out) const;
|
||||
|
||||
// @access Protected Member
|
||||
protected:
|
||||
// @cmember Duplica il numero reale (vedi classe <c TObject>)
|
||||
virtual TObject* dup() const;
|
||||
// @cmember Traduce in lettere il numero reale
|
||||
@ -164,6 +162,8 @@ protected:
|
||||
|
||||
// @access Protected Member
|
||||
protected:
|
||||
// @cmember Permette di stampare l'oggetto
|
||||
virtual void print_on(ostream& out) const;
|
||||
|
||||
// @cmember Duplica il numero reale (vedi classe <c TObject>)
|
||||
virtual TObject* dup() const;
|
||||
|
||||
@ -147,6 +147,7 @@ class TFile_cache : public TObject
|
||||
TToken_string _code;
|
||||
TString16 _filecode;
|
||||
TLocalisamfile* _file;
|
||||
TString16 _filecode;
|
||||
int _key;
|
||||
long _last_firm;
|
||||
int _error;
|
||||
|
||||
@ -316,9 +316,6 @@ void TRelation_application::query_mode(
|
||||
set_mode(MODE_QUERY);
|
||||
init_query_mode(*_mask);
|
||||
}
|
||||
|
||||
if (_curr_transaction.not_empty())
|
||||
ini2query_mask();
|
||||
}
|
||||
|
||||
|
||||
@ -358,6 +355,7 @@ void TRelation_application::insert_mode()
|
||||
|
||||
init_insert_mode(*_mask);
|
||||
|
||||
// ....possibilmente spostare questa chiamata .....
|
||||
if (_curr_transaction == TRANSACTION_INSERT)
|
||||
ini2insert_mask();
|
||||
}
|
||||
@ -396,6 +394,7 @@ bool TRelation_application::modify_mode()
|
||||
get_relation()->save_status();
|
||||
init_modify_mode(*_mask);
|
||||
|
||||
// ....possibilmente spostare questa chiamata .....
|
||||
if (_curr_transaction == TRANSACTION_MODIFY)
|
||||
ini2insert_mask();
|
||||
return TRUE;
|
||||
@ -861,6 +860,10 @@ void TRelation_application::main_loop()
|
||||
// ciclo delle transazioni
|
||||
_recins = -1;
|
||||
|
||||
// imposta la maschera in query mode
|
||||
query_mode();
|
||||
_mask->open_modal();
|
||||
|
||||
// Provoca l'autopremimento per il messaggio di LINK
|
||||
if (_lnflag)
|
||||
{
|
||||
@ -882,9 +885,9 @@ void TRelation_application::main_loop()
|
||||
_mask->send_key(K_AUTO_ENTER, 0);
|
||||
}
|
||||
}
|
||||
|
||||
query_mode();
|
||||
_mask->open_modal();
|
||||
|
||||
if (_curr_transaction.not_empty())
|
||||
ini2query_mask();
|
||||
|
||||
do
|
||||
{
|
||||
@ -1252,13 +1255,15 @@ bool TRelation_application::parse_command_line()
|
||||
ini.upper();
|
||||
if (ini.left(2) == "-I" || ini.left(2) == "/I")
|
||||
{
|
||||
TString16 ininame(ini.mid(2));
|
||||
CHECK(!ininame.blank(),"Manca l'indicazione della transazione. Il nome va indicato di seguito al -i, senza interporre spaziatura.");
|
||||
if (ini.find('*')>=0)
|
||||
{
|
||||
// metachars:
|
||||
list_files(ini.mid(2), _trans_ini);
|
||||
list_files(ininame, _trans_ini);
|
||||
}
|
||||
else
|
||||
_trans_ini.add(ini.mid(2));
|
||||
_trans_ini.add(ininame);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1875,6 +1875,19 @@ const char* TFieldref::read(TConfig& ini, const char* defpar) const
|
||||
if (_to < l && _to > 0) buffer.cut(_to);
|
||||
if (_from > 0) buffer.ltrim(_from);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Gestisce valori tra virgolette
|
||||
const int last = buffer.len()-1;
|
||||
if (last > 0)
|
||||
{
|
||||
if ((buffer[0] == '"' || buffer[0] == '\'') && buffer[0] == buffer[last])
|
||||
{
|
||||
buffer.ltrim(1);
|
||||
buffer.rtrim(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
return buffer;
|
||||
}
|
||||
|
||||
@ -1891,8 +1904,16 @@ void TFieldref::write(TConfig& ini, const char* defpar, const char* val) const
|
||||
ini.set(_name, buffer, para);
|
||||
}
|
||||
else
|
||||
{
|
||||
ini.set(_name, val, para);
|
||||
{
|
||||
if (strchr(val,' ') != NULL) // Controlla se c'e' bisogno di virgolette
|
||||
{
|
||||
const char virg = strchr(val, '"') ? '\'' : '"';
|
||||
buffer.cut(0);
|
||||
buffer << virg << val << virg;
|
||||
ini.set(_name, buffer, para);
|
||||
}
|
||||
else
|
||||
ini.set(_name, val, para);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -36,3 +36,4 @@ bool TStack::destroy_base()
|
||||
if (_sp > 0) _sp--;
|
||||
return _data.destroy(0, TRUE);
|
||||
}
|
||||
|
||||
|
||||
@ -545,7 +545,7 @@ HIDDEN bool _numcalc_val(TMask_field& f, KEY k)
|
||||
const int fldid = atoi(s);
|
||||
e.setvar(i, fldid == 0 ? f.get() : f.mask().get(fldid));
|
||||
}
|
||||
const TFixed_string s((const char*)e);
|
||||
const TFixed_string s(e.as_string());
|
||||
f.set(s);
|
||||
return TRUE;
|
||||
}
|
||||
@ -568,7 +568,7 @@ HIDDEN bool _strcalc_val(TMask_field& f, KEY k)
|
||||
const int fldid = atoi(s);
|
||||
e.setvar(i, fldid == 0 ? f.get() : f.mask().get(fldid));
|
||||
}
|
||||
TFixed_string s((const char*) e);
|
||||
TFixed_string s( e.as_string());
|
||||
f.set(s);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -53,6 +53,11 @@ TVariable_mask::TVariable_mask(const char* name, int num, int max) : TMask()
|
||||
}
|
||||
|
||||
|
||||
TVariable_mask::TVariable_mask() : TMask()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
TMask& TVariable_sheet_field::sheet_mask() const
|
||||
{
|
||||
TMask & m = TSheet_field::sheet_mask();
|
||||
|
||||
@ -39,7 +39,8 @@ public:
|
||||
virtual void enable(short fld_id, bool on = TRUE);
|
||||
// @cmember Legge il campo da file
|
||||
virtual TMask_field* parse_field(TScanner& scanner);
|
||||
|
||||
// @cmember Costruttore (crea la maschera leggendo la descrizione dal file .msk)
|
||||
TVariable_mask( );
|
||||
// @cmember Costruttore (crea la maschera leggendo la descrizione dal file .msk)
|
||||
TVariable_mask( const char* name, int num = 0, int max = MAX_PAGES);
|
||||
// @cmember Distruttore
|
||||
|
||||
@ -1165,7 +1165,7 @@ WINDOW TScroll_window::create(short x, short y, short dx, short dy,
|
||||
}
|
||||
|
||||
PNT TScroll_window::log2dev(long x, long y) const
|
||||
{
|
||||
{
|
||||
if (_autoscroll)
|
||||
{
|
||||
if (_pixmap)
|
||||
|
||||
@ -200,6 +200,9 @@ public:
|
||||
// @cmember Distruttore
|
||||
virtual ~TWindow();
|
||||
|
||||
// @cmember Ritorna l'handler della finestra padre
|
||||
WINDOW parent() const;
|
||||
|
||||
// @cmember Ritorna l'identificatore della classe finestra
|
||||
virtual word class_id() const;
|
||||
|
||||
|
||||
@ -30,6 +30,9 @@
|
||||
#define F_UPDTULC 137
|
||||
#define F_CODICE2 138
|
||||
#define F_DESCAU2 139
|
||||
#define F_DIBAEXPLOSION 140
|
||||
#define F_DEFAULTMAG 141
|
||||
#define F_DEFAULTDEP 142
|
||||
|
||||
#define G_SGNVAL 20
|
||||
#define G_SGNQTA 21
|
||||
|
||||
@ -147,6 +147,37 @@ BEGIN
|
||||
WARNING "La causale collegata deve essere una causale senza ulteriori collegamenti"
|
||||
END
|
||||
|
||||
BOOL F_DIBAEXPLOSION
|
||||
BEGIN
|
||||
FIELD B3
|
||||
PROMPT 2 17 "Esplodi mediante Distinta Base"
|
||||
END
|
||||
|
||||
STRING F_DEFAULTMAG 3
|
||||
BEGIN
|
||||
PROMPT 2 19 "Magazzino di default "
|
||||
FIELD S10[1,3]
|
||||
USE MAG SELECT CODTAB[4,5]==""
|
||||
INPUT CODTAB F_DEFAULTMAG
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_DEFAULTMAG CODTAB
|
||||
MESSAGE EMPTY DISABLE,F_DEFAULTDEP
|
||||
MESSAGE ENABLE,F_DEFAULTDEP
|
||||
END
|
||||
|
||||
STRING F_DEFAULTDEP 2
|
||||
BEGIN
|
||||
PROMPT 2 20 "Deposito di default "
|
||||
FIELD S10[4,5]
|
||||
USE MAG SELECT CODTAB[4,5]!=""
|
||||
INPUT CODTAB[1,3] F_DEFAULTMAG
|
||||
INPUT CODTAB[4,5] F_DEFAULTDEP
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_DEFAULTMAG CODTAB[1,3]
|
||||
OUTPUT F_DEFAULTDEP CODTAB[4,5]
|
||||
END
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Movimentazione campi" 11 60 14
|
||||
|
||||
17
mg/batbfca.h
17
mg/batbfca.h
@ -1,11 +1,10 @@
|
||||
// ARTICOLI
|
||||
#define F_CODLIV 101
|
||||
#define F_DESLIV 102
|
||||
#define F_FORMLIV 103
|
||||
#define F_CODLIV 101
|
||||
#define F_DESLIV 102
|
||||
#define F_FORMLIV 103
|
||||
#define F_CODGROUP 104
|
||||
#define F_DESGROUP 105
|
||||
#define F_LENFORM 106
|
||||
|
||||
#define F_CODGROUP 104
|
||||
#define F_DESGROUP 105
|
||||
#define F_LENFORM 106
|
||||
|
||||
#define F_NEXTLIV 107
|
||||
#define F_CHECKLIV 108
|
||||
#define F_NEXTLIV 107
|
||||
#define F_CHECKLIV 108
|
||||
|
||||
15
mg/batbfcg.h
15
mg/batbfcg.h
@ -1,5 +1,10 @@
|
||||
#define F_CODLIV 101
|
||||
#define F_DESLIV 102
|
||||
#define F_FORMLIV 103
|
||||
#define F_CODGROUP 104
|
||||
#define F_DESGROUP 105
|
||||
// giacenze
|
||||
#define F_CODLIV 101
|
||||
#define F_DESLIV 102
|
||||
#define F_FORMLIV 103
|
||||
#define F_CODGROUP 104
|
||||
#define F_DESGROUP 105
|
||||
#define F_LENFORM 106
|
||||
|
||||
#define F_AUTOINSERT 107
|
||||
#define F_CODICEADATA 108
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
#include "batbfca.h"
|
||||
#include "batbfcg.h"
|
||||
TOOLBAR "" 0 20 60 2
|
||||
#include <toolbar.h>
|
||||
ENDPAGE
|
||||
@ -51,6 +51,19 @@ BEGIN
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
BOOLEAN F_AUTOINSERT
|
||||
BEGIN
|
||||
PROMPT 7 8 "Abilita auto inserimento"
|
||||
FIELD B0
|
||||
END
|
||||
|
||||
BOOLEAN F_CODICEADATA
|
||||
BEGIN
|
||||
PROMPT 7 8 "Codice come data"
|
||||
FLAG "H"
|
||||
FIELD B1
|
||||
END
|
||||
|
||||
NUMBER F_LENFORM 2
|
||||
BEGIN
|
||||
PROMPT 2 100 ""
|
||||
@ -59,6 +72,7 @@ BEGIN
|
||||
END
|
||||
|
||||
|
||||
|
||||
ENDPAGE
|
||||
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
#include "batbfca.h"
|
||||
#include "batbfcG.h"
|
||||
|
||||
TOOLBAR "" 0 20 60 2
|
||||
#include <toolbar.h>
|
||||
@ -20,10 +20,19 @@ BEGIN
|
||||
OUTPUT F_CODLIV CODTAB
|
||||
OUTPUT F_DESLIV S0
|
||||
OUTPUT F_FORMLIV S1
|
||||
OUTPUT F_AUTOINSERT B0
|
||||
CHECKTYPE FORCED
|
||||
ADD NONE
|
||||
END
|
||||
|
||||
BOOL F_AUTOINSERT
|
||||
BEGIN
|
||||
PROMPT 1 1 ""
|
||||
FLAG "HG"
|
||||
MESSAGE TRUE NORMAL,F_DESGROUP
|
||||
MESSAGE FALSE REQUIRED,F_DESGROUP
|
||||
END
|
||||
|
||||
// descrizione parte del formato codice
|
||||
STRING F_DESLIV 50
|
||||
BEGIN
|
||||
@ -79,7 +88,7 @@ BEGIN
|
||||
DISPLAY "Livello@20 " 500@->S0
|
||||
DISPLAY "Codice@23" CODTAB[2,25]
|
||||
COPY OUTPUT F_CODGROUP
|
||||
CHECKTYPE REQUIRED
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
111
|
||||
0
|
||||
$rmovmag|0|0|94|0|Righe movimenti di magazzino|||
|
||||
$rmovmag|136|150|95|0|Righe movimenti di magazzino|||
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
111
|
||||
10
|
||||
11
|
||||
NUMREG|3|7|0|Numero di registrazione
|
||||
NRIG|2|4|0|Numero di riga
|
||||
CODMAG|1|5|0|Codice magazzino e deposito
|
||||
@ -10,6 +10,7 @@ QUANT|4|15|5|Quantita'
|
||||
PREZZO|4|18|3|Prezzo
|
||||
CAUS|1|6|0|Causale di magazzino della riga
|
||||
AUTOMATICA|1|1|0|Flag di riga automatica
|
||||
ESPLOSA|8|1|0|Flag di riga esplosa (da DiBa)
|
||||
2
|
||||
NUMREG+NRIG|
|
||||
CODART+LIVGIAC+CODMAG+NUMREG|X
|
||||
|
||||
105
mg/mg0100.cpp
105
mg/mg0100.cpp
@ -1,6 +1,7 @@
|
||||
// gestione tabelle di magazzino
|
||||
#include <tabapp.h>
|
||||
#include <tabutil.h>
|
||||
#include <modaut.h>
|
||||
#include "batbcau.h"
|
||||
#include "batbfca.h"
|
||||
#include "..\ve\batbmag.h"
|
||||
@ -20,7 +21,9 @@ class TMask_tabmag : public TMask
|
||||
static bool singlemag_handler(TMask_field &, KEY); // handler
|
||||
static bool sumsign_handler(TMask_field &, KEY); // handler
|
||||
static bool format_handler(TMask_field &, KEY); // handler dei metacaratteri
|
||||
static bool codliv_handler(TMask_field &, KEY); // handler del numero formato
|
||||
static bool formatgiac_handler(TMask_field &, KEY); // handler dei metacaratteri
|
||||
static bool codlivart_handler(TMask_field &, KEY); // handler del numero formato articoli
|
||||
static bool codlivgiac_handler(TMask_field &, KEY); // handler del numero formato giacenze
|
||||
static bool codgrp_handler(TMask_field &, KEY); // handler del numero formato
|
||||
static bool numlivart_handler(TMask_field &, KEY); // handler del numero formato
|
||||
|
||||
@ -55,6 +58,8 @@ TMask_tabmag::TMask_tabmag(const char * _maskname,const TString16 &tabname):
|
||||
}
|
||||
else if (tabname == "%CAU")
|
||||
{
|
||||
if (!main_app().has_module(DBAUT))
|
||||
hide(F_DIBAEXPLOSION);
|
||||
set_handler(F_SGNGIAC, sumsign_handler);
|
||||
}
|
||||
else if (tabname == "FCA") // FORMATO CODICE ARTICOLI
|
||||
@ -63,7 +68,7 @@ TMask_tabmag::TMask_tabmag(const char * _maskname,const TString16 &tabname):
|
||||
aux_tabf = new TTable("FCA");
|
||||
metach= new TMetachar("");
|
||||
set_handler(F_FORMLIV, format_handler);
|
||||
set_handler(F_CODLIV, codliv_handler);
|
||||
set_handler(F_CODLIV, codlivart_handler);
|
||||
}
|
||||
else if (tabname == "GCA") // GRUPPI CODICE ARTICOLI
|
||||
{
|
||||
@ -76,8 +81,8 @@ TMask_tabmag::TMask_tabmag(const char * _maskname,const TString16 &tabname):
|
||||
cod_liv = new TCodgiac_livelli;
|
||||
metach = new TMetachar("") ;
|
||||
aux_tabf = new TTable("FCG");
|
||||
set_handler(F_FORMLIV, format_handler);
|
||||
set_handler(F_CODLIV, codliv_handler);
|
||||
set_handler(F_FORMLIV, formatgiac_handler);
|
||||
set_handler(F_CODLIV, codlivgiac_handler);
|
||||
}
|
||||
else if (tabname == "GCG") // GRUPPI CODICE GIACENZE
|
||||
{
|
||||
@ -143,37 +148,70 @@ bool TMask_tabmag::format_handler(TMask_field& f, KEY k)
|
||||
if (k == K_TAB && f.focusdirty())
|
||||
{
|
||||
TString s(f.get());
|
||||
TMask_tabmag & myself=((TMask_tabmag &)f.mask());
|
||||
TTable * aux_tabf=myself.aux_tabf;
|
||||
TMask_tabmag & mask=((TMask_tabmag &)f.mask());
|
||||
TTable * aux_tabf=mask.aux_tabf;
|
||||
|
||||
s.strip_spaces();
|
||||
f.set(s);
|
||||
|
||||
aux_tabf->zero();
|
||||
aux_tabf->put("CODTAB",myself.get_int(F_CODLIV)+1);
|
||||
aux_tabf->put("CODTAB",mask.get_int(F_CODLIV)+1);
|
||||
if (aux_tabf->read()==NOERR)
|
||||
{
|
||||
// non è l'ultimo livello: solo caratteri obbligatori
|
||||
if (myself.metach->has_opzchars(s))
|
||||
if (mask.metach->has_opzchars(s))
|
||||
{
|
||||
f.error_box("I caratteri di formato opzionali ('%s') sono consentiti solo per l'ultimo livello",
|
||||
myself.metach->opz_chars());
|
||||
mask.metach->opz_chars());
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
// setta il campo con la lunghezza massima della stringa di formato
|
||||
//myself.field(F_LENFORM).set(myself.metach->maxstrlen(f.get()));
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// HANDLER DEL CODICE LIVELLO
|
||||
bool TMask_tabmag::codliv_handler(TMask_field& f, KEY k)
|
||||
// HANDLER DEL FORMATO DEL LIVELLO
|
||||
bool TMask_tabmag::formatgiac_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
if (k == K_TAB && f.focusdirty())
|
||||
{
|
||||
TMask_tabmag & myself=((TMask_tabmag &)f.mask());
|
||||
TTable * aux_tabf=myself.aux_tabf;
|
||||
const int maxlen=15;
|
||||
int total_len=0;
|
||||
TString s(f.get());
|
||||
TMask_tabmag & mask=((TMask_tabmag &)f.mask());
|
||||
TTable * aux_tabf=mask.aux_tabf;
|
||||
|
||||
s.strip_spaces();
|
||||
f.set(s);
|
||||
mask.set(F_LENFORM,mask.metach->maxstrlen(s));
|
||||
|
||||
aux_tabf->zero();
|
||||
aux_tabf->put("CODTAB",1);
|
||||
if (aux_tabf->read()==NOERR)
|
||||
{
|
||||
do {
|
||||
if (aux_tabf->get_int("CODTAB") != mask.get_int(F_CODLIV))
|
||||
total_len+=aux_tabf->get_int("I0");
|
||||
} while (aux_tabf->next()==NOERR);
|
||||
}
|
||||
total_len+=mask.get_int(F_LENFORM);
|
||||
if (total_len > maxlen)
|
||||
{
|
||||
f.error_box("La somma delle lunghezze dei codici \n dei livelli di giacenza eccede \nil massimo consentito di %d caratteri",maxlen);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
// HANDLER DEL CODICE LIVELLO
|
||||
bool TMask_tabmag::codlivart_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
if (k == K_TAB && f.focusdirty())
|
||||
{
|
||||
TMask_tabmag & mask=((TMask_tabmag &)f.mask());
|
||||
TTable * aux_tabf=mask.aux_tabf;
|
||||
int codliv=atoi((const char *)f.get());
|
||||
|
||||
if (codliv>1)
|
||||
@ -187,7 +225,7 @@ bool TMask_tabmag::codliv_handler(TMask_field& f, KEY k)
|
||||
TString prevformat(aux_tabf->get("S1"));
|
||||
aux_tabf->zero();
|
||||
aux_tabf->put("CODTAB",codliv+1);
|
||||
if (aux_tabf->read()!=NOERR && myself.metach->has_opzchars(prevformat))
|
||||
if (aux_tabf->read()!=NOERR && mask.metach->has_opzchars(prevformat))
|
||||
{
|
||||
f.error_box("Il livello precedente include caratteri opzionali nel formato\ne non puo' divenire un livello intermedio");
|
||||
return FALSE;
|
||||
@ -202,14 +240,39 @@ bool TMask_tabmag::codliv_handler(TMask_field& f, KEY k)
|
||||
}
|
||||
|
||||
|
||||
// HANDLER DEL CODICE LIVELLO
|
||||
bool TMask_tabmag::codlivgiac_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
if (k == K_TAB && f.focusdirty())
|
||||
{
|
||||
TMask_tabmag & mask=((TMask_tabmag &)f.mask());
|
||||
TTable * aux_tabf=mask.aux_tabf;
|
||||
int codliv=atoi((const char *)f.get());
|
||||
|
||||
if (codliv>1)
|
||||
// Non è il primo codice
|
||||
{
|
||||
aux_tabf->zero();
|
||||
aux_tabf->put("CODTAB",codliv-1);
|
||||
if (aux_tabf->read()!=NOERR)
|
||||
// non esiste un precedente
|
||||
{
|
||||
f.error_box("Non si possono inserire salti nel livello del codice");
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// gestisce l'introduzione del codice del livello articoli
|
||||
bool TMask_tabmag::numlivart_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
if ((k == K_TAB && f.focusdirty())||k == K_ENTER )
|
||||
{
|
||||
TMask_tabmag & myself=((TMask_tabmag &)f.mask());
|
||||
TMask_tabmag & mask=((TMask_tabmag &)f.mask());
|
||||
|
||||
if (myself.get_int(F_CODLIV)==myself.cod_liv->last_level())
|
||||
if (mask.get_int(F_CODLIV)==mask.cod_liv->last_level())
|
||||
// non esiste un seguente
|
||||
{
|
||||
f.error_box("Non è possibile definire gruppi per l'ultimo livello di codice articolo");
|
||||
@ -226,15 +289,15 @@ bool TMask_tabmag::codgrp_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
if ((k == K_TAB && f.focusdirty() )||k == K_ENTER )
|
||||
{
|
||||
TMask_tabmag & myself=((TMask_tabmag &)f.mask());
|
||||
TMask_tabmag & mask=((TMask_tabmag &)f.mask());
|
||||
|
||||
if (!myself.cod_liv->enabled())
|
||||
if (!mask.cod_liv->enabled())
|
||||
{
|
||||
f.error_box("Livelli del codice non abilitati");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (!f.empty() && !(myself.cod_liv->fit_to_format(f.get(),myself.get_int(F_CODLIV))))
|
||||
if (!f.empty() && !(mask.cod_liv->fit_to_format(f.get(),mask.get_int(F_CODLIV))))
|
||||
{
|
||||
f.error_box("Codice non corrispondente al formato previsto");
|
||||
return FALSE;
|
||||
|
||||
220
mg/mg1100.cpp
220
mg/mg1100.cpp
@ -11,13 +11,18 @@
|
||||
#include "..\ve\veconf.h"
|
||||
#include "mg1100.h"
|
||||
|
||||
#ifndef __DBLIB_H
|
||||
#include "..\db\dblib.h"
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
//********************
|
||||
//********************
|
||||
// maschera dell'applicazione "Gestione interattiva movimenti di magazzino"
|
||||
//
|
||||
class TMask_movmag: public TMask {
|
||||
class TMask_movmag: public TMask
|
||||
{
|
||||
static TRecord_cache cache_causali;
|
||||
TMov_mag * mov_mag;
|
||||
TCodgiac_livelli * livelli_giac; // oggetto gestione livelli di giacenza
|
||||
@ -26,7 +31,10 @@ class TMask_movmag: public TMask {
|
||||
bool price_proposed;
|
||||
real proposed_price(const char * codart, real quant,const char * causrig);
|
||||
|
||||
bool update_rigamov (int r, const char * old_codcaus);
|
||||
// aggiorna la riga di magazzino aggiungendo righe automatiche o esplosioni
|
||||
bool update_rigamov (int r, const char * old_codcaus, const char * old_codart, const real & old_quant);
|
||||
bool add_autorows (int r, const char * old_codcaus, const char * old_codart, const real & old_quant);
|
||||
bool add_explrows (int r);
|
||||
TMagazzini _magazzini;
|
||||
|
||||
static bool notify_righe(TSheet_field & fld_righe, int item, KEY k); // notify delle righe di sheet
|
||||
@ -92,7 +100,6 @@ TMask_movmag::~TMask_movmag()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
// item varies from 1 to items()
|
||||
void TMask_movmag::sheetrighe_get(TSheet_field &fld_righe, int item)
|
||||
{
|
||||
@ -127,14 +134,20 @@ void TMask_movmag::sheetrighe_put(TSheet_field &fld_righe, int item)
|
||||
|
||||
bool TMask_movmag::handle_righe(TMask_field &f, KEY k)
|
||||
{
|
||||
if (k == K_ENTER) {
|
||||
TSheet_field & ss=(TSheet_field & )f;
|
||||
for (int i=0; i< ss.items(); i++)
|
||||
if (k == K_ENTER)
|
||||
{
|
||||
TSheet_field& ss=(TSheet_field & )f;
|
||||
const int column = ss.cid2index(F_CODMAG);
|
||||
|
||||
if (ss.column_enabled(column))
|
||||
{
|
||||
if (*ss.cell(i,ss.cid2index(F_CODMAG)) ==' ')
|
||||
for (int i = 0; i < ss.items(); i++)
|
||||
{
|
||||
f.error_box("Nella riga %d manca l'indicazione del magazzino ",i+1);
|
||||
return FALSE;
|
||||
if (*ss.cell(i,column) <= ' ')
|
||||
{
|
||||
f.error_box("Nella riga %d manca l'indicazione del magazzino ",i+1);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -145,16 +158,16 @@ bool TMask_movmag::notify_righe(TSheet_field & ss, int r, KEY key)
|
||||
{
|
||||
TMask_movmag &m=(TMask_movmag &)ss.mask();
|
||||
static TString16 old_codcaus;
|
||||
static TString old_codart(20);
|
||||
static real old_quant(1);
|
||||
if ( key == K_DEL ) // Cancellazione
|
||||
{
|
||||
if (*ss.cell(r,ss.cid2index( F_AUTOMATICA))==riga_automatica)
|
||||
return FALSE; // can't remove auto lines directly
|
||||
if (r < ss.items()-1)
|
||||
while (r < ss.items()-1 && *ss.cell(r+1,ss.cid2index( F_AUTOMATICA))==riga_automatica)
|
||||
{
|
||||
if (*ss.cell(r+1,ss.cid2index( F_AUTOMATICA))==riga_automatica)
|
||||
{
|
||||
ss.destroy(r + 1);
|
||||
}
|
||||
// autoremove automatic lines along with the original one
|
||||
ss.destroy(r+1);
|
||||
}
|
||||
|
||||
} else if (key == K_INS) { // Inserimento
|
||||
@ -171,9 +184,10 @@ bool TMask_movmag::notify_righe(TSheet_field & ss, int r, KEY key)
|
||||
old_codcaus=ss.sheet_mask().get(F_CAUSRIG);
|
||||
if (old_codcaus.blank())
|
||||
old_codcaus=ss.mask().get(F_CODCAUS);
|
||||
|
||||
old_quant=ss.sheet_mask().get_real(F_QUANT);
|
||||
old_codart=ss.sheet_mask().get(F_CODART);
|
||||
} else if (key == K_ENTER) {
|
||||
if (m.update_rigamov(r,old_codcaus))
|
||||
if (m.update_rigamov(r,old_codcaus,old_codart,old_quant))
|
||||
ss.select(r+1);
|
||||
}
|
||||
return TRUE;
|
||||
@ -207,46 +221,155 @@ bool TMask_movmag::handle_righeprezzo2(TMask_field &f, KEY k)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TMask_movmag::update_rigamov (int r, const char * old_codcaus)
|
||||
bool TMask_movmag::update_rigamov (int r, const char * old_codcaus, const char * old_codart, const real & old_quant)
|
||||
{
|
||||
bool added_some=add_autorows(r, old_codcaus, old_codart, old_quant);
|
||||
if (added_some)
|
||||
add_explrows(r+1);
|
||||
added_some |=add_explrows(r);
|
||||
return added_some;
|
||||
}
|
||||
|
||||
bool TMask_movmag::add_autorows (int r, const char * old_codcaus, const char * old_codart, const real & old_quant)
|
||||
{
|
||||
bool added_some=FALSE;
|
||||
TSheet_field & ss=(TSheet_field & )field(F_RIGHE);
|
||||
|
||||
real new_factor(ss.cell(r,ss.cid2index(F_QUANT)));
|
||||
new_factor = old_quant.is_zero() ? ZERO : new_factor / old_quant;
|
||||
TString16 new_codcaus(ss.cell(r,ss.cid2index(F_CAUSRIG)));
|
||||
if (new_codcaus.blank())
|
||||
new_codcaus=get(F_CODCAUS);
|
||||
|
||||
TCausale_magazzino &oldcau=(TCausale_magazzino &)cache_causali.get(old_codcaus);
|
||||
TCausale_magazzino &cau =(TCausale_magazzino &)cache_causali.get(new_codcaus);
|
||||
if (*cau.caus_collegata()!='\0')
|
||||
bool rimuovi_righe_coll=FALSE;
|
||||
bool inserisci_righe_coll=*cau.caus_collegata()!='\0';
|
||||
if (inserisci_righe_coll)
|
||||
{
|
||||
// *******************************
|
||||
// deve esserci una riga collegata
|
||||
TString16 codmag,coddep;
|
||||
real prezzo(ss.cell(r,ss.cid2index(F_PREZZO)));
|
||||
if (r < ss.items()-1 && *ss.cell(r+1,ss.cid2index( F_AUTOMATICA)) != riga_automatica)
|
||||
TCausale_magazzino &cau_coll =(TCausale_magazzino &)cache_causali.get(cau.caus_collegata());
|
||||
|
||||
if ((r < ss.items()-1 && *ss.cell(r+1,ss.cid2index( F_AUTOMATICA)) == riga_automatica)
|
||||
&& cau_coll.esplodente()
|
||||
&& strcmp(old_codart,ss.cell(r,ss.cid2index( F_CODART)))!=0 )
|
||||
{
|
||||
// ho cambiato il codice articolo del finito: rimuovo le righe automatiche esplose
|
||||
rimuovi_righe_coll=TRUE;
|
||||
}
|
||||
}
|
||||
else
|
||||
if (*oldcau.caus_collegata()!='\0') // ho cambiato causale, passando ad una che non ha collegamenti
|
||||
rimuovi_righe_coll=TRUE;
|
||||
// ******************
|
||||
if (rimuovi_righe_coll)
|
||||
{
|
||||
while (r < ss.items()-1
|
||||
&& *ss.cell(r+1,ss.cid2index( F_AUTOMATICA)) == riga_automatica)
|
||||
ss.destroy(r + 1);
|
||||
}
|
||||
|
||||
// ******************
|
||||
if (inserisci_righe_coll)
|
||||
{
|
||||
TCausale_magazzino &cau_coll =(TCausale_magazzino &)cache_causali.get(cau.caus_collegata());
|
||||
TString tmpstr;
|
||||
int offset=1;
|
||||
#define COPIA_SU_AUTO(colnum) {tmpstr=(ss.row(r).get(ss.cid2index(colnum))); ss.row(r+offset).add(tmpstr,ss.cid2index(colnum));}
|
||||
if ((r == ss.items()-1 || r < ss.items()-1 && *ss.cell(r+1,ss.cid2index( F_AUTOMATICA)) != riga_automatica))
|
||||
{
|
||||
// manca, la inserisco
|
||||
ss.insert(r+1);
|
||||
ss.row(r+1)=ss.row(r);
|
||||
} else {
|
||||
ss.row(r+1)=ss.row(r);
|
||||
}
|
||||
//codmag=ss.cell(r,ss.cid2index(F_CODMAG));
|
||||
//coddep=ss.cell(r,ss.cid2index(F_CODDEP));
|
||||
//ss.row(r+1).add(codmag,ss.cid2index(F_CODMAG));
|
||||
//ss.row(r+1).add(coddep,ss.cid2index(F_CODDEP));
|
||||
ss.row(r+1).add(prezzo.string(),ss.cid2index(F_PREZZO));
|
||||
|
||||
ss.row(r+1).add(cau.caus_collegata(),ss.cid2index(F_CAUSRIG));
|
||||
ss.row(r+1).add(TString(1,riga_automatica),ss.cid2index(F_AUTOMATICA));
|
||||
ss.check_row(r+1);
|
||||
ss.force_update(r+1);
|
||||
return TRUE;
|
||||
} else
|
||||
if (*oldcau.caus_collegata()!='\0')
|
||||
ss.insert(r+offset);
|
||||
ss.row(r+offset)=ss.row(r);
|
||||
ss.row(r+offset).add(TString(1,riga_automatica),ss.cid2index(F_AUTOMATICA));
|
||||
if (cau_coll.has_default_mag())
|
||||
ss.row(r+1).add(cau_coll.default_mag(),ss.cid2index(F_CODMAG));
|
||||
if (cau_coll.has_default_dep())
|
||||
ss.row(r+1).add(cau_coll.default_mag(),ss.cid2index(F_CODDEP));
|
||||
COPIA_SU_AUTO(F_PREZZO);
|
||||
added_some= TRUE;
|
||||
}
|
||||
while (r+offset < ss.items() && *ss.cell(r+offset,ss.cid2index( F_AUTOMATICA))==riga_automatica)
|
||||
{
|
||||
// scollega la vecchia riga
|
||||
ss.destroy(r + 1);
|
||||
// riporta eventuali cambiamenti della riga "Master" sulle righe automatice
|
||||
if (*ss.cell(r+offset,ss.cid2index( F_ESPLOSA)) <=' ')
|
||||
{
|
||||
COPIA_SU_AUTO(F_CODART);
|
||||
COPIA_SU_AUTO(F_LIV1);
|
||||
COPIA_SU_AUTO(F_LIV2);
|
||||
COPIA_SU_AUTO(F_LIV3);
|
||||
COPIA_SU_AUTO(F_LIV4);
|
||||
COPIA_SU_AUTO(F_UM);
|
||||
COPIA_SU_AUTO(F_QUANT);
|
||||
ss.row(r+offset).add(cau.caus_collegata(),ss.cid2index(F_CAUSRIG));
|
||||
ss.check_row(r+offset);
|
||||
ss.force_update(r+offset);
|
||||
} else {
|
||||
if (new_factor != 1.0)
|
||||
{
|
||||
real q(ss.row(r+offset).get(ss.cid2index(F_QUANT)));
|
||||
q*=new_factor;
|
||||
tmpstr=q.string();
|
||||
ss.row(r+offset).add(tmpstr,ss.cid2index(F_QUANT));
|
||||
ss.force_update(r+offset);
|
||||
}
|
||||
}
|
||||
|
||||
offset++;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
return added_some;
|
||||
}
|
||||
|
||||
bool TMask_movmag::add_explrows(int r)
|
||||
{
|
||||
TSheet_field & sheet=(TSheet_field & )field(F_RIGHE);
|
||||
TString16 new_codcaus(sheet.cell(r,sheet.cid2index(F_CAUSRIG)));
|
||||
if (new_codcaus.blank())
|
||||
new_codcaus=get(F_CODCAUS);
|
||||
|
||||
bool added_some=FALSE;
|
||||
|
||||
TCausale_magazzino &cau =(TCausale_magazzino &)cache_causali.get(new_codcaus);
|
||||
if (cau.esplodente() && *sheet.cell(r,sheet.cid2index(F_ESPLOSA)) == ' ')
|
||||
{
|
||||
TDistinta_tree distinta;
|
||||
TArray boom;
|
||||
// *******************************
|
||||
// c'e' una riga di movimento esplodente non ancora esplosa:
|
||||
// va sostituita con n righe esplose
|
||||
TString codmag;
|
||||
real prezzo,quant;
|
||||
distinta.set_root(sheet.cell(r,sheet.cid2index(F_CODART)));
|
||||
distinta.explode(boom);
|
||||
for (int newrow=0; newrow < boom.items() ; newrow++)
|
||||
{
|
||||
TRiga_esplosione & riga_esp=(TRiga_esplosione & )(boom[newrow]);
|
||||
sheet.insert(r+newrow+1);
|
||||
TToken_string & nuova_riga=sheet.row(r+newrow+1);
|
||||
nuova_riga=sheet.row(r);
|
||||
nuova_riga.add(riga_esp.articolo() ,sheet.cid2index(F_CODART));
|
||||
nuova_riga.add(riga_esp.um() , sheet.cid2index(F_UM));
|
||||
quant=sheet.row(r).get(sheet.cid2index(F_QUANT));
|
||||
quant*=riga_esp.val();
|
||||
nuova_riga.add(quant.string() , sheet.cid2index(F_QUANT));
|
||||
if (codmag.not_empty())
|
||||
{
|
||||
nuova_riga.add(codmag.sub(1,3) ,sheet.cid2index(F_CODMAG));
|
||||
nuova_riga.add(codmag.sub(4,5) ,sheet.cid2index(F_CODDEP));
|
||||
}
|
||||
if (!prezzo.is_zero())
|
||||
nuova_riga.add(prezzo.string(),sheet.cid2index(F_PREZZO));
|
||||
nuova_riga.add("X",sheet.cid2index(F_ESPLOSA));
|
||||
|
||||
sheet.check_row(r+1+newrow);
|
||||
sheet.force_update(r+1+newrow);
|
||||
added_some=TRUE;
|
||||
}
|
||||
// elimino la riga "padre"
|
||||
sheet.destroy(r);
|
||||
}
|
||||
return added_some;
|
||||
}
|
||||
|
||||
real TMask_movmag::proposed_price(const char *codart,
|
||||
@ -293,7 +416,7 @@ bool TMask_movmag::handle_codcaus(TMask_field &fld, KEY k)
|
||||
for (int i=0; i< ss.items(); i++)
|
||||
{
|
||||
if (*ss.cell(i,ss.cid2index(F_CAUSRIG)) ==' ')
|
||||
added_some &=(m.update_rigamov(i,old_codcaus));
|
||||
added_some &=(m.update_rigamov(i,old_codcaus,ss.cell(i,ss.cid2index(F_CODART)), real(ss.cell(i,ss.cid2index(F_QUANT)))));
|
||||
}
|
||||
if (added_some)
|
||||
{
|
||||
@ -324,7 +447,8 @@ bool TMask_movmag::handle_datacomp(TMask_field &fld, KEY k)
|
||||
|
||||
|
||||
|
||||
class TApp_movmag: public TRelation_application {
|
||||
class TApp_movmag: public TRelation_application
|
||||
{
|
||||
TArray used_files;
|
||||
TMask_movmag *_msk; // maschera principale
|
||||
TCodgiac_livelli * _livelli_giac;// oggetto handler per i livelli di giacenza
|
||||
@ -338,6 +462,7 @@ class TApp_movmag: public TRelation_application {
|
||||
virtual const char *get_next_key();
|
||||
|
||||
TString16 _nextcod;
|
||||
|
||||
public:
|
||||
TApp_movmag() {};
|
||||
virtual ~TApp_movmag() {};
|
||||
@ -380,14 +505,15 @@ bool TApp_movmag::user_destroy()
|
||||
// autonumerazione
|
||||
const char *TApp_movmag::get_next_key()
|
||||
{
|
||||
return _nextcod.format("%d|%s",F_NUMREG,((TMov_mag &)_rel->curr()).get_next_key());
|
||||
const char* nk = ((TMov_mag &)_rel->curr()).get_next_key();
|
||||
return _nextcod.format("%d|%s",F_NUMREG, nk);
|
||||
}
|
||||
|
||||
int mg1100(int argc, char* argv[])
|
||||
{
|
||||
TApp_movmag a;
|
||||
|
||||
a.run(argc, argv, "Movimenti di magazzino");
|
||||
exit(0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
107
mg/mg1100.uml
107
mg/mg1100.uml
@ -135,79 +135,51 @@ BEGIN
|
||||
GROUP G_DEFMOV
|
||||
END
|
||||
|
||||
|
||||
LISTBOX F_TIPOCONDV 1 12
|
||||
RADIOBUTTON F_TIPOCF 15
|
||||
BEGIN
|
||||
FIELD TIPOCV
|
||||
PROMPT 2 10 "Condizione di vendita "
|
||||
ITEM " |Nessuna"
|
||||
MESSAGE CLEAR,F_CATVEN
|
||||
MESSAGE RESET,F_CODLIST|RESET,F_CODCONTR|RESET,F_CODOFF
|
||||
MESSAGE HIDE,F_CODLIST|HIDE,F_CODCONTR|HIDE,F_CODOFF|CLEAR,F_TIPOCF
|
||||
ITEM "L|Listino"
|
||||
MESSAGE ENABLE,F_CATVEN
|
||||
MESSAGE SHOW,F_CODLIST|HIDE,F_CODCONTR|HIDE,F_CODOFF
|
||||
MESSAGE RESET,F_CODCONTR|RESET,F_CODOFF|CLEAR,F_TIPOCF
|
||||
ITEM "C|Contratto"
|
||||
MESSAGE CLEAR,F_CATVEN
|
||||
MESSAGE HIDE,F_CODLIST|SHOW,F_CODCONTR|HIDE,F_CODOFF
|
||||
MESSAGE RESET,F_CODLIST|RESET,F_CODOFF|ENABLE,F_TIPOCF
|
||||
ITEM "O|Offerta"
|
||||
MESSAGE CLEAR,F_CATVEN
|
||||
MESSAGE HIDE,F_CODLIST|HIDE,F_CODCONTR|SHOW,F_CODOFF
|
||||
MESSAGE RESET,F_CODLIST|RESET,F_CODCONTR|CLEAR,F_TIPOCF
|
||||
|
||||
// GROUP G_DEFMOV
|
||||
END
|
||||
|
||||
LISTBOX F_TIPOCF 20
|
||||
BEGIN
|
||||
PROMPT 42 10 "relativo a "
|
||||
PROMPT 2 8 ""
|
||||
FLAGS "G"
|
||||
FIELD TIPOCF
|
||||
ITEM " |"
|
||||
ITEM " |Nessuno"
|
||||
MESSAGE HIDE,F_CODCLI|HIDE,F_CODFOR|HIDE,F_RAGSOC|RESET,F_CODCF|HIDE,F_CODCF
|
||||
ITEM "C|cliente"
|
||||
ITEM "C|Cliente"
|
||||
MESSAGE SHOW,F_CODCF|SHOW,F_CODCLI|HIDE,F_CODFOR|SHOW,F_RAGSOC|CHECK,F_CODCONTR
|
||||
ITEM "F|fornitore"
|
||||
ITEM "F|Fornitore"
|
||||
MESSAGE SHOW,F_CODCF|HIDE,F_CODCLI|SHOW,F_CODFOR|SHOW,F_RAGSOC|CHECK,F_CODCONTR
|
||||
|
||||
GROUP G_DEFMOV
|
||||
END
|
||||
|
||||
|
||||
TEXT F_CODCLI
|
||||
BEGIN
|
||||
PROMPT 20 10 "Codice cliente "
|
||||
END
|
||||
|
||||
TEXT F_CODFOR
|
||||
BEGIN
|
||||
PROMPT 20 10 "Codice fornitore "
|
||||
END
|
||||
|
||||
// agisce anche quando l'utente non entra in gioco (settaggio da contratto...)
|
||||
NUMBER F_CODCF 6
|
||||
BEGIN
|
||||
// FLAGS "UHG"
|
||||
FIELD CODCF
|
||||
PROMPT 19 12 ""
|
||||
PROMPT 37 10 ""
|
||||
USE LF_CLIFO
|
||||
INPUT TIPOCF F_TIPOCF
|
||||
INPUT CODCF F_CODCF
|
||||
INPUT TIPOCF F_TIPOCF SELECT
|
||||
INPUT CODCF F_CODCF
|
||||
DISPLAY "Codice " CODCF
|
||||
DISPLAY "Ragione sociale@50" RAGSOC
|
||||
OUTPUT F_CODCF CODCF
|
||||
// OUTPUT F_CODCLI CODCF
|
||||
// OUTPUT F_CODFOR CODCF
|
||||
OUTPUT F_RAGSOC RAGSOC
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
TEXT F_CODCLI
|
||||
BEGIN
|
||||
PROMPT 2 12 "Codice cliente "
|
||||
END
|
||||
|
||||
TEXT F_CODFOR
|
||||
BEGIN
|
||||
PROMPT 2 12 "Codice fornitore "
|
||||
END
|
||||
|
||||
// esegue i controlli e ricopia i valori del codice sia in CLI che in FOR
|
||||
STRING F_RAGSOC 50 40
|
||||
STRING F_RAGSOC 50 30
|
||||
BEGIN
|
||||
PROMPT 30 12 ""
|
||||
PROMPT 48 12 ""
|
||||
USE LF_CLIFO KEY 2
|
||||
INPUT TIPOCF F_TIPOCF SELECT
|
||||
INPUT RAGSOC F_RAGSOC
|
||||
@ -216,11 +188,35 @@ BEGIN
|
||||
OUTPUT F_CODCF CODCF
|
||||
GROUP G_DEFMOV
|
||||
END
|
||||
|
||||
LISTBOX F_TIPOCONDV 1 12
|
||||
BEGIN
|
||||
FIELD TIPOCV
|
||||
PROMPT 2 12 "Condizione di vendita "
|
||||
ITEM " |Nessuna"
|
||||
MESSAGE CLEAR,F_CATVEN
|
||||
MESSAGE RESET,F_CODLIST|RESET,F_CODCONTR|RESET,F_CODOFF
|
||||
MESSAGE HIDE,F_CODLIST|HIDE,F_CODCONTR|HIDE,F_CODOFF
|
||||
ITEM "L|Listino"
|
||||
MESSAGE ENABLE,F_CATVEN
|
||||
MESSAGE SHOW,F_CODLIST|HIDE,F_CODCONTR|HIDE,F_CODOFF
|
||||
MESSAGE RESET,F_CODCONTR|RESET,F_CODOFF
|
||||
ITEM "C|Contratto"
|
||||
MESSAGE CLEAR,F_CATVEN
|
||||
MESSAGE HIDE,F_CODLIST|SHOW,F_CODCONTR|HIDE,F_CODOFF
|
||||
MESSAGE RESET,F_CODLIST|RESET,F_CODOFF
|
||||
ITEM "O|Offerta"
|
||||
MESSAGE CLEAR,F_CATVEN
|
||||
MESSAGE HIDE,F_CODLIST|HIDE,F_CODCONTR|SHOW,F_CODOFF
|
||||
MESSAGE RESET,F_CODLIST|RESET,F_CODCONTR
|
||||
|
||||
// GROUP G_DEFMOV
|
||||
END
|
||||
|
||||
STRING F_CATVEN 2
|
||||
BEGIN
|
||||
FLAGS "DU"
|
||||
PROMPT 2 13 "Cat.ven."
|
||||
PROMPT 2 14 "Cat.ven."
|
||||
FIELD CATVEN
|
||||
USE CVE
|
||||
INPUT CODTAB F_CATVEN
|
||||
@ -234,7 +230,7 @@ END
|
||||
STRING F_CODLIST 3
|
||||
BEGIN
|
||||
FLAGS "U"
|
||||
PROMPT 20 13 "Codice listino "
|
||||
PROMPT 2 16 "Codice listino "
|
||||
FIELD CODCONDV
|
||||
USE LF_CONDV
|
||||
INPUT TIPO "L"
|
||||
@ -254,7 +250,7 @@ END
|
||||
STRING F_CODCONTR 3
|
||||
BEGIN
|
||||
FLAGS "U"
|
||||
PROMPT 20 13 "Codice contratto "
|
||||
PROMPT 2 16 "Codice contratto "
|
||||
FIELD CODCONDV
|
||||
USE LF_CONDV
|
||||
INPUT TIPO "C"
|
||||
@ -277,7 +273,7 @@ END
|
||||
STRING F_CODOFF 3
|
||||
BEGIN
|
||||
FLAGS "U"
|
||||
PROMPT 20 13 "Codice offerta "
|
||||
PROMPT 2 16 "Codice offerta "
|
||||
FIELD CODCONDV
|
||||
USE LF_CONDV
|
||||
INPUT TIPO "O"
|
||||
@ -337,9 +333,9 @@ BEGIN
|
||||
GROUP G_DEFMOV
|
||||
END
|
||||
|
||||
SPREADSHEET F_RIGHE 77 12
|
||||
SPREADSHEET F_RIGHE
|
||||
BEGIN
|
||||
PROMPT 2 7 "RIGHE DI MOVIMENTO"
|
||||
PROMPT 0 7 "RIGHE DI MOVIMENTO"
|
||||
FLAGS "AI"
|
||||
//USE LF_RMOVMAG KEY NRIG
|
||||
//INPUT NUMREG F_NUMREG
|
||||
@ -358,7 +354,8 @@ BEGIN
|
||||
ITEM "Causale"
|
||||
END
|
||||
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
|
||||
#include "mg1100a.uml"
|
||||
|
||||
@ -12,6 +12,7 @@
|
||||
#define F_QUANT 111
|
||||
#define F_PREZZO 112
|
||||
#define F_CAUSRIG 113
|
||||
#define F_ESPLOSA 120
|
||||
|
||||
// colonne non visibili dello Sheet
|
||||
#define F_DESMAG 150
|
||||
@ -22,4 +23,4 @@
|
||||
#define F_VALORE 156
|
||||
#define F_DESCAUSRIG 157
|
||||
|
||||
#define G_NOAUTO 1
|
||||
#define G_NOAUTO 1
|
||||
|
||||
@ -33,13 +33,15 @@ STRING F_CODART 20
|
||||
BEGIN
|
||||
PROMPT 2 2 "Codice articolo "
|
||||
FIELD CODART
|
||||
FLAGS "U"
|
||||
FLAGS "UG"
|
||||
USE LF_ANAMAG
|
||||
JOIN LF_UMART INTO CODART==CODART NRIGA==1
|
||||
INPUT CODART F_CODART
|
||||
DISPLAY "Codice@20" CODART
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_CODART CODART
|
||||
OUTPUT F_DESART DESCR
|
||||
OUTPUT F_UM LF_UMART->UM
|
||||
CHECKTYPE REQUIRED
|
||||
GROUP G_NOAUTO
|
||||
ADD RUN ve2 -3
|
||||
@ -50,6 +52,7 @@ BEGIN
|
||||
PROMPT 2 3 "Descrizione "
|
||||
FLAGS "U"
|
||||
USE LF_ANAMAG KEY 2
|
||||
JOIN LF_UMART INTO CODART==CODART NRIGA==1
|
||||
INPUT DESCR F_DESART
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
DISPLAY "Codice@20" CODART
|
||||
@ -75,6 +78,22 @@ BEGIN
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_DESMAG 50
|
||||
BEGIN
|
||||
PROMPT 22 5 ""
|
||||
USE MAG KEY 2 SELECT CODTAB[4,5]==""
|
||||
INPUT S0 F_DESMAG
|
||||
DISPLAY "Denominazione mag.@50" S0
|
||||
DISPLAY "Cod. magazzino" CODTAB[1,3]
|
||||
DISPLAY "Cod. deposito" CODTAB[4,5]
|
||||
OUTPUT F_CODMAG CODTAB[1,3]
|
||||
CHECKTYPE NORMAL
|
||||
MESSAGE EMPTY CHECK,F_CODMAG
|
||||
// GUIDO!!!!!!!!!!!!!!!!! in che ordine vengono eseguiti gli output
|
||||
// a cascata??? perchè mi ritrovo il coddep cancellato???
|
||||
END
|
||||
|
||||
|
||||
STRING F_CODDEP 2
|
||||
BEGIN
|
||||
PROMPT 2 6 "Deposito "
|
||||
@ -94,22 +113,6 @@ BEGIN
|
||||
WARNING "Indicare il deposito"
|
||||
END
|
||||
|
||||
STRING F_DESMAG 50
|
||||
BEGIN
|
||||
PROMPT 22 5 ""
|
||||
USE MAG KEY 2 SELECT CODTAB[4,5]==""
|
||||
INPUT S0 F_DESMAG
|
||||
DISPLAY "Denominazione mag.@50" S0
|
||||
DISPLAY "Cod. magazzino" CODTAB[1,3]
|
||||
DISPLAY "Cod. deposito" CODTAB[4,5]
|
||||
OUTPUT F_CODMAG CODTAB[1,3]
|
||||
CHECKTYPE NORMAL
|
||||
MESSAGE EMPTY CHECK,F_CODMAG
|
||||
// GUIDO!!!!!!!!!!!!!!!!! in che ordine vengono eseguiti gli output
|
||||
// a cascata??? perchè mi ritrovo il coddep cancellato???
|
||||
END
|
||||
|
||||
|
||||
STRING F_DESDEP 50
|
||||
BEGIN
|
||||
PROMPT 22 6 ""
|
||||
@ -135,7 +138,8 @@ BOOLEAN H_GESTGIA
|
||||
BEGIN
|
||||
PROMPT 1 1 ""
|
||||
FLAGS "HG"
|
||||
MESSAGE TRUE ENABLE,F_CODDEP|CHECK,F_CODDEP|SHOW,F_DESDEP
|
||||
// MESSAGE TRUE ENABLE,F_CODDEP|CHECK,F_CODDEP|SHOW,F_DESDEP
|
||||
MESSAGE TRUE ENABLE,F_CODDEP|SHOW,F_DESDEP
|
||||
MESSAGE FALSE RESET,F_CODDEP|RESET,F_DESDEP|DISABLE,F_CODDEP|HIDE,F_DESDEP
|
||||
END
|
||||
|
||||
@ -262,6 +266,14 @@ BEGIN
|
||||
PROMPT 42 16 ""
|
||||
END
|
||||
|
||||
BOOL F_ESPLOSA
|
||||
BEGIN
|
||||
FLAGS "GH"
|
||||
FIELD ESPLOSA
|
||||
PROMPT 2 18 ""
|
||||
END
|
||||
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
|
||||
@ -77,12 +77,7 @@ public:
|
||||
|
||||
bool TApp_rebuildbalances::create()
|
||||
{
|
||||
used_files= new TArray;
|
||||
used_files->add(new TLocalisamfile(LF_ANAMAG));
|
||||
used_files->add(new TLocalisamfile(LF_UMART));
|
||||
used_files->add(new TLocalisamfile(LF_MAG));
|
||||
used_files->add(new TLocalisamfile(LF_MOVMAG));
|
||||
used_files->add(new TLocalisamfile(LF_RMOVMAG));
|
||||
open_files(LF_ANAMAG,LF_UMART,LF_MAG,LF_MOVMAG,LF_RMOVMAG,LF_TABCOM,LF_STOMAG,0);
|
||||
TSkeleton_application::create();
|
||||
return TRUE;
|
||||
}
|
||||
@ -106,8 +101,8 @@ void TApp_rebuildbalances::main_loop()
|
||||
TMask_buildmov m;
|
||||
while (m.run()==K_ENTER)
|
||||
{
|
||||
if (!rebuild_balances(m.get(F_ANNOES)/*, TRUE*/))
|
||||
error_box("Ricostruzione saldi incompleta o errata. Ripetere");
|
||||
if (!rebuild_balances(m.get(F_ANNOES)))
|
||||
warning_box("A causa degli errori riscontrati i saldi di magazzino \npotrebbero non essere stati del tutto aggiornati. \nProcedere ad una nuova operazione di ''Ricostruzione saldi''");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
108
mg/mg1400.cpp
108
mg/mg1400.cpp
@ -112,16 +112,19 @@ bool TMask_openclose::handle_what(TMask_field &fld, KEY k)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
// Corrispondenza elementi di _movimenti:
|
||||
/* elemento 0 : movimento con causale di rimanenze iniziali
|
||||
elemento 1 : " " " In conto lav.
|
||||
elemento 2 : " " " A conto lav.
|
||||
elemento 3 : " " " In prod. fin.
|
||||
elemento 4 : " " " In prod. comp.
|
||||
elemento 5 : " " " Ordinato fornitori
|
||||
elemento 6 : " " " Ordinato clienti
|
||||
elemento 7 e successivi: tutte le righe in eccesso a MAX_ROWS
|
||||
*/
|
||||
#define CAUS_A_RIMIN 0 // movimento con causale di rimanenze iniziali
|
||||
#define CAUS_A_INCL 1 // " " " In conto lav.
|
||||
#define CAUS_A_ACL 2 // " " " A conto lav.
|
||||
#define CAUS_A_INPRF 3 // " " " In prod. fin.
|
||||
#define CAUS_A_INPRC 4 // " " " In prod. comp.
|
||||
#define CAUS_A_ORDF 5 // " " " Ordinato fornitori
|
||||
#define CAUS_A_ORDC 6 // " " " Ordinato clienti
|
||||
// elemento 7 e successivi: tutte le righe in eccesso a MAX_ROWS
|
||||
|
||||
|
||||
|
||||
|
||||
class TApp_openclose : public TSkeleton_application
|
||||
{
|
||||
@ -141,7 +144,8 @@ class TApp_openclose : public TSkeleton_application
|
||||
TDate _date_to_close;
|
||||
TDate _date_to_open;
|
||||
action _what;
|
||||
TTipo_valorizz _calctype, _stotype; // Stotype sta per sto-cazzo
|
||||
bool _valorizza_comp;
|
||||
TTipo_valorizz _calctype,_stotype; // Stotype sta per sto-cazzo: valorizzazione per lo storico
|
||||
|
||||
protected:
|
||||
virtual bool create();
|
||||
@ -157,6 +161,7 @@ public:
|
||||
virtual ~TApp_openclose() {};
|
||||
};
|
||||
|
||||
|
||||
bool TApp_openclose::create()
|
||||
{
|
||||
_msk = new TMask_openclose(has_module(ORAUT));
|
||||
@ -169,6 +174,7 @@ bool TApp_openclose::create()
|
||||
return TSkeleton_application::create();
|
||||
}
|
||||
|
||||
|
||||
bool TApp_openclose::destroy()
|
||||
{
|
||||
delete _msk;
|
||||
@ -181,6 +187,7 @@ bool TApp_openclose::destroy()
|
||||
return TSkeleton_application::destroy();
|
||||
}
|
||||
|
||||
|
||||
void TApp_openclose::compila_movimento(TMov_mag& currmov, TArticolo_giacenza& art, TRectype& rec, const int caus)
|
||||
{
|
||||
// Aggiorna la testata se il movimento e' nuovo (non ha righe)
|
||||
@ -194,7 +201,8 @@ void TApp_openclose::compila_movimento(TMov_mag& currmov, TArticolo_giacenza& ar
|
||||
}
|
||||
|
||||
// Aggiunge una nuova riga al movimento corrente
|
||||
TString codmag(rec.get(MAG_CODMAG));
|
||||
TString codmagdep(rec.get(MAG_CODMAG));
|
||||
TString codmag(codmagdep);codmag.cut(3);
|
||||
TString codart(rec.get(MAG_CODART));
|
||||
TString livello(rec.get(MAG_LIVELLO));
|
||||
|
||||
@ -202,12 +210,16 @@ void TApp_openclose::compila_movimento(TMov_mag& currmov, TArticolo_giacenza& ar
|
||||
// switch sul tipo di causale per settare quantita' e prezzo:
|
||||
switch (caus)
|
||||
{
|
||||
case 0: // Rimanenze iniziali
|
||||
case CAUS_A_RIMIN: // Rimanenze iniziali
|
||||
{
|
||||
qta = rec.get_real(MAG_GIAC) + rec.get_real(MAG_PRODFIN)-rec.get_real(MAG_PRODCOMP)
|
||||
+ rec.get_real(MAG_ACL) - rec.get_real(MAG_INCL); // ??corretta da AcL, IncL e InProdF ??
|
||||
qta = rec.get_real(MAG_GIAC) + rec.get_real(MAG_ACL) - rec.get_real(MAG_INCL); // ??corretta da AcL, IncL e InProdF ??
|
||||
if (!_valorizza_comp)
|
||||
qta += rec.get_real(MAG_PRODFIN)-rec.get_real(MAG_PRODCOMP);
|
||||
switch (_calctype)
|
||||
{
|
||||
case valorizz_costmediopond:
|
||||
val = art.costo_mediopond(_es_to_close, codmag, livello);
|
||||
break;
|
||||
case valorizz_costmedio:
|
||||
val = art.costo_medio(_es_to_close, codmag, livello);
|
||||
break;
|
||||
@ -247,24 +259,24 @@ void TApp_openclose::compila_movimento(TMov_mag& currmov, TArticolo_giacenza& ar
|
||||
prezzo = val/qta;
|
||||
}
|
||||
break;
|
||||
case 1: // In conto lav.
|
||||
case CAUS_A_INCL: // In conto lav.
|
||||
qta = rec.get_real(MAG_INCL);
|
||||
break;
|
||||
case 2: // A conto lav.
|
||||
case CAUS_A_ACL: // A conto lav.
|
||||
qta = rec.get_real(MAG_ACL);
|
||||
break;
|
||||
case 3: // In prod. fin.
|
||||
case CAUS_A_INPRF: // In prod. fin.
|
||||
qta = rec.get_real(MAG_PRODFIN);
|
||||
break;
|
||||
case 4: // In prod. com.
|
||||
case CAUS_A_INPRC: // In prod. com.
|
||||
qta = rec.get_real(MAG_PRODCOMP);
|
||||
break;
|
||||
case 5: // Ord. forn.
|
||||
case CAUS_A_ORDF: // Ord. forn.
|
||||
qta = rec.get_real(MAG_ORDF);
|
||||
val = rec.get_real(MAG_VALORDF);
|
||||
prezzo = val/qta;
|
||||
break;
|
||||
case 6: // Ord. cli.
|
||||
case CAUS_A_ORDC: // Ord. cli.
|
||||
qta = rec.get_real(MAG_ORDC);
|
||||
val = rec.get_real(MAG_VALORDC);
|
||||
prezzo = val/qta;
|
||||
@ -279,7 +291,7 @@ void TApp_openclose::compila_movimento(TMov_mag& currmov, TArticolo_giacenza& ar
|
||||
const int r = ums.first_row();
|
||||
if (r > 0)
|
||||
riga.put(RMOVMAG_UM, (ums[r]).get(UMART_UM));
|
||||
riga.put(RMOVMAG_CODMAG, codmag);
|
||||
riga.put(RMOVMAG_CODMAG, codmagdep);
|
||||
riga.put(RMOVMAG_CODART, codart);
|
||||
riga.put(RMOVMAG_LIVGIAC, livello);
|
||||
// La causale di riga va messa solo se e' diversa da quella di testata!
|
||||
@ -288,25 +300,24 @@ void TApp_openclose::compila_movimento(TMov_mag& currmov, TArticolo_giacenza& ar
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Chiude l'esercizio selezionato (in base al flag lo fa provvisoriamente o definitivamente)
|
||||
// L'unica differenza sta nella creazione dei movimenti d'apertura nel caso di chiusura definitiva
|
||||
void TApp_openclose::chiudi_esercizio()
|
||||
{
|
||||
TArticolo_giacenza artgiac;
|
||||
TRelation rel(LF_ANAMAG);
|
||||
TCursor cur(&rel);
|
||||
rel.lfile().set_curr(new TArticolo_giacenza()); // setta il Multirec come current della relazione
|
||||
|
||||
TString descr1, descr2;
|
||||
int err = NOERR;
|
||||
TTable esc("ESC");
|
||||
|
||||
rel.lfile().set_curr((TRectype*)&artgiac);
|
||||
const long items = cur.items();
|
||||
|
||||
rebuild_balances(_es_to_close); // Cosi' ci assicuriamo che i saldi dell'esercizio vecchio siano a posto
|
||||
descr1.format(_what == definitiva ? "Apertura esercizio %s" : "Aggiornamento saldi esercizio %s", (const char*) _es_to_open);
|
||||
descr2 << descr1 << " in corso...";
|
||||
|
||||
TProgind *prog = new TProgind(items, descr2, FALSE, TRUE, 10);
|
||||
|
||||
// cose specifiche per chiusura definitiva...
|
||||
// Reperisce l'ultimo movimento di magazzino per il numero di registrazione
|
||||
@ -315,6 +326,8 @@ void TApp_openclose::chiudi_esercizio()
|
||||
// Indici per i movimenti. Crea i movimenti di base (uno per ogni causale)
|
||||
int indici[7], last = 6;
|
||||
if (_what == definitiva)
|
||||
{
|
||||
|
||||
for (int j=0; j < 7; j++)
|
||||
{
|
||||
_movimenti.add(new TMov_mag);
|
||||
@ -324,10 +337,10 @@ void TApp_openclose::chiudi_esercizio()
|
||||
indici[j] = j;
|
||||
}
|
||||
|
||||
// Ciclo per i fottuti articoli
|
||||
for (cur = 0L; cur.ok(); cur +=1)
|
||||
{
|
||||
if (_what == definitiva)
|
||||
const long max_art = cur.items();
|
||||
TProgind *prog = new TProgind(max_art, descr2, FALSE, TRUE, 10);
|
||||
// Ciclo per i fottuti articoli
|
||||
for (cur = 0L; cur.ok(); cur +=1)
|
||||
{
|
||||
// Scorre i saldi del vecchio esercizio per questo TArticolo_giacenza
|
||||
// compilando un array di almeno 7 TMov_mag
|
||||
@ -362,28 +375,14 @@ void TApp_openclose::chiudi_esercizio()
|
||||
compila_movimento(currmov, art, rec, i);
|
||||
}
|
||||
}
|
||||
prog->addstatus(1L);
|
||||
}
|
||||
else
|
||||
{
|
||||
// calcola il valore delle rimanenze finali dell'esercizio vecchio
|
||||
// e riporta il record con l'anno esercizio nuovo.
|
||||
((TArticolo_giacenza&)cur.curr()).riporta_saldi(_es_to_close, _es_to_open, _calctype, _catven, _codlis);
|
||||
}
|
||||
// Aggiornamento storico....
|
||||
prog->addstatus(1L);
|
||||
}
|
||||
delete prog;
|
||||
|
||||
// Vi sarebbe l'azzeramento saldi dell'esercizio nuovo, (in caso di chiusura definitiva)
|
||||
// ma e' gia' fatta alla fine perche' dopo la ricostruzione movimenti l'esercizio vecchio
|
||||
// e' marcato come chiuso.
|
||||
|
||||
if (_what == definitiva)
|
||||
{
|
||||
// Scorre i movimenti generati ed effettua la scrittura
|
||||
const int items = _movimenti.items();
|
||||
prog = new TProgind(items, "Scrittura movimenti in corso...",FALSE,TRUE,10);
|
||||
for (int i=0; err == NOERR && i<items;i++)
|
||||
delete prog;
|
||||
// **************
|
||||
// Effettua la scrittura dei movimenti di apertura generati
|
||||
const int max_mov = _movimenti.items();
|
||||
prog = new TProgind(max_mov, "Scrittura movimenti di apertura in corso...",FALSE,TRUE,10);
|
||||
for (int i=0; err == NOERR && i<max_mov;i++)
|
||||
{
|
||||
prog->addstatus(1L);
|
||||
TMov_mag& mov = (TMov_mag&) _movimenti[i];
|
||||
@ -394,6 +393,8 @@ void TApp_openclose::chiudi_esercizio()
|
||||
}
|
||||
delete prog;
|
||||
|
||||
// **************
|
||||
// chiude l'esercizio
|
||||
if (err == NOERR)
|
||||
{
|
||||
// Marca l'esercizio come chiuso
|
||||
@ -414,10 +415,11 @@ void TApp_openclose::chiudi_esercizio()
|
||||
_movimenti.destroy();
|
||||
}
|
||||
|
||||
// La ricostruzione dei saldi e' comune in entrambi i casi (definitiva o provvisoria)
|
||||
// A questo punto l'esercizio vecchio e' marcato come chiuso in base al tipo di chiusura
|
||||
// (definitiva o provvisoria); La ricostruzione dei saldi e' comune in entrambi i casi:
|
||||
// la rebuild_balances() deve sapere da sola se azzerare o meno le giacenze
|
||||
// a seconda che l'esercizio precedente sia chiuso (AZZERA) o no (NON AZZERARE).
|
||||
rebuild_balances(_es_to_open);
|
||||
rebuild_balances(_es_to_open, _calctype, _catven, _codlis);
|
||||
}
|
||||
|
||||
|
||||
@ -450,6 +452,7 @@ void TApp_openclose::main_loop()
|
||||
_calctype = (TTipo_valorizz) _msk->get_int(F_VALORIZZAZIONE);
|
||||
_stotype = (TTipo_valorizz) _msk->get_int(F_STOMET);
|
||||
_what = (action) _msk->get_int(F_WHAT); //Provvisoria o definitiva?
|
||||
_valorizza_comp= _msk->get(F_VALCOMP)=="C"; //Valorizza i componenti o i finiti
|
||||
_codlis = _msk->get(F_LIST);
|
||||
_catven = _msk->get(F_CATVEN);
|
||||
for (short xx = F_CAURIM; xx <= F_CAUORC; xx++) // legge le causali impostate
|
||||
@ -458,6 +461,7 @@ void TApp_openclose::main_loop()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int mg1400(int argc, char* argv[])
|
||||
{
|
||||
TApp_openclose a;
|
||||
|
||||
@ -14,4 +14,5 @@
|
||||
#define F_CATVEN 114
|
||||
#define F_LIST 115
|
||||
#define F_WHAT 116
|
||||
#define F_VALCOMP 117
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
#include "mg1400.h"
|
||||
|
||||
PAGE "Chiusura/Apertura esercizio" -1 -1 75 15
|
||||
PAGE "Chiusura/Apertura esercizio" -1 -1 75 17
|
||||
|
||||
RADIOBUTTON F_WHAT 20
|
||||
BEGIN
|
||||
@ -31,18 +31,19 @@ BEGIN
|
||||
FLAGS "DRZ"
|
||||
END
|
||||
|
||||
LISTBOX F_VALORIZZAZIONE 20
|
||||
LISTBOX F_VALORIZZAZIONE 30
|
||||
BEGIN
|
||||
PROMPT 2 5 "Valorizzazione "
|
||||
ITEM "0|Al costo medio" MESSAGE HIDE,2@|ENABLE,3@
|
||||
ITEM "1|All'ultimo costo" MESSAGE HIDE,2@|ENABLE,3@
|
||||
ITEM "2|Alla media dei costi" MESSAGE HIDE,2@|ENABLE,3@
|
||||
ITEM "3|Al prezzo di listino" MESSAGE SHOW,2@|ENABLE,3@
|
||||
ITEM "4|Al costo standard" MESSAGE HIDE,2@|ENABLE,3@
|
||||
ITEM "5|L.I.F.O. annuale" MESSAGE HIDE,2@|DISABLE,3@|COPY,F_STOMET
|
||||
ITEM "6|F.I.F.O. annuale" MESSAGE HIDE,2@|DISABLE,3@|COPY,F_STOMET
|
||||
ITEM "7|L.I.F.O. storico" MESSAGE HIDE,2@|DISABLE,3@|COPY,F_STOMET
|
||||
ITEM "8|F.I.F.O. storico" MESSAGE HIDE,2@|DISABLE,3@|COPY,F_STOMET
|
||||
ITEM "5|Al costo medio ponderato" MESSAGE HIDE,2@|ENABLE,3@
|
||||
ITEM "4|Al costo medio acquisti" MESSAGE HIDE,2@|ENABLE,3@
|
||||
ITEM "0|All'ultimo costo" MESSAGE HIDE,2@|ENABLE,3@
|
||||
ITEM "1|Alla media dei costi" MESSAGE HIDE,2@|ENABLE,3@
|
||||
ITEM "2|Al prezzo di listino" MESSAGE SHOW,2@|ENABLE,3@
|
||||
ITEM "3|Al costo standard" MESSAGE HIDE,2@|ENABLE,3@
|
||||
ITEM "6|L.I.F.O. annuale" MESSAGE HIDE,2@|DISABLE,3@|COPY,F_STOMET
|
||||
ITEM "7|F.I.F.O. annuale" MESSAGE HIDE,2@|DISABLE,3@|COPY,F_STOMET
|
||||
ITEM "8|L.I.F.O. storico" MESSAGE HIDE,2@|DISABLE,3@|COPY,F_STOMET
|
||||
ITEM "9|F.I.F.O. storico" MESSAGE HIDE,2@|DISABLE,3@|COPY,F_STOMET
|
||||
/*
|
||||
TBI LIFO/FIFO ragionieristico
|
||||
ITEM "9|L.I.F.O. ragionieristico" MESSAGE HIDE,2@|DISABLE,3@|COPY,F_STOMET
|
||||
@ -50,7 +51,7 @@ BEGIN
|
||||
*/
|
||||
END
|
||||
|
||||
LISTBOX F_STOMET 20
|
||||
LISTBOX F_STOMET 30
|
||||
BEGIN
|
||||
PROMPT 2 6 "Storico "
|
||||
ITEM "5|L.I.F.O. annuale"
|
||||
@ -118,6 +119,8 @@ BEGIN
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CAURIM CODTAB
|
||||
CHECKTYPE REQUIRED
|
||||
WARNING "La causale deve avere i segni: GIAC+ RIMIN+"
|
||||
ADD RUN MG0 -0 %CAU
|
||||
GROUP 4
|
||||
END
|
||||
|
||||
@ -131,6 +134,8 @@ BEGIN
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CAUICL CODTAB
|
||||
CHECKTYPE REQUIRED
|
||||
WARNING "La causale deve avere i segni: GIAC+, INCL+"
|
||||
ADD RUN MG0 -0 %CAU
|
||||
GROUP 4
|
||||
END
|
||||
|
||||
@ -144,6 +149,8 @@ BEGIN
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CAUACL CODTAB
|
||||
CHECKTYPE REQUIRED
|
||||
WARNING "La causale deve avere i segni: GIAC-, ACL+"
|
||||
ADD RUN MG0 -0 %CAU
|
||||
GROUP 4
|
||||
END
|
||||
|
||||
@ -157,7 +164,9 @@ BEGIN
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CAUPRF CODTAB
|
||||
CHECKTYPE REQUIRED
|
||||
WARNING "La causale deve avere i segni: GIAC-, PRODF+"
|
||||
GROUP 4
|
||||
ADD RUN MG0 -0 %CAU
|
||||
END
|
||||
|
||||
STRING F_CAUPRC 5
|
||||
@ -170,7 +179,9 @@ BEGIN
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CAUPRC CODTAB
|
||||
CHECKTYPE REQUIRED
|
||||
WARNING "La causale deve avere i segni: GIAC+, PRODC+"
|
||||
GROUP 4
|
||||
ADD RUN MG0 -0 %CAU
|
||||
END
|
||||
|
||||
STRING F_CAUORF 5
|
||||
@ -183,7 +194,9 @@ BEGIN
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CAUORF CODTAB
|
||||
CHECKTYPE REQUIRED
|
||||
WARNING "La causale deve avere il segno: ORDF+"
|
||||
GROUP 1 4
|
||||
ADD RUN MG0 -0 %CAU
|
||||
END
|
||||
|
||||
STRING F_CAUORC 5
|
||||
@ -196,7 +209,17 @@ BEGIN
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CAUORC CODTAB
|
||||
CHECKTYPE REQUIRED
|
||||
WARNING "La causale deve avere il segno: ORDC+"
|
||||
GROUP 1 4
|
||||
ADD RUN MG0 -0 %CAU
|
||||
END
|
||||
|
||||
LIST F_VALCOMP 40
|
||||
BEGIN
|
||||
PROMPT 3 13 "Valorizzo "
|
||||
ITEM "C|i componenti impegnati in produzione"
|
||||
ITEM "F|i finiti in fase di produzione"
|
||||
GROUP 4
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
|
||||
@ -79,7 +79,6 @@ TStampadatist_mask::TStampadatist_mask():
|
||||
set_handler(F_TOLIVELLOART, handle_liv);
|
||||
set_handler(F_TOLIVELLOGIAC, handle_liv);
|
||||
set_handler(F_ORDINE, handle_ragg);
|
||||
set_handler(F_DETTAGLIODEP, handle_ragg);
|
||||
set_handler(F_ORDINEART,handle_subord);
|
||||
if (!artlev().enabled()) {
|
||||
TMask_field &f1=field(F_RAGGCODICE);
|
||||
@ -110,7 +109,7 @@ bool TStampadatist_mask::handle_subord(TMask_field &fld, KEY k)
|
||||
{
|
||||
fraggcod.enable();m.send_key(K_SPACE,F_RAGGCODICE);
|
||||
} else {
|
||||
if (!m.get_bool(F_TOTALIDEPOSITI) || !m.get_bool(F_DETTAGLIODEP))
|
||||
if (!m.get_bool(F_DETTAGLIODEP))
|
||||
{
|
||||
fraggcod.reset(); fraggcod.disable();
|
||||
fragggiac.reset(); fragggiac.disable();
|
||||
@ -145,14 +144,14 @@ bool TStampadatist_mask::handle_liv(TMask_field &fld, KEY k)
|
||||
TOperable_field &ftotmag=(TOperable_field &)fld.mask().field(F_TOTALIMAGAZZINI);
|
||||
TOperable_field &fdettmag=(TOperable_field &)fld.mask().field(F_DETTAGLIOMAG);
|
||||
TOperable_field &fdettgiac=(TOperable_field &)fld.mask().field(F_RAGGLIVGIAC);
|
||||
if (fld.mask().get_int(F_TOLIVELLOART))
|
||||
{
|
||||
fdettgiac.reset();
|
||||
fdettgiac.disable();
|
||||
} else
|
||||
fdettgiac.enable();
|
||||
if (fld.mask().get(F_ORDINE)=="A")
|
||||
{
|
||||
if (fld.mask().get_int(F_TOLIVELLOART))
|
||||
{
|
||||
fdettgiac.reset();
|
||||
fdettgiac.disable();
|
||||
} else
|
||||
fdettgiac.enable();
|
||||
if (fld.mask().get_int(F_TOLIVELLOART) || fld.mask().get_int(F_TOLIVELLOGIAC))
|
||||
{
|
||||
// raggruppamenti prima del dettaglio magazzini
|
||||
@ -180,7 +179,7 @@ bool TStampadatist_mask::handle_ragg(TMask_field &fld, KEY k)
|
||||
if (fld.mask().get(F_ORDINE)=="M")
|
||||
{
|
||||
ftotmag.enable();
|
||||
if (!fld.mask().get_bool(F_TOTALIDEPOSITI) || !fld.mask().get_bool(F_DETTAGLIODEP))
|
||||
if (!fld.mask().get_bool(F_DETTAGLIODEP))
|
||||
{
|
||||
fraggcod.reset(); fraggcod.disable();
|
||||
fragggiac.reset(); fragggiac.disable();
|
||||
@ -306,8 +305,12 @@ void TStampa_datistorici::setprint_permagazzini()
|
||||
TRUE,
|
||||
_mask->get_bool(F_TOTALIDEPOSITI),
|
||||
_mask->get_bool(F_DETTAGLIODEP));
|
||||
_form->find_field('B',odd_page,FF_DIVDEPOSITI).enable(_mask->get_bool(F_TOTALIDEPOSITI));
|
||||
|
||||
if (!_mask->get_bool(F_TOTALIDEPOSITI))
|
||||
{
|
||||
((TSorted_cursor *)_cur)->change_order("ANNOES|CODMAG[1,3]|CODART|LIVELLO");
|
||||
_form->find_field('B',odd_page,"GRUPPI_DEPOSITO").setcondition("CODMAG[1,3]",_strexpr);
|
||||
}
|
||||
TString16 ena=((_mask->get_bool(F_STAMPAGIAC) && *_mask->get(F_FILTRO)!='S')? "1": "0");
|
||||
_form->find_field('H',odd_page,FF_FLAGGIAC).set(ena );
|
||||
_form->find_field('B',odd_page,FF_FLAGGIAC).set(ena);
|
||||
@ -443,16 +446,21 @@ void TStampa_datistorici::setprint_perarticoli()
|
||||
case 'M':
|
||||
_cur->setkey(3);
|
||||
darec.put("GRMERC",_mask->get(F_DACATMER));
|
||||
darec.put("CODART",_mask->get(F_DAART));
|
||||
arec.put("GRMERC",_mask->get(F_ACATMER));
|
||||
arec.put("CODART",_mask->get(F_AART));
|
||||
_form->find_field('B',odd_page,"H_CATMER").show();
|
||||
_form->find_field('B',odd_page,"TOT_CATMER").show();
|
||||
_form->setcatmer(TRUE);
|
||||
|
||||
if (!_mask->get(F_DAART).blank())
|
||||
{
|
||||
srangea << "da \"" << _mask->get(F_DAART) << "\" ";
|
||||
cfilter << "(CODART[1," << _mask->get(F_DAART).len() << "]>=" <<'"' << _mask->get(F_AART)<< "\")&&" ;
|
||||
}
|
||||
if (!_mask->get(F_AART).blank())
|
||||
{
|
||||
srangea << "fino a \"" << _mask->get(F_AART) << "\"";
|
||||
cfilter << "(CODART[1," << _mask->get(F_AART).len() << "]<=" <<'"' << _mask->get(F_AART)<< "\")&&" ;
|
||||
}
|
||||
if (!_mask->get(F_DACATMER).blank())
|
||||
srangecm << "da \"" << _mask->get(F_DACATMER) << "\" ";
|
||||
if (!_mask->get(F_ACATMER).blank())
|
||||
@ -492,7 +500,11 @@ void TStampa_datistorici::setprint_perarticoli()
|
||||
TSortedfile *mag;
|
||||
mag= new TSortedfile(LF_MAG,NULL,sortexp,filter,1);
|
||||
_cur->relation()->replace(mag,1,joinexp);
|
||||
_cur->setfilter(cfilter);
|
||||
if (cfilter.not_empty())
|
||||
{
|
||||
cfilter.cut(cfilter.len()-2);
|
||||
_cur->setfilter(cfilter);
|
||||
}
|
||||
_cur->setregion(darec,arec);
|
||||
}
|
||||
|
||||
|
||||
115
mg/mg3100.uml
115
mg/mg3100.uml
@ -52,26 +52,26 @@ END
|
||||
LISTBOX F_ORDINE 10
|
||||
BEGIN
|
||||
PROMPT 2 2 "Ordinamento "
|
||||
ITEM "A|articoli"
|
||||
MESSAGE ENABLE,F_ORDINEART|HIDE,F_TOTALIDEPOSITI|HIDE,F_DETTAGLIODEP
|
||||
MESSAGE SHOW,F_TOTALIMAGAZZINI|SHOW,F_DETTAGLIOMAG
|
||||
ITEM "M|magazzini"
|
||||
MESSAGE "C",F_ORDINEART|K_SPACE,F_ORDINEART|DISABLE,F_ORDINEART|SHOW,G_CODART@|HIDE,G_DESART@
|
||||
MESSAGE SHOW,F_TOTALIDEPOSITI|SHOW,F_DETTAGLIODEP
|
||||
MESSAGE HIDE,F_TOTALIMAGAZZINI|HIDE,F_DETTAGLIOMAG
|
||||
ITEM "A|articoli"
|
||||
MESSAGE ENABLE,F_ORDINEART|HIDE,F_TOTALIDEPOSITI|"X",F_DETTAGLIODEP
|
||||
MESSAGE SHOW,F_TOTALIMAGAZZINI|SHOW,F_DETTAGLIOMAG
|
||||
ITEM "M|magazzini"
|
||||
MESSAGE "C",F_ORDINEART|K_SPACE,F_ORDINEART|DISABLE,F_ORDINEART|SHOW,G_CODART@|HIDE,G_DESART@
|
||||
MESSAGE SHOW,F_TOTALIDEPOSITI|"X",F_DETTAGLIODEP
|
||||
MESSAGE HIDE,F_TOTALIMAGAZZINI|HIDE,F_DETTAGLIOMAG
|
||||
END
|
||||
|
||||
|
||||
LISTBOX F_ORDINEART 20
|
||||
BEGIN
|
||||
FLAGS "G"
|
||||
PROMPT 34 2 "sotto-ordinamento "
|
||||
ITEM "C|codice"
|
||||
MESSAGE HIDE,G_CATMER@|ENABLE,G_CODART@|HIDE,G_DESART@
|
||||
ITEM "D|descrizione"
|
||||
MESSAGE HIDE,G_CATMER@|DISABLE,G_CODART@|SHOW,G_DESART@
|
||||
ITEM "M|gruppo merc./codice"
|
||||
MESSAGE SHOW,G_CATMER@|ENABLE,G_CODART@|HIDE,G_DESART@
|
||||
FLAGS "G"
|
||||
PROMPT 34 2 "Sotto-ordinamento "
|
||||
ITEM "C|codice"
|
||||
MESSAGE HIDE,G_CATMER@|ENABLE,G_CODART@|HIDE,G_DESART@
|
||||
ITEM "D|descrizione"
|
||||
MESSAGE HIDE,G_CATMER@|DISABLE,G_CODART@|SHOW,G_DESART@
|
||||
ITEM "M|gruppo merc./codice"
|
||||
MESSAGE SHOW,G_CATMER@|ENABLE,G_CODART@|HIDE,G_DESART@
|
||||
END
|
||||
|
||||
NUMBER F_ANNOES 4
|
||||
@ -88,59 +88,63 @@ BEGIN
|
||||
ADD NONE
|
||||
END
|
||||
|
||||
LISTBOX F_FILTRO 20
|
||||
LISTBOX F_FILTRO 30
|
||||
BEGIN
|
||||
FLAGS "G"
|
||||
PROMPT 45 3 "Filtro "
|
||||
ITEM "T|tutto"
|
||||
ITEM "S|sotto scorta"
|
||||
ITEM "P|positivi"
|
||||
ITEM "N|negativi"
|
||||
ITEM "0|non nulli"
|
||||
FLAGS "G"
|
||||
PROMPT 34 3 "Stampo "
|
||||
ITEM "0|solo giacenze non nulle"
|
||||
ITEM "P|solo giacenze positive"
|
||||
ITEM "N|solo giacenze negativie"
|
||||
ITEM "S|solo articoli sotto scorta"
|
||||
ITEM "T|tutto"
|
||||
END
|
||||
|
||||
STRING F_DAART 20
|
||||
BEGIN
|
||||
PROMPT 2 5 "Dall'articolo "
|
||||
FLAGS "U"
|
||||
USE LF_ANAMAG
|
||||
INPUT CODART F_DAART
|
||||
DISPLAY "Codice" CODART
|
||||
DISPLAY "Descr@50" DESCR
|
||||
OUTPUT F_DAART CODART
|
||||
GROUP G_CODART
|
||||
FLAGS "U"
|
||||
USE LF_ANAMAG
|
||||
INPUT CODART F_DAART
|
||||
DISPLAY "Codice@20" CODART
|
||||
DISPLAY "Descr@50" DESCR
|
||||
OUTPUT F_DAART CODART
|
||||
OUTPUT F_DADES DESCR
|
||||
GROUP G_CODART
|
||||
END
|
||||
STRING F_AART 20
|
||||
BEGIN
|
||||
PROMPT 2 6 " all'articolo "
|
||||
FLAGS "U"
|
||||
COPY USE F_DAART
|
||||
INPUT CODART F_AART
|
||||
COPY DISPLAY F_DAART
|
||||
OUTPUT F_AART CODART
|
||||
GROUP G_CODART
|
||||
FLAGS "U"
|
||||
COPY USE F_DAART
|
||||
INPUT CODART F_AART
|
||||
COPY DISPLAY F_DAART
|
||||
OUTPUT F_AART CODART
|
||||
OUTPUT F_ADES DESCR
|
||||
GROUP G_CODART
|
||||
END
|
||||
|
||||
STRING F_DADES 50
|
||||
BEGIN
|
||||
PROMPT 2 5 "Dall'articolo "
|
||||
FLAGS "U"
|
||||
USE LF_ANAMAG KEY 2
|
||||
INPUT DESCR F_DADES
|
||||
DISPLAY "Descr@50" DESCR
|
||||
DISPLAY "Codice" CODART
|
||||
OUTPUT F_DADES DESCR
|
||||
GROUP G_DESART
|
||||
FLAGS "U"
|
||||
USE LF_ANAMAG KEY 2
|
||||
INPUT DESCR F_DADES
|
||||
DISPLAY "Descr@50" DESCR
|
||||
DISPLAY "Codice@20" CODART
|
||||
OUTPUT F_DAART CODART
|
||||
OUTPUT F_DADES DESCR
|
||||
GROUP G_DESART
|
||||
END
|
||||
STRING F_ADES 50
|
||||
BEGIN
|
||||
PROMPT 2 6 " all'articolo "
|
||||
FLAGS "U"
|
||||
COPY USE F_DADES
|
||||
INPUT DESCR F_ADES
|
||||
COPY DISPLAY F_DADES
|
||||
OUTPUT F_ADES DESCR
|
||||
GROUP G_DESART
|
||||
FLAGS "U"
|
||||
COPY USE F_DADES
|
||||
INPUT DESCR F_ADES
|
||||
COPY DISPLAY F_DADES
|
||||
OUTPUT F_ADES DESCR
|
||||
OUTPUT F_AART CODART
|
||||
GROUP G_DESART
|
||||
END
|
||||
|
||||
|
||||
@ -192,16 +196,17 @@ END
|
||||
|
||||
BOOL F_TOTALIDEPOSITI
|
||||
BEGIN
|
||||
PROMPT 2 13 "Stampo i totali depositi"
|
||||
MESSAGE TRUE ENABLE,F_DETTAGLIODEP
|
||||
MESSAGE FALSE "",F_DETTAGLIODEP|DISABLE,F_DETTAGLIODEP
|
||||
PROMPT 2 13 "Suddivido per depositi"
|
||||
// MESSAGE TRUE ENABLE,F_DETTAGLIODEP
|
||||
// MESSAGE FALSE "",F_DETTAGLIODEP|DISABLE,F_DETTAGLIODEP
|
||||
END
|
||||
|
||||
BOOL F_DETTAGLIODEP
|
||||
BEGIN
|
||||
PROMPT 42 13 "Stampa il dettaglio depositi"
|
||||
MESSAGE TRUE ENABLE,F_RAGGLIVGIAC|ENABLE,F_RAGGCODICE
|
||||
MESSAGE FALSE CLEAR,F_RAGGLIVGIAC|K_SPACE,F_RAGGLIVGIAC|CLEAR,F_RAGGCODICE|K_SPACE,F_RAGGCODICE
|
||||
FLAGS "HD"
|
||||
PROMPT 42 13 "Dettaglio i depositi"
|
||||
MESSAGE TRUE ENABLE,F_RAGGLIVGIAC|ENABLE,F_RAGGCODICE
|
||||
MESSAGE FALSE CLEAR,F_RAGGLIVGIAC|K_SPACE,F_RAGGLIVGIAC|CLEAR,F_RAGGCODICE|K_SPACE,F_RAGGCODICE
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
|
||||
@ -141,7 +141,7 @@ END
|
||||
STRINGA 7 40
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 31 6 "Descrizione"
|
||||
PROMPT 23 6 "Descrizione"
|
||||
END
|
||||
STRINGA 7 40
|
||||
BEGIN
|
||||
@ -151,7 +151,7 @@ END
|
||||
STRINGA 8 12
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 68 6 "Giac."
|
||||
PROMPT 64 6 "Giac."
|
||||
GROUP FG_RIGAPREZZI
|
||||
END
|
||||
STRINGA 8 12
|
||||
@ -294,7 +294,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
STRINGA 11 20 1
|
||||
BEGIN
|
||||
KEY "Codice CATMER"
|
||||
PROMPT 2 1 "Cat. merc."
|
||||
PROMPT 2 1 "Gruppo merc. "
|
||||
MESSAGE _USER,CODCATMER|COPY,1551
|
||||
END
|
||||
STRINGA 12 70 1
|
||||
@ -329,7 +329,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,1|COPY,1451
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -352,7 +352,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,2|COPY,1351
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -376,7 +376,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,3|COPY,1251
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -399,7 +399,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,4|COPY,1151
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -422,7 +422,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,5|COPY,1051
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -445,7 +445,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,6|COPY,951
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -468,7 +468,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,7|COPY,851
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -492,7 +492,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,8|COPY,751
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -516,7 +516,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
FIELD CODART
|
||||
MESSAGE COPY,651
|
||||
END
|
||||
STRINGA 21 30 2
|
||||
STRINGA 21 70
|
||||
BEGIN
|
||||
KEY "DESCR.articolo"
|
||||
PROMPT 3 1 ""
|
||||
@ -913,7 +913,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "Livello giac4"
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
STRINGA 250 30 2
|
||||
STRINGA 250 30
|
||||
BEGIN
|
||||
PROMPT 3 1 ""
|
||||
END
|
||||
@ -1015,7 +1015,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY ""
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
STRINGA 350 30 2
|
||||
STRINGA 350 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
@ -1118,7 +1118,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY ""
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
STRINGA 450 30 2
|
||||
STRINGA 450 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
@ -1219,7 +1219,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY ""
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
STRINGA 550 30 2
|
||||
STRINGA 550 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
@ -1322,7 +1322,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY ""
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
STRINGA 650 30 2
|
||||
STRINGA 650 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
@ -2241,13 +2241,13 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
|
||||
END // GRUPPI_CATMER
|
||||
|
||||
SECTION TOT_CATMER 1 1 1 FOOTER
|
||||
STRINGA 1551 20 1
|
||||
SECTION TOT_CATMER 1 1 2 GROUP
|
||||
STRINGA 1551 20
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 2 1 ""
|
||||
PROMPT 2 1 "Totale gr.merc."
|
||||
END
|
||||
STRINGA 1550 30 1
|
||||
STRINGA 1550 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
|
||||
@ -151,7 +151,7 @@ END
|
||||
STRINGA 8 12
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 68 6 "Giac."
|
||||
PROMPT 64 6 "Giac."
|
||||
GROUP FG_RIGAPREZZI
|
||||
END
|
||||
STRINGA 8 12
|
||||
@ -294,7 +294,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
STRINGA 11 20 1
|
||||
BEGIN
|
||||
KEY "Codice CATMER"
|
||||
PROMPT 2 1 "Cat. merc."
|
||||
PROMPT 2 1 "Gruppo merc. "
|
||||
MESSAGE _USER,CODCATMER|COPY,1551
|
||||
END
|
||||
STRINGA 12 70 1
|
||||
@ -329,7 +329,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,1|COPY,1451
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -352,7 +352,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,2|COPY,1351
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -376,7 +376,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,3|COPY,1251
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -399,7 +399,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,4|COPY,1151
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -422,7 +422,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,5|COPY,1051
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -445,7 +445,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,6|COPY,951
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -468,7 +468,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,7|COPY,851
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -492,7 +492,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,8|COPY,751
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -516,7 +516,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
FIELD CODART
|
||||
MESSAGE COPY,651
|
||||
END
|
||||
STRINGA 21 30 2
|
||||
STRINGA 21 70
|
||||
BEGIN
|
||||
KEY "DESCR.articolo"
|
||||
PROMPT 3 1 ""
|
||||
@ -913,7 +913,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "Livello giac4"
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
STRINGA 250 30 2
|
||||
STRINGA 250 30
|
||||
BEGIN
|
||||
PROMPT 3 1 ""
|
||||
END
|
||||
@ -1015,7 +1015,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY ""
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
STRINGA 350 30 2
|
||||
STRINGA 350 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
@ -1118,7 +1118,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY ""
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
STRINGA 450 30 2
|
||||
STRINGA 450 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
@ -1219,7 +1219,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY ""
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
STRINGA 550 30 2
|
||||
STRINGA 550 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
@ -1322,7 +1322,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY ""
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
STRINGA 650 30 2
|
||||
STRINGA 650 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
@ -2241,13 +2241,13 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
|
||||
END // GRUPPI_CATMER
|
||||
|
||||
SECTION TOT_CATMER 1 1 1 group
|
||||
STRINGA 1551 20 1
|
||||
SECTION TOT_CATMER 1 1 2 GROUP
|
||||
STRINGA 1551 20
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 2 1 ""
|
||||
PROMPT 2 1 "Totale gr.merc."
|
||||
END
|
||||
STRINGA 1550 30 1
|
||||
STRINGA 1550 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
|
||||
145
mg/mg3100b.frm
145
mg/mg3100b.frm
@ -1,15 +1,15 @@
|
||||
#include "mg3frm.h"
|
||||
USE 109 KEY 2
|
||||
JOIN 47 TO 109 INTO CODART==CODART
|
||||
JOIN MAG TO 109 ALIAS 500 INTO CODTAB==CODMAG[1,3]
|
||||
JOIN MAG TO 109 ALIAS 501 INTO CODTAB==CODMAG
|
||||
JOIN 49 TO 47 INTO CODART==CODART
|
||||
USE LF_MAG KEY 2 BY ANNOES CODMAG CODART LIVELLO
|
||||
JOIN LF_ANAMAG TO LF_MAG INTO CODART==CODART
|
||||
JOIN MAG TO LF_MAG ALIAS 500 INTO CODTAB==CODMAG[1,3]
|
||||
JOIN MAG TO LF_MAG ALIAS 501 INTO CODTAB==CODMAG
|
||||
JOIN LF_UMART TO LF_ANAMAG INTO CODART==CODART
|
||||
END
|
||||
|
||||
DESCRIPTION
|
||||
BEGIN
|
||||
47->* "Anagrafica articoli"
|
||||
109->* "Archivio Giacenze"
|
||||
LF_MAG->* "Archivio Giacenze"
|
||||
MAG->* "Tabella magazzini"
|
||||
49->* "Unità di misura articoli"
|
||||
END
|
||||
@ -298,7 +298,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END
|
||||
END
|
||||
|
||||
SECTION GRUPPI_MAGAZZINO 1 0 0 FILE 109 GROUP CODMAG[1,3]
|
||||
SECTION GRUPPI_MAGAZZINO 1 0 0 FILE LF_MAG GROUP CODMAG[1,3]
|
||||
LIST FF_DIVDEPOSITI
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
@ -321,7 +321,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
STRINGA 60 20 1
|
||||
BEGIN
|
||||
KEY "CODDEP"
|
||||
PROMPT 2 1 "Deposito "
|
||||
PROMPT 2 1 "Deposito "
|
||||
FIELD 501@->CODTAB[4,5]
|
||||
MESSAGE COPY,51
|
||||
END
|
||||
@ -334,7 +334,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END
|
||||
END
|
||||
|
||||
SECTION GRUPPI_DEPOSITO 1 0 0 FILE 109 GROUP CODMAG[1,5]
|
||||
SECTION GRUPPI_DEPOSITO 1 0 0 FILE LF_MAG GROUP CODMAG[1,5]
|
||||
STRINGA 60 40 1
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
@ -349,7 +349,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,1|COPY,1451
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO1"
|
||||
PROMPT 3 1 ""
|
||||
@ -357,7 +357,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END
|
||||
END
|
||||
|
||||
SECTION GRUPPI_CODART1 1 0 0 FILE 109 GROUP CODART
|
||||
SECTION GRUPPI_CODART1 1 0 0 FILE LF_MAG GROUP CODART
|
||||
STRINGA 60 20 1
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
@ -372,7 +372,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,2|COPY,1351
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -380,7 +380,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END
|
||||
END
|
||||
|
||||
SECTION GRUPPI_CODART2 1 0 0 FILE 109 GROUP CODART
|
||||
SECTION GRUPPI_CODART2 1 0 0 FILE LF_MAG GROUP CODART
|
||||
STRINGA 60 20 1
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
@ -395,7 +395,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,3|COPY,1251
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -403,7 +403,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END
|
||||
END
|
||||
|
||||
SECTION GRUPPI_CODART3 1 0 0 FILE 109 GROUP CODART
|
||||
SECTION GRUPPI_CODART3 1 0 0 FILE LF_MAG GROUP CODART
|
||||
STRINGA 60 20 1
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
@ -418,7 +418,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,4|COPY,1151
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -426,7 +426,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END
|
||||
END
|
||||
|
||||
SECTION GRUPPI_CODART4 1 0 0 FILE 109 GROUP CODART
|
||||
SECTION GRUPPI_CODART4 1 0 0 FILE LF_MAG GROUP CODART
|
||||
STRINGA 60 20 1
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
@ -441,7 +441,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,5|COPY,1051
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -449,7 +449,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END
|
||||
END
|
||||
|
||||
SECTION GRUPPI_CODART5 1 0 0 FILE 109 GROUP CODART
|
||||
SECTION GRUPPI_CODART5 1 0 0 FILE LF_MAG GROUP CODART
|
||||
STRINGA 60 20 1
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
@ -464,7 +464,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,6|COPY,951
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -472,7 +472,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END
|
||||
END
|
||||
|
||||
SECTION GRUPPI_CODART6 1 0 0 FILE 109 GROUP CODART
|
||||
SECTION GRUPPI_CODART6 1 0 0 FILE LF_MAG GROUP CODART
|
||||
STRINGA 60 20 1
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
@ -487,7 +487,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,7|COPY,851
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -495,7 +495,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END
|
||||
END
|
||||
|
||||
SECTION GRUPPI_CODART7 1 0 0 FILE 109 GROUP CODART
|
||||
SECTION GRUPPI_CODART7 1 0 0 FILE LF_MAG GROUP CODART
|
||||
STRINGA 60 20 1
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
@ -511,7 +511,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,8|COPY,751
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -519,7 +519,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END
|
||||
END
|
||||
|
||||
SECTION GRUPPI_CODART8 1 0 0 FILE 109 GROUP CODART
|
||||
SECTION GRUPPI_CODART8 1 0 0 FILE LF_MAG GROUP CODART
|
||||
STRINGA 60 20 1
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
@ -535,11 +535,11 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
FIELD CODART
|
||||
MESSAGE COPY,651
|
||||
END
|
||||
STRINGA 21 30 2
|
||||
STRINGA 21 70
|
||||
BEGIN
|
||||
KEY "DESCR.articolo"
|
||||
PROMPT 3 1 ""
|
||||
FIELD 47->DESCR
|
||||
FIELD LF_ANAMAG->DESCR
|
||||
MESSAGE COPY,650
|
||||
END
|
||||
NUMERO 22 12
|
||||
@ -559,7 +559,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END
|
||||
END
|
||||
|
||||
SECTION ARTICOLO 1 0 0 FILE 109 GROUP CODART
|
||||
SECTION ARTICOLO 1 0 0 FILE LF_MAG GROUP CODART
|
||||
STRINGA 60 20 1
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
@ -582,7 +582,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END
|
||||
END
|
||||
|
||||
SECTION GRUPPI_LIVGIAC1 1 0 0 FILE 109 GROUP LIVELLO
|
||||
SECTION GRUPPI_LIVGIAC1 1 0 0 FILE LF_MAG GROUP LIVELLO
|
||||
STRINGA 60 20 1
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
@ -605,7 +605,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END
|
||||
END
|
||||
|
||||
SECTION GRUPPI_LIVGIAC2 1 0 0 FILE 109 GROUP LIVELLO
|
||||
SECTION GRUPPI_LIVGIAC2 1 0 0 FILE LF_MAG GROUP LIVELLO
|
||||
STRINGA 60 20 1
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
@ -629,7 +629,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END
|
||||
END
|
||||
|
||||
SECTION GRUPPI_LIVGIAC3 1 0 0 FILE 109 GROUP LIVELLO
|
||||
SECTION GRUPPI_LIVGIAC3 1 0 0 FILE LF_MAG GROUP LIVELLO
|
||||
STRINGA 60 20 1
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
@ -640,11 +640,12 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
|
||||
SECTION H_GLIVGIAC4 1 1 1 GROUP
|
||||
END // GGIAC4
|
||||
SECTION GRUPPI_LIVGIAC4 1 0 0 FILE 109 GROUP LIVELLO
|
||||
SECTION GRUPPI_LIVGIAC4 1 0 0 STR_EXPR LIVELLO
|
||||
// SEZIONE PRESENTE SOLO PER UNIFORMIT… CON LA STAMPA PER ARTICOLI
|
||||
END // GGIAC4
|
||||
SECTION TOT_GLIVGIAC4 1 1 1 GROUP
|
||||
STRINGA 250 35 2
|
||||
BEGIN
|
||||
STRINGA 250 30
|
||||
BEGIN
|
||||
PROMPT 3 1 ""
|
||||
MESSAGE _USER,GRUPPOGIAC,4
|
||||
END
|
||||
@ -658,26 +659,26 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
BEGIN
|
||||
KEY "UM"
|
||||
PROMPT 5 1 ""
|
||||
FIELD 49->UM
|
||||
MESSAGE COPY,353
|
||||
END
|
||||
|
||||
NUMERO 241 12
|
||||
BEGIN
|
||||
KEY "ACQ"
|
||||
FIELD LF_UMART->UM
|
||||
MESSAGE COPY,353
|
||||
END
|
||||
|
||||
NUMERO 241 12
|
||||
BEGIN
|
||||
KEY "ACQ"
|
||||
PROMPT 6 1 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE ADD,341
|
||||
FIELD 109->ACQ
|
||||
PICTURE "########,@#"
|
||||
MESSAGE ADD,341
|
||||
FIELD LF_MAG->ACQ
|
||||
GROUP FG_RIGAVALORI
|
||||
END
|
||||
NUMERO 242 12
|
||||
BEGIN
|
||||
KEY "VALACQ"
|
||||
PROMPT 7 1 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE ADD,342
|
||||
FIELD 109->VALACQ
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE ADD,342
|
||||
FIELD LF_MAG->VALACQ
|
||||
GROUP FG_VALORI FG_RIGAVALORI
|
||||
END
|
||||
NUMERO 282 12
|
||||
@ -693,9 +694,9 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
BEGIN
|
||||
KEY "ven"
|
||||
PROMPT 8 1 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE ADD,343
|
||||
FIELD 109->VEN
|
||||
PICTURE "########,@#"
|
||||
MESSAGE ADD,343
|
||||
FIELD LF_MAG->VEN
|
||||
GROUP FG_RIGAVALORI
|
||||
END
|
||||
NUMERO 244 12
|
||||
@ -705,11 +706,11 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE ADD,344
|
||||
GROUP FG_VALORI FG_RIGAVALORI
|
||||
FIELD 109->VALVEN
|
||||
END
|
||||
NUMERO 284 12
|
||||
BEGIN
|
||||
KEY "VALven"
|
||||
FIELD LF_MAG->VALVEN
|
||||
END
|
||||
NUMERO 284 12
|
||||
BEGIN
|
||||
KEY "VALven"
|
||||
PROMPT 9 1 ""
|
||||
PICTURE "#######,@##"
|
||||
MESSAGE _NUMEXPR,#244/#243
|
||||
@ -721,17 +722,17 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "rim"
|
||||
PROMPT 10 1 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE ADD,345
|
||||
FIELD 109->RIM
|
||||
MESSAGE ADD,345
|
||||
FIELD LF_MAG->RIM
|
||||
GROUP FG_RIGAVALORI
|
||||
END
|
||||
NUMERO 246 12
|
||||
BEGIN
|
||||
KEY "VALrim"
|
||||
PROMPT 11 1 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE ADD,346
|
||||
FIELD 109->VALRIM
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE ADD,346
|
||||
FIELD LF_MAG->VALRIM
|
||||
GROUP FG_VALORI FG_RIGAVALORI
|
||||
END
|
||||
NUMERO 286 12
|
||||
@ -748,8 +749,8 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "giac"
|
||||
PROMPT 12 1 ""
|
||||
PICTURE "########,@#"
|
||||
FIELD 109->GIAC
|
||||
MESSAGE ADD,347
|
||||
FIELD LF_MAG->GIAC
|
||||
MESSAGE ADD,347
|
||||
GROUP FG_RIGAVALORI
|
||||
END
|
||||
NUMERO 248 12
|
||||
@ -757,23 +758,23 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "scorta-giac"
|
||||
PROMPT 12 1 ""
|
||||
PICTURE "#######@,@#"
|
||||
MESSAGE _NUMEXPR,109->SCORTAMIN-109->GIAC|ADD,347
|
||||
MESSAGE _NUMEXPR,LF_MAG->SCORTAMIN-LF_MAG->GIAC|ADD,347
|
||||
GROUP FG_RIGAVALORI
|
||||
END
|
||||
/*NUMERO 249 12
|
||||
BEGIN
|
||||
KEY "giac"
|
||||
PROMPT 6 1 ""
|
||||
PICTURE "########,@#"
|
||||
FIELD 109->GIAC
|
||||
MESSAGE ADD,341
|
||||
GROUP 2 FG_RIGAPREZZI
|
||||
PICTURE "########,@#"
|
||||
FIELD LF_MAG->GIAC
|
||||
MESSAGE ADD,341
|
||||
GROUP 2 FG_RIGAPREZZI
|
||||
END*/
|
||||
END // tot ggiac4
|
||||
|
||||
END // GGIAC3
|
||||
SECTION TOT_GLIVGIAC3 1 1 1 GROUP
|
||||
STRINGA 350 35 2
|
||||
STRINGA 350 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
@ -876,7 +877,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
|
||||
END // GGIAC2
|
||||
SECTION TOT_GLIVGIAC2 1 1 1 GROUP
|
||||
STRINGA 450 35 2
|
||||
STRINGA 450 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
@ -978,7 +979,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END // tot ggiac2
|
||||
END // GGIAC1
|
||||
SECTION TOT_GLIVGIAC1 1 1 1 GROUP
|
||||
STRINGA 550 35 2
|
||||
STRINGA 550 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
@ -1081,7 +1082,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
|
||||
END // FILE GIACENZE
|
||||
SECTION TOT_ARTICOLO 1 1 1 GROUP
|
||||
STRINGA 650 30 2
|
||||
STRINGA 650 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
@ -2133,7 +2134,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 6 1 "-------------------------------------------------------------------------------------------------"
|
||||
END
|
||||
END
|
||||
STRINGA 150 30 2
|
||||
STRINGA 150 30
|
||||
BEGIN
|
||||
KEY "Magazzino"
|
||||
PROMPT 3 1 ""
|
||||
|
||||
@ -52,7 +52,7 @@ bool TStampadisp_mask::handle_subord(TMask_field &fld, KEY k)
|
||||
if (fld.mask().get(F_ORDINE)=="A")
|
||||
fraggcod.enable();
|
||||
else {
|
||||
if (!fld.mask().get_bool(F_TOTALIDEPOSITI) || !fld.mask().get_bool(F_DETTAGLIODEP))
|
||||
if (!fld.mask().get_bool(F_DETTAGLIODEP))
|
||||
{
|
||||
fraggcod.reset(); fraggcod.disable();
|
||||
fragggiac.reset(); fragggiac.disable();
|
||||
@ -108,7 +108,7 @@ bool TStampadisp_mask::handle_ragg(TMask_field &fld, KEY k)
|
||||
if (m.get(F_ORDINE)=="M")
|
||||
{
|
||||
ftotmag.enable();
|
||||
if (!m.get_bool(F_TOTALIDEPOSITI) || !m.get_bool(F_DETTAGLIODEP))
|
||||
if (!m.get_bool(F_DETTAGLIODEP))
|
||||
{
|
||||
fraggcod.reset(); fraggcod.disable();
|
||||
fragggiac.reset(); fragggiac.disable();
|
||||
@ -177,16 +177,32 @@ void TStampa_disp::setprint_permagazzini()
|
||||
TRectype darec(LF_MAG),arec(LF_MAG);
|
||||
TString cfilter,sortexp,joinexp;
|
||||
_form = new TForm_stampemg("mg3200b", "");
|
||||
_cur = _form->cursor();
|
||||
_cur = _form->cursor();
|
||||
TSorted_cursor & cur= (TSorted_cursor & )*_cur;
|
||||
// ********************
|
||||
// range di stampa articoli
|
||||
// setta il filtro sul cursore
|
||||
TForm_item & rangea=_form->find_field('H',odd_page,FF_RANGEARTIC);
|
||||
TString srangea;
|
||||
|
||||
if (*_mask->get(F_DAART))
|
||||
{
|
||||
cfilter << "(CODART[1," << _mask->get(F_DAART).len() << "]>=" <<'"' << _mask->get(F_DAART)<< "\")&&" ;
|
||||
srangea << "da \"" << _mask->get(F_DAART) << "\" ";
|
||||
}
|
||||
if (*_mask->get(F_AART))
|
||||
{
|
||||
cfilter << "(CODART[1," << _mask->get(F_AART).len() << "]<=" <<'"' << _mask->get(F_AART)<< "\")&&" ;
|
||||
srangea << "fino a \"" << _mask->get(F_AART) << "\"";
|
||||
}
|
||||
if (cfilter.not_empty())
|
||||
cfilter.cut(cfilter.len()-2);
|
||||
|
||||
// abilita/disabilita le sezioni dei totali
|
||||
rangea.set(srangea.empty() ? "Tutti gli articoli" : format("Articoli %s",(const char *)srangea));
|
||||
// ***************
|
||||
// gestione dei livelli di raggruppamento e di detaglio
|
||||
// (abilita/disabilita le sezioni dei totali/header)
|
||||
|
||||
_form->setdett_permag(
|
||||
_mask->get_bool(F_RAGGCODICE),
|
||||
_mask->get_int(F_FROMLIVELLOART),
|
||||
@ -198,12 +214,28 @@ void TStampa_disp::setprint_permagazzini()
|
||||
_mask->get_bool(F_TOTALIDEPOSITI),
|
||||
_mask->get_bool(F_DETTAGLIODEP));
|
||||
|
||||
if (!_mask->get_bool(F_TOTALIDEPOSITI))
|
||||
{
|
||||
cur.change_order("ANNOES|CODMAG[1,3]|CODART|LIVELLO");
|
||||
_form->find_field('B',odd_page,"GRUPPI_DEPOSITO").setcondition("CODMAG[1,3]",_strexpr);
|
||||
}
|
||||
// ********************
|
||||
// range di stampa magazzini
|
||||
TForm_item & rangem=_form->find_field('H',odd_page,FF_RANGEMAGAZ);
|
||||
TString srangem;
|
||||
|
||||
darec.put("ANNOES",_mask->get(F_ANNOES));
|
||||
darec.put("CODMAG",_mask->get(F_DAMAG));
|
||||
arec.put("ANNOES",_mask->get(F_ANNOES));
|
||||
darec.put("CODMAG",_mask->get(F_DAMAG));
|
||||
arec.put("CODMAG",_mask->get(F_AMAG));
|
||||
_cur->setfilter(cfilter);
|
||||
_cur->setregion(darec,arec);
|
||||
if (*_mask->get(F_DAMAG))
|
||||
srangem << "da \"" << _mask->get(F_DAMAG) << "\" ";
|
||||
if (*_mask->get(F_AMAG))
|
||||
srangem << "fino a \"" << _mask->get(F_AMAG) << "\" ";
|
||||
rangem.set(srangem.empty() ? "Tutti i magazzini" : format("Magazzini %s",(const char *)srangem));
|
||||
|
||||
cur.setfilter(cfilter);
|
||||
cur.setregion(darec,arec);
|
||||
}
|
||||
|
||||
// ORDINAMENTO
|
||||
@ -279,16 +311,20 @@ void TStampa_disp::setprint_perarticoli()
|
||||
case 'M':
|
||||
_cur->setkey(3);
|
||||
darec.put("GRMERC",_mask->get(F_DACATMER));
|
||||
darec.put("CODART",_mask->get(F_DAART));
|
||||
arec.put("GRMERC",_mask->get(F_ACATMER));
|
||||
arec.put("CODART",_mask->get(F_AART));
|
||||
_form->find_field('B',odd_page,"H_CATMER").show();
|
||||
_form->find_field('B',odd_page,"TOT_CATMER").show();
|
||||
_form->setcatmer(TRUE);
|
||||
if (!_mask->get(F_DAART).blank())
|
||||
{
|
||||
srangea << "da \"" << _mask->get(F_DAART) << "\" ";
|
||||
cfilter << "(CODART[1," << _mask->get(F_DAART).len() << "]>=" <<'"' << _mask->get(F_AART)<< "\")&&" ;
|
||||
}
|
||||
if (!_mask->get(F_AART).blank())
|
||||
{
|
||||
srangea << "fino a \"" << _mask->get(F_AART) << "\"";
|
||||
cfilter << "(CODART[1," << _mask->get(F_AART).len() << "]<=" <<'"' << _mask->get(F_AART)<< "\")&&" ;
|
||||
}
|
||||
if (!_mask->get(F_DACATMER).blank())
|
||||
srangecm << "da \"" << _mask->get(F_DACATMER) << "\" ";
|
||||
if (!_mask->get(F_ACATMER).blank())
|
||||
@ -314,7 +350,11 @@ void TStampa_disp::setprint_perarticoli()
|
||||
TSortedfile *mag;
|
||||
mag= new TSortedfile(LF_MAG,NULL,sortexp,filter,1);
|
||||
_cur->relation()->replace(mag,1,joinexp);
|
||||
_cur->setfilter(cfilter);
|
||||
if (cfilter.not_empty())
|
||||
{
|
||||
cfilter.cut(cfilter.len()-2);
|
||||
_cur->setfilter(cfilter);
|
||||
}
|
||||
_cur->setregion(darec,arec);
|
||||
}
|
||||
|
||||
|
||||
@ -19,11 +19,11 @@ END
|
||||
GENERAL
|
||||
BEGIN
|
||||
OFFSET 0 0
|
||||
FONT "Courier New"
|
||||
SIZE 8
|
||||
CARATTERE "X"
|
||||
INIZIALE 5 2
|
||||
FINALE 133
|
||||
// FONT "Courier New"
|
||||
// SIZE 8
|
||||
// CARATTERE "X"
|
||||
// INIZIALE 5 2
|
||||
// FINALE 133
|
||||
END
|
||||
|
||||
SECTION HEADER ODD 5
|
||||
|
||||
@ -5,11 +5,11 @@ LISTBOX F_ORDINE 10
|
||||
BEGIN
|
||||
PROMPT 2 1 "Ordinamento "
|
||||
ITEM "A|articoli"
|
||||
MESSAGE ENABLE,F_ORDINEART|HIDE,F_TOTALIDEPOSITI|HIDE,F_DETTAGLIODEP
|
||||
MESSAGE ENABLE,F_ORDINEART|HIDE,F_TOTALIDEPOSITI|"X",F_DETTAGLIODEP
|
||||
MESSAGE SHOW,F_TOTALIMAGAZZINI|SHOW,F_DETTAGLIOMAG
|
||||
ITEM "M|magazzini"
|
||||
MESSAGE "C",F_ORDINEART|K_SPACE,F_ORDINEART|DISABLE,F_ORDINEART|SHOW,G_CODART@|HIDE,G_DESART@
|
||||
MESSAGE SHOW,F_TOTALIDEPOSITI|SHOW,F_DETTAGLIODEP
|
||||
MESSAGE SHOW,F_TOTALIDEPOSITI|"X",F_DETTAGLIODEP
|
||||
MESSAGE HIDE,F_TOTALIMAGAZZINI|HIDE,F_DETTAGLIOMAG
|
||||
END
|
||||
|
||||
@ -49,6 +49,7 @@ BEGIN
|
||||
DISPLAY "Codice" CODART
|
||||
DISPLAY "Descr@50" DESCR
|
||||
OUTPUT F_DAART CODART
|
||||
OUTPUT F_DADES DESCR
|
||||
GROUP G_CODART
|
||||
END
|
||||
|
||||
@ -60,6 +61,7 @@ BEGIN
|
||||
INPUT CODART F_AART
|
||||
COPY DISPLAY F_DAART
|
||||
OUTPUT F_AART CODART
|
||||
OUTPUT F_ADES DESCR
|
||||
GROUP G_CODART
|
||||
END
|
||||
|
||||
@ -72,6 +74,7 @@ BEGIN
|
||||
DISPLAY "Descr@50" DESCR
|
||||
DISPLAY "Codice" CODART
|
||||
OUTPUT F_DADES DESCR
|
||||
OUTPUT F_DAART CODART
|
||||
GROUP G_DESART
|
||||
END
|
||||
|
||||
@ -83,6 +86,7 @@ BEGIN
|
||||
INPUT DESCR F_ADES
|
||||
COPY DISPLAY F_DADES
|
||||
OUTPUT F_ADES DESCR
|
||||
OUTPUT F_AART CODART
|
||||
GROUP G_DESART
|
||||
END
|
||||
|
||||
@ -133,15 +137,16 @@ END
|
||||
|
||||
BOOL F_TOTALIDEPOSITI
|
||||
BEGIN
|
||||
PROMPT 2 12 "Stampo i totali depositi"
|
||||
MESSAGE TRUE ENABLE,F_DETTAGLIODEP
|
||||
MESSAGE FALSE CLEAR,F_DETTAGLIODEP|K_SPACE,F_DETTAGLIODEP
|
||||
PROMPT 2 12 "Suddivido per depositi"
|
||||
// MESSAGE TRUE ENABLE,F_DETTAGLIODEP
|
||||
// MESSAGE FALSE CLEAR,F_DETTAGLIODEP|K_SPACE,F_DETTAGLIODEP
|
||||
END
|
||||
|
||||
BOOL F_DETTAGLIODEP
|
||||
BEGIN
|
||||
PROMPT 42 12 "Stampa il dettaglio depositi"
|
||||
MESSAGE TRUE ENABLE,F_RAGGLIVGIAC|ENABLE,F_RAGGCODICE
|
||||
FLAGS "DH"
|
||||
PROMPT 42 12 "Dettaglio i depositi"
|
||||
MESSAGE TRUE ENABLE,F_RAGGLIVGIAC|ENABLE,F_RAGGCODICE
|
||||
MESSAGE FALSE CLEAR,F_RAGGLIVGIAC|K_SPACE,F_RAGGLIVGIAC|CLEAR,F_RAGGCODICE|K_SPACE,F_RAGGCODICE
|
||||
END
|
||||
|
||||
|
||||
121
mg/mg3200a.frm
121
mg/mg3200a.frm
@ -57,19 +57,19 @@ BEGIN
|
||||
PROMPT 55 2 "Stampa disponibilita'"
|
||||
END
|
||||
|
||||
STRINGA FF_RANGEARTIC 40
|
||||
STRINGA FF_RANGEARTIC 120
|
||||
BEGIN
|
||||
KEY "RANGE"
|
||||
PROMPT 1 3 ""
|
||||
END
|
||||
|
||||
STRINGA FF_RANGEMAGAZ 40
|
||||
STRINGA FF_RANGEMAGAZ 70
|
||||
BEGIN
|
||||
KEY "RANGE"
|
||||
PROMPT 1 4 ""
|
||||
END
|
||||
|
||||
STRINGA FF_RANGECATMER 40
|
||||
STRINGA FF_RANGECATMER 70
|
||||
BEGIN
|
||||
KEY "RANGE"
|
||||
PROMPT 55 4 ""
|
||||
@ -148,14 +148,14 @@ END
|
||||
|
||||
SECTION BODY ODD 0 COLUMNWISE
|
||||
|
||||
SECTION H_CATMER 1 1 2 HEADER
|
||||
SECTION H_CATMER 1 2 1 GROUP
|
||||
STRINGA 11 20 1
|
||||
BEGIN
|
||||
KEY "CATMER"
|
||||
PROMPT 2 1 ""
|
||||
PROMPT 2 1 "Gruppo merc. "
|
||||
MESSAGE _USER,CODCATMER|COPY,1551
|
||||
END
|
||||
STRINGA 12 30 2
|
||||
STRINGA 12 70
|
||||
BEGIN
|
||||
KEY "CODICE CATMER"
|
||||
PROMPT 3 1 ""
|
||||
@ -187,7 +187,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,1|COPY,1451
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -210,7 +210,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,2|COPY,1351
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -233,7 +233,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,3|COPY,1251
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -256,7 +256,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,4|COPY,1151
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -279,7 +279,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,5|COPY,1051
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -302,7 +302,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,6|COPY,951
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -325,7 +325,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,7|COPY,851
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -349,7 +349,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,8|COPY,751
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -373,7 +373,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
FIELD CODART
|
||||
MESSAGE COPY,651
|
||||
END
|
||||
STRINGA 21 30 2
|
||||
STRINGA 21 70
|
||||
BEGIN
|
||||
KEY "DESCR.articolo"
|
||||
PROMPT 3 1 ""
|
||||
@ -477,15 +477,23 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END
|
||||
|
||||
SECTION GRUPPI_LIVGIAC4 1 0 0 FILE LF_MAG GROUP CODART
|
||||
STRINGA 60 20
|
||||
STRINGA 60 70
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
KEY "MAGAZZ"
|
||||
PROMPT 3 1 ""
|
||||
FIELD 500@->s0
|
||||
MESSAGE RESET,1@|COPY,150
|
||||
END
|
||||
STRINGA 60 30
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
KEY "MAGAZZ"
|
||||
PROMPT 2 1 ""
|
||||
FIELD 500@->s0
|
||||
MESSAGE RESET,1@|COPY,150
|
||||
FIELD 500@->CODTAB[1,3]
|
||||
MESSAGE COPY,151
|
||||
END
|
||||
SECTION H_MAGAZZINO 1 1 1 HEADER
|
||||
SECTION H_MAGAZZINO 1 0 0 GROUP
|
||||
SECTION H_MAGAZZINO_NODEP 1 0 0 STR_EXPR 500@->B0!="X" // DIVISIONE IN DEPOSITI
|
||||
STRINGA 60 20
|
||||
BEGIN
|
||||
@ -498,21 +506,28 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
STRINGA 60 20
|
||||
BEGIN
|
||||
KEY "codice magazzino"
|
||||
FIELD 500@->s0
|
||||
PROMPT 2 1 " Magazzino "
|
||||
FIELD 500@->CODTAB[1,3]
|
||||
PROMPT 2 1 " Magazzino "
|
||||
MESSAGE SHOW,TOT_DEPOSITO
|
||||
END
|
||||
STRINGA 60 70
|
||||
BEGIN
|
||||
KEY "magazzino"
|
||||
FIELD 500@->s0
|
||||
PROMPT 3 1 ""
|
||||
END
|
||||
END
|
||||
END
|
||||
|
||||
SECTION GRUPPI_MAGAZZINO 1 0 0 FILE LF_MAG GROUP CODMAG[1,3]
|
||||
SECTION H_DEPOSITO 1 0 0 HEADER
|
||||
SECTION H_DEPOSITO 1 0 0 GROUP
|
||||
END
|
||||
SECTION TOT_DEPOSITO 1 1 1 GROUP
|
||||
STRINGA 51 20
|
||||
BEGIN
|
||||
KEY "CODICE"
|
||||
PROMPT 2 1 " Deposito"
|
||||
PROMPT 2 1 " Deposito "
|
||||
FIELD 501@->CODTAB[4,5]
|
||||
END
|
||||
STRINGA 52 30
|
||||
BEGIN
|
||||
@ -607,7 +622,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
STRINGA 151 20
|
||||
BEGIN
|
||||
KEY "Magazzino"
|
||||
PROMPT 2 1 " Totale mag."
|
||||
PROMPT 2 1 " Totale mag. "
|
||||
END
|
||||
STRINGA 153 3
|
||||
BEGIN
|
||||
@ -683,7 +698,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
|
||||
END // GGIAC4
|
||||
SECTION TOT_GLIVGIAC4 1 1 1 GROUP
|
||||
STRINGA 250 30 2
|
||||
STRINGA 250 30
|
||||
BEGIN
|
||||
PROMPT 3 1 ""
|
||||
END
|
||||
@ -766,7 +781,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
|
||||
END // GGIAC3
|
||||
SECTION TOT_GLIVGIAC3 1 1 1 GROUP
|
||||
STRINGA 350 30 2
|
||||
STRINGA 350 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
@ -850,7 +865,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
|
||||
END // GGIAC2
|
||||
SECTION TOT_GLIVGIAC2 1 1 1 GROUP
|
||||
STRINGA 450 30 2
|
||||
STRINGA 450 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
@ -933,7 +948,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END // tot ggiac2
|
||||
END // GGIAC1
|
||||
SECTION TOT_GLIVGIAC1 1 1 1 GROUP
|
||||
STRINGA 550 30 2
|
||||
STRINGA 550 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
@ -1016,8 +1031,8 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END // tot ggiac1
|
||||
|
||||
END // FILE GIACENZE
|
||||
SECTION TOT_ARTICOLO 1 1 1 FOOTER
|
||||
STRINGA 650 30 2
|
||||
SECTION TOT_ARTICOLO 1 1 1 GROUP // FOOTER
|
||||
STRINGA 650 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
@ -1102,8 +1117,8 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END // TOT ART
|
||||
|
||||
END // GART8
|
||||
SECTION TOT_GART8 1 1 1 FOOTER
|
||||
STRINGA 750 30 2
|
||||
SECTION TOT_GART8 1 1 1 GROUP // FOOTER
|
||||
STRINGA 750 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
@ -1186,8 +1201,8 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END // tot gart8
|
||||
|
||||
END // GART7
|
||||
SECTION TOT_GART7 1 1 1 FOOTER
|
||||
STRINGA 850 30 2
|
||||
SECTION TOT_GART7 1 1 1 GROUP // FOOTER
|
||||
STRINGA 850 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
@ -1270,8 +1285,8 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END // tot gart7
|
||||
|
||||
END // GART6
|
||||
SECTION TOT_GART6 1 1 1 FOOTER
|
||||
STRINGA 950 30 2
|
||||
SECTION TOT_GART6 1 1 1 GROUP // FOOTER
|
||||
STRINGA 950 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
@ -1354,8 +1369,8 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END // tot gart6
|
||||
|
||||
END // GART5
|
||||
SECTION TOT_GART5 1 1 1 FOOTER
|
||||
STRINGA 1050 30 2
|
||||
SECTION TOT_GART5 1 1 1 GROUP // FOOTER
|
||||
STRINGA 1050 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
@ -1438,8 +1453,8 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END // tot gart5
|
||||
|
||||
END // GART4
|
||||
SECTION TOT_GART4 1 1 1 FOOTER
|
||||
STRINGA 1150 30 2
|
||||
SECTION TOT_GART4 1 1 1 GROUP // FOOTER
|
||||
STRINGA 1150 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
@ -1522,8 +1537,8 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END // tot gart4
|
||||
|
||||
END // GART3
|
||||
SECTION TOT_GART3 1 1 1 FOOTER
|
||||
STRINGA 1250 30 2
|
||||
SECTION TOT_GART3 1 1 1 GROUP // FOOTER
|
||||
STRINGA 1250 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
@ -1606,8 +1621,8 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END // tot gart3
|
||||
|
||||
END // GART2
|
||||
SECTION TOT_GART2 1 1 1 FOOTER
|
||||
STRINGA 1350 30 2
|
||||
SECTION TOT_GART2 1 1 1 GROUP // FOOTER
|
||||
STRINGA 1350 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
@ -1690,8 +1705,8 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END // tot gart2
|
||||
|
||||
END // GART1
|
||||
SECTION TOT_GART1 1 1 1 FOOTER
|
||||
STRINGA 1450 30 2
|
||||
SECTION TOT_GART1 1 1 1 GROUP // FOOTER
|
||||
STRINGA 1450 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
@ -1774,16 +1789,16 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END // tot gart1
|
||||
|
||||
END // GRUPPI_CATMER
|
||||
SECTION TOT_CATMER 1 1 1 FOOTER
|
||||
STRINGA 1550 30 2
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
END
|
||||
SECTION TOT_CATMER 1 1 2 GROUP // FOOTER
|
||||
STRINGA 1551 20
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 2 1 ""
|
||||
PROMPT 2 1 "Totale gr.merc."
|
||||
END
|
||||
STRINGA 1550 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
END
|
||||
STRINGA 1553 3
|
||||
BEGIN
|
||||
|
||||
161
mg/mg3200b.frm
161
mg/mg3200b.frm
@ -1,5 +1,5 @@
|
||||
#include "mg3frm.h"
|
||||
USE LF_MAG KEY 2
|
||||
USE LF_MAG KEY 2 BY ANNOES CODMAG CODART LIVELLO
|
||||
JOIN LF_ANAMAG TO LF_MAG INTO CODART==CODART
|
||||
JOIN MAG TO LF_MAG ALIAS 500 INTO CODTAB==CODMAG[1,3]
|
||||
JOIN MAG TO LF_MAG ALIAS 501 INTO CODTAB==CODMAG
|
||||
@ -25,7 +25,7 @@ SECTION GRAPHIC
|
||||
BEGIN
|
||||
END
|
||||
|
||||
SECTION HEADER ODD 5
|
||||
SECTION HEADER ODD 7
|
||||
|
||||
STRINGA 1 40 1
|
||||
BEGIN
|
||||
@ -54,73 +54,86 @@ BEGIN
|
||||
PROMPT 55 2 "Stampa disponibilita'"
|
||||
END
|
||||
|
||||
STRINGA 5 146
|
||||
STRINGA FF_RANGEARTIC 120
|
||||
BEGIN
|
||||
KEY "Separatore (iniziale)"
|
||||
PROMPT 1 3 "------------------------------------------------------------------------------------------------------------------------------------------------------"
|
||||
KEY "RANGE"
|
||||
PROMPT 1 3 ""
|
||||
END
|
||||
|
||||
STRINGA 6 20
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 2 4 "Codice"
|
||||
END
|
||||
STRINGA 7 40
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 24 4 "Descrizione"
|
||||
END
|
||||
STRINGA 7 40
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 45 4 "UM"
|
||||
END
|
||||
STRINGA 8 12
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 55 4 "Giac."
|
||||
END
|
||||
STRINGA 9 12
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 67 4 "Ord.F."
|
||||
END
|
||||
STRINGA 10 12
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 79 4 "Ord.C."
|
||||
END
|
||||
STRINGA 11 12
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 91 4 "A c.lav."
|
||||
END
|
||||
STRINGA 12 12
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 103 4 "In c.lav."
|
||||
END
|
||||
STRINGA 13 12
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 116 4 "Prod.F."
|
||||
END
|
||||
STRINGA 14 12
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 128 4 "Prod.C."
|
||||
END
|
||||
STRINGA 15 12
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 139 4 "Disp."
|
||||
END
|
||||
STRINGA FF_RANGEMAGAZ 70
|
||||
BEGIN
|
||||
KEY "RANGE"
|
||||
PROMPT 1 4 ""
|
||||
END
|
||||
|
||||
STRINGA 17 146
|
||||
BEGIN
|
||||
KEY "Separatore (iniziale)"
|
||||
PROMPT 1 5 "------------------------------------------------------------------------------------------------------------------------------------------------------"
|
||||
END
|
||||
|
||||
STRINGA 5 151
|
||||
BEGIN
|
||||
KEY "Separatore (iniziale)"
|
||||
PROMPT 1 5 "-----------------------------------------------------------------------------------------------------------------------------------------------------------"
|
||||
END
|
||||
|
||||
STRINGA 6 20
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 2 6 "Codice"
|
||||
END
|
||||
STRINGA 7 40
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 23 6 "Descrizione"
|
||||
END
|
||||
STRINGA 7 40
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 54 6 "UM"
|
||||
END
|
||||
STRINGA 8 12
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 63 6 "Giac."
|
||||
END
|
||||
STRINGA 9 12
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 74 6 "Ord.F."
|
||||
END
|
||||
STRINGA 10 12
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 86 6 "Ord.C."
|
||||
END
|
||||
STRINGA 11 12
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 96 6 "A c.lav."
|
||||
END
|
||||
STRINGA 12 12
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 107 6 "In c.lav."
|
||||
END
|
||||
STRINGA 13 12
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 121 6 "Prod.F."
|
||||
END
|
||||
STRINGA 14 12
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 133 6 "Prod.C."
|
||||
END
|
||||
STRINGA 15 12
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 147 6 "Disp."
|
||||
END
|
||||
|
||||
STRINGA 17 151
|
||||
BEGIN
|
||||
KEY "Separatore (iniziale)"
|
||||
PROMPT 1 7 "-----------------------------------------------------------------------------------------------------------------------------------------------------------"
|
||||
END
|
||||
|
||||
END
|
||||
|
||||
@ -137,7 +150,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
STRINGA 60 20 1
|
||||
BEGIN
|
||||
KEY "codice magazzino"
|
||||
PROMPT 2 1 "Magazzino "
|
||||
PROMPT 2 1 "Magazzino "
|
||||
FIELD 500@->CODTAB
|
||||
MESSAGE COPY,151
|
||||
END
|
||||
@ -173,7 +186,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
STRINGA 60 20 1
|
||||
BEGIN
|
||||
KEY "codice dep"
|
||||
PROMPT 2 1 "Deposito "
|
||||
PROMPT 2 1 "Deposito "
|
||||
FIELD 501@->CODTAB[4,5]
|
||||
MESSAGE COPY,51
|
||||
END
|
||||
@ -186,7 +199,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END
|
||||
END
|
||||
|
||||
SECTION GRUPPI_DEPOSITO 1 0 0 FILE LF_MAG GROUP CODMAG[1,5]
|
||||
SECTION GRUPPI_DEPOSITO 1 0 0 FILE LF_MAG GROUP CODMAG[1,5]
|
||||
STRINGA 60 40 1
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
@ -469,7 +482,8 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
SECTION GRUPPI_LIVGIAC3 1 0 0 FILE LF_MAG GROUP LIVELLO
|
||||
SECTION H_GLIVGIAC4 1 1 1 GROUP
|
||||
END
|
||||
SECTION GRUPPI_LIVGIAC4 1 0 0 FILE LF_MAG GROUP LIVELLO
|
||||
SECTION GRUPPI_LIVGIAC4 1 0 0 STR_EXPR LIVELLO
|
||||
// SEZIONE PRESENTE SOLO PER UNIFORMIT… CON LA STAMPA PER ARTICOLI
|
||||
END
|
||||
|
||||
SECTION TOT_GLIVGIAC4 1 1 1 GROUP
|
||||
@ -1577,13 +1591,13 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
STRINGA 77
|
||||
BEGIN
|
||||
KEY "giac"
|
||||
PROMPT 52 1 "----------------------------------------------------------------------------------------------------"
|
||||
PROMPT 52 1 "---------------------------------------------------------------------------------------------------------"
|
||||
END
|
||||
END
|
||||
STRINGA 51 20
|
||||
BEGIN
|
||||
KEY "CODICE"
|
||||
PROMPT 2 1 "Totale dep."
|
||||
PROMPT 2 1 "Totale dep. "
|
||||
END
|
||||
STRINGA 50 30
|
||||
BEGIN
|
||||
@ -1635,6 +1649,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 10 1 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE _USER,VALIDATE_UM,53|ADD,145
|
||||
GROUP 15
|
||||
END
|
||||
NUMERO 46 11
|
||||
BEGIN
|
||||
@ -1668,7 +1683,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
STRINGA 77
|
||||
BEGIN
|
||||
KEY "giac"
|
||||
PROMPT 50 1 "----------------------------------------------------------------------------------------------------"
|
||||
PROMPT 50 1 "---------------------------------------------------------------------------------------------------------"
|
||||
END
|
||||
END
|
||||
STRINGA 150 30 1
|
||||
@ -1679,7 +1694,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
STRINGA 151 20 1
|
||||
BEGIN
|
||||
KEY "Magazzino"
|
||||
PROMPT 2 1 "Totale mag."
|
||||
PROMPT 2 1 "Totale mag. "
|
||||
END
|
||||
STRINGA 153 3
|
||||
BEGIN
|
||||
|
||||
@ -217,10 +217,10 @@ void TForm_schedemag::setdett_permag(bool sudd_dep,bool show_dett,int livart,int
|
||||
{
|
||||
*_rmov_raggcond << "+CODMAG[4,5]";
|
||||
_rmov_sortexp->add("CODMAG[4,5]");
|
||||
if (show_dett)
|
||||
{
|
||||
ragg_exprs(livart,livgiac);
|
||||
}
|
||||
}
|
||||
if (show_dett)
|
||||
{
|
||||
ragg_exprs(livart,livgiac);
|
||||
}
|
||||
|
||||
TForm_subsection &s=(TForm_subsection &)find_field('B',odd_page,"GRUPPI_RMOVMAG");
|
||||
|
||||
@ -18,11 +18,11 @@ BEGIN
|
||||
PROMPT 2 2 "Ordinamento "
|
||||
ITEM "A|articoli"
|
||||
MESSAGE ENABLE,F_ORDINEART
|
||||
MESSAGE HIDE,F_DETTAGLIOMAG|HIDE,F_DETTAGLIODEP
|
||||
MESSAGE HIDE,F_DETTAGLIOMAG|"X",F_DETTAGLIODEP
|
||||
MESSAGE SHOW,F_SUDDIV_MAGAZZINI|SHOW,F_SUDDIV_DEPOSITI
|
||||
ITEM "M|magazzini"
|
||||
MESSAGE "C",F_ORDINEART|K_SPACE,F_ORDINEART|DISABLE,F_ORDINEART|SHOW,G_CODART@|HIDE,G_DESART@
|
||||
MESSAGE SHOW,F_DETTAGLIOMAG|SHOW,F_DETTAGLIODEP
|
||||
MESSAGE SHOW,F_DETTAGLIOMAG|"X",F_DETTAGLIODEP
|
||||
MESSAGE HIDE,F_SUDDIV_MAGAZZINI|HIDE,F_SUDDIV_DEPOSITI
|
||||
|
||||
END
|
||||
@ -174,15 +174,15 @@ END
|
||||
|
||||
BOOL F_DETTAGLIOMAG
|
||||
BEGIN
|
||||
PROMPT 2 11 "Suddivido per depositi"
|
||||
MESSAGE TRUE ENABLE,F_DETTAGLIODEP
|
||||
MESSAGE FALSE CLEAR,F_DETTAGLIODEP
|
||||
PROMPT 2 12 "Suddivido per depositi"
|
||||
// MESSAGE TRUE ENABLE,F_DETTAGLIODEP
|
||||
// MESSAGE FALSE CLEAR,F_DETTAGLIODEP
|
||||
END
|
||||
|
||||
BOOL F_DETTAGLIODEP
|
||||
BEGIN
|
||||
FLAGS "D"
|
||||
PROMPT 2 12 "Dettaglio i depositi"
|
||||
FLAGS "DH"
|
||||
PROMPT 42 12 "Dettaglio i depositi"
|
||||
END
|
||||
|
||||
|
||||
|
||||
@ -120,21 +120,34 @@ SECTION BODY ODD 2
|
||||
|
||||
SECTION HEADER_MAG 1 2 2 GROUP
|
||||
FLAGS "N"
|
||||
STRINGA 22 50 1
|
||||
STRINGA 22 20 1
|
||||
BEGIN
|
||||
KEY "mag"
|
||||
PROMPT 1 1 "Magazzino "
|
||||
FIELD 500@->CODTAB[1,3]
|
||||
END
|
||||
STRINGA 22 50 1
|
||||
BEGIN
|
||||
KEY "mag"
|
||||
PROMPT 15 1 ""
|
||||
FIELD 500@->S0
|
||||
END
|
||||
SECTION HEADER_DEP 2 0 0 GROUP
|
||||
SECTION HEADER_DEP_VERO 1 1 1 STR_EXPR 500@->B0=="X"
|
||||
STRINGA 23 50 1
|
||||
STRINGA 23 20 1
|
||||
BEGIN
|
||||
KEY "dep"
|
||||
PROMPT 3 1 "Deposito "
|
||||
FIELD 501@->CODTAB[4,5]
|
||||
END
|
||||
STRINGA 23 50 1
|
||||
BEGIN
|
||||
KEY "dep"
|
||||
PROMPT 15 1 ""
|
||||
FIELD 501@->S0
|
||||
END
|
||||
END
|
||||
END // HEADER deposito
|
||||
SECTION HEADER_ARTICOLO 2 1 1 GROUP
|
||||
STRINGA 10 20 1
|
||||
BEGIN
|
||||
@ -164,7 +177,6 @@ SECTION BODY ODD 2
|
||||
END
|
||||
END // HEADER livgiac
|
||||
END //HEADER articolo
|
||||
END // HEADER deposito
|
||||
STRINGA 24 50 1
|
||||
BEGIN
|
||||
KEY "dep"
|
||||
|
||||
@ -1,9 +1,7 @@
|
||||
#define LF_UMART2 349
|
||||
#define LF_TAB_MAG 500
|
||||
USE LF_ANAMAG KEY 1
|
||||
JOIN LF_STOMAG TO LF_ANAMAG INTO ANNOESRIF==1996 CODART==CODART
|
||||
JOIN LF_UMART TO LF_ANAMAG INTO CODART==CODART
|
||||
JOIN LF_UMART TO LF_STOMAG KEY 2 ALIAS LF_UMART2 INTO CODART==CODART UM==UM
|
||||
JOIN MAG TO LF_STOMAG ALIAS LF_TAB_MAG INTO CODTAB==CODMAG[1,3]
|
||||
END
|
||||
|
||||
@ -18,7 +16,7 @@ END
|
||||
GENERAL
|
||||
BEGIN
|
||||
OFFSET 0 1
|
||||
FONT "Courier New"
|
||||
// FONT "Courier New"
|
||||
// SIZE 10
|
||||
END
|
||||
|
||||
@ -65,25 +63,26 @@ END
|
||||
END
|
||||
|
||||
|
||||
SECTION BODY ODD 1
|
||||
SECTION BODY ODD 0
|
||||
|
||||
SECTION H_ARTICOLO 1 3 1 HEADER
|
||||
STRINGA 11 20
|
||||
BEGIN
|
||||
KEY "CODART"
|
||||
PROMPT 2 1 "Articolo "
|
||||
FIELD LF_ANAMAG->CODART
|
||||
END
|
||||
STRINGA 12 50
|
||||
BEGIN
|
||||
KEY "DESCR"
|
||||
PROMPT 33 1 ""
|
||||
FIELD LF_ANAMAG->DESCR
|
||||
END
|
||||
END
|
||||
|
||||
SECTION GRUPPI_ARTICOLO 1 0 0 COLUMNWISE FILE LF_STOMAG
|
||||
|
||||
SECTION H_ARTICOLO 1 3 1 GROUP
|
||||
STRINGA 11 20
|
||||
BEGIN
|
||||
KEY "CODART"
|
||||
PROMPT 2 1 "Articolo "
|
||||
FIELD LF_ANAMAG->CODART
|
||||
END
|
||||
STRINGA 12 50
|
||||
BEGIN
|
||||
KEY "DESCR"
|
||||
PROMPT 33 1 ""
|
||||
FIELD LF_ANAMAG->DESCR
|
||||
END
|
||||
END
|
||||
|
||||
SECTION BODY_MAG 1 1 1 COLUMNWISE FILE LF_STOMAG GROUP CODART
|
||||
SECTION HD_MAG 1 2 1 NORMAL GROUP
|
||||
STRINGA 11 20
|
||||
@ -95,7 +94,7 @@ SECTION BODY ODD 1
|
||||
STRINGA 12 50
|
||||
BEGIN
|
||||
KEY "DESCR"
|
||||
PROMPT 33 1 ""
|
||||
PROMPT 23 1 ""
|
||||
FIELD LF_TAB_MAG@->S0
|
||||
END
|
||||
END // HD MAG
|
||||
@ -106,10 +105,10 @@ SECTION BODY ODD 1
|
||||
KEY "offset"
|
||||
PROMPT 1 1 ""
|
||||
END
|
||||
NUMERO 13 6
|
||||
NUMERO 13 10
|
||||
BEGIN
|
||||
KEY "ANNO"
|
||||
PROMPT 2 1 "Anno"
|
||||
PROMPT 2 1 " Anno"
|
||||
END
|
||||
STRINGA 15 12
|
||||
BEGIN
|
||||
@ -129,7 +128,7 @@ SECTION BODY ODD 1
|
||||
KEY "offset"
|
||||
PROMPT 1 1 ""
|
||||
END
|
||||
NUMERO 14 6
|
||||
NUMERO 14 10
|
||||
BEGIN
|
||||
KEY "ANNO"
|
||||
PROMPT 2 1 ""
|
||||
@ -140,20 +139,50 @@ SECTION BODY ODD 1
|
||||
KEY "QUANT"
|
||||
PROMPT 4 1 ""
|
||||
PICTURE "###.###,@@@"
|
||||
MESSAGE _NUMEXPR,LF_STOMAG->QUANT*LF_UMART2@->FC
|
||||
FIELD LF_STOMAG->QUANT
|
||||
MESSAGE ADD,115
|
||||
END
|
||||
NUMERO 16 12
|
||||
BEGIN
|
||||
KEY "VALORE"
|
||||
PROMPT 5 1 ""
|
||||
PICTURE "###.###.###"
|
||||
MESSAGE _NUMEXPR,LF_STOMAG->VALORE*LF_UMART2@->FC
|
||||
FIELD LF_STOMAG->VALORE
|
||||
MESSAGE ADD,116
|
||||
END
|
||||
|
||||
END // body anni
|
||||
END // body anni
|
||||
END // gruppi anni dello stesso articolo
|
||||
END // gruppi anni dello stesso articolo
|
||||
|
||||
SECTION FOOTER_ANNI 1 1 1 COLUMNWISE GROUP
|
||||
NUMERO 13 15
|
||||
BEGIN
|
||||
KEY "offset"
|
||||
PROMPT 1 1 ""
|
||||
END
|
||||
NUMERO 14 10
|
||||
BEGIN
|
||||
KEY "ANNO"
|
||||
PROMPT 2 1 " Totale"
|
||||
END
|
||||
NUMERO 115 12
|
||||
BEGIN
|
||||
KEY "QUANT"
|
||||
PROMPT 4 1 ""
|
||||
PICTURE "###.###,@@@"
|
||||
END
|
||||
NUMERO 116 12
|
||||
BEGIN
|
||||
KEY "VALORE"
|
||||
PROMPT 5 1 ""
|
||||
PICTURE "###.###.###"
|
||||
END
|
||||
|
||||
END // body anni
|
||||
|
||||
|
||||
END // CICLO sul file di storico
|
||||
|
||||
END // section body, loop anamag
|
||||
|
||||
SECTION FOOTER ODD 2
|
||||
|
||||
@ -22,7 +22,7 @@ END
|
||||
GENERAL
|
||||
BEGIN
|
||||
OFFSET 0 1
|
||||
FONT "Courier New"
|
||||
// FONT "Courier New"
|
||||
// SIZE 10
|
||||
END
|
||||
|
||||
@ -274,7 +274,7 @@ SECTION BODY ODD 1
|
||||
NUMERO 10
|
||||
BEGIN
|
||||
KEY "totale mov"
|
||||
PROMPT 86 3 "Totale valore movimentato: "
|
||||
PROMPT 85 3 "Totale valore movimentato: "
|
||||
PICTURE "##.###.###.##@"
|
||||
END
|
||||
|
||||
|
||||
@ -123,32 +123,38 @@ bool TForm_inventario::valorizzazione(TForm_item &cf, TTipo_valorizz t)
|
||||
if (t==valorizz_coststd) {
|
||||
v=curr_art().costo_standard(annoes).string();
|
||||
}
|
||||
if (t==valorizz_costmediopond) {
|
||||
TString codmag(magrec.get(MAG_CODMAG));codmag.cut(3);
|
||||
const TString livello(magrec.get(MAG_LIVELLO));
|
||||
v=curr_art().costo_mediopond(annoes,codmag,livello).string();
|
||||
}
|
||||
if (t==valorizz_costmedio) {
|
||||
const TString codmag(magrec.get(MAG_CODMAG));
|
||||
TString codmag(magrec.get(MAG_CODMAG));codmag.cut(3);
|
||||
const TString livello(magrec.get(MAG_LIVELLO));
|
||||
v=curr_art().costo_medio(annoes,codmag,livello).string();
|
||||
}
|
||||
if (t==valorizz_LIFO) {
|
||||
const TString codmag(magrec.get(MAG_CODMAG));
|
||||
TString codmag(magrec.get(MAG_CODMAG));codmag.cut(3);
|
||||
const TString livello(magrec.get(MAG_LIVELLO));
|
||||
v=curr_art().LIFO(annoes,codmag,livello, _giaceff,_valcomp).string();
|
||||
}
|
||||
if (t==valorizz_FIFO) {
|
||||
const TString codmag(magrec.get(MAG_CODMAG));
|
||||
TString codmag(magrec.get(MAG_CODMAG));codmag.cut(3);
|
||||
const TString livello(magrec.get(MAG_LIVELLO));
|
||||
v=curr_art().FIFO(annoes,codmag,livello, _giaceff,_valcomp).string();
|
||||
}
|
||||
if (t==valorizz_LIFOa) {
|
||||
const TString codmag(magrec.get(MAG_CODMAG));
|
||||
TString codmag(magrec.get(MAG_CODMAG));codmag.cut(3);
|
||||
const TString livello(magrec.get(MAG_LIVELLO));
|
||||
v=curr_art().LIFO_annuale(annoes,codmag,livello, _giaceff,_valcomp).string();
|
||||
}
|
||||
if (t==valorizz_FIFOa) {
|
||||
const TString codmag(magrec.get(MAG_CODMAG));
|
||||
TString codmag(magrec.get(MAG_CODMAG));codmag.cut(3);
|
||||
const TString livello(magrec.get(MAG_LIVELLO));
|
||||
v=curr_art().FIFO_annuale(annoes,codmag,livello, _giaceff,_valcomp).string();
|
||||
}
|
||||
cf.set(((real)(v * curr_art().giacenza_corretta(magrec,_giaceff,_valcomp))).string());
|
||||
cf.set(v.string());
|
||||
//* curr_art().giacenza_corretta(magrec,_giaceff,_valcomp)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -199,7 +205,7 @@ TStampainv_mask::TStampainv_mask():
|
||||
set_handler(F_TOLIVELLOART, handle_liv);
|
||||
set_handler(F_TOLIVELLOGIAC, handle_liv);
|
||||
set_handler(F_ORDINE, handle_ragg);
|
||||
set_handler(F_DETTAGLIODEP, handle_ragg);
|
||||
//set_handler(F_DETTAGLIODEP, handle_ragg);
|
||||
set_handler(F_DETTAGLIOMAG, handle_ragg);
|
||||
set_handler(F_ORDINEART,handle_subord);
|
||||
set_handler(F_CODLISTINO, handle_codlist);
|
||||
@ -216,7 +222,7 @@ bool TStampainv_mask::handle_subord(TMask_field &fld, KEY k)
|
||||
if (fld.mask().get(F_ORDINE)=="A")
|
||||
fraggcod.enable();
|
||||
else {
|
||||
if (!fld.mask().get_bool(F_DETTAGLIOMAG) || !fld.mask().get_bool(F_DETTAGLIODEP))
|
||||
if (!fld.mask().get_bool(F_DETTAGLIODEP))
|
||||
{
|
||||
fraggcod.reset(); fraggcod.disable();
|
||||
fragggiac.reset(); fragggiac.disable();
|
||||
@ -263,7 +269,7 @@ bool TStampainv_mask::handle_ragg(TMask_field &fld, KEY k)
|
||||
if (fld.mask().get(F_ORDINE)=="M")
|
||||
{
|
||||
ftotmag.enable();
|
||||
if (!fld.mask().get_bool(F_DETTAGLIOMAG) || !fld.mask().get_bool(F_DETTAGLIODEP))
|
||||
if (!fld.mask().get_bool(F_DETTAGLIODEP))
|
||||
{
|
||||
fraggcod.reset(); fraggcod.disable();
|
||||
fragggiac.reset(); fragggiac.disable();
|
||||
@ -375,7 +381,13 @@ void TStampa_inventario::setprint_permagazzini()
|
||||
_form->setdett_permag(
|
||||
_mask->get_bool(F_RAGGCODICE),_mask->get_int(F_FROMLIVELLOART),_mask->get_int(F_TOLIVELLOART),
|
||||
_mask->get_bool(F_RAGGLIVGIAC),_mask->get_int(F_FROMLIVELLOGIAC),_mask->get_int(F_TOLIVELLOGIAC),
|
||||
TRUE,_mask->get_bool(F_DETTAGLIOMAG),_mask->get_bool(F_DETTAGLIODEP));
|
||||
TRUE,_mask->get_bool(F_TOTALIDEPOSITI),_mask->get_bool(F_DETTAGLIODEP));
|
||||
|
||||
if (!_mask->get_bool(F_TOTALIDEPOSITI))
|
||||
{
|
||||
((TSorted_cursor *)_cur)->change_order("ANNOES|CODMAG[1,3]|CODART|LIVELLO");
|
||||
_form->find_field('B',odd_page,"GRUPPI_DEPOSITO").setcondition("CODMAG[1,3]",_strexpr);
|
||||
}
|
||||
|
||||
darec.put("ANNOES",_mask->get(F_ANNOES));
|
||||
darec.put("CODMAG",_mask->get(F_DAMAG));
|
||||
@ -405,7 +417,7 @@ void TStampa_inventario::setprint_perarticoli()
|
||||
if (filter.not_empty())
|
||||
filter.cut(filter.len()-2);
|
||||
|
||||
_mask->set_livellicodice();
|
||||
//_mask->set_livellicodice();
|
||||
switch (subordine)
|
||||
{
|
||||
case 'C':
|
||||
@ -438,7 +450,7 @@ void TStampa_inventario::setprint_perarticoli()
|
||||
_form->setdett_perart(
|
||||
_mask->get_bool(F_RAGGCODICE),_mask->get_int(F_FROMLIVELLOART),_mask->get_int(F_TOLIVELLOART),
|
||||
_mask->get_bool(F_RAGGLIVGIAC),_mask->get_int(F_FROMLIVELLOGIAC),_mask->get_int(F_TOLIVELLOGIAC),
|
||||
_mask->get_bool(F_TOTALIMAGAZZINI),_mask->get_bool(F_TOTALIDEPOSITI));
|
||||
_mask->get_bool(F_TOTALIMAGAZZINI),_mask->get_bool(F_DETTAGLIOMAG));
|
||||
/* if (*_mask->get(F_FILTRO)=='N')
|
||||
_form->find_field('B',odd_page,"TOT_DEPOSITO").setcondition("GIAC!=0");
|
||||
if (*_mask->get(F_FILTRO)=='+')
|
||||
|
||||
@ -7,10 +7,10 @@ BEGIN
|
||||
PROMPT 2 1 "Ordinamento "
|
||||
ITEM "A|articoli"
|
||||
MESSAGE ENABLE,F_ORDINEART
|
||||
MESSAGE SHOW,F_TOTALIMAGAZZINI|SHOW,F_TOTALIDEPOSITI|"X",F_DETTAGLIOMAG|"X",F_DETTAGLIODEP|HIDE,F_DETTAGLIODEP|HIDE,F_DETTAGLIOMAG
|
||||
MESSAGE "X",F_DETTAGLIODEP|SHOW,F_TOTALIMAGAZZINI|SHOW,F_DETTAGLIOMAG|HIDE,F_TOTALIDEPOSITI
|
||||
ITEM "M|magazzini"
|
||||
MESSAGE "C",F_ORDINEART|K_SPACE,F_ORDINEART|DISABLE,F_ORDINEART|SHOW,G_CODART@|HIDE,G_DESART@
|
||||
MESSAGE SHOW,F_DETTAGLIOMAG|HIDE,F_TOTALIMAGAZZINI|SHOW,F_DETTAGLIODEP|HIDE,F_TOTALIDEPOSITI
|
||||
MESSAGE SHOW,F_TOTALIDEPOSITI|HIDE,F_TOTALIMAGAZZINI|HIDE,F_DETTAGLIOMAG
|
||||
END
|
||||
|
||||
|
||||
@ -54,7 +54,7 @@ BEGIN
|
||||
PROMPT 2 3 "Valorizza solo "
|
||||
ITEM "C|i componenti impegnati"
|
||||
ITEM "F|i finiti in produzione"
|
||||
HELP "finiti =(giac+INPRODF-INPRODC)"
|
||||
HELP "finiti =(giac+INPRODF-INPRODC)"
|
||||
END
|
||||
|
||||
|
||||
@ -157,16 +157,17 @@ BEGIN
|
||||
GROUP G_CATMER
|
||||
END
|
||||
|
||||
BOOL F_DETTAGLIOMAG
|
||||
BOOL F_TOTALIDEPOSITI
|
||||
BEGIN
|
||||
PROMPT 2 7 "Stampa i depositi"
|
||||
MESSAGE TRUE ENABLE,F_DETTAGLIODEP
|
||||
MESSAGE FALSE CLEAR,F_DETTAGLIODEP|K_SPACE,F_DETTAGLIODEP
|
||||
PROMPT 2 7 "Suddivido per depositi"
|
||||
// MESSAGE TRUE ENABLE,F_DETTAGLIODEP
|
||||
// MESSAGE FALSE CLEAR,F_DETTAGLIODEP|K_SPACE,F_DETTAGLIODEP
|
||||
END
|
||||
|
||||
BOOL F_DETTAGLIODEP
|
||||
BEGIN
|
||||
PROMPT 42 7 "Stampa il dettaglio depositi"
|
||||
FLAGS "DH"
|
||||
PROMPT 42 7 "Dettaglia i depositi"
|
||||
MESSAGE TRUE ENABLE,F_RAGGCODICE|ENABLE,F_RAGGLIVGIAC
|
||||
MESSAGE FALSE CLEAR,F_RAGGCODICE|K_SPACE,F_RAGGCODICE|CLEAR,F_RAGGLIVGIAC|K_SPACE,F_RAGGLIVGIAC
|
||||
END
|
||||
@ -245,11 +246,11 @@ END
|
||||
BOOL F_TOTALIMAGAZZINI
|
||||
BEGIN
|
||||
PROMPT 2 10 "Stampa i totali di magazzino"
|
||||
MESSAGE TRUE ENABLE,F_TOTALIDEPOSITI
|
||||
MESSAGE FALSE CLEAR,F_TOTALIDEPOSITI
|
||||
MESSAGE TRUE ENABLE,F_DETTAGLIOMAG
|
||||
MESSAGE FALSE CLEAR,F_DETTAGLIOMAG
|
||||
END
|
||||
|
||||
BOOL F_TOTALIDEPOSITI
|
||||
BOOL F_DETTAGLIOMAG
|
||||
BEGIN
|
||||
PROMPT 42 10 "Stampa i totali di deposito"
|
||||
END
|
||||
@ -257,85 +258,91 @@ END
|
||||
LIST F_VAL1 20
|
||||
BEGIN
|
||||
PROMPT 2 12 "Valorizz. 1 "
|
||||
ITEM "6|Costo medio ponder."
|
||||
ITEM "1|Ultimo costo"
|
||||
ITEM "2|Media ultimi costi"
|
||||
ITEM "3|Prezzo di listino"
|
||||
ITEM "4|Costo standard"
|
||||
ITEM "5|Costo medio"
|
||||
ITEM "6|FIFO annuale"
|
||||
ITEM "7|LIFO annuale"
|
||||
ITEM "8|FIFO"
|
||||
ITEM "9|LIFO"
|
||||
ITEM "7|FIFO annuale"
|
||||
ITEM "8|LIFO annuale"
|
||||
ITEM "9|FIFO"
|
||||
ITEM "10|LIFO"
|
||||
END
|
||||
LIST F_VAL2 20
|
||||
BEGIN
|
||||
PROMPT 2 13 "Valorizz. 2 "
|
||||
ITEM "|"
|
||||
ITEM "6|Costo medio ponder."
|
||||
ITEM "1|Ultimo costo"
|
||||
ITEM "2|Media ultimi costi"
|
||||
ITEM "3|Prezzo di listino"
|
||||
ITEM "4|Costo standard"
|
||||
ITEM "5|Costo medio"
|
||||
ITEM "6|FIFO annuale"
|
||||
ITEM "7|LIFO annuale"
|
||||
ITEM "8|FIFO"
|
||||
ITEM "9|LIFO"
|
||||
ITEM "7|FIFO annuale"
|
||||
ITEM "8|LIFO annuale"
|
||||
ITEM "9|FIFO"
|
||||
ITEM "10|LIFO"
|
||||
END
|
||||
LIST F_VAL3 20
|
||||
BEGIN
|
||||
PROMPT 2 14 "Valorizz. 3 "
|
||||
ITEM "|"
|
||||
ITEM "6|Costo medio ponder."
|
||||
ITEM "1|Ultimo costo"
|
||||
ITEM "2|Media ultimi costi"
|
||||
ITEM "3|Prezzo di listino"
|
||||
ITEM "4|Costo standard"
|
||||
ITEM "5|Costo medio"
|
||||
ITEM "6|FIFO annuale"
|
||||
ITEM "7|LIFO annuale"
|
||||
ITEM "8|FIFO"
|
||||
ITEM "9|LIFO"
|
||||
ITEM "7|FIFO annuale"
|
||||
ITEM "8|LIFO annuale"
|
||||
ITEM "9|FIFO"
|
||||
ITEM "10|LIFO"
|
||||
END
|
||||
LIST F_VAL4 20
|
||||
BEGIN
|
||||
PROMPT 42 12 "Valorizz. 4 "
|
||||
ITEM "|"
|
||||
ITEM "6|Costo medio ponder."
|
||||
ITEM "1|Ultimo costo"
|
||||
ITEM "2|Media ultimi costi"
|
||||
ITEM "3|Prezzo di listino"
|
||||
ITEM "4|Costo standard"
|
||||
ITEM "5|Costo medio"
|
||||
ITEM "6|FIFO annuale"
|
||||
ITEM "7|LIFO annuale"
|
||||
ITEM "8|FIFO"
|
||||
ITEM "9|LIFO"
|
||||
ITEM "7|FIFO annuale"
|
||||
ITEM "8|LIFO annuale"
|
||||
ITEM "9|FIFO"
|
||||
ITEM "10|LIFO"
|
||||
END
|
||||
LIST F_VAL5 20
|
||||
BEGIN
|
||||
PROMPT 42 13 "Valorizz. 5 "
|
||||
ITEM "|"
|
||||
ITEM "6|Costo medio ponder."
|
||||
ITEM "1|Ultimo costo"
|
||||
ITEM "2|Media ultimi costi"
|
||||
ITEM "3|Prezzo di listino"
|
||||
ITEM "4|Costo standard"
|
||||
ITEM "5|Costo medio"
|
||||
ITEM "6|FIFO annuale"
|
||||
ITEM "7|LIFO annuale"
|
||||
ITEM "8|FIFO"
|
||||
ITEM "9|LIFO"
|
||||
ITEM "7|FIFO annuale"
|
||||
ITEM "8|LIFO annuale"
|
||||
ITEM "9|FIFO"
|
||||
ITEM "10|LIFO"
|
||||
END
|
||||
LIST F_VAL6 20
|
||||
BEGIN
|
||||
PROMPT 42 14 "Valorizz. 6 "
|
||||
ITEM "|"
|
||||
ITEM "6|Costo medio ponder."
|
||||
ITEM "1|Ultimo costo"
|
||||
ITEM "2|Media ultimi costi"
|
||||
ITEM "3|Prezzo di listino"
|
||||
ITEM "4|Costo standard"
|
||||
ITEM "5|Costo medio"
|
||||
ITEM "6|FIFO annuale"
|
||||
ITEM "7|LIFO annuale"
|
||||
ITEM "8|FIFO"
|
||||
ITEM "9|LIFO"
|
||||
ITEM "7|FIFO annuale"
|
||||
ITEM "8|LIFO annuale"
|
||||
ITEM "9|FIFO"
|
||||
ITEM "10|LIFO"
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 3
|
||||
|
||||
130
mg/mg4200a.frm
130
mg/mg4200a.frm
@ -21,7 +21,7 @@ GENERAL
|
||||
BEGIN
|
||||
OFFSET 0 1
|
||||
// Let the user be free to choose the font&size:
|
||||
FONT "Courier New"
|
||||
// FONT "Courier New"
|
||||
// SIZE 10
|
||||
END
|
||||
|
||||
@ -254,7 +254,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODCATMER
|
||||
END
|
||||
STRINGA 12 30 2
|
||||
STRINGA 12 70
|
||||
BEGIN
|
||||
KEY "CODICE CATMER"
|
||||
PROMPT 3 1 ""
|
||||
@ -286,7 +286,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,1|COPY,1451
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -309,7 +309,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,2|COPY,1351
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -332,7 +332,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,3|COPY,1251
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -355,7 +355,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,4|COPY,1151
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -378,7 +378,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,5|COPY,1051
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -401,7 +401,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,6|COPY,951
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -424,7 +424,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,7|COPY,851
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -448,7 +448,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,8|COPY,751
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -472,7 +472,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
FIELD CODART
|
||||
MESSAGE COPY,651
|
||||
END
|
||||
STRINGA 21 30 2
|
||||
STRINGA 21 70
|
||||
BEGIN
|
||||
KEY "DESCR.articolo"
|
||||
PROMPT 3 1 ""
|
||||
@ -604,14 +604,14 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END
|
||||
END
|
||||
SECTION H_MAGAZZINO_DEP 1 1 1 STR_EXPR 500@->B0=="X" // DIVISIONE IN DEPOSITI
|
||||
STRINGA 60 40 1
|
||||
STRINGA 60 20 1
|
||||
BEGIN
|
||||
KEY "codice magazzino"
|
||||
FIELD 500@->CODTAB
|
||||
PROMPT 2 1 " Magazzino "
|
||||
MESSAGE SHOW,TOT_DEPOSITO
|
||||
END
|
||||
STRINGA 60 40 1
|
||||
STRINGA 60 70 1
|
||||
BEGIN
|
||||
KEY "magazzino"
|
||||
FIELD 500@->s0
|
||||
@ -650,106 +650,112 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PICTURE "########,@##"
|
||||
MESSAGE _USER,GIAC|ADD,141
|
||||
END
|
||||
NUMERO 42 15
|
||||
BEGIN
|
||||
KEY "VAL1"
|
||||
PROMPT 7 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
MESSAGE _USER,VAL1|ADD,142
|
||||
END
|
||||
|
||||
NUMERO 82 12
|
||||
BEGIN
|
||||
KEY "VAL1M"
|
||||
PROMPT 8 1 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE _NUMEXPR,#42/#41
|
||||
MESSAGE _USER,VAL1
|
||||
GROUP FG_COL1
|
||||
END
|
||||
NUMERO 42 15
|
||||
BEGIN
|
||||
KEY "VAL1"
|
||||
PROMPT 7 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
MESSAGE _NUMEXPR,#82*#41|ADD,142
|
||||
END
|
||||
|
||||
NUMERO 83 12
|
||||
BEGIN
|
||||
KEY "VAL2M"
|
||||
PROMPT 10 1 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE _USER,VAL2
|
||||
GROUP FG_COL2
|
||||
END
|
||||
NUMERO 43 15
|
||||
BEGIN
|
||||
KEY "VAL2"
|
||||
PROMPT 9 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
MESSAGE _USER,VAL2|ADD,143
|
||||
MESSAGE _NUMEXPR,#83*#41|ADD,143
|
||||
GROUP FG_COL2
|
||||
END
|
||||
NUMERO 83 12
|
||||
|
||||
NUMERO 84 12
|
||||
BEGIN
|
||||
KEY "VAL2M"
|
||||
PROMPT 10 1 ""
|
||||
KEY "VAL3M"
|
||||
PROMPT 12 1 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE _NUMEXPR,#43/#41
|
||||
GROUP FG_COL2
|
||||
MESSAGE _USER,VAL3
|
||||
GROUP FG_COL3
|
||||
END
|
||||
NUMERO 44 15
|
||||
BEGIN
|
||||
KEY "VAL3"
|
||||
PROMPT 11 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
MESSAGE _USER,VAL3|ADD,144
|
||||
MESSAGE _NUMEXPR,#84*#41|ADD,144
|
||||
GROUP FG_COL3
|
||||
END
|
||||
NUMERO 84 12
|
||||
|
||||
NUMERO 85 12
|
||||
BEGIN
|
||||
KEY "VAL3M"
|
||||
PROMPT 12 1 ""
|
||||
KEY "VAL4M"
|
||||
PROMPT 14 1 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE _NUMEXPR,#44/#41
|
||||
GROUP FG_COL3
|
||||
MESSAGE _USER,VAL4
|
||||
GROUP FG_COL4
|
||||
END
|
||||
NUMERO 45 15
|
||||
BEGIN
|
||||
KEY "VAL4"
|
||||
PROMPT 13 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
MESSAGE _USER,VAL4|ADD,145
|
||||
MESSAGE _NUMEXPR,#85*#41|ADD,145
|
||||
GROUP FG_COL4
|
||||
END
|
||||
NUMERO 85 12
|
||||
|
||||
NUMERO 86 12
|
||||
BEGIN
|
||||
KEY "VAL4M"
|
||||
PROMPT 14 1 ""
|
||||
KEY "VAL5M"
|
||||
PROMPT 16 1 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE _NUMEXPR,#45/#41
|
||||
GROUP FG_COL4
|
||||
MESSAGE _USER,VAL5
|
||||
GROUP FG_COL5
|
||||
END
|
||||
NUMERO 46 15
|
||||
BEGIN
|
||||
KEY "VAL5"
|
||||
PROMPT 15 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
MESSAGE _USER,VAL5|ADD,146
|
||||
MESSAGE _NUMEXPR,#86*#41|ADD,146
|
||||
GROUP FG_COL5
|
||||
END
|
||||
NUMERO 86 12
|
||||
|
||||
NUMERO 87 12
|
||||
BEGIN
|
||||
KEY "VAL5M"
|
||||
PROMPT 16 1 ""
|
||||
KEY "VAL6M"
|
||||
PROMPT 18 1 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE _NUMEXPR,#46/#41
|
||||
GROUP FG_COL5
|
||||
MESSAGE _USER,VAL6
|
||||
GROUP FG_COL6
|
||||
END
|
||||
NUMERO 47 15
|
||||
BEGIN
|
||||
KEY "VAL6"
|
||||
PROMPT 17 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
MESSAGE _USER,VAL6|ADD,147
|
||||
GROUP FG_COL6
|
||||
END
|
||||
NUMERO 87 12
|
||||
BEGIN
|
||||
KEY "VAL6M"
|
||||
PROMPT 18 1 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE _NUMEXPR,#47/#41
|
||||
MESSAGE _NUMEXPR,#87*#41|ADD,147
|
||||
GROUP FG_COL6
|
||||
END
|
||||
END // depositi dello stesso magazzino
|
||||
|
||||
END // MAGAZZ
|
||||
|
||||
SECTION TOT_MAGAZZINO 1 1 1 FOOTER
|
||||
SECTION TOT_MAGAZZINO 1 1 1 GROUP
|
||||
STRINGA 150 30 1
|
||||
BEGI
|
||||
KEY "Magazzino"
|
||||
@ -814,15 +820,15 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
MESSAGE ADD,244
|
||||
GROUP 1 FG_COL3
|
||||
END
|
||||
NUMERO 184 15
|
||||
NUMERO 184 12
|
||||
BEGIN
|
||||
KEY "VAL1"
|
||||
PROMPT 12 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE _NUMEXPR,#144/#141
|
||||
GROUP 1 FG_COL3
|
||||
END
|
||||
NUMERO 145 12
|
||||
NUMERO 145 15
|
||||
BEGIN
|
||||
KEY "VAL4"
|
||||
PROMPT 13 1 ""
|
||||
@ -873,7 +879,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END // tot magazz
|
||||
|
||||
END // GGIAC4
|
||||
SECTION TOT_GLIVGIAC4 1 1 1 FOOTER
|
||||
SECTION TOT_GLIVGIAC4 1 1 1 GROUP
|
||||
STRINGA 250 30
|
||||
BEGIN
|
||||
PROMPT 3 1 ""
|
||||
@ -996,7 +1002,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END // tot ggiac4
|
||||
|
||||
END // GGIAC3
|
||||
SECTION TOT_GLIVGIAC3 1 1 1 FOOTER
|
||||
SECTION TOT_GLIVGIAC3 1 1 1 GROUP
|
||||
STRINGA 350 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
@ -1120,7 +1126,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END // tot ggiac3
|
||||
|
||||
END // GGIAC2
|
||||
SECTION TOT_GLIVGIAC2 1 1 1 FOOTER
|
||||
SECTION TOT_GLIVGIAC2 1 1 1 GROUP
|
||||
STRINGA 450 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
@ -1243,7 +1249,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END
|
||||
END // tot ggiac2
|
||||
END // GGIAC1
|
||||
SECTION TOT_GLIVGIAC1 1 1 1 FOOTER
|
||||
SECTION TOT_GLIVGIAC1 1 1 1 GROUP
|
||||
STRINGA 550 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
|
||||
120
mg/mg4200aa.frm
120
mg/mg4200aa.frm
@ -21,7 +21,7 @@ GENERAL
|
||||
BEGIN
|
||||
OFFSET 0 1
|
||||
// Let the user be free to choose the font&size:
|
||||
FONT "Courier New"
|
||||
// FONT "Courier New"
|
||||
// SIZE 10
|
||||
END
|
||||
|
||||
@ -254,7 +254,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODCATMER
|
||||
END
|
||||
STRINGA 12 30 2
|
||||
STRINGA 12 70
|
||||
BEGIN
|
||||
KEY "CODICE CATMER"
|
||||
PROMPT 3 1 ""
|
||||
@ -286,7 +286,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,1|COPY,1451
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -309,7 +309,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,2|COPY,1351
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -332,7 +332,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,3|COPY,1251
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -355,7 +355,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,4|COPY,1151
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -378,7 +378,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,5|COPY,1051
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -401,7 +401,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,6|COPY,951
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -424,7 +424,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,7|COPY,851
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -448,7 +448,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,8|COPY,751
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 70
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -472,7 +472,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
FIELD CODART
|
||||
MESSAGE COPY,651
|
||||
END
|
||||
STRINGA 21 30 2
|
||||
STRINGA 21 70
|
||||
BEGIN
|
||||
KEY "DESCR.articolo"
|
||||
PROMPT 3 1 ""
|
||||
@ -604,14 +604,14 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END
|
||||
END
|
||||
SECTION H_MAGAZZINO_DEP 1 1 1 STR_EXPR 500@->B0=="X" // DIVISIONE IN DEPOSITI
|
||||
STRINGA 60 40 1
|
||||
STRINGA 60 20 1
|
||||
BEGIN
|
||||
KEY "codice magazzino"
|
||||
FIELD 500@->CODTAB
|
||||
PROMPT 2 1 " Magazzino "
|
||||
MESSAGE SHOW,TOT_DEPOSITO
|
||||
END
|
||||
STRINGA 60 40 1
|
||||
STRINGA 60 70 1
|
||||
BEGIN
|
||||
KEY "magazzino"
|
||||
FIELD 500@->s0
|
||||
@ -650,99 +650,105 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PICTURE "########,@##"
|
||||
MESSAGE _USER,GIAC|ADD,141
|
||||
END
|
||||
NUMERO 42 15
|
||||
BEGIN
|
||||
KEY "VAL1"
|
||||
PROMPT 7 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
MESSAGE _USER,VAL1|ADD,142
|
||||
END
|
||||
|
||||
NUMERO 82 12
|
||||
BEGIN
|
||||
KEY "VAL1M"
|
||||
PROMPT 8 1 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE _NUMEXPR,#42/#41
|
||||
MESSAGE _USER,VAL1
|
||||
GROUP FG_COL1
|
||||
END
|
||||
NUMERO 42 15
|
||||
BEGIN
|
||||
KEY "VAL1"
|
||||
PROMPT 7 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
MESSAGE _NUMEXPR,#82*#41|ADD,142
|
||||
END
|
||||
|
||||
NUMERO 83 12
|
||||
BEGIN
|
||||
KEY "VAL2M"
|
||||
PROMPT 10 1 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE _USER,VAL2
|
||||
GROUP FG_COL2
|
||||
END
|
||||
NUMERO 43 15
|
||||
BEGIN
|
||||
KEY "VAL2"
|
||||
PROMPT 9 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
MESSAGE _USER,VAL2|ADD,143
|
||||
MESSAGE _NUMEXPR,#83*#41|ADD,143
|
||||
GROUP FG_COL2
|
||||
END
|
||||
NUMERO 83 12
|
||||
|
||||
NUMERO 84 12
|
||||
BEGIN
|
||||
KEY "VAL2M"
|
||||
PROMPT 10 1 ""
|
||||
KEY "VAL3M"
|
||||
PROMPT 12 1 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE _NUMEXPR,#43/#41
|
||||
GROUP FG_COL2
|
||||
MESSAGE _USER,VAL3
|
||||
GROUP FG_COL3
|
||||
END
|
||||
NUMERO 44 15
|
||||
BEGIN
|
||||
KEY "VAL3"
|
||||
PROMPT 11 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
MESSAGE _USER,VAL3|ADD,144
|
||||
MESSAGE _NUMEXPR,#84*#41|ADD,144
|
||||
GROUP FG_COL3
|
||||
END
|
||||
NUMERO 84 12
|
||||
|
||||
NUMERO 85 12
|
||||
BEGIN
|
||||
KEY "VAL3M"
|
||||
PROMPT 12 1 ""
|
||||
KEY "VAL4M"
|
||||
PROMPT 14 1 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE _NUMEXPR,#44/#41
|
||||
GROUP FG_COL3
|
||||
MESSAGE _USER,VAL4
|
||||
GROUP FG_COL4
|
||||
END
|
||||
NUMERO 45 15
|
||||
BEGIN
|
||||
KEY "VAL4"
|
||||
PROMPT 13 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
MESSAGE _USER,VAL4|ADD,145
|
||||
MESSAGE _NUMEXPR,#85*#41|ADD,145
|
||||
GROUP FG_COL4
|
||||
END
|
||||
NUMERO 85 12
|
||||
|
||||
NUMERO 86 12
|
||||
BEGIN
|
||||
KEY "VAL4M"
|
||||
PROMPT 14 1 ""
|
||||
KEY "VAL5M"
|
||||
PROMPT 16 1 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE _NUMEXPR,#45/#41
|
||||
GROUP FG_COL4
|
||||
MESSAGE _USER,VAL5
|
||||
GROUP FG_COL5
|
||||
END
|
||||
NUMERO 46 15
|
||||
BEGIN
|
||||
KEY "VAL5"
|
||||
PROMPT 15 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
MESSAGE _USER,VAL5|ADD,146
|
||||
MESSAGE _NUMEXPR,#86*#41|ADD,146
|
||||
GROUP FG_COL5
|
||||
END
|
||||
NUMERO 86 12
|
||||
|
||||
NUMERO 87 12
|
||||
BEGIN
|
||||
KEY "VAL5M"
|
||||
PROMPT 16 1 ""
|
||||
KEY "VAL6M"
|
||||
PROMPT 18 1 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE _NUMEXPR,#46/#41
|
||||
GROUP FG_COL5
|
||||
MESSAGE _USER,VAL6
|
||||
GROUP FG_COL6
|
||||
END
|
||||
NUMERO 47 15
|
||||
BEGIN
|
||||
KEY "VAL6"
|
||||
PROMPT 17 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
MESSAGE _USER,VAL6|ADD,147
|
||||
GROUP FG_COL6
|
||||
END
|
||||
NUMERO 87 12
|
||||
BEGIN
|
||||
KEY "VAL6M"
|
||||
PROMPT 18 1 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE _NUMEXPR,#47/#41
|
||||
MESSAGE _NUMEXPR,#87*#41|ADD,147
|
||||
GROUP FG_COL6
|
||||
END
|
||||
END // depositi dello stesso magazzino
|
||||
@ -814,15 +820,15 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
MESSAGE ADD,244
|
||||
GROUP 1 FG_COL3
|
||||
END
|
||||
NUMERO 184 15
|
||||
NUMERO 184 12
|
||||
BEGIN
|
||||
KEY "VAL1"
|
||||
PROMPT 12 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE _NUMEXPR,#144/#141
|
||||
GROUP 1 FG_COL3
|
||||
END
|
||||
NUMERO 145 12
|
||||
NUMERO 145 15
|
||||
BEGIN
|
||||
KEY "VAL4"
|
||||
PROMPT 13 1 ""
|
||||
|
||||
155
mg/mg4200b.frm
155
mg/mg4200b.frm
@ -1,5 +1,5 @@
|
||||
#include "mg4frm.h"
|
||||
USE LF_MAG KEY 2
|
||||
USE LF_MAG KEY 2 BY ANNOES CODMAG[1,3] CODART LIVELLO CODMAG[4,5]
|
||||
JOIN LF_ANAMAG TO LF_MAG INTO CODART==CODART
|
||||
JOIN MAG TO LF_MAG ALIAS 500 INTO CODTAB==CODMAG[1,3]
|
||||
JOIN MAG TO LF_MAG ALIAS 501 INTO CODTAB==CODMAG
|
||||
@ -17,7 +17,7 @@ END
|
||||
GENERAL
|
||||
BEGIN
|
||||
OFFSET 0 1
|
||||
FONT "Courier New"
|
||||
// FONT "Courier New"
|
||||
// Let the user be free to choose the font size:
|
||||
// SIZE 10
|
||||
END
|
||||
@ -255,7 +255,7 @@ SECTION BODY ODD 1 COLUMNWISE
|
||||
STRINGA 60 20 1
|
||||
BEGIN
|
||||
KEY "codice magazzino"
|
||||
PROMPT 2 1 "Magazzino "
|
||||
PROMPT 2 1 "Magazzino "
|
||||
FIELD 500@->CODTAB
|
||||
MESSAGE COPY,151
|
||||
END
|
||||
@ -268,6 +268,13 @@ SECTION BODY ODD 1 COLUMNWISE
|
||||
END
|
||||
END
|
||||
SECTION GRUPPI_MAGAZZINO 1 0 0 FILE LF_MAG GROUP CODMAG[1,3]
|
||||
STRINGA 60 40 1
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
KEY ""
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE RESET,15@
|
||||
END
|
||||
LIST FF_DIVDEPOSITI
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
@ -282,8 +289,8 @@ SECTION BODY ODD 1 COLUMNWISE
|
||||
SECTION H_DEPOSITO 1 1 1 STR_EXPR #FF_DIVDEPOSITI=="X"
|
||||
STRINGA 60 20 1
|
||||
BEGIN
|
||||
KEY "codice magazzino"
|
||||
PROMPT 2 1 "Deposito "
|
||||
KEY "codice deposito"
|
||||
PROMPT 2 1 "Deposito "
|
||||
FIELD 501@->CODTAB[4,5]
|
||||
MESSAGE COPY,51
|
||||
END
|
||||
@ -611,100 +618,106 @@ SECTION BODY ODD 1 COLUMNWISE
|
||||
MESSAGE _USER,GIAC|ADD,341
|
||||
GROUP 2
|
||||
END
|
||||
NUMERO 242 15
|
||||
BEGIN
|
||||
KEY "VAL1"
|
||||
PROMPT 7 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
MESSAGE _USER,VAL1|ADD,342
|
||||
GROUP 2
|
||||
END
|
||||
|
||||
NUMERO 282 12
|
||||
BEGIN
|
||||
KEY "VAL_MEDIO"
|
||||
PROMPT 8 1 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE _NUMEXPR,#242/#241
|
||||
MESSAGE _USER,VAL1
|
||||
GROUP 2 FG_COL1
|
||||
END
|
||||
NUMERO 242 15
|
||||
BEGIN
|
||||
KEY "VAL1"
|
||||
PROMPT 7 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
MESSAGE _NUMEXPR,#282*#241|ADD,342
|
||||
GROUP 2
|
||||
END
|
||||
|
||||
NUMERO 283 12
|
||||
BEGIN
|
||||
KEY "VAL_MEDIO"
|
||||
PROMPT 10 1 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE _USER,VAL2
|
||||
GROUP 2 FG_COL2
|
||||
END
|
||||
NUMERO 243 15
|
||||
BEGIN
|
||||
KEY "VAL2"
|
||||
PROMPT 9 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
MESSAGE _USER,VAL2|ADD,343
|
||||
MESSAGE _NUMEXPR,#283*#241|ADD,343
|
||||
GROUP 2 FG_COL2
|
||||
END
|
||||
NUMERO 283 12
|
||||
|
||||
NUMERO 284 12
|
||||
BEGIN
|
||||
KEY "VAL_MEDIO"
|
||||
PROMPT 10 1 ""
|
||||
PROMPT 12 1 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE _NUMEXPR,#243/#241
|
||||
GROUP 2 FG_COL2
|
||||
MESSAGE _USER,VAL3
|
||||
GROUP 2 FG_COL3
|
||||
END
|
||||
NUMERO 244 15
|
||||
BEGIN
|
||||
KEY "VAL3"
|
||||
PROMPT 11 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
MESSAGE _USER,VAL3|ADD,344
|
||||
MESSAGE _NUMEXPR,#284*#241|ADD,344
|
||||
GROUP 2 FG_COL3
|
||||
END
|
||||
NUMERO 284 12
|
||||
|
||||
NUMERO 285 12
|
||||
BEGIN
|
||||
KEY "VAL_MEDIO"
|
||||
PROMPT 12 1 ""
|
||||
PROMPT 14 1 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE _NUMEXPR,#244/#241
|
||||
GROUP 2 FG_COL3
|
||||
MESSAGE _USER,VAL4
|
||||
GROUP 2 FG_COL4
|
||||
END
|
||||
NUMERO 245 15
|
||||
BEGIN
|
||||
KEY "COL4"
|
||||
PROMPT 13 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
MESSAGE _USER,VAL4|ADD,345
|
||||
MESSAGE _NUMEXPR,#285*#241|ADD,345
|
||||
GROUP 2 FG_COL4
|
||||
END
|
||||
NUMERO 285 12
|
||||
|
||||
NUMERO 286 12
|
||||
BEGIN
|
||||
KEY "VAL_MEDIO"
|
||||
PROMPT 14 1 ""
|
||||
PROMPT 16 1 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE _NUMEXPR,#245/#241
|
||||
GROUP 2 FG_COL4
|
||||
MESSAGE _USER,VAL5
|
||||
GROUP 2 FG_COL5
|
||||
END
|
||||
NUMERO 246 15
|
||||
BEGIN
|
||||
KEY "COL5"
|
||||
PROMPT 15 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
MESSAGE _USER,VAL5|ADD,346
|
||||
MESSAGE _NUMEXPR,#286*#241|ADD,346
|
||||
GROUP 2 FG_COL5
|
||||
END
|
||||
NUMERO 286 12
|
||||
|
||||
NUMERO 287 12
|
||||
BEGIN
|
||||
KEY "VAL_MEDIO"
|
||||
PROMPT 16 1 ""
|
||||
PROMPT 18 1 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE _NUMEXPR,#246/#241
|
||||
GROUP 2 FG_COL5
|
||||
MESSAGE _USER,VAL6
|
||||
GROUP 2 FG_COL6
|
||||
END
|
||||
NUMERO 247 15
|
||||
BEGIN
|
||||
KEY "COL6"
|
||||
PROMPT 17 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
MESSAGE _USER,VAL6|ADD,347
|
||||
GROUP 2 FG_COL6
|
||||
END
|
||||
NUMERO 287 12
|
||||
BEGIN
|
||||
KEY "VAL_MEDIO"
|
||||
PROMPT 18 1 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE _NUMEXPR,#246/#241
|
||||
MESSAGE _NUMEXPR,#287*#241|ADD,347
|
||||
GROUP 2 FG_COL6
|
||||
END
|
||||
END // tot ggiac4
|
||||
@ -993,7 +1006,7 @@ SECTION BODY ODD 1 COLUMNWISE
|
||||
NUMERO 582 12
|
||||
BEGIN
|
||||
KEY "VAL_MEDIO"
|
||||
PROMPT 18 1 ""
|
||||
PROMPT 8 1 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE _NUMEXPR,#542/#541
|
||||
GROUP 5 FG_COL1
|
||||
@ -1001,7 +1014,7 @@ SECTION BODY ODD 1 COLUMNWISE
|
||||
NUMERO 543 15
|
||||
BEGIN
|
||||
KEY "COL2"
|
||||
PROMPT 8 1 ""
|
||||
PROMPT 9 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
MESSAGE ADD,643
|
||||
GROUP 5 FG_COL2
|
||||
@ -1009,7 +1022,7 @@ SECTION BODY ODD 1 COLUMNWISE
|
||||
NUMERO 583 12
|
||||
BEGIN
|
||||
KEY "VAL_MEDIO"
|
||||
PROMPT 18 1 ""
|
||||
PROMPT 10 1 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE _NUMEXPR,#543/#541
|
||||
GROUP 5 FG_COL2
|
||||
@ -1017,7 +1030,7 @@ SECTION BODY ODD 1 COLUMNWISE
|
||||
NUMERO 544 15
|
||||
BEGIN
|
||||
KEY "COL3"
|
||||
PROMPT 9 1 ""
|
||||
PROMPT 11 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
MESSAGE ADD,644
|
||||
GROUP 5 FG_COL3
|
||||
@ -1025,7 +1038,7 @@ SECTION BODY ODD 1 COLUMNWISE
|
||||
NUMERO 584 12
|
||||
BEGIN
|
||||
KEY "VAL_MEDIO"
|
||||
PROMPT 18 1 ""
|
||||
PROMPT 12 1 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE _NUMEXPR,#544/#541
|
||||
GROUP 5 FG_COL3
|
||||
@ -1033,7 +1046,7 @@ SECTION BODY ODD 1 COLUMNWISE
|
||||
NUMERO 545 15
|
||||
BEGIN
|
||||
KEY "COL4"
|
||||
PROMPT 10 1 ""
|
||||
PROMPT 13 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
MESSAGE ADD,645
|
||||
GROUP 5 FG_COL4
|
||||
@ -1041,7 +1054,7 @@ SECTION BODY ODD 1 COLUMNWISE
|
||||
NUMERO 585 12
|
||||
BEGIN
|
||||
KEY "VAL_MEDIO"
|
||||
PROMPT 18 1 ""
|
||||
PROMPT 14 1 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE _NUMEXPR,#545/#541
|
||||
GROUP 5 FG_COL4
|
||||
@ -1049,7 +1062,7 @@ SECTION BODY ODD 1 COLUMNWISE
|
||||
NUMERO 546 15
|
||||
BEGIN
|
||||
KEY "COL5"
|
||||
PROMPT 11 1 ""
|
||||
PROMPT 15 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
MESSAGE ADD,646
|
||||
GROUP 5 FG_COL5
|
||||
@ -1057,7 +1070,7 @@ SECTION BODY ODD 1 COLUMNWISE
|
||||
NUMERO 586 12
|
||||
BEGIN
|
||||
KEY "VAL_MEDIO"
|
||||
PROMPT 18 1 ""
|
||||
PROMPT 16 1 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE _NUMEXPR,#546/#541
|
||||
GROUP 5 FG_COL5
|
||||
@ -1065,7 +1078,7 @@ SECTION BODY ODD 1 COLUMNWISE
|
||||
NUMERO 547 15
|
||||
BEGIN
|
||||
KEY "giac"
|
||||
PROMPT 12 1 ""
|
||||
PROMPT 17 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
MESSAGE ADD,647
|
||||
GROUP 5 FG_COL6
|
||||
@ -1861,7 +1874,7 @@ SECTION BODY ODD 1 COLUMNWISE
|
||||
NUMERO 1282 12
|
||||
BEGIN
|
||||
KEY "VALMEDIO"
|
||||
PROMPT 18 1 ""
|
||||
PROMPT 8 1 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE _NUMEXPR,#1242/#1241
|
||||
GROUP 12 FG_COL1
|
||||
@ -1869,7 +1882,7 @@ SECTION BODY ODD 1 COLUMNWISE
|
||||
NUMERO 1243 15
|
||||
BEGIN
|
||||
KEY "COL2"
|
||||
PROMPT 8 1 ""
|
||||
PROMPT 9 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
MESSAGE ADD,1343
|
||||
GROUP 12 FG_COL2
|
||||
@ -1877,7 +1890,7 @@ SECTION BODY ODD 1 COLUMNWISE
|
||||
NUMERO 1283 12
|
||||
BEGIN
|
||||
KEY "VALMEDIO"
|
||||
PROMPT 18 1 ""
|
||||
PROMPT 10 1 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE _NUMEXPR,#1243/#1241
|
||||
GROUP 12 FG_COL2
|
||||
@ -1885,7 +1898,7 @@ SECTION BODY ODD 1 COLUMNWISE
|
||||
NUMERO 1244 15
|
||||
BEGIN
|
||||
KEY "COL3"
|
||||
PROMPT 9 1 ""
|
||||
PROMPT 11 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
MESSAGE ADD,1344
|
||||
GROUP 12 FG_COL3
|
||||
@ -1893,7 +1906,7 @@ SECTION BODY ODD 1 COLUMNWISE
|
||||
NUMERO 1284 12
|
||||
BEGIN
|
||||
KEY "VALMEDIO"
|
||||
PROMPT 18 1 ""
|
||||
PROMPT 12 1 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE _NUMEXPR,#1244/#1241
|
||||
GROUP 12 FG_COL3
|
||||
@ -1901,7 +1914,7 @@ SECTION BODY ODD 1 COLUMNWISE
|
||||
NUMERO 1245 15
|
||||
BEGIN
|
||||
KEY "COL4"
|
||||
PROMPT 10 1 ""
|
||||
PROMPT 13 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
MESSAGE ADD,1345
|
||||
GROUP 12 FG_COL4
|
||||
@ -1909,7 +1922,7 @@ SECTION BODY ODD 1 COLUMNWISE
|
||||
NUMERO 1285 12
|
||||
BEGIN
|
||||
KEY "VALMEDIO"
|
||||
PROMPT 18 1 ""
|
||||
PROMPT 14 1 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE _NUMEXPR,#1245/#1241
|
||||
GROUP 12 FG_COL4
|
||||
@ -1917,7 +1930,7 @@ SECTION BODY ODD 1 COLUMNWISE
|
||||
NUMERO 1246 15
|
||||
BEGIN
|
||||
KEY "COL5"
|
||||
PROMPT 11 1 ""
|
||||
PROMPT 15 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
MESSAGE ADD,1346
|
||||
GROUP 12 FG_COL5
|
||||
@ -1925,7 +1938,7 @@ SECTION BODY ODD 1 COLUMNWISE
|
||||
NUMERO 1286 12
|
||||
BEGIN
|
||||
KEY "VALMEDIO"
|
||||
PROMPT 18 1 ""
|
||||
PROMPT 16 1 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE _NUMEXPR,#1246/#1241
|
||||
GROUP 12 FG_COL5
|
||||
@ -1933,7 +1946,7 @@ SECTION BODY ODD 1 COLUMNWISE
|
||||
NUMERO 1247 15
|
||||
BEGIN
|
||||
KEY "giac"
|
||||
PROMPT 12 1 ""
|
||||
PROMPT 17 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
MESSAGE ADD,1347
|
||||
GROUP 12 FG_COL6
|
||||
@ -2209,7 +2222,7 @@ SECTION BODY ODD 1 COLUMNWISE
|
||||
STRINGA 51 20
|
||||
BEGIN
|
||||
KEY "CODICE"
|
||||
PROMPT 2 1 " Deposito"
|
||||
PROMPT 2 1 "Deposito "
|
||||
END
|
||||
STRINGA 50 30
|
||||
BEGIN
|
||||
@ -2228,6 +2241,7 @@ SECTION BODY ODD 1 COLUMNWISE
|
||||
PROMPT 6 1 ""
|
||||
PICTURE "########,@##"
|
||||
MESSAGE _USER,VALIDATE_UM,53|ADD,141
|
||||
GROUP 15
|
||||
END
|
||||
NUMERO 42 15
|
||||
BEGIN
|
||||
@ -2327,6 +2341,7 @@ SECTION BODY ODD 1 COLUMNWISE
|
||||
END
|
||||
END // tot depositi
|
||||
END // MAGAZZ
|
||||
|
||||
SECTION TOT_MAGAZZINO 1 1 1 GROUP
|
||||
STRINGA 150 30
|
||||
BEGIN
|
||||
@ -2357,7 +2372,6 @@ SECTION BODY ODD 1 COLUMNWISE
|
||||
KEY "VAL1"
|
||||
PROMPT 7 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
MESSAGE ADD,242
|
||||
GROUP 1
|
||||
END
|
||||
NUMERO 182 12
|
||||
@ -2373,7 +2387,6 @@ SECTION BODY ODD 1 COLUMNWISE
|
||||
KEY "VAL2"
|
||||
PROMPT 9 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
MESSAGE ADD,243
|
||||
GROUP 1 FG_COL2
|
||||
END
|
||||
NUMERO 183 12
|
||||
@ -2389,23 +2402,21 @@ SECTION BODY ODD 1 COLUMNWISE
|
||||
KEY "VAL3"
|
||||
PROMPT 11 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
MESSAGE ADD,244
|
||||
GROUP 1 FG_COL3
|
||||
END
|
||||
NUMERO 184 15
|
||||
NUMERO 184 12
|
||||
BEGIN
|
||||
KEY "VAL1"
|
||||
PROMPT 12 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE _NUMEXPR,#144/#141
|
||||
GROUP 1 FG_COL3
|
||||
END
|
||||
NUMERO 145 12
|
||||
NUMERO 145 15
|
||||
BEGIN
|
||||
KEY "VAL4"
|
||||
PROMPT 13 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
MESSAGE ADD,245
|
||||
GROUP 1 FG_COL4
|
||||
END
|
||||
NUMERO 185 12
|
||||
@ -2421,7 +2432,6 @@ SECTION BODY ODD 1 COLUMNWISE
|
||||
KEY "VAL5"
|
||||
PROMPT 15 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
MESSAGE ADD,246
|
||||
GROUP 1 FG_COL5
|
||||
END
|
||||
NUMERO 186 12
|
||||
@ -2437,7 +2447,6 @@ SECTION BODY ODD 1 COLUMNWISE
|
||||
KEY "VAL6"
|
||||
PROMPT 17 1 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
MESSAGE ADD,247
|
||||
GROUP 1 FG_COL6
|
||||
END
|
||||
NUMERO 187 12
|
||||
|
||||
@ -21,8 +21,8 @@ END
|
||||
GENERAL
|
||||
BEGIN
|
||||
OFFSET 0 1
|
||||
FONT "Courier New"
|
||||
SIZE 10
|
||||
//FONT "Courier New"
|
||||
//SIZE 10
|
||||
END
|
||||
|
||||
SECTION HEADER ODD 5
|
||||
@ -62,11 +62,11 @@ SECTION HEADER ODD 5
|
||||
END
|
||||
NUMBER 8 12
|
||||
BEGIN
|
||||
PROMPT 57 4 "Prezzo"
|
||||
PROMPT 63 4 "Prezzo"
|
||||
END
|
||||
NUMBER 9 12
|
||||
BEGIN
|
||||
PROMPT 69 4 "Valore"
|
||||
PROMPT 76 4 "Valore"
|
||||
END
|
||||
STRINGA 5 80
|
||||
BEGIN
|
||||
@ -82,7 +82,7 @@ SECTION BODY ODD 2
|
||||
MESSAGE RESET,3@
|
||||
END
|
||||
|
||||
STRINGA 101 70
|
||||
STRINGA 101 150
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
PROMPT 1 1 ""
|
||||
@ -154,7 +154,7 @@ SECTION BODY ODD 2
|
||||
|
||||
SECTION TOTALI_RAGG_FISC 1 1 1 NUMEXPR #FF_QTARAGGFIS!=0
|
||||
SECTION HEADER_RAGG_CRONO 1 2 1 NUMEXPR #FF_NUMLINEE=0
|
||||
STRINGA FF_INFORAGGCRO 48
|
||||
STRINGA FF_INFORAGGCRO 150
|
||||
BEGIN
|
||||
PROMPT 1 1 ""
|
||||
MESSAGE _USER,INCNUMREGST
|
||||
@ -165,7 +165,7 @@ SECTION BODY ODD 2
|
||||
PROMPT 10 1 "Causale: "
|
||||
FIELD LF_MOVMAG->CODCAUS // == FIELD ALIAS_CAUSALI@->CODTAB
|
||||
END
|
||||
STRINGA 101 30
|
||||
STRINGA 101 50
|
||||
BEGIN
|
||||
PROMPT 31 1 ""
|
||||
FIELD ALIAS_CAUSALI@->S0
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
[mg]
|
||||
Data = 08-05-1998
|
||||
Data = 08-06-1998
|
||||
Descrizione = Magazzino
|
||||
Dischi = 1
|
||||
Moduli = ba,ve9,cg9
|
||||
Patch = 26
|
||||
Patch = 53
|
||||
PostProcess =
|
||||
PreProcess =
|
||||
Prezzo(1) = 900,300
|
||||
@ -17,7 +17,7 @@ Versione = 19980103
|
||||
[mg0]
|
||||
File(0) = mg00.bmp
|
||||
File(1) = mgarea.men
|
||||
Patch = 26
|
||||
Patch = 53
|
||||
Versione = 19980103
|
||||
|
||||
[mg1]
|
||||
@ -26,48 +26,50 @@ File(3) = batbfcg.msk
|
||||
File(4) = batbgcg.msk
|
||||
File(5) = batbubi.msk
|
||||
File(6) = mg01.bmp
|
||||
File(7) = mg1.exe
|
||||
File(8) = mg1100.msk
|
||||
File(7) = mg1.exe|X
|
||||
File(8) = mg1100.msk|X
|
||||
File(9) = mg1200.msk
|
||||
File(10) = mg1400.msk
|
||||
File(11) = mg3.exe
|
||||
File(12) = mg3100.msk
|
||||
File(13) = mg3100a.frm
|
||||
File(14) = mg3100b.frm
|
||||
File(15) = mg3200.msk
|
||||
File(16) = mg3200a.frm
|
||||
File(17) = mg3200b.frm
|
||||
File(18) = mg3300.msk
|
||||
File(19) = mg3300a.frm
|
||||
File(20) = mg3300b.frm
|
||||
File(21) = mg3400.msk
|
||||
File(22) = mg3400a.frm
|
||||
File(23) = mg3400b.frm
|
||||
File(24) = mg3500.frm
|
||||
File(25) = mg3500.msk
|
||||
File(26) = mg4.exe
|
||||
File(27) = mg4100.frm
|
||||
File(28) = mg4100.msk
|
||||
File(29) = mg4200.msk
|
||||
File(30) = mg4200a.frm
|
||||
File(31) = mg4200b.frm
|
||||
File(32) = mg4300.frm
|
||||
File(33) = mg4300.msk
|
||||
File(34) = mgprassi.men
|
||||
File(35) = tab_fcg.frm
|
||||
Patch = 26
|
||||
File(11) = mg3.exe|X
|
||||
File(12) = mg3100.msk|X
|
||||
File(13) = mg3100a.frm|X
|
||||
File(14) = mg3100aa.frm|X
|
||||
File(15) = mg3100b.frm|X
|
||||
File(16) = mg3200.msk|X
|
||||
File(17) = mg3200a.frm|X
|
||||
File(18) = mg3200b.frm|X
|
||||
File(19) = mg3300.msk|X
|
||||
File(20) = mg3300a.frm|X
|
||||
File(21) = mg3300b.frm|X
|
||||
File(22) = mg3400.msk
|
||||
File(23) = mg3400a.frm
|
||||
File(24) = mg3400b.frm
|
||||
File(25) = mg3500.frm
|
||||
File(26) = mg3500.msk
|
||||
File(27) = mg4.exe|X
|
||||
File(28) = mg4100.frm|X
|
||||
File(29) = mg4100.msk
|
||||
File(30) = mg4200.msk|X
|
||||
File(31) = mg4200a.frm|X
|
||||
File(32) = mg4200aa.frm|X
|
||||
File(33) = mg4200b.frm|X
|
||||
File(34) = mg4300.frm
|
||||
File(35) = mg4300.msk
|
||||
File(36) = mgprassi.men
|
||||
File(37) = tab_fcg.frm
|
||||
Patch = 53
|
||||
Versione = 19980103
|
||||
|
||||
[mg9]
|
||||
File(36) = mgprassi.hlp|X
|
||||
File(37) = recdesc\f109.dir
|
||||
File(38) = recdesc\f109.trr
|
||||
File(39) = recdesc\f110.dir
|
||||
File(40) = recdesc\f110.trr
|
||||
File(41) = recdesc\f111.dir
|
||||
File(42) = recdesc\f111.trr
|
||||
File(43) = recdesc\f114.dir
|
||||
File(44) = recdesc\f114.trr
|
||||
Patch = 26
|
||||
File(38) = mgprassi.hlp
|
||||
File(39) = recdesc\f109.dir
|
||||
File(40) = recdesc\f109.trr
|
||||
File(41) = recdesc\f110.dir
|
||||
File(42) = recdesc\f110.trr
|
||||
File(43) = recdesc\f111.dir
|
||||
File(44) = recdesc\f111.trr
|
||||
File(45) = recdesc\f114.dir
|
||||
File(46) = recdesc\f114.trr
|
||||
Patch = 53
|
||||
Versione = 19980103
|
||||
|
||||
|
||||
43
mg/mglib.h
43
mg/mglib.h
@ -52,9 +52,9 @@ class TSheet_field;
|
||||
|
||||
|
||||
typedef enum {
|
||||
riga_nongenerata=' ',
|
||||
riga_automatica='A',
|
||||
riga_dadocumento='D'
|
||||
riga_dadocumento='D', // derivata da documento
|
||||
riga_automatica='A', // generata da causale collegata
|
||||
riga_nongenerata=' ' // immissione direttta del mov.
|
||||
} TTipo_rigamovmag;
|
||||
|
||||
char * Nome_valorizz[];
|
||||
@ -64,6 +64,7 @@ typedef enum {
|
||||
valorizz_przlist,
|
||||
valorizz_coststd,
|
||||
valorizz_costmedio,
|
||||
valorizz_costmediopond,
|
||||
valorizz_FIFOa,
|
||||
valorizz_LIFOa,
|
||||
valorizz_FIFO,
|
||||
@ -155,12 +156,15 @@ public:
|
||||
// Si suppone che i saldi siano coerenti con i movimenti (effettuare una rebuild_balances()
|
||||
// di oldes.
|
||||
bool riporta_saldi(const char * oldes, const char* newes, const TTipo_valorizz tipo, const char * catven ,const char * codlist);
|
||||
// La seguente funzione azzera tutti i saldi di mgazzino per l'esercizio cod_es
|
||||
bool azzera_saldi(const char * cod_es);
|
||||
|
||||
real ultimo_costo(const char * annoes) const;
|
||||
real media_costi(const char * annoes) const;
|
||||
real prezzo_listino(const char * annoes, const char * catven ,const char * codlist) const;
|
||||
real costo_standard(const char * annoes) const;
|
||||
real costo_medio(const char * annoes, const char * codmag, const char * livello) const;
|
||||
real costo_mediopond(const char * annoes, const char * codmag, const char * livello) const;
|
||||
real LIFO_annuale(const char * annoes, const char * codmag, const char * livello,
|
||||
bool giacenza_effettiva = TRUE, bool valorizza_componenti = TRUE) const;
|
||||
real FIFO_annuale(const char * annoes, const char * codmag, const char * livello,
|
||||
@ -222,6 +226,8 @@ class TCodice_livelli : public TObject
|
||||
{
|
||||
long _last_firm;
|
||||
|
||||
bool _autoinsert[MANY_MAG_LEV];
|
||||
bool _codiceadata[MANY_MAG_LEV];
|
||||
int _code_length[MANY_MAG_LEV];
|
||||
TString _name[MANY_MAG_LEV];
|
||||
TString _picture[MANY_MAG_LEV];
|
||||
@ -257,8 +263,11 @@ public:
|
||||
const int code_start(int levnum) const ;
|
||||
// Ritorna la lunghezza del codice compatto fino a quel livello
|
||||
const int packed_length(int levnum) const ;
|
||||
// Restituisce se esiste il gruppo dato il codice compatto
|
||||
const int group_search(const char * packed_code, int levnum) const;
|
||||
// Restituisce la descrizione del gruppo dato il codice compatto
|
||||
const TString & group_descr(const char * packed_code, int levnum) const;
|
||||
|
||||
// Setta la colonna del campo livello codice di uno sheet in base alle abilitazioni
|
||||
void set_sheetcolumn(TSheet_field &fld_righe,int field, int lev) const;
|
||||
|
||||
@ -270,6 +279,10 @@ public:
|
||||
const char * code_format(int levnum=-1) const ;
|
||||
// Restituisce se <p codepart> e' riconosciuto come codice articolo (default==ultimo livello)
|
||||
bool fit_to_format(const char *codepart, int levnum=-1) const ;
|
||||
// Ritorna se il livello è abilitato all'autoinserimento
|
||||
const bool autoinsert (int levnum) const ;
|
||||
// Ritorna se il codice del livello rappresenta una data
|
||||
const bool codiceadata(int levnum) const ;
|
||||
|
||||
/* bool has_mandchars(const char * pattern);
|
||||
bool has_opzchars(const char * pattern);
|
||||
@ -366,9 +379,15 @@ public:
|
||||
const TString & raggfisc() {return get("S8");}
|
||||
const TString & caus_collegata() {return get("S9");}
|
||||
int sgn(TTipo_saldomag fieldname) ;
|
||||
bool update_qta() {return !get_bool("B1");}
|
||||
bool update_val() {return !get_bool("B0");}
|
||||
bool update_ultcos() {return get_bool("B2");}
|
||||
bool update_qta() const {return !get_bool("B1");}
|
||||
bool update_val() const {return !get_bool("B0");}
|
||||
bool update_ultcos() const {return get_bool("B2");}
|
||||
bool esplodente() const {return get_bool("B3");}
|
||||
const TString & default_magdep() const {return get("S10");}
|
||||
bool has_default_mag() const {return get("S10")[0]>' ';}
|
||||
bool has_default_dep() const {return get("S10")[3]>' ';}
|
||||
const char *default_mag() const {return get("S10").sub(1,3);}
|
||||
const char *default_dep() const {return get("S10").sub(4,5);}
|
||||
bool is_fiscale();
|
||||
TCausale_magazzino(const char * codice);
|
||||
virtual ~TCausale_magazzino() {}
|
||||
@ -425,6 +444,12 @@ protected:
|
||||
// @member: restituisce il prezzo della riga automatica accoppiata a <par r>
|
||||
virtual const char * prezzo_rauto(int r)
|
||||
{return NULL;}
|
||||
// aggiunge le righe automatiche e da esplosione
|
||||
void add_extrarows() const;
|
||||
// aggiunge le righe automatiche
|
||||
bool add_autorows() const;
|
||||
// aggiunge le righe da esplosione
|
||||
bool add_explrows() const;
|
||||
public:
|
||||
// IO ad alto livello
|
||||
const char *get_next_key() ;
|
||||
@ -444,7 +469,10 @@ public:
|
||||
|
||||
};
|
||||
|
||||
bool rebuild_balances(const TString16 annoes/*, bool reset_giac=FALSE*/);
|
||||
bool rebuild_balances(const TString16 annoes,
|
||||
const TTipo_valorizz tipo=valorizz_costmediopond,
|
||||
const char* catven=NULL,
|
||||
const char* codlis=NULL);
|
||||
|
||||
#define FORM_MAXGIACLEV 4 // numero di livelli giacenza nel form
|
||||
#define FORM_MAXARTLEV 8 // numero di livelli codice nel form
|
||||
@ -593,3 +621,4 @@ public:
|
||||
};
|
||||
|
||||
#endif //__MGLIB_H
|
||||
|
||||
|
||||
@ -127,7 +127,7 @@ bool TStateset::is_empty() const
|
||||
|
||||
bool TStateset::is_member(int e) const
|
||||
{
|
||||
return ((e< MAXSTATES && e>=0) ? (_container[e] != 0) : FALSE );
|
||||
return (e >= 0 && e < MAXSTATES) ? (_container[e] != 0) : FALSE;
|
||||
}
|
||||
|
||||
int TStateset::get_first()
|
||||
@ -622,6 +622,8 @@ void TCodice_livelli::load(bool enabled, const char *tabname,const char *tabgrp)
|
||||
_name[i]="";
|
||||
_code_length[i]=0;
|
||||
_picture[i]="";
|
||||
_autoinsert[i]=FALSE;
|
||||
_codiceadata[i]=FALSE;
|
||||
}
|
||||
if (_lev_enabled)
|
||||
{
|
||||
@ -630,6 +632,8 @@ void TCodice_livelli::load(bool enabled, const char *tabname,const char *tabgrp)
|
||||
{
|
||||
_name[i]=_tabformato.get("S0");
|
||||
_picture[i]=_tabformato.get("S1");
|
||||
_autoinsert[i]=_tabformato.get_bool("B0");
|
||||
_codiceadata[i]=_tabformato.get_bool("B1");
|
||||
_code_length[i]=TMetachar::maxstrlen(_picture[i]);
|
||||
_last_level=i+1;
|
||||
e = _tabformato.next();
|
||||
@ -710,6 +714,22 @@ const TString & TCodice_livelli::name(int levnum) const
|
||||
return(_name[0]); // empty
|
||||
}
|
||||
|
||||
|
||||
const bool TCodice_livelli::autoinsert(int levnum) const
|
||||
{
|
||||
if (levnum<=MANY_MAG_LEV && levnum>=0)
|
||||
return _autoinsert[levnum];
|
||||
else
|
||||
return FALSE;
|
||||
}
|
||||
const bool TCodice_livelli::codiceadata(int levnum) const
|
||||
{
|
||||
if (levnum<=MANY_MAG_LEV && levnum>=0)
|
||||
return _codiceadata[levnum];
|
||||
else
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
const TString & TCodice_livelli::picture(int levnum) const
|
||||
{
|
||||
if (levnum<=MANY_MAG_LEV && levnum>0)
|
||||
@ -754,6 +774,13 @@ const TString & TCodice_livelli::group_descr(const char * packed_code, int levnu
|
||||
return _gruppi->decode(build_tabcode(packed_code,levnum));
|
||||
}
|
||||
|
||||
const int TCodice_livelli::group_search(const char * packed_code, int levnum) const
|
||||
{
|
||||
_gruppi->decode(build_tabcode(packed_code,levnum));
|
||||
return _gruppi->io_result();
|
||||
}
|
||||
|
||||
|
||||
void TCodice_livelli::set_sheetcolumn(TSheet_field &fld_righe,int field, int lev) const
|
||||
{
|
||||
if (enabled(lev))
|
||||
|
||||
781
mg/mglib02.cpp
781
mg/mglib02.cpp
@ -5,9 +5,14 @@
|
||||
|
||||
#include <mask.h>
|
||||
#include <progind.h>
|
||||
#include <utility.h>
|
||||
#include <tabutil.h>
|
||||
|
||||
#include "mglib.h"
|
||||
#include "anamag.h"
|
||||
#include "mag.h"
|
||||
|
||||
#ifndef __CGLIB01_H
|
||||
#include "..\cg\cglib01.h"
|
||||
#include "..\ve\veconf.h"
|
||||
|
||||
@ -16,7 +21,8 @@
|
||||
char * Nome_valorizz[]=
|
||||
{
|
||||
"Ultimo costo", "Media ultimi costi", "Prezzo di listino",
|
||||
"Costo standard", "Costo medio" ,
|
||||
"Costo standard", "Costo medio acquisto" ,
|
||||
"Costo medio ponderato" ,
|
||||
"FIFO annuale", "LIFO annuale",
|
||||
"FIFO", "LIFO",
|
||||
"FIFO Ragionieristico", "LIFO Ragionieristico"
|
||||
@ -369,6 +375,34 @@ TRecord_array & TArticolo_giacenza::storico(const char * annoesrif) const
|
||||
|
||||
HIDDEN int last_esercizio = -1;
|
||||
|
||||
bool TArticolo_giacenza::azzera_saldi(const char * cod_es)
|
||||
{
|
||||
TRecord_array& rec_arr = TArticolo_giacenza::mag(cod_es);
|
||||
|
||||
const int last = rec_arr.last_row();
|
||||
for (int r = last;r > 0 ; r = rec_arr.pred_row(r)) // Scorre le righe
|
||||
{
|
||||
TRectype& mag = rec_arr[r];
|
||||
|
||||
mag.put(MAG_GIAC,0);
|
||||
mag.put(MAG_RIM,0);mag.put(MAG_VALRIM,0);
|
||||
mag.put(MAG_ACQ,0);mag.put(MAG_VALACQ,0);
|
||||
mag.put(MAG_ENT,0);mag.put(MAG_VALENT,0);
|
||||
mag.put(MAG_VEN,0);mag.put(MAG_VALVEN,0);
|
||||
mag.put(MAG_USC,0);mag.put(MAG_VALUSC,0);
|
||||
mag.put(MAG_ORDF,0);mag.put(MAG_VALORDF,0);
|
||||
mag.put(MAG_ORDC,0);mag.put(MAG_VALORDC,0);
|
||||
mag.put(MAG_SCARTI,0);mag.put(MAG_VALSCARTI,0);
|
||||
mag.put(MAG_PRODCOMP,0);
|
||||
mag.put(MAG_PRODFIN,0);
|
||||
mag.put(MAG_INCL,0);
|
||||
mag.put(MAG_ACL,0);
|
||||
mag.put(MAG_NLABEL,0);
|
||||
}
|
||||
return rec_arr.write(TRUE) == NOERR;
|
||||
}
|
||||
|
||||
|
||||
bool TArticolo_giacenza::riporta_saldi(const char * oldes, const char* newes, const TTipo_valorizz tipo, const char* catven, const char* codlis)
|
||||
{
|
||||
TString codes(newes), mag, liv;
|
||||
@ -380,7 +414,7 @@ bool TArticolo_giacenza::riporta_saldi(const char * oldes, const char* newes, co
|
||||
for (int r = last;r > 0 ; r = rec_arr.pred_row(r)) // Scorre le righe
|
||||
{
|
||||
TRectype& rec = rec_arr[r];
|
||||
mag = rec.get(MAG_CODMAG);
|
||||
mag = rec.get(MAG_CODMAG); mag.cut(3);
|
||||
liv = rec.get(MAG_LIVELLO);
|
||||
giac = rec.get_real(MAG_GIAC);
|
||||
inpf = rec.get_real(MAG_PRODFIN);
|
||||
@ -393,6 +427,9 @@ bool TArticolo_giacenza::riporta_saldi(const char * oldes, const char* newes, co
|
||||
case valorizz_costmedio:
|
||||
val = costo_medio(oldes, mag, liv);
|
||||
break;
|
||||
case valorizz_costmediopond:
|
||||
val = costo_mediopond(oldes, mag, liv);
|
||||
break;
|
||||
case valorizz_ultcos:
|
||||
val = ultimo_costo(oldes);
|
||||
break;
|
||||
@ -519,8 +556,12 @@ real TArticolo_giacenza::costo_medio(const char * annoes, const char * codmag, c
|
||||
{
|
||||
real acq;
|
||||
real valacq;
|
||||
|
||||
CHECK(strlen(codmag)<=3, "Non è più possibile avere valorizzazione a livello di deposito");
|
||||
|
||||
TRecord_array & rmag = mag(annoes);
|
||||
for (int i = find_mag(annoes, codmag, livello); i > 0; i = find_mag(annoes, codmag, livello, i))
|
||||
for (int i = find_mag(annoes, codmag, livello); i > 0;
|
||||
i = find_mag(annoes, codmag, livello, i))
|
||||
{
|
||||
const TRectype & rec = rmag.row(i);
|
||||
|
||||
@ -530,10 +571,34 @@ real TArticolo_giacenza::costo_medio(const char * annoes, const char * codmag, c
|
||||
return acq == ZERO ? costo_standard(annoes) : valacq / acq;
|
||||
}
|
||||
|
||||
// costo medio ponderato per periodi pari alla durata dell'esercizio
|
||||
real TArticolo_giacenza::costo_mediopond(const char * annoes, const char * codmag, const char * livello) const
|
||||
{
|
||||
real acq;
|
||||
real valacq;
|
||||
|
||||
CHECK(strlen(codmag)<=3, "Non è più possibile avere valorizzazione a livello di deposito");
|
||||
|
||||
TRecord_array & rmag = mag(annoes);
|
||||
for (int i = find_mag(annoes, codmag, livello); i > 0; i = find_mag(annoes, codmag, livello, i))
|
||||
{
|
||||
const TRectype & rec = rmag.row(i);
|
||||
|
||||
acq += rec.get_real(MAG_ACQ) ;
|
||||
acq += rec.get_real(MAG_RIM) ;
|
||||
valacq += rec.get_real(MAG_VALACQ);
|
||||
valacq += rec.get_real(MAG_VALRIM);
|
||||
}
|
||||
return acq == ZERO ? costo_standard(annoes) : valacq / acq;
|
||||
}
|
||||
|
||||
|
||||
|
||||
real TArticolo_giacenza::LIFO_annuale(const char * annoes, const char * codmag, const char * livello,
|
||||
bool giacenza_effettiva, bool valorizza_componenti) const
|
||||
bool giac_eff, bool valorizza_componenti) const
|
||||
{
|
||||
CHECK(strlen(codmag)<=3, "Non è più possibile avere valorizzazione a livello di deposito");
|
||||
|
||||
real rim;
|
||||
real valrim;
|
||||
real acq;
|
||||
@ -548,7 +613,7 @@ real TArticolo_giacenza::LIFO_annuale(const char * annoes, const char * codmag,
|
||||
valrim += rec.get_real(MAG_VALRIM);
|
||||
acq += rec.get_real(MAG_ACQ);
|
||||
valacq += rec.get_real(MAG_VALACQ);
|
||||
giacenza += giacenza_corretta(rec,giacenza_effettiva,valorizza_componenti);
|
||||
giacenza += giacenza_corretta(rec,giac_eff,valorizza_componenti);
|
||||
}
|
||||
if (giacenza <= ZERO)
|
||||
return ZERO;
|
||||
@ -558,8 +623,9 @@ real TArticolo_giacenza::LIFO_annuale(const char * annoes, const char * codmag,
|
||||
}
|
||||
|
||||
real TArticolo_giacenza::FIFO_annuale(const char * annoes, const char * codmag, const char * livello,
|
||||
bool giacenza_effettiva, bool valorizza_componenti) const
|
||||
bool giac_eff, bool valorizza_componenti) const
|
||||
{
|
||||
CHECK(strlen(codmag)<=3, "Non è più possibile avere valorizzazione a livello di deposito");
|
||||
real rim;
|
||||
real valrim;
|
||||
real acq;
|
||||
@ -574,14 +640,7 @@ real TArticolo_giacenza::FIFO_annuale(const char * annoes, const char * codmag,
|
||||
valrim += rec.get_real(MAG_VALRIM);
|
||||
acq += rec.get_real(MAG_ACQ);
|
||||
valacq += rec.get_real(MAG_VALACQ);
|
||||
giacenza += rec.get_real(MAG_GIAC);
|
||||
if (giacenza_effettiva)
|
||||
{
|
||||
giacenza += rec.get_real(MAG_INCL);
|
||||
giacenza -= rec.get_real(MAG_ACL);
|
||||
giacenza += valorizza_componenti ? rec.get_real(MAG_PRODCOMP) : rec.get_real(MAG_PRODFIN);
|
||||
|
||||
}
|
||||
giacenza += giacenza_corretta(rec,giac_eff,valorizza_componenti);
|
||||
}
|
||||
if (giacenza <= ZERO)
|
||||
return ZERO;
|
||||
@ -592,8 +651,9 @@ real TArticolo_giacenza::FIFO_annuale(const char * annoes, const char * codmag,
|
||||
}
|
||||
|
||||
real TArticolo_giacenza::LIFO(const char * annoes, const char * codmag, const char * livello,
|
||||
bool giacenza_effettiva, bool valorizza_componenti) const
|
||||
bool giac_eff, bool valorizza_componenti) const
|
||||
{
|
||||
CHECK(strlen(codmag)<=3, "Non è più possibile avere valorizzazione a livello di deposito");
|
||||
real rim;
|
||||
real valrim;
|
||||
real acq;
|
||||
@ -608,14 +668,7 @@ real TArticolo_giacenza::LIFO(const char * annoes, const char * codmag, const ch
|
||||
valrim += rec.get_real(MAG_VALRIM);
|
||||
acq += rec.get_real(MAG_ACQ);
|
||||
valacq += rec.get_real(MAG_VALACQ);
|
||||
giacenza += rec.get_real(MAG_GIAC);
|
||||
if (giacenza_effettiva)
|
||||
{
|
||||
giacenza += rec.get_real(MAG_INCL);
|
||||
giacenza -= rec.get_real(MAG_ACL);
|
||||
giacenza += valorizza_componenti ? rec.get_real(MAG_PRODCOMP) : rec.get_real(MAG_PRODFIN);
|
||||
|
||||
}
|
||||
giacenza += giacenza_corretta(rec,giac_eff,valorizza_componenti);
|
||||
}
|
||||
|
||||
if (giacenza <= ZERO)
|
||||
@ -647,8 +700,9 @@ real TArticolo_giacenza::LIFO(const char * annoes, const char * codmag, const ch
|
||||
}
|
||||
|
||||
real TArticolo_giacenza::FIFO(const char * annoes, const char * codmag, const char * livello,
|
||||
bool giacenza_effettiva, bool valorizza_componenti) const
|
||||
bool giac_eff, bool valorizza_componenti) const
|
||||
{
|
||||
CHECK(strlen(codmag)<=3, "Non è più possibile avere valorizzazione a livello di deposito");
|
||||
real rim;
|
||||
real valrim;
|
||||
real acq;
|
||||
@ -663,14 +717,7 @@ real TArticolo_giacenza::FIFO(const char * annoes, const char * codmag, const ch
|
||||
valrim += rec.get_real(MAG_VALRIM);
|
||||
acq += rec.get_real(MAG_ACQ);
|
||||
valacq += rec.get_real(MAG_VALACQ);
|
||||
giacenza += rec.get_real(MAG_GIAC);
|
||||
if (giacenza_effettiva)
|
||||
{
|
||||
giacenza += rec.get_real(MAG_INCL);
|
||||
giacenza -= rec.get_real(MAG_ACL);
|
||||
giacenza += valorizza_componenti ? rec.get_real(MAG_PRODCOMP) : rec.get_real(MAG_PRODFIN);
|
||||
|
||||
}
|
||||
giacenza += giacenza_corretta(rec,giac_eff,valorizza_componenti);
|
||||
}
|
||||
|
||||
if (giacenza <= ZERO)
|
||||
@ -711,22 +758,25 @@ real TArticolo_giacenza::FIFO(const char * annoes, const char * codmag, const ch
|
||||
}
|
||||
|
||||
real TArticolo_giacenza::FIFO_ragionieristico(const char * annoes, const char * codmag, const char * livello,
|
||||
bool giacenza_effettiva, bool valorizza_componenti) const
|
||||
bool giac_eff, bool valorizza_componenti) const
|
||||
{
|
||||
CHECK(strlen(codmag)<=3, "Non è più possibile avere valorizzazione a livello di deposito");
|
||||
return ZERO; // da implementare
|
||||
}
|
||||
|
||||
real TArticolo_giacenza::LIFO_ragionieristico(const char * annoes, const char * codmag, const char * livello,
|
||||
bool giacenza_effettiva, bool valorizza_componenti) const
|
||||
bool giac_eff, bool valorizza_componenti) const
|
||||
{
|
||||
CHECK(strlen(codmag)<=3, "Non è più possibile avere valorizzazione a livello di deposito");
|
||||
return ZERO; // da implementare
|
||||
}
|
||||
|
||||
real TArticolo_giacenza::giacenza_corretta(const TRectype & rec ,bool giacenza_effettiva,bool valorizza_componenti) const
|
||||
// calcola la giacenza corretta dai campi Conto Lavoro e Produzione
|
||||
real TArticolo_giacenza::giacenza_corretta(const TRectype & rec ,bool giac_eff,bool valorizza_componenti) const
|
||||
{
|
||||
CHECK(rec.num() == LF_MAG, "Il record passato deve essere di LF_MAG");
|
||||
real giacenza(rec.get_real(MAG_GIAC));
|
||||
if (giacenza_effettiva)
|
||||
if (giac_eff)
|
||||
{
|
||||
giacenza += rec.get_real(MAG_INCL);
|
||||
giacenza -= rec.get_real(MAG_ACL);
|
||||
@ -924,662 +974,3 @@ TCondizione_vendita::TCondizione_vendita(TConfig * ditta,
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
// *********************
|
||||
// movimenti di magazzino
|
||||
|
||||
// causali
|
||||
|
||||
int TCausale_magazzino::sgn(TTipo_saldomag tiposaldo)
|
||||
{
|
||||
static TString80 segni;
|
||||
segni=get("S2");
|
||||
switch (tiposaldo)
|
||||
{
|
||||
case s_giac:
|
||||
return atoi(segni.mid(0,2));
|
||||
case s_acq:
|
||||
return atoi(segni.mid(2,2));
|
||||
case s_ent:
|
||||
return atoi(segni.mid(4,2));
|
||||
case s_ven:
|
||||
return atoi(segni.mid(6,2));
|
||||
case s_usc:
|
||||
return atoi(segni.mid(8,2));
|
||||
case s_ordc:
|
||||
return atoi(segni.mid(10,2));
|
||||
case s_ordf:
|
||||
return atoi(segni.mid(12,2));
|
||||
case s_incl:
|
||||
return atoi(segni.mid(14,2));
|
||||
case s_acl:
|
||||
return atoi(segni.mid(16,2));
|
||||
case s_prodc:
|
||||
return atoi(segni.mid(18,2));
|
||||
case s_prodf:
|
||||
return atoi(segni.mid(20,2));
|
||||
case s_rim:
|
||||
return atoi(segni.mid(22,2));
|
||||
case s_scart:
|
||||
return atoi(segni.mid(24,2));
|
||||
case s_label:
|
||||
return atoi(segni.mid(26,2));
|
||||
case s_user1:
|
||||
return atoi(segni.mid(28,2));
|
||||
case s_user2:
|
||||
return atoi(segni.mid(30,2));
|
||||
case s_user3:
|
||||
return atoi(segni.mid(32,2));
|
||||
case s_user4:
|
||||
return atoi(segni.mid(34,2));
|
||||
case s_user5:
|
||||
return atoi(segni.mid(36,2));
|
||||
case s_user6:
|
||||
return atoi(segni.mid(38,2));
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
bool TCausale_magazzino::is_fiscale()
|
||||
{
|
||||
return (tipomov()=='S' || tipomov()=='C' );
|
||||
}
|
||||
|
||||
|
||||
TCausale_magazzino::TCausale_magazzino(const char * codice):
|
||||
TRectype(LF_TABCOM)
|
||||
{
|
||||
TTable f("%CAU");
|
||||
|
||||
settab("CAU");
|
||||
put("CODTAB", codice);
|
||||
if (TRectype::read(f) != NOERR)
|
||||
zero();
|
||||
}
|
||||
|
||||
// movimenti
|
||||
// dati della linea di movimento di magazzino
|
||||
class TLine_movmag : public TObject
|
||||
{
|
||||
TString16 _codcaus;
|
||||
TString16 _um;
|
||||
real _quant;
|
||||
real _prezzo;
|
||||
public:
|
||||
const TString16 &codcaus() const {return _codcaus;}
|
||||
const TString16 &um() const {return _um;}
|
||||
const real &quant() const {return _quant;}
|
||||
const real &prezzo() const {return _prezzo;}
|
||||
void set(const TString16 cau,const TString16 um,const real q, const real p);
|
||||
int operator==(TLine_movmag &);
|
||||
|
||||
virtual TObject* dup() const {return new TLine_movmag(*this);};
|
||||
|
||||
TLine_movmag() {};
|
||||
TLine_movmag(const TLine_movmag &);
|
||||
virtual ~TLine_movmag() {};
|
||||
};
|
||||
|
||||
void TLine_movmag ::set(const TString16 cau,const TString16 um,const real q, const real p)
|
||||
{
|
||||
_codcaus=cau;
|
||||
_um=um;
|
||||
_quant=q;
|
||||
_prezzo=p;
|
||||
}
|
||||
|
||||
TLine_movmag ::TLine_movmag(const TLine_movmag &l)
|
||||
{
|
||||
_codcaus=l._codcaus;
|
||||
_um=l._um;
|
||||
_quant=l._quant;
|
||||
_prezzo=l._prezzo;
|
||||
}
|
||||
|
||||
int TLine_movmag::operator==(TLine_movmag &l)
|
||||
{
|
||||
return (_codcaus==l._codcaus)&&(_um==l._um)&&(_quant==l._quant)&&(_prezzo==l._prezzo);
|
||||
}
|
||||
|
||||
|
||||
// ********************************
|
||||
// TMov_mag
|
||||
|
||||
TRecord_cache TMov_mag::cache_causali("%CAU");
|
||||
|
||||
TMov_mag::TMov_mag() :
|
||||
TMultiple_rectype(LF_MOVMAG),
|
||||
lines_to_add(), lines_to_subtract()
|
||||
{
|
||||
add_file(LF_RMOVMAG,"NRIG");
|
||||
}
|
||||
|
||||
TMov_mag::~TMov_mag()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void TMov_mag::zero(char c)
|
||||
{
|
||||
TMultiple_rectype::zero(c);
|
||||
|
||||
lines_to_add.destroy();
|
||||
lines_to_subtract.destroy();
|
||||
}
|
||||
|
||||
// valuta il valore della chiave per un nuovo record
|
||||
bool TMov_mag::renum()
|
||||
{
|
||||
put("NUMREG",get_next_key());
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// copia la chiave dal file principale a quello delle righe
|
||||
void TMov_mag::set_body_key(TRectype & rowrec)
|
||||
{
|
||||
rowrec.put("NUMREG",get("NUMREG"));
|
||||
}
|
||||
|
||||
|
||||
void TMov_mag::synchronize_bodies()
|
||||
{
|
||||
TMultiple_rectype::synchronize_bodies();
|
||||
// reset delle strutture per il controlli delle variazioni dei saldi
|
||||
if (autoload_enabled())
|
||||
{
|
||||
_annoes=get("ANNOES");
|
||||
lines_to_add.destroy();
|
||||
lines_to_subtract.destroy();
|
||||
const int nrows = rows();
|
||||
for (int i = 1; i<= nrows; i++)
|
||||
line_deleted(line2key(i), line2data(i));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int TMov_mag::remove(TBaseisamfile& f) const
|
||||
{
|
||||
int res;
|
||||
if ((res=TMultiple_rectype::remove(f))==NOERR )
|
||||
// effettua la variazione dei saldi
|
||||
((TMov_mag *)this)->update_balances();
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
void TMov_mag::add_automatiche()
|
||||
{
|
||||
for (int r = rows(); r > 0; r--)
|
||||
{
|
||||
TRecord_array & b = body();
|
||||
TRectype & row = b[r];
|
||||
TString16 codcaus(row.get(RMOVMAG_CODCAUS));
|
||||
if (codcaus.empty())
|
||||
codcaus=get(MOVMAG_CODCAUS);
|
||||
TCausale_magazzino & cau=(TCausale_magazzino & )cache_causali.get(codcaus);
|
||||
codcaus=cau.caus_collegata();
|
||||
if (codcaus.not_empty())
|
||||
{
|
||||
// deve esserci una riga collegata
|
||||
if (!b.exist(r + 1) || b[r + 1].get_char(RMOVMAG_TIPORIGA) != riga_automatica)
|
||||
{
|
||||
// manca, la inserisco
|
||||
TRectype * linea_auto = new TRectype(row);
|
||||
const char * codmag = codmag_rauto(r);
|
||||
if (codmag != NULL)
|
||||
linea_auto->put(RMOVMAG_CODMAG, codmag);
|
||||
const char * prezzo = prezzo_rauto(r);
|
||||
if (prezzo != NULL)
|
||||
linea_auto->put(RMOVMAG_PREZZO, prezzo);
|
||||
linea_auto->put(RMOVMAG_NRIG, r+1);
|
||||
linea_auto->put(RMOVMAG_TIPORIGA, (char) riga_automatica);
|
||||
linea_auto->put(RMOVMAG_CODCAUS, codcaus);
|
||||
b.insert_row(linea_auto);
|
||||
}
|
||||
}
|
||||
} // ciclo righe
|
||||
}
|
||||
|
||||
int TMov_mag::write(TBaseisamfile& f) const
|
||||
{
|
||||
int res;
|
||||
TMov_mag &myself=((TMov_mag &)*this);
|
||||
myself.add_automatiche();
|
||||
|
||||
const int nrows = rows();
|
||||
|
||||
for (int i = 1; i <= nrows; i++)
|
||||
myself.line_inserted(line2key(i), line2data(i));
|
||||
if ((res=TMultiple_rectype::write(f))==NOERR )
|
||||
// effettua la variazione dei saldi
|
||||
myself.update_balances();
|
||||
return res;
|
||||
}
|
||||
|
||||
int TMov_mag::rewrite(TBaseisamfile& f) const
|
||||
{
|
||||
int res;
|
||||
((TMov_mag *)this)->add_automatiche();
|
||||
// memorizza le variazioni
|
||||
|
||||
const int nrows = rows();
|
||||
|
||||
for (int i = 1; i <= nrows; i++)
|
||||
((TMov_mag *)this)->line_inserted(line2key(i), line2data(i));
|
||||
if ((res=TMultiple_rectype::rewrite(f))==NOERR )
|
||||
// effettua la variazione dei saldi
|
||||
((TMov_mag *)this)->update_balances();
|
||||
return res;
|
||||
}
|
||||
|
||||
const char *TMov_mag::get_next_key()
|
||||
{
|
||||
static TString16 nextcod;
|
||||
TLocalisamfile f(LF_MOVMAG);
|
||||
f.last();
|
||||
int a=atoi(f.get(MOVMAG_NUMREG))+1;
|
||||
return nextcod.format("%d",a);
|
||||
}
|
||||
|
||||
//*******
|
||||
// gestione delle variazione dei saldi
|
||||
//
|
||||
//
|
||||
int TMov_mag::force_update_bal()
|
||||
{
|
||||
int res;
|
||||
|
||||
// reset delle strutture per il controlli delle variazioni dei saldi
|
||||
_annoes=get(MOVMAG_ANNOES);
|
||||
lines_to_add.destroy();
|
||||
lines_to_subtract.destroy();
|
||||
|
||||
// memorizza le variazioni
|
||||
const int nrows = rows();
|
||||
|
||||
for (int i= 1; i <= nrows; i++)
|
||||
line_inserted(line2key(i), line2data(i));
|
||||
res=update_balances();
|
||||
return res;
|
||||
}
|
||||
|
||||
// restituisce il valore dei dati
|
||||
TLine_movmag & TMov_mag::line2data(int nrig) const
|
||||
{
|
||||
static TLine_movmag line;
|
||||
TRecord_array & b = body();
|
||||
|
||||
line.set(b.row(nrig).get(RMOVMAG_CODCAUS).blank() ? get(MOVMAG_CODCAUS) : b.row(nrig).get(RMOVMAG_CODCAUS) ,
|
||||
b.row(nrig).get(RMOVMAG_UM),
|
||||
b.row(nrig).get_real(RMOVMAG_QUANT),
|
||||
b.row(nrig).get_real(RMOVMAG_PREZZO));
|
||||
return line;
|
||||
}
|
||||
|
||||
TToken_string & TMov_mag::line2key(int numriga) const
|
||||
{
|
||||
static TToken_string _key;
|
||||
TRecord_array & b = body();
|
||||
TString16 nr;
|
||||
|
||||
nr << numriga;
|
||||
_key.cut(0);
|
||||
_key.add(b.row(numriga).get(RMOVMAG_CODART));
|
||||
_key.add(b.row(numriga).get(RMOVMAG_CODMAG));
|
||||
_key.add(b.row(numriga).get(RMOVMAG_LIVGIAC));
|
||||
_key.add(nr);
|
||||
return _key;
|
||||
}
|
||||
|
||||
TString TMov_mag::key2field(TToken_string &key,const char *fieldname)
|
||||
{
|
||||
if (strcmp(fieldname,"CODART")==0)
|
||||
return key.get(0);
|
||||
if (strcmp(fieldname,"CODMAG")==0)
|
||||
return key.get(1);
|
||||
if (strcmp(fieldname,"LIVGIAC")==0)
|
||||
return key.get(2);
|
||||
CHECKS(FALSE, "Nome di campo non appartenente al file righe mov ", fieldname);
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
int TMov_mag::line_inserted(TToken_string &k,TLine_movmag &r)
|
||||
{
|
||||
if (_annoes != get("ANNOES"))
|
||||
lines_to_add.add(k,r);
|
||||
else
|
||||
{
|
||||
if (lines_to_subtract.is_key(k)&& (TLine_movmag &)lines_to_subtract[k]==r)
|
||||
// modifica annullata
|
||||
lines_to_subtract.remove(k);
|
||||
else
|
||||
// linea modificata
|
||||
lines_to_add.add(k,r);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int TMov_mag::line_deleted(TToken_string &k,TLine_movmag &r)
|
||||
{
|
||||
if (_annoes != get("ANNOES"))
|
||||
lines_to_subtract.add(k,r);
|
||||
else
|
||||
{
|
||||
if (lines_to_add.is_key(k)&& r==(TLine_movmag &)lines_to_add[k] )
|
||||
// modifica annullata
|
||||
lines_to_add.remove(k);
|
||||
else
|
||||
// linea modificata
|
||||
lines_to_subtract.add(k,r);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool TMov_mag::unlock_anamag(const char *codart)
|
||||
{
|
||||
TLocalisamfile anamag(LF_ANAMAG);
|
||||
|
||||
anamag.put("CODART",codart);
|
||||
return (anamag.read(_isequal,_unlock)==NOERR);
|
||||
}
|
||||
|
||||
bool TMov_mag::lock_anamag(const char *codart)
|
||||
{
|
||||
TLocalisamfile anamag(LF_ANAMAG);
|
||||
|
||||
anamag.put("CODART",codart);
|
||||
|
||||
bool insert_new=TRUE;
|
||||
TString mess;
|
||||
|
||||
mess << "Il record di anagrafica dell'articolo ''"<< codart << "'' risulta essere già in uso.\n Interrompo ?";
|
||||
|
||||
TTimed_breakbox bbox((const char *)mess,10);
|
||||
|
||||
do
|
||||
{
|
||||
if (anamag.read(_isequal,_testandlock)==NOERR)
|
||||
return TRUE;
|
||||
} while (bbox.run()!=K_ESC);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
void TMov_mag::giac_putkey(TLocalisamfile & mag,TString16 annoes,TToken_string curr_key)
|
||||
{
|
||||
mag.zero(' ');
|
||||
mag.put("ANNOES",annoes);
|
||||
mag.put("CODMAG",key2field(curr_key,"CODMAG"));
|
||||
mag.put("CODART",key2field(curr_key,"CODART"));
|
||||
mag.put("LIVELLO",key2field(curr_key,"LIVGIAC"));
|
||||
}
|
||||
|
||||
|
||||
// aggiorna tutti i saldi in base alle modifiche fatte.
|
||||
// il lock su anagrafica dovrebbe garantire il lock su tutte le
|
||||
// giacenze dell'articolo
|
||||
int TMov_mag::update_balances()
|
||||
{
|
||||
bool updated_bal=TRUE;
|
||||
TLocalisamfile mag(LF_MAG);
|
||||
|
||||
mag.setkey(2);
|
||||
|
||||
TString_array keys_to_add,keys_to_remove;
|
||||
|
||||
((TMov_mag *)this)->lines_to_add.get_keys(keys_to_add);
|
||||
((TMov_mag *)this)->lines_to_subtract.get_keys(keys_to_remove);
|
||||
|
||||
// aggiunge i saldi nuovi
|
||||
keys_to_add.sort();
|
||||
|
||||
TToken_string * curr_key=(TToken_string *)keys_to_add.first_item();
|
||||
|
||||
while (curr_key)
|
||||
{
|
||||
curr_art.read((const char *)key2field(*curr_key,"CODART"));
|
||||
if (curr_art.lock_and_prompt())
|
||||
{
|
||||
// lock gained
|
||||
TLine_movmag & line_mov=(TLine_movmag &)lines_to_add[*curr_key];
|
||||
TCausale_magazzino & causmag=(TCausale_magazzino &)cache_causali.get(line_mov.codcaus());
|
||||
|
||||
if (causmag.update_ultcos())
|
||||
{
|
||||
curr_art.update_ultcosti(line_mov.prezzo(),get_date("DATACOMP"));
|
||||
curr_art.rewrite();
|
||||
}
|
||||
giac_putkey(mag,get("ANNOES"),*curr_key);
|
||||
if (mag.read()!=NOERR)
|
||||
{
|
||||
// non trovato: aggiungo
|
||||
giac_putkey(mag,get("ANNOES"),*curr_key);
|
||||
mag.put("NRIGA",1+curr_art.mag(get("ANNOES")).rows());
|
||||
mag.write();
|
||||
}
|
||||
// modifica questo record (e lo sblocca)
|
||||
update_balances(mag.curr(), line_mov, +1);
|
||||
/*// ottimizzazione :(cerca di sfruttare la lettura fatta per un eventuale saldo vecchio)
|
||||
// ciò causa la modifica dell'oggetto TMov_mag (il metodo non è più const)
|
||||
if (_annoes == get("ANNOES")
|
||||
&& lines_to_subtract.is_key(*curr_key)) {
|
||||
update_balances(mag.curr(),(TLine_movmag &)lines_to_subtract[*curr_key],-1);
|
||||
((TMov_mag *)this)->lines_to_add.remove(*curr_key);
|
||||
((TMov_mag *)this)->lines_to_subtract.remove(*curr_key);
|
||||
}*/
|
||||
mag.rewrite();
|
||||
// conclude la TRANSAZIONE prima di sbloccare il record dell'articolo
|
||||
TToken_string *rem_key=(TToken_string *)keys_to_remove.first_item();
|
||||
while ( rem_key)
|
||||
{
|
||||
if (key2field(*rem_key,"CODART")==key2field(*curr_key,"CODART")) {
|
||||
giac_putkey(mag,_annoes,*rem_key);
|
||||
if (mag.read()==NOERR)
|
||||
{
|
||||
update_balances(mag.curr(),(TLine_movmag &)lines_to_subtract[*rem_key],-1);
|
||||
mag.rewrite();
|
||||
}
|
||||
keys_to_remove.remove_item();
|
||||
}
|
||||
rem_key=(TToken_string *)keys_to_remove.succ_item();
|
||||
}
|
||||
curr_art.unlock();
|
||||
}
|
||||
else
|
||||
updated_bal=FALSE;
|
||||
curr_key=(TToken_string *)keys_to_add.succ_item();
|
||||
}
|
||||
// togli i saldi vecchi
|
||||
curr_key=(TToken_string *)keys_to_remove.first_item();
|
||||
|
||||
while (curr_key)
|
||||
{
|
||||
curr_art.read((const char *)key2field(*curr_key,"CODART"));
|
||||
if (curr_art.lock_and_prompt())
|
||||
{
|
||||
giac_putkey(mag,_annoes,*curr_key);
|
||||
// modifica questo record (e lo sblocca)
|
||||
if (mag.read()==NOERR)
|
||||
{
|
||||
update_balances(mag.curr(),(TLine_movmag &)lines_to_subtract[*curr_key],-1);
|
||||
mag.rewrite();
|
||||
}
|
||||
curr_art.unlock();
|
||||
}
|
||||
else
|
||||
updated_bal=FALSE;
|
||||
curr_key=(TToken_string *)keys_to_remove.succ_item();
|
||||
}
|
||||
if (!updated_bal)
|
||||
{
|
||||
// saldi non aggiornati
|
||||
warning_box("I saldi di magazzino non sono stati del tutto aggiornati. \nProcedere ad una operazione di ''Ricostruzione saldi''");
|
||||
}
|
||||
return updated_bal;
|
||||
}
|
||||
|
||||
// aggiorna i saldi del record corrente
|
||||
// in base alla causale e alla modifica fatta (con segno + o -)
|
||||
int TMov_mag::update_balances(TRectype & magrec, const TLine_movmag &l,int rett_sign)
|
||||
{
|
||||
TCausale_magazzino & caus=(TCausale_magazzino &)cache_causali.get(l.codcaus());
|
||||
TLocalisamfile umart(LF_UMART);
|
||||
real diff,diff_val;
|
||||
|
||||
umart.setkey(2);
|
||||
umart.put(UMART_CODART,magrec.get(MAG_CODART));
|
||||
umart.put(UMART_UM , l.um());
|
||||
umart.read();
|
||||
real fc=umart.get_real("FC");
|
||||
|
||||
diff=((real)rett_sign) * l.quant() * fc;
|
||||
diff_val= ((real)rett_sign) * l.quant() * l.prezzo();
|
||||
if (caus.update_qta())
|
||||
{
|
||||
update_balance(magrec,"GIAC",diff* (real)caus.sgn(s_giac)); // update ..
|
||||
update_balance(magrec,"ACQ",diff* (real)caus.sgn(s_acq)); // update ..
|
||||
update_balance(magrec,"ENT",diff* (real)caus.sgn(s_ent));
|
||||
update_balance(magrec,"VEN",diff* (real)caus.sgn(s_ven));
|
||||
update_balance(magrec,"USC",diff* (real)caus.sgn(s_usc));
|
||||
update_balance(magrec,"ORDC",diff* (real)caus.sgn(s_ordc));
|
||||
update_balance(magrec,"ORDF",diff* (real)caus.sgn(s_ordf));
|
||||
update_balance(magrec,"RIM",diff* (real)caus.sgn(s_rim));
|
||||
update_balance(magrec,"SCARTI",diff* (real)caus.sgn(s_scart));
|
||||
update_balance(magrec,"INCL",diff* (real)caus.sgn(s_incl));
|
||||
update_balance(magrec,"ACL",diff* (real)caus.sgn(s_acl));
|
||||
update_balance(magrec,"PRODCOMP",diff* (real)caus.sgn(s_prodc));
|
||||
update_balance(magrec,"PRODFIN",diff* (real)caus.sgn(s_prodf));
|
||||
update_balance(magrec,"NLABEL",diff* (real)caus.sgn(s_label));
|
||||
update_balance(magrec,"USER1",diff* (real)caus.sgn(s_user1));
|
||||
update_balance(magrec,"USER2",diff* (real)caus.sgn(s_user2));
|
||||
update_balance(magrec,"USER3",diff* (real)caus.sgn(s_user3));
|
||||
update_balance(magrec,"USER4",diff* (real)caus.sgn(s_user4));
|
||||
update_balance(magrec,"USER5",diff* (real)caus.sgn(s_user5));
|
||||
update_balance(magrec,"USER6",diff* (real)caus.sgn(s_user6));
|
||||
}
|
||||
if (caus.update_val())
|
||||
{
|
||||
update_balance(magrec,"VALACQ",diff_val* (real)caus.sgn(s_acq)); // update ..
|
||||
update_balance(magrec,"VALENT",diff_val* (real)caus.sgn(s_ent));
|
||||
update_balance(magrec,"VALVEN",diff_val* (real)caus.sgn(s_ven));
|
||||
update_balance(magrec,"VALUSC",diff_val* (real)caus.sgn(s_usc));
|
||||
update_balance(magrec,"VALORDC",diff_val* (real)caus.sgn(s_ordc));
|
||||
update_balance(magrec,"VALORDF",diff_val* (real)caus.sgn(s_ordf));
|
||||
update_balance(magrec,"VALRIM",diff_val* (real)caus.sgn(s_rim));
|
||||
update_balance(magrec,"VALSCARTI",diff_val* (real)caus.sgn(s_scart));
|
||||
update_balance(magrec,"USERVAL1",diff* (real)caus.sgn(s_user1));
|
||||
update_balance(magrec,"USERVAL2",diff* (real)caus.sgn(s_user2));
|
||||
update_balance(magrec,"USERVAL3",diff* (real)caus.sgn(s_user3));
|
||||
update_balance(magrec,"USERVAL4",diff* (real)caus.sgn(s_user4));
|
||||
update_balance(magrec,"USERVAL5",diff* (real)caus.sgn(s_user5));
|
||||
update_balance(magrec,"USERVAL6",diff* (real)caus.sgn(s_user6));
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
void TMov_mag::update_balance(TRectype & magrec, const char * fieldname, real diff) const
|
||||
{
|
||||
magrec.put(fieldname,magrec.get_real(fieldname)+diff);
|
||||
}
|
||||
|
||||
HIDDEN TEsercizi_contabili _esercizi;
|
||||
|
||||
int TMov_mag::codice_esercizio(TDate &d)
|
||||
{
|
||||
return _esercizi.date2esc(d);
|
||||
}
|
||||
|
||||
//**********************
|
||||
bool rebuild_balances(const TString16 annoes/*, bool reset_giac*/)
|
||||
{
|
||||
TArray used_files;
|
||||
|
||||
used_files.add(new TLocalisamfile(LF_RMOVMAG),LF_RMOVMAG);
|
||||
used_files.add(new TLocalisamfile(LF_MOVMAG),LF_MOVMAG);
|
||||
used_files.add(new TTable("%CAU"),5);
|
||||
|
||||
TMov_mag * m_m= new TMov_mag; // record del movimento di magazzino
|
||||
// relazione con un solo file (LF_MOVMAG) ma col record Head_Body
|
||||
TRelation rel(LF_MOVMAG);
|
||||
|
||||
rel.lfile().set_curr(m_m);
|
||||
bool ok = TRUE;
|
||||
|
||||
TLocalisamfile mag(LF_MAG);
|
||||
|
||||
// Il flag di reset delle giacenze viene impostato in base alla chiusura dell'esercizio
|
||||
// precedente
|
||||
// Aggiorna il cazzillo per caricare eventuali date di chiusura e altre amenita' simili
|
||||
_esercizi.update();
|
||||
|
||||
const int pred_es = _esercizi.pred(atoi(annoes));
|
||||
const bool reset_giac = pred_es != 0 ? _esercizi.esercizio(pred_es).chiusura_mag() != TDate(NULLDATE) : TRUE;
|
||||
|
||||
if (reset_giac)
|
||||
{
|
||||
// azzera tutte giacenze (ciclo sulle giacenze)
|
||||
mag.put("ANNOES",annoes);
|
||||
mag.read(_isgteq);
|
||||
TString information;
|
||||
//TIndwin idle(40,"Azzeramento saldi in corso...", FALSE);
|
||||
TProgind idle(40,"Azzeramento saldi in corso...", FALSE,FALSE);
|
||||
while (!mag.eof() && annoes==mag.get("ANNOES"))
|
||||
{
|
||||
TString currcode(mag.get("CODART"));
|
||||
TArticolo articolo(currcode);
|
||||
//information="Azzeramento saldi articolo: ";
|
||||
//information << articolo.codice();
|
||||
//idle.set_text(information);
|
||||
//do_events();
|
||||
if (articolo.lock_and_prompt())
|
||||
{
|
||||
while (!mag.eof() && currcode==mag.get("CODART"))
|
||||
{
|
||||
mag.put("GIAC",0);
|
||||
mag.put("RIM",0);mag.put("VALRIM",0);
|
||||
mag.put("ACQ",0);mag.put("VALACQ",0);
|
||||
mag.put("ENT",0);mag.put("VALENT",0);
|
||||
mag.put("VEN",0);mag.put("VALVEN",0);
|
||||
mag.put("USC",0);mag.put("VALUSC",0);
|
||||
mag.put("ORDF",0);mag.put("VALORDF",0);
|
||||
mag.put("ORDC",0);mag.put("VALORDC",0);
|
||||
mag.put("SCARTI",0);mag.put("VALSCARTI",0);
|
||||
mag.put("PRODCOMP",0);
|
||||
mag.put("PRODFIN",0);
|
||||
mag.put("INCL",0);
|
||||
mag.put("ACL",0);
|
||||
mag.put("NLABEL",0);
|
||||
mag.rewrite();
|
||||
mag.next();
|
||||
}
|
||||
articolo.unlock();
|
||||
}
|
||||
else
|
||||
{
|
||||
ok=FALSE;
|
||||
mag.next();
|
||||
}
|
||||
}
|
||||
}
|
||||
// ricostruisce i saldi (ciclo sui movimenti)
|
||||
TString filterexpr;
|
||||
filterexpr << LF_MOVMAG << "->ANNOES==" << annoes;
|
||||
TCursor cur(&rel,filterexpr); // cursore filtrato
|
||||
|
||||
TProgind barra_mov(cur.items(),"Ricostruzione saldi", TRUE, TRUE, 60);
|
||||
|
||||
for (long i=0; i<cur.objects(); i++)
|
||||
{
|
||||
barra_mov.addstatus(1);
|
||||
cur=i;
|
||||
TMov_mag & mov_rec=(TMov_mag &)cur.file().curr();
|
||||
if (!mov_rec.force_update_bal())
|
||||
ok=FALSE;
|
||||
}
|
||||
|
||||
barra_mov.close_modal();
|
||||
return ok;
|
||||
}
|
||||
|
||||
760
mg/mglib02a.cpp
Executable file
760
mg/mglib02a.cpp
Executable file
@ -0,0 +1,760 @@
|
||||
// oggetto TCausale_magazzino
|
||||
// oggetto TMov_Mag , multirecord del movimento di magazzino
|
||||
// funzione di ricostruzione saldi
|
||||
|
||||
#include <tabutil.h>
|
||||
#include <progind.h>
|
||||
|
||||
#include "mglib.h"
|
||||
#include "movmag.h"
|
||||
#include "rmovmag.h"
|
||||
|
||||
#ifndef __CGLIB01_H
|
||||
#include "..\cg\cglib01.h"
|
||||
#endif
|
||||
#ifndef __DBLIB_H
|
||||
#include "..\db\dblib.h"
|
||||
#endif
|
||||
|
||||
|
||||
// *********************
|
||||
// movimenti di magazzino
|
||||
|
||||
// causali
|
||||
|
||||
int TCausale_magazzino::sgn(TTipo_saldomag tiposaldo)
|
||||
{
|
||||
static TString *segni=NULL; if (segni==NULL) segni=new TString80;
|
||||
*segni=get("S2");
|
||||
switch (tiposaldo)
|
||||
{
|
||||
case s_giac:
|
||||
return atoi(segni->mid(0,2));
|
||||
case s_acq:
|
||||
return atoi(segni->mid(2,2));
|
||||
case s_ent:
|
||||
return atoi(segni->mid(4,2));
|
||||
case s_ven:
|
||||
return atoi(segni->mid(6,2));
|
||||
case s_usc:
|
||||
return atoi(segni->mid(8,2));
|
||||
case s_ordc:
|
||||
return atoi(segni->mid(10,2));
|
||||
case s_ordf:
|
||||
return atoi(segni->mid(12,2));
|
||||
case s_incl:
|
||||
return atoi(segni->mid(14,2));
|
||||
case s_acl:
|
||||
return atoi(segni->mid(16,2));
|
||||
case s_prodc:
|
||||
return atoi(segni->mid(18,2));
|
||||
case s_prodf:
|
||||
return atoi(segni->mid(20,2));
|
||||
case s_rim:
|
||||
return atoi(segni->mid(22,2));
|
||||
case s_scart:
|
||||
return atoi(segni->mid(24,2));
|
||||
case s_label:
|
||||
return atoi(segni->mid(26,2));
|
||||
case s_user1:
|
||||
return atoi(segni->mid(28,2));
|
||||
case s_user2:
|
||||
return atoi(segni->mid(30,2));
|
||||
case s_user3:
|
||||
return atoi(segni->mid(32,2));
|
||||
case s_user4:
|
||||
return atoi(segni->mid(34,2));
|
||||
case s_user5:
|
||||
return atoi(segni->mid(36,2));
|
||||
case s_user6:
|
||||
return atoi(segni->mid(38,2));
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
bool TCausale_magazzino::is_fiscale()
|
||||
{
|
||||
return (tipomov()=='S' || tipomov()=='C' );
|
||||
}
|
||||
|
||||
|
||||
TCausale_magazzino::TCausale_magazzino(const char * codice):
|
||||
TRectype(LF_TABCOM)
|
||||
{
|
||||
TTable f("%CAU");
|
||||
|
||||
settab("CAU");
|
||||
put("CODTAB", codice);
|
||||
if (TRectype::read(f) != NOERR)
|
||||
zero();
|
||||
}
|
||||
|
||||
// movimenti
|
||||
// dati della linea di movimento di magazzino
|
||||
class TLine_movmag : public TObject
|
||||
{
|
||||
TString16 _codcaus;
|
||||
TString16 _um;
|
||||
real _quant;
|
||||
real _prezzo;
|
||||
public:
|
||||
const TString16 &codcaus() const {return _codcaus;}
|
||||
const TString16 &um() const {return _um;}
|
||||
const real &quant() const {return _quant;}
|
||||
const real &prezzo() const {return _prezzo;}
|
||||
void set(const TString16 cau,const TString16 um,const real q, const real p);
|
||||
int operator==(TLine_movmag &);
|
||||
|
||||
virtual TObject* dup() const {return new TLine_movmag(*this);};
|
||||
|
||||
TLine_movmag() {};
|
||||
TLine_movmag(const TLine_movmag &);
|
||||
virtual ~TLine_movmag() {};
|
||||
};
|
||||
|
||||
void TLine_movmag ::set(const TString16 cau,const TString16 um,const real q, const real p)
|
||||
{
|
||||
_codcaus=cau;
|
||||
_um=um;
|
||||
_quant=q;
|
||||
_prezzo=p;
|
||||
}
|
||||
|
||||
TLine_movmag ::TLine_movmag(const TLine_movmag &l)
|
||||
{
|
||||
_codcaus=l._codcaus;
|
||||
_um=l._um;
|
||||
_quant=l._quant;
|
||||
_prezzo=l._prezzo;
|
||||
}
|
||||
|
||||
int TLine_movmag::operator==(TLine_movmag &l)
|
||||
{
|
||||
return (_codcaus==l._codcaus)&&(_um==l._um)&&(_quant==l._quant)&&(_prezzo==l._prezzo);
|
||||
}
|
||||
|
||||
|
||||
// ********************************
|
||||
// TMov_mag
|
||||
|
||||
TRecord_cache TMov_mag::cache_causali("%CAU");
|
||||
|
||||
TMov_mag::TMov_mag() :
|
||||
TMultiple_rectype(LF_MOVMAG),
|
||||
lines_to_add(), lines_to_subtract()
|
||||
{
|
||||
add_file(LF_RMOVMAG,"NRIG");
|
||||
}
|
||||
|
||||
TMov_mag::~TMov_mag()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void TMov_mag::zero(char c)
|
||||
{
|
||||
TMultiple_rectype::zero(c);
|
||||
|
||||
lines_to_add.destroy();
|
||||
lines_to_subtract.destroy();
|
||||
}
|
||||
|
||||
// valuta il valore della chiave per un nuovo record
|
||||
bool TMov_mag::renum()
|
||||
{
|
||||
put(MOVMAG_NUMREG,get_next_key());
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// copia la chiave dal file principale a quello delle righe
|
||||
void TMov_mag::set_body_key(TRectype & rowrec)
|
||||
{
|
||||
rowrec.put(RMOVMAG_NUMREG,get(MOVMAG_NUMREG));
|
||||
}
|
||||
|
||||
|
||||
void TMov_mag::synchronize_bodies()
|
||||
{
|
||||
TMultiple_rectype::synchronize_bodies();
|
||||
// reset delle strutture per il controlli delle variazioni dei saldi
|
||||
if (autoload_enabled())
|
||||
{
|
||||
_annoes=get(MOVMAG_ANNOES);
|
||||
lines_to_add.destroy();
|
||||
lines_to_subtract.destroy();
|
||||
const int nrows = rows();
|
||||
for (int i = 1; i<= nrows; i++)
|
||||
line_deleted(line2key(i), line2data(i));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int TMov_mag::remove(TBaseisamfile& f) const
|
||||
{
|
||||
int res;
|
||||
if ((res=TMultiple_rectype::remove(f))==NOERR )
|
||||
// effettua la variazione dei saldi
|
||||
((TMov_mag *)this)->update_balances();
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
void TMov_mag::add_extrarows() const
|
||||
{
|
||||
add_autorows();
|
||||
if (add_explrows())
|
||||
add_autorows();
|
||||
}
|
||||
bool TMov_mag::add_autorows() const
|
||||
{
|
||||
bool added=FALSE;
|
||||
// aggiunge le righe automatiche
|
||||
for (int r = rows(); r > 0; r--)
|
||||
{
|
||||
TRecord_array & b = body();
|
||||
TRectype & row = b[r];
|
||||
TString16 codcaus(row.get(RMOVMAG_CODCAUS));
|
||||
if (codcaus.empty())
|
||||
codcaus=get(MOVMAG_CODCAUS);
|
||||
TCausale_magazzino & cau=(TCausale_magazzino & )cache_causali.get(codcaus);
|
||||
codcaus=cau.caus_collegata();
|
||||
if (codcaus.not_empty())
|
||||
{
|
||||
TCausale_magazzino & cau_coll=(TCausale_magazzino & )cache_causali.get(codcaus);
|
||||
// if (!cau_coll.esplodente())
|
||||
{
|
||||
// deve esserci una riga collegata
|
||||
if (!b.exist(r + 1) || b[r + 1].get_char(RMOVMAG_TIPORIGA) != riga_automatica)
|
||||
{
|
||||
// manca, la inserisco
|
||||
TRectype * linea_auto = new TRectype(row);
|
||||
const char * codmag = cau_coll.default_magdep();
|
||||
if (codmag != NULL)
|
||||
linea_auto->put(RMOVMAG_CODMAG, codmag);
|
||||
const char * prezzo = prezzo_rauto(r);
|
||||
if (prezzo != NULL)
|
||||
linea_auto->put(RMOVMAG_PREZZO, prezzo);
|
||||
linea_auto->put(RMOVMAG_NRIG, r+1);
|
||||
linea_auto->put(RMOVMAG_TIPORIGA, (char) riga_automatica);
|
||||
linea_auto->put(RMOVMAG_CODCAUS, codcaus);
|
||||
b.insert_row(linea_auto);
|
||||
added=TRUE;
|
||||
}
|
||||
}
|
||||
}
|
||||
} // ciclo righe
|
||||
return added;
|
||||
}
|
||||
|
||||
bool TMov_mag::add_explrows() const
|
||||
{
|
||||
TDistinta_tree distinta;
|
||||
TArray boom;
|
||||
bool added=FALSE;
|
||||
// aggiunge le righe da explosione distinta
|
||||
for (int r = rows(); r > 0; r--)
|
||||
{
|
||||
TRecord_array & b = body();
|
||||
TRectype & row = b[r];
|
||||
TString16 codcaus(row.get(RMOVMAG_CODCAUS));
|
||||
if (codcaus.empty())
|
||||
codcaus=get(MOVMAG_CODCAUS);
|
||||
TCausale_magazzino & cau=(TCausale_magazzino & )cache_causali.get(codcaus);
|
||||
if (cau.esplodente() && !b[r].get_bool(RMOVMAG_ESPLOSA))
|
||||
{
|
||||
// devono esserci n righe automatiche esplose
|
||||
//if (!b.exist(r + 1) || !b[r + 1].get_bool(RMOVMAG_ESPLOSA))
|
||||
{
|
||||
// mancano le righe, le inserisco
|
||||
distinta.set_root(row.get(RMOVMAG_CODART));
|
||||
distinta.explode(boom);
|
||||
TString codmag(codmag_rauto(r));
|
||||
real prezzo(prezzo_rauto(r));
|
||||
TRectype * linea_auto;
|
||||
for (int newrow=0; newrow < boom.items() ; newrow++)
|
||||
{
|
||||
TRiga_esplosione & riga_esp=(TRiga_esplosione & )(boom[newrow]);
|
||||
linea_auto = new TRectype(row);
|
||||
linea_auto->put(RMOVMAG_CODART, riga_esp.articolo());
|
||||
linea_auto->put(RMOVMAG_UM, riga_esp.um());
|
||||
linea_auto->put(RMOVMAG_QUANT, riga_esp.val()*row.get_real(RMOVMAG_QUANT));
|
||||
if (codmag.not_empty())
|
||||
linea_auto->put(RMOVMAG_CODMAG, codmag);
|
||||
if (!prezzo.is_zero())
|
||||
linea_auto->put(RMOVMAG_PREZZO, prezzo);
|
||||
linea_auto->put(RMOVMAG_NRIG, r+1+newrow);
|
||||
linea_auto->put(RMOVMAG_ESPLOSA, TRUE);
|
||||
//linea_auto->put(RMOVMAG_TIPORIGA, (char) riga_automatica);
|
||||
//linea_auto->put(RMOVMAG_CODCAUS, codcaus);
|
||||
b.insert_row(linea_auto);
|
||||
added=TRUE;
|
||||
}
|
||||
}
|
||||
// ora ci sono, mi basta eliminare la riga "padre"
|
||||
b.destroy_row(r,TRUE);
|
||||
}
|
||||
} // ciclo righe
|
||||
return added;
|
||||
}
|
||||
|
||||
|
||||
int TMov_mag::write(TBaseisamfile& f) const
|
||||
{
|
||||
int res;
|
||||
add_extrarows();
|
||||
TMov_mag &myself=((TMov_mag &)*this);
|
||||
|
||||
const int nrows = rows();
|
||||
|
||||
for (int i = 1; i <= nrows; i++)
|
||||
myself.line_inserted(line2key(i), line2data(i));
|
||||
if ((res=TMultiple_rectype::write(f))==NOERR )
|
||||
// effettua la variazione dei saldi
|
||||
myself.update_balances();
|
||||
return res;
|
||||
}
|
||||
|
||||
int TMov_mag::rewrite(TBaseisamfile& f) const
|
||||
{
|
||||
int res;
|
||||
add_extrarows();
|
||||
// memorizza le variazioni
|
||||
|
||||
const int nrows = rows();
|
||||
|
||||
for (int i = 1; i <= nrows; i++)
|
||||
((TMov_mag *)this)->line_inserted(line2key(i), line2data(i));
|
||||
if ((res=TMultiple_rectype::rewrite(f))==NOERR )
|
||||
// effettua la variazione dei saldi
|
||||
((TMov_mag *)this)->update_balances();
|
||||
return res;
|
||||
}
|
||||
|
||||
const char *TMov_mag::get_next_key()
|
||||
{
|
||||
static TString16 nextcod;
|
||||
TLocalisamfile f(LF_MOVMAG);
|
||||
f.last();
|
||||
int a=atoi(f.get(MOVMAG_NUMREG))+1;
|
||||
return nextcod.format("%d",a);
|
||||
}
|
||||
|
||||
//*******
|
||||
// gestione delle variazione dei saldi
|
||||
//
|
||||
//
|
||||
int TMov_mag::force_update_bal()
|
||||
{
|
||||
int res;
|
||||
|
||||
// reset delle strutture per il controlli delle variazioni dei saldi
|
||||
_annoes=get(MOVMAG_ANNOES);
|
||||
lines_to_add.destroy();
|
||||
lines_to_subtract.destroy();
|
||||
|
||||
// memorizza le variazioni
|
||||
const int nrows = rows();
|
||||
|
||||
for (int i= 1; i <= nrows; i++)
|
||||
line_inserted(line2key(i), line2data(i));
|
||||
res=update_balances();
|
||||
return res;
|
||||
}
|
||||
|
||||
// restituisce il valore dei dati
|
||||
TLine_movmag & TMov_mag::line2data(int nrig) const
|
||||
{
|
||||
static TLine_movmag line;
|
||||
TRecord_array & b = body();
|
||||
|
||||
line.set(b.row(nrig).get(RMOVMAG_CODCAUS).blank() ? get(MOVMAG_CODCAUS) : b.row(nrig).get(RMOVMAG_CODCAUS) ,
|
||||
b.row(nrig).get(RMOVMAG_UM),
|
||||
b.row(nrig).get_real(RMOVMAG_QUANT),
|
||||
b.row(nrig).get_real(RMOVMAG_PREZZO));
|
||||
return line;
|
||||
}
|
||||
|
||||
TToken_string & TMov_mag::line2key(int numriga) const
|
||||
{
|
||||
static TToken_string _key;
|
||||
TRecord_array & b = body();
|
||||
TString16 nr;
|
||||
|
||||
nr << numriga;
|
||||
_key.cut(0);
|
||||
_key.add(b.row(numriga).get(RMOVMAG_CODART));
|
||||
_key.add(b.row(numriga).get(RMOVMAG_CODMAG));
|
||||
_key.add(b.row(numriga).get(RMOVMAG_LIVGIAC));
|
||||
_key.add(nr);
|
||||
return _key;
|
||||
}
|
||||
|
||||
TString TMov_mag::key2field(TToken_string &key,const char *fieldname)
|
||||
{
|
||||
if (strcmp(fieldname,RMOVMAG_CODART)==0)
|
||||
return key.get(0);
|
||||
if (strcmp(fieldname,RMOVMAG_CODMAG)==0)
|
||||
return key.get(1);
|
||||
if (strcmp(fieldname,RMOVMAG_LIVGIAC)==0)
|
||||
return key.get(2);
|
||||
CHECKS(FALSE, "Nome di campo non appartenente al file righe mov ", fieldname);
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
int TMov_mag::line_inserted(TToken_string &k,TLine_movmag &r)
|
||||
{
|
||||
if (_annoes != get(MOVMAG_ANNOES))
|
||||
lines_to_add.add(k,r);
|
||||
else
|
||||
{
|
||||
if (lines_to_subtract.is_key(k)&& (TLine_movmag &)lines_to_subtract[k]==r)
|
||||
// modifica annullata
|
||||
lines_to_subtract.remove(k);
|
||||
else
|
||||
// linea modificata
|
||||
lines_to_add.add(k,r);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int TMov_mag::line_deleted(TToken_string &k,TLine_movmag &r)
|
||||
{
|
||||
if (_annoes != get(MOVMAG_ANNOES))
|
||||
lines_to_subtract.add(k,r);
|
||||
else
|
||||
{
|
||||
if (lines_to_add.is_key(k)&& r==(TLine_movmag &)lines_to_add[k] )
|
||||
// modifica annullata
|
||||
lines_to_add.remove(k);
|
||||
else
|
||||
// linea modificata
|
||||
lines_to_subtract.add(k,r);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool TMov_mag::unlock_anamag(const char *codart)
|
||||
{
|
||||
TLocalisamfile anamag(LF_ANAMAG);
|
||||
|
||||
anamag.put(ANAMAG_CODART,codart);
|
||||
return (anamag.read(_isequal,_unlock)==NOERR);
|
||||
}
|
||||
|
||||
bool TMov_mag::lock_anamag(const char *codart)
|
||||
{
|
||||
TLocalisamfile anamag(LF_ANAMAG);
|
||||
|
||||
anamag.put(ANAMAG_CODART,codart);
|
||||
|
||||
bool insert_new=TRUE;
|
||||
TString mess;
|
||||
|
||||
mess << "Il record di anagrafica dell'articolo ''"<< codart << "'' risulta essere già in uso.";
|
||||
|
||||
TTimed_breakbox bbox((const char *)mess,10);
|
||||
|
||||
do
|
||||
{
|
||||
if (anamag.read(_isequal,_testandlock)==NOERR)
|
||||
return TRUE;
|
||||
} while (bbox.run()!=K_ESC);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
void TMov_mag::giac_putkey(TLocalisamfile & mag,TString16 annoes,TToken_string curr_key)
|
||||
{
|
||||
mag.zero(' ');
|
||||
mag.put(MAG_ANNOES,annoes);
|
||||
mag.put(MAG_CODMAG,key2field(curr_key,RMOVMAG_CODMAG));
|
||||
mag.put(MAG_CODART,key2field(curr_key,RMOVMAG_CODART));
|
||||
mag.put(MAG_LIVELLO,key2field(curr_key,RMOVMAG_LIVGIAC));
|
||||
}
|
||||
|
||||
|
||||
// aggiorna tutti i saldi in base alle modifiche fatte.
|
||||
// il lock su anagrafica dovrebbe garantire il lock su tutte le
|
||||
// giacenze dell'articolo
|
||||
int TMov_mag::update_balances()
|
||||
{
|
||||
bool updated_bal=TRUE;
|
||||
TLocalisamfile mag(LF_MAG);
|
||||
|
||||
mag.setkey(2);
|
||||
|
||||
TString_array keys_to_add,keys_to_remove;
|
||||
|
||||
((TMov_mag *)this)->lines_to_add.get_keys(keys_to_add);
|
||||
((TMov_mag *)this)->lines_to_subtract.get_keys(keys_to_remove);
|
||||
|
||||
// aggiunge i saldi nuovi
|
||||
keys_to_add.sort();
|
||||
|
||||
TToken_string * curr_key=(TToken_string *)keys_to_add.first_item();
|
||||
|
||||
while (curr_key)
|
||||
{
|
||||
const TString cod(key2field(*curr_key,RMOVMAG_CODART)) ;
|
||||
|
||||
if (curr_art.lock_and_prompt(cod))
|
||||
{
|
||||
// lock gained
|
||||
TLine_movmag & line_mov=(TLine_movmag &)lines_to_add[*curr_key];
|
||||
TCausale_magazzino & causmag=(TCausale_magazzino &)cache_causali.get(line_mov.codcaus());
|
||||
|
||||
if (causmag.update_ultcos())
|
||||
{
|
||||
curr_art.update_ultcosti(line_mov.prezzo(),get_date("DATACOMP"));
|
||||
curr_art.rewrite();
|
||||
}
|
||||
giac_putkey(mag,get(MOVMAG_ANNOES),*curr_key);
|
||||
if (mag.read()!=NOERR)
|
||||
{
|
||||
// non trovato: aggiungo
|
||||
giac_putkey(mag,get(MOVMAG_ANNOES),*curr_key);
|
||||
mag.put(MAG_NRIGA,1+curr_art.mag(get(MOVMAG_ANNOES)).rows());
|
||||
mag.write();
|
||||
}
|
||||
// modifica questo record (e lo sblocca)
|
||||
update_balances(mag.curr(), line_mov, +1);
|
||||
/*// ottimizzazione :(cerca di sfruttare la lettura fatta per un eventuale saldo vecchio)
|
||||
// ciò causa la modifica dell'oggetto TMov_mag (il metodo non è più const)
|
||||
if (_annoes == get("ANNOES")
|
||||
&& lines_to_subtract.is_key(*curr_key)) {
|
||||
update_balances(mag.curr(),(TLine_movmag &)lines_to_subtract[*curr_key],-1);
|
||||
((TMov_mag *)this)->lines_to_add.remove(*curr_key);
|
||||
((TMov_mag *)this)->lines_to_subtract.remove(*curr_key);
|
||||
}*/
|
||||
mag.rewrite();
|
||||
// conclude la TRANSAZIONE prima di sbloccare il record dell'articolo
|
||||
TToken_string *rem_key=(TToken_string *)keys_to_remove.first_item();
|
||||
while ( rem_key)
|
||||
{
|
||||
if (key2field(*rem_key,RMOVMAG_CODART)==key2field(*curr_key,RMOVMAG_CODART)) {
|
||||
giac_putkey(mag,_annoes,*rem_key);
|
||||
if (mag.read()==NOERR)
|
||||
{
|
||||
update_balances(mag.curr(),(TLine_movmag &)lines_to_subtract[*rem_key],-1);
|
||||
mag.rewrite();
|
||||
}
|
||||
keys_to_remove.remove_item();
|
||||
}
|
||||
rem_key=(TToken_string *)keys_to_remove.succ_item();
|
||||
}
|
||||
curr_art.unlock();
|
||||
}
|
||||
else
|
||||
updated_bal=FALSE;
|
||||
curr_key=(TToken_string *)keys_to_add.succ_item();
|
||||
}
|
||||
// togli i saldi vecchi
|
||||
curr_key=(TToken_string *)keys_to_remove.first_item();
|
||||
|
||||
while (curr_key)
|
||||
{
|
||||
if (curr_art.lock_and_prompt((const char *)key2field(*curr_key,RMOVMAG_CODART)))
|
||||
{
|
||||
giac_putkey(mag,_annoes,*curr_key);
|
||||
// modifica questo record (e lo sblocca)
|
||||
if (mag.read()==NOERR)
|
||||
{
|
||||
update_balances(mag.curr(),(TLine_movmag &)lines_to_subtract[*curr_key],-1);
|
||||
mag.rewrite();
|
||||
}
|
||||
curr_art.unlock();
|
||||
}
|
||||
else
|
||||
updated_bal=FALSE;
|
||||
curr_key=(TToken_string *)keys_to_remove.succ_item();
|
||||
}
|
||||
return updated_bal;
|
||||
}
|
||||
|
||||
// aggiorna i saldi del record corrente
|
||||
// in base alla causale e alla modifica fatta (con segno + o -)
|
||||
int TMov_mag::update_balances(TRectype & magrec, const TLine_movmag &l,int rett_sign)
|
||||
{
|
||||
TCausale_magazzino & caus=(TCausale_magazzino &)cache_causali.get(l.codcaus());
|
||||
TLocalisamfile umart(LF_UMART);
|
||||
real diff,diff_val;
|
||||
|
||||
umart.setkey(2);
|
||||
umart.put(UMART_CODART,magrec.get(MAG_CODART));
|
||||
umart.put(UMART_UM , l.um());
|
||||
umart.read();
|
||||
real fc=umart.get_real("FC");
|
||||
|
||||
diff=((real)rett_sign) * l.quant() * fc;
|
||||
diff_val= ((real)rett_sign) * l.quant() * l.prezzo();
|
||||
if (caus.update_qta())
|
||||
{
|
||||
update_balance(magrec,"GIAC",diff* (real)caus.sgn(s_giac)); // update ..
|
||||
update_balance(magrec,"ACQ",diff* (real)caus.sgn(s_acq)); // update ..
|
||||
update_balance(magrec,"ENT",diff* (real)caus.sgn(s_ent));
|
||||
update_balance(magrec,"VEN",diff* (real)caus.sgn(s_ven));
|
||||
update_balance(magrec,"USC",diff* (real)caus.sgn(s_usc));
|
||||
update_balance(magrec,"ORDC",diff* (real)caus.sgn(s_ordc));
|
||||
update_balance(magrec,"ORDF",diff* (real)caus.sgn(s_ordf));
|
||||
update_balance(magrec,"RIM",diff* (real)caus.sgn(s_rim));
|
||||
update_balance(magrec,"SCARTI",diff* (real)caus.sgn(s_scart));
|
||||
update_balance(magrec,"INCL",diff* (real)caus.sgn(s_incl));
|
||||
update_balance(magrec,"ACL",diff* (real)caus.sgn(s_acl));
|
||||
update_balance(magrec,"PRODCOMP",diff* (real)caus.sgn(s_prodc));
|
||||
update_balance(magrec,"PRODFIN",diff* (real)caus.sgn(s_prodf));
|
||||
update_balance(magrec,"NLABEL",diff* (real)caus.sgn(s_label));
|
||||
update_balance(magrec,"USER1",diff* (real)caus.sgn(s_user1));
|
||||
update_balance(magrec,"USER2",diff* (real)caus.sgn(s_user2));
|
||||
update_balance(magrec,"USER3",diff* (real)caus.sgn(s_user3));
|
||||
update_balance(magrec,"USER4",diff* (real)caus.sgn(s_user4));
|
||||
update_balance(magrec,"USER5",diff* (real)caus.sgn(s_user5));
|
||||
update_balance(magrec,"USER6",diff* (real)caus.sgn(s_user6));
|
||||
}
|
||||
if (caus.update_val())
|
||||
{
|
||||
update_balance(magrec,"VALACQ",diff_val* (real)caus.sgn(s_acq)); // update ..
|
||||
update_balance(magrec,"VALENT",diff_val* (real)caus.sgn(s_ent));
|
||||
update_balance(magrec,"VALVEN",diff_val* (real)caus.sgn(s_ven));
|
||||
update_balance(magrec,"VALUSC",diff_val* (real)caus.sgn(s_usc));
|
||||
update_balance(magrec,"VALORDC",diff_val* (real)caus.sgn(s_ordc));
|
||||
update_balance(magrec,"VALORDF",diff_val* (real)caus.sgn(s_ordf));
|
||||
update_balance(magrec,"VALRIM",diff_val* (real)caus.sgn(s_rim));
|
||||
update_balance(magrec,"VALSCARTI",diff_val* (real)caus.sgn(s_scart));
|
||||
update_balance(magrec,"USERVAL1",diff* (real)caus.sgn(s_user1));
|
||||
update_balance(magrec,"USERVAL2",diff* (real)caus.sgn(s_user2));
|
||||
update_balance(magrec,"USERVAL3",diff* (real)caus.sgn(s_user3));
|
||||
update_balance(magrec,"USERVAL4",diff* (real)caus.sgn(s_user4));
|
||||
update_balance(magrec,"USERVAL5",diff* (real)caus.sgn(s_user5));
|
||||
update_balance(magrec,"USERVAL6",diff* (real)caus.sgn(s_user6));
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
void TMov_mag::update_balance(TRectype & magrec, const char * fieldname, real diff) const
|
||||
{
|
||||
magrec.put(fieldname,magrec.get_real(fieldname)+diff);
|
||||
}
|
||||
|
||||
HIDDEN TEsercizi_contabili _esercizi;
|
||||
|
||||
int TMov_mag::codice_esercizio(TDate &d)
|
||||
{
|
||||
return _esercizi.date2esc(d);
|
||||
}
|
||||
|
||||
|
||||
void zero_balances(TRectype & mag)
|
||||
{
|
||||
mag.put(MAG_GIAC,0);
|
||||
mag.put(MAG_RIM,0);mag.put(MAG_VALRIM,0);
|
||||
mag.put(MAG_ACQ,0);mag.put(MAG_VALACQ,0);
|
||||
mag.put(MAG_ENT,0);mag.put(MAG_VALENT,0);
|
||||
mag.put(MAG_VEN,0);mag.put(MAG_VALVEN,0);
|
||||
mag.put(MAG_USC,0);mag.put(MAG_VALUSC,0);
|
||||
mag.put(MAG_ORDF,0);mag.put(MAG_VALORDF,0);
|
||||
mag.put(MAG_ORDC,0);mag.put(MAG_VALORDC,0);
|
||||
mag.put(MAG_SCARTI,0);mag.put(MAG_VALSCARTI,0);
|
||||
mag.put(MAG_PRODCOMP,0);
|
||||
mag.put(MAG_PRODFIN,0);
|
||||
mag.put(MAG_INCL,0);
|
||||
mag.put(MAG_ACL,0);
|
||||
mag.put(MAG_NLABEL,0);
|
||||
}
|
||||
|
||||
void copy_oldbalances(TRectype & oldmag,TRectype & mag)
|
||||
{
|
||||
mag.put(MAG_GIAC,oldmag.get(MAG_GIAC));
|
||||
mag.put(MAG_RIM,oldmag.get(MAG_RIM));
|
||||
mag.put(MAG_VALRIM,oldmag.get(MAG_VALRIM));
|
||||
mag.put(MAG_ACQ,0);
|
||||
mag.put(MAG_VALACQ,0);
|
||||
mag.put(MAG_ENT,0);
|
||||
mag.put(MAG_VALENT,0);
|
||||
mag.put(MAG_VEN,0);
|
||||
mag.put(MAG_VALVEN,0);
|
||||
mag.put(MAG_USC,0);
|
||||
mag.put(MAG_VALUSC,0);
|
||||
mag.put(MAG_ORDF,oldmag.get(MAG_ORDF));
|
||||
mag.put(MAG_VALORDF,oldmag.get(MAG_VALORDF));
|
||||
mag.put(MAG_ORDC,oldmag.get(MAG_ORDC));
|
||||
mag.put(MAG_VALORDC,oldmag.get(MAG_VALORDC));
|
||||
mag.put(MAG_SCARTI,0);
|
||||
mag.put(MAG_VALSCARTI,0);
|
||||
mag.put(MAG_PRODCOMP,oldmag.get(MAG_PRODCOMP));
|
||||
mag.put(MAG_PRODFIN,oldmag.get(MAG_PRODFIN));
|
||||
mag.put(MAG_INCL,oldmag.get(MAG_INCL));
|
||||
mag.put(MAG_ACL,oldmag.get(MAG_ACL));
|
||||
mag.put(MAG_NLABEL,0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
//**********************
|
||||
bool rebuild_balances(const TString16 annoes,
|
||||
const TTipo_valorizz tipo_valorizz, const char* catven, const char* codlis)
|
||||
{
|
||||
|
||||
TRelation rel(LF_MOVMAG); // relazione con un solo file (LF_MOVMAG) ma col record Head_Body
|
||||
TMov_mag * m_m= new TMov_mag; // record del movimento di magazzino
|
||||
rel.lfile().set_curr(m_m);
|
||||
|
||||
TRelation rel2(LF_ANAMAG); // relazione con un solo file (LF_ANAMAG) ma col record Head_Body
|
||||
TArticolo_giacenza * a_g= new TArticolo_giacenza; // record dell'articolo di magazzino
|
||||
rel2.lfile().set_curr(a_g);
|
||||
|
||||
int ok=TRUE;
|
||||
// Aggiorna il cazzillo per caricare eventuali date di chiusura e altre amenita' simili
|
||||
_esercizi.update();
|
||||
|
||||
const int cod_pred_es = _esercizi.pred(atoi(annoes));
|
||||
TString16 pred_es; pred_es.format("%d",cod_pred_es);
|
||||
const bool reset_giac = cod_pred_es != 0 ? _esercizi.esercizio(cod_pred_es).chiusura_mag() != TDate(NULLDATE) : TRUE;
|
||||
|
||||
TString information;
|
||||
// azzera tutte giacenze (ciclo sulle giacenze)
|
||||
TCursor cur2(&rel2);
|
||||
const long maxart=cur2.objects();
|
||||
|
||||
information.format("Ricostruzione saldi esercizio %s: azzeramento...",(const char *)annoes);
|
||||
TProgind barra_art(maxart,information, TRUE, TRUE, 60);
|
||||
for (long a=0; a<maxart; a++)
|
||||
{
|
||||
barra_art.addstatus(1);
|
||||
cur2=a;
|
||||
TArticolo_giacenza & articolo=(TArticolo_giacenza &)cur2.file().curr();
|
||||
if (articolo.lock_and_prompt(articolo.codice()))
|
||||
{
|
||||
if (reset_giac)
|
||||
articolo.azzera_saldi(annoes);
|
||||
else
|
||||
articolo.riporta_saldi(pred_es, annoes, tipo_valorizz, catven, codlis);
|
||||
articolo.unlock();
|
||||
}
|
||||
else
|
||||
ok=FALSE;
|
||||
do_events();
|
||||
}
|
||||
|
||||
// ricostruisce i saldi (ciclo sui movimenti)
|
||||
TString filterexpr;
|
||||
filterexpr << LF_MOVMAG << "->ANNOES==" << annoes;
|
||||
TCursor cur(&rel,filterexpr); // cursore filtrato
|
||||
|
||||
const long maxmov=cur.objects();
|
||||
information.format("Ricostruzione saldi esercizio %s: ricalcolo ...",(const char *)annoes);
|
||||
TProgind barra_mov(maxmov,information,TRUE, TRUE, 60);
|
||||
|
||||
for (long m=0; m<maxmov; m++)
|
||||
{
|
||||
barra_mov.addstatus(1);
|
||||
cur=m;
|
||||
TMov_mag & mov_rec=(TMov_mag &)cur.file().curr();
|
||||
if (!mov_rec.force_update_bal())
|
||||
ok=FALSE;
|
||||
}
|
||||
|
||||
return ok;
|
||||
}
|
||||
@ -222,14 +222,12 @@ bool TForm_stampemg::setdett_permag(bool totaliart,int fromlivart,int livart,boo
|
||||
livgiac=giaclev().last_level(); //
|
||||
}
|
||||
|
||||
find_field('B',odd_page,"H_MAGAZZINO").show(showmag && (showdep) );
|
||||
find_field('B',odd_page,"H_MAGAZZINO").show(showmag && (showdep || showdett) );
|
||||
find_field('B',odd_page,"TOT_MAGAZZINO").show(showmag);
|
||||
|
||||
find_field('B',odd_page,FF_DIVDEPOSITI).enable(showdep);
|
||||
find_field('B',odd_page,"H_DEPOSITO").show(showdep && showdett);
|
||||
find_field('B',odd_page,"TOT_DEPOSITO").show(showdep);
|
||||
|
||||
//if (livgiac==0)
|
||||
// livgiac = _giaclev->last_level();
|
||||
|
||||
return setdettaglio(showdett,fromlivart,livart,fromlivgiac,livgiac,FALSE);
|
||||
}
|
||||
|
||||
|
||||
@ -11,5 +11,6 @@
|
||||
#define RMOVMAG_PREZZO "PREZZO"
|
||||
#define RMOVMAG_CODCAUS "CAUS"
|
||||
#define RMOVMAG_TIPORIGA "AUTOMATICA"
|
||||
#define RMOVMAG_ESPLOSA "ESPLOSA"
|
||||
|
||||
#endif
|
||||
|
||||
33
ve/batbeld.h
33
ve/batbeld.h
@ -6,7 +6,6 @@
|
||||
#define F_CODNUM_F 105
|
||||
#define F_TIPODOC_I_1 111
|
||||
#define F_STATO_I_DOC_I_1 121
|
||||
#define F_STATO_F_DOC_I 131
|
||||
#define F_TIPODOC_I_2 112
|
||||
#define F_STATO_I_DOC_I_2 122
|
||||
#define F_TIPODOC_I_3 113
|
||||
@ -15,18 +14,39 @@
|
||||
#define F_STATO_I_DOC_I_4 124
|
||||
#define F_TIPODOC_I_5 115
|
||||
#define F_STATO_I_DOC_I_5 125
|
||||
#define F_TIPODOC_I_6 116
|
||||
#define F_STATO_I_DOC_I_6 126
|
||||
#define F_TIPODOC_I_7 117
|
||||
#define F_STATO_I_DOC_I_7 127
|
||||
#define F_TIPODOC_I_8 118
|
||||
#define F_STATO_I_DOC_I_8 128
|
||||
#define F_TIPODOC_I_9 119
|
||||
#define F_STATO_I_DOC_I_9 129
|
||||
#define F_TIPODOC_I_10 120
|
||||
#define F_STATO_I_DOC_I_10 130
|
||||
|
||||
#define F_STATO_F_DOC_I 139
|
||||
|
||||
#define F_TIPODOC_F 140
|
||||
#define F_STATO_F_DOC_F 141
|
||||
|
||||
|
||||
#define F_DOC1 151
|
||||
#define F_DOC2 152
|
||||
#define F_DOC3 153
|
||||
#define F_DOC4 154
|
||||
#define F_DOC5 155
|
||||
#define F_ATTIVA_PROVVISORIO 160
|
||||
#define F_PROVVISORIO 161
|
||||
#define F_APPLICAZIONE 162
|
||||
#define F_INTERATTIVO 163
|
||||
#define F_INSERT_MODE 164
|
||||
#define F_DOC6 156
|
||||
#define F_DOC7 157
|
||||
#define F_DOC8 158
|
||||
#define F_DOC9 159
|
||||
#define F_DOC10 160
|
||||
#define F_ATTIVA_PROVVISORIO 161
|
||||
#define F_PROVVISORIO 162
|
||||
#define F_APPLICAZIONE 163
|
||||
#define F_INTERATTIVO 164
|
||||
#define F_INSERT_MODE 165
|
||||
#define H_DOC 166
|
||||
|
||||
#define F_CAMBIO 201
|
||||
#define F_SCONTO 202
|
||||
@ -40,6 +60,7 @@
|
||||
#define F_PORTO 210
|
||||
#define F_TRASPORTO 211
|
||||
#define F_VETTORI 212
|
||||
#define F_DESTINAZIONE 213
|
||||
|
||||
#define F_SOMMA_RIGHE 301
|
||||
#define F_MAGAZZINO 310
|
||||
|
||||
258
ve/batbeld.uml
258
ve/batbeld.uml
@ -54,7 +54,7 @@ BEGIN
|
||||
FIELD I0
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 6
|
||||
GROUPBOX DLG_NULL 78 8
|
||||
BEGIN
|
||||
PROMPT 1 6 "@bDocumento originale"
|
||||
END
|
||||
@ -74,40 +74,82 @@ BEGIN
|
||||
OUTPUT F_DOC3 S2[9,12]
|
||||
OUTPUT F_DOC4 S2[13,16]
|
||||
OUTPUT F_DOC5 S2[17,20]
|
||||
OUTPUT F_DOC6 S2[21,24]
|
||||
OUTPUT F_DOC7 S2[25,28]
|
||||
OUTPUT F_DOC8 S2[29,32]
|
||||
OUTPUT F_DOC9 S2[33,36]
|
||||
OUTPUT F_DOC10 S2[37,40]
|
||||
OUTPUT H_DOC S2
|
||||
CHECKTYPE NORMAL
|
||||
WARNING "Numerazione errata"
|
||||
END
|
||||
|
||||
STRING H_DOC 50
|
||||
BEGIN
|
||||
PROMPT 29 6 ""
|
||||
FLAGS "H"
|
||||
END
|
||||
|
||||
STRING F_DOC1 4
|
||||
BEGIN
|
||||
PROMPT 30 7 ""
|
||||
PROMPT 29 7 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_DOC2 4
|
||||
BEGIN
|
||||
PROMPT 36 7 ""
|
||||
PROMPT 34 7 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_DOC3 4
|
||||
BEGIN
|
||||
PROMPT 42 7 ""
|
||||
PROMPT 39 7 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_DOC4 4
|
||||
BEGIN
|
||||
PROMPT 48 7 ""
|
||||
PROMPT 44 7 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_DOC5 4
|
||||
BEGIN
|
||||
PROMPT 49 7 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_DOC6 4
|
||||
BEGIN
|
||||
PROMPT 54 7 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_DOC7 4
|
||||
BEGIN
|
||||
PROMPT 59 7 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_DOC8 4
|
||||
BEGIN
|
||||
PROMPT 64 7 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_DOC9 4
|
||||
BEGIN
|
||||
PROMPT 69 7 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_DOC10 4
|
||||
BEGIN
|
||||
PROMPT 74 7 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_TIPODOC_I_1 4
|
||||
BEGIN
|
||||
PROMPT 2 8 "Tipo documento "
|
||||
@ -119,7 +161,7 @@ BEGIN
|
||||
DISPLAY "Tipo documento@50" S0
|
||||
OUTPUT F_TIPODOC_I_1 CODTAB
|
||||
CHECKTYPE REQUIRED
|
||||
STR_EXPR {(#F_CODNUM_I=="")||(#THIS_FIELD==#F_DOC1)||(#THIS_FIELD==#F_DOC2)||(#THIS_FIELD==#F_DOC3)||(#THIS_FIELD==#F_DOC4)||(#THIS_FIELD==#F_DOC5)}
|
||||
STR_EXPR {(#F_CODNUM_I=="")||(#H_DOC ?=("*" +#THIS_FIELD +"*"))}
|
||||
WARNING "E' necessario specificare un valore valido e previsto dalla numerazione"
|
||||
END
|
||||
|
||||
@ -133,7 +175,7 @@ BEGIN
|
||||
COPY DISPLAY F_TIPODOC_I_1
|
||||
OUTPUT F_TIPODOC_I_2 CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
STR_EXPR {(#F_CODNUM_I=="")||(#THIS_FIELD=="")||(#THIS_FIELD==#F_DOC1)||(#THIS_FIELD==#F_DOC2)||(#THIS_FIELD==#F_DOC3)||(#THIS_FIELD==#F_DOC4)||(#THIS_FIELD==#F_DOC5)}
|
||||
STR_EXPR {(#F_CODNUM_I=="")||(#H_DOC ?=("*" +#THIS_FIELD))}
|
||||
WARNING "E' necessario specificare un valore valido e previsto dalla numerazione"
|
||||
END
|
||||
|
||||
@ -147,7 +189,7 @@ BEGIN
|
||||
COPY DISPLAY F_TIPODOC_I_1
|
||||
OUTPUT F_TIPODOC_I_3 CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
STR_EXPR {(#F_CODNUM_I=="")||(#THIS_FIELD=="")||(#THIS_FIELD==#F_DOC1)||(#THIS_FIELD==#F_DOC2)||(#THIS_FIELD==#F_DOC3)||(#THIS_FIELD==#F_DOC4)||(#THIS_FIELD==#F_DOC5)}
|
||||
STR_EXPR {(#F_CODNUM_I=="")||(#H_DOC ?=("*" +#THIS_FIELD +"*"))}
|
||||
WARNING "E' necessario specificare un valore valido e previsto dalla numerazione"
|
||||
END
|
||||
|
||||
@ -155,13 +197,13 @@ STRING F_TIPODOC_I_4 4
|
||||
BEGIN
|
||||
PROMPT 48 8 ""
|
||||
FLAGS "U"
|
||||
FIELD S2[13,15]
|
||||
FIELD S2[13,16]
|
||||
COPY USE F_TIPODOC_I_1
|
||||
INPUT CODTAB F_TIPODOC_I_4
|
||||
COPY DISPLAY F_TIPODOC_I_1
|
||||
OUTPUT F_TIPODOC_I_4 CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
STR_EXPR {(#F_CODNUM_I=="")||(#THIS_FIELD=="")||(#THIS_FIELD==#F_DOC1)||(#THIS_FIELD==#F_DOC2)||(#THIS_FIELD==#F_DOC3)||(#THIS_FIELD==#F_DOC4)||(#THIS_FIELD==#F_DOC5)}
|
||||
STR_EXPR {(#F_CODNUM_I=="")||(#H_DOC ?=("*" +#THIS_FIELD +"*"))}
|
||||
WARNING "E' necessario specificare un valore valido e previsto dalla numerazione"
|
||||
END
|
||||
|
||||
@ -169,13 +211,13 @@ STRING F_TIPODOC_I_5 4
|
||||
BEGIN
|
||||
PROMPT 57 8 ""
|
||||
FLAGS "U"
|
||||
FIELD S2[16,19]
|
||||
FIELD S2[17,20]
|
||||
COPY USE F_TIPODOC_I_1
|
||||
INPUT CODTAB F_TIPODOC_I_4
|
||||
COPY DISPLAY F_TIPODOC_I_1
|
||||
OUTPUT F_TIPODOC_I_4 CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
STR_EXPR {(#F_CODNUM_I=="")||(#THIS_FIELD=="")||(#THIS_FIELD==#F_DOC1)||(#THIS_FIELD==#F_DOC2)||(#THIS_FIELD==#F_DOC3)||(#THIS_FIELD==#F_DOC4)||(#THIS_FIELD==#F_DOC5)}
|
||||
STR_EXPR {(#F_CODNUM_I=="")||(#H_DOC ?=("*" +#THIS_FIELD +"*"))}
|
||||
WARNING "E' necessario specificare un valore valido e previsto dalla numerazione"
|
||||
END
|
||||
|
||||
@ -197,10 +239,9 @@ STRING F_STATO_I_DOC_I_2 1
|
||||
BEGIN
|
||||
PROMPT 30 9 ""
|
||||
FLAGS "U"
|
||||
USE %STD
|
||||
COPY USE F_STATO_I_DOC_I_1
|
||||
INPUT CODTAB F_STATO_I_DOC_I_2
|
||||
DISPLAY "Stato" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
COPY DISPLAY F_STATO_I_DOC_I_1
|
||||
OUTPUT F_STATO_I_DOC_I_2 CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
FIELD S7[2,2]
|
||||
@ -210,10 +251,9 @@ STRING F_STATO_I_DOC_I_3 1
|
||||
BEGIN
|
||||
PROMPT 39 9 ""
|
||||
FLAGS "U"
|
||||
USE %STD
|
||||
COPY USE F_STATO_I_DOC_I_1
|
||||
INPUT CODTAB F_STATO_I_DOC_I_3
|
||||
DISPLAY "Stato" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
COPY DISPLAY F_STATO_I_DOC_I_1
|
||||
OUTPUT F_STATO_I_DOC_I_3 CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
FIELD S7[3,3]
|
||||
@ -223,10 +263,9 @@ STRING F_STATO_I_DOC_I_4 1
|
||||
BEGIN
|
||||
PROMPT 48 9 ""
|
||||
FLAGS "U"
|
||||
USE %STD
|
||||
COPY USE F_STATO_I_DOC_I_1
|
||||
INPUT CODTAB F_STATO_I_DOC_I_4
|
||||
DISPLAY "Stato" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
COPY DISPLAY F_STATO_I_DOC_I_1
|
||||
OUTPUT F_STATO_I_DOC_I_4 CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
FIELD S7[4,4]
|
||||
@ -236,18 +275,148 @@ STRING F_STATO_I_DOC_I_5 1
|
||||
BEGIN
|
||||
PROMPT 57 9 ""
|
||||
FLAGS "U"
|
||||
USE %STD
|
||||
COPY USE F_STATO_I_DOC_I_1
|
||||
INPUT CODTAB F_STATO_I_DOC_I_5
|
||||
DISPLAY "Stato" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
COPY DISPLAY F_STATO_I_DOC_I_1
|
||||
OUTPUT F_STATO_I_DOC_I_5 CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
FIELD S7[5,5]
|
||||
END
|
||||
|
||||
STRING F_TIPODOC_I_6 4
|
||||
BEGIN
|
||||
PROMPT 2 10 "Tipo documento "
|
||||
FLAGS "U"
|
||||
FIELD S2[21,24]
|
||||
COPY USE F_TIPODOC_I_1
|
||||
INPUT CODTAB F_TIPODOC_I_6
|
||||
COPY DISPLAY F_TIPODOC_I_1
|
||||
OUTPUT F_TIPODOC_I_6 CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
STR_EXPR {(#F_CODNUM_I=="")||(#H_DOC ?=("*" +#THIS_FIELD +"*"))}
|
||||
WARNING "E' necessario specificare un valore valido e previsto dalla numerazione"
|
||||
END
|
||||
|
||||
STRING F_TIPODOC_I_7 4
|
||||
BEGIN
|
||||
PROMPT 30 10 ""
|
||||
FLAGS "U"
|
||||
FIELD S2[25,28]
|
||||
COPY USE F_TIPODOC_I_1
|
||||
INPUT CODTAB F_TIPODOC_I_7
|
||||
COPY DISPLAY F_TIPODOC_I_1
|
||||
OUTPUT F_TIPODOC_I_7 CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
STR_EXPR {(#F_CODNUM_I=="")||(#H_DOC ?=("*" +#THIS_FIELD +"*"))}
|
||||
WARNING "E' necessario specificare un valore valido e previsto dalla numerazione"
|
||||
END
|
||||
|
||||
STRING F_TIPODOC_I_8 4
|
||||
BEGIN
|
||||
PROMPT 39 10 ""
|
||||
FLAGS "U"
|
||||
FIELD S2[29,32]
|
||||
COPY USE F_TIPODOC_I_1
|
||||
INPUT CODTAB F_TIPODOC_I_8
|
||||
COPY DISPLAY F_TIPODOC_I_1
|
||||
OUTPUT F_TIPODOC_I_8 CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
STR_EXPR {(#F_CODNUM_I=="")||(#H_DOC ?=("*" +#THIS_FIELD +"*"))}
|
||||
WARNING "E' necessario specificare un valore valido e previsto dalla numerazione"
|
||||
END
|
||||
|
||||
STRING F_TIPODOC_I_9 4
|
||||
BEGIN
|
||||
PROMPT 48 10 ""
|
||||
FLAGS "U"
|
||||
FIELD S2[33,36]
|
||||
COPY USE F_TIPODOC_I_1
|
||||
INPUT CODTAB F_TIPODOC_I_9
|
||||
COPY DISPLAY F_TIPODOC_I_1
|
||||
OUTPUT F_TIPODOC_I_9 CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
STR_EXPR {(#F_CODNUM_I=="")||(#H_DOC ?=("*" +#THIS_FIELD +"*"))}
|
||||
WARNING "E' necessario specificare un valore valido e previsto dalla numerazione"
|
||||
END
|
||||
|
||||
STRING F_TIPODOC_I_10 4
|
||||
BEGIN
|
||||
PROMPT 57 10 ""
|
||||
FLAGS "U"
|
||||
FIELD S2[37,40]
|
||||
COPY USE F_TIPODOC_I_1
|
||||
INPUT CODTAB F_TIPODOC_I_10
|
||||
COPY DISPLAY F_TIPODOC_I_1
|
||||
OUTPUT F_TIPODOC_I_10 CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
STR_EXPR {(#F_CODNUM_I=="")||(#H_DOC ?=("*" +#THIS_FIELD +"*"))}
|
||||
WARNING "E' necessario specificare un valore valido e previsto dalla numerazione"
|
||||
END
|
||||
|
||||
STRING F_STATO_I_DOC_I_6 1
|
||||
BEGIN
|
||||
PROMPT 2 11 "Stato iniziale "
|
||||
FLAGS "U"
|
||||
FIELD S10[1,1]
|
||||
COPY USE F_STATO_I_DOC_I_1
|
||||
INPUT CODTAB F_STATO_I_DOC_I_6
|
||||
COPY DISPLAY F_STATO_I_DOC_I_1
|
||||
OUTPUT F_STATO_I_DOC_I_6 CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
WARNING "E' necessario specificare uno stato iniziale"
|
||||
END
|
||||
|
||||
STRING F_STATO_I_DOC_I_7 1
|
||||
BEGIN
|
||||
PROMPT 30 11 ""
|
||||
FLAGS "U"
|
||||
COPY USE F_STATO_I_DOC_I_1
|
||||
INPUT CODTAB F_STATO_I_DOC_I_7
|
||||
COPY DISPLAY F_STATO_I_DOC_I_1
|
||||
OUTPUT F_STATO_I_DOC_I_7 CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
FIELD S10[2,2]
|
||||
END
|
||||
|
||||
STRING F_STATO_I_DOC_I_8 1
|
||||
BEGIN
|
||||
PROMPT 39 11 ""
|
||||
FLAGS "U"
|
||||
COPY USE F_STATO_I_DOC_I_1
|
||||
INPUT CODTAB F_STATO_I_DOC_I_8
|
||||
COPY DISPLAY F_STATO_I_DOC_I_1
|
||||
OUTPUT F_STATO_I_DOC_I_8 CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
FIELD S10[3,3]
|
||||
END
|
||||
|
||||
STRING F_STATO_I_DOC_I_9 1
|
||||
BEGIN
|
||||
PROMPT 48 11 ""
|
||||
FLAGS "U"
|
||||
COPY USE F_STATO_I_DOC_I_1
|
||||
INPUT CODTAB F_STATO_I_DOC_I_9
|
||||
COPY DISPLAY F_STATO_I_DOC_I_1
|
||||
OUTPUT F_STATO_I_DOC_I_9 CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
FIELD S10[4,4]
|
||||
END
|
||||
|
||||
STRING F_STATO_I_DOC_I_10 1
|
||||
BEGIN
|
||||
PROMPT 57 11 ""
|
||||
FLAGS "U"
|
||||
COPY USE F_STATO_I_DOC_I_1
|
||||
INPUT CODTAB F_STATO_I_DOC_I_10
|
||||
COPY DISPLAY F_STATO_I_DOC_I_1
|
||||
OUTPUT F_STATO_I_DOC_I_10 CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
FIELD S10[5,5]
|
||||
END
|
||||
|
||||
STRING F_STATO_F_DOC_I 1
|
||||
BEGIN
|
||||
PROMPT 2 10 "Stato finale "
|
||||
PROMPT 2 12 "Stato finale "
|
||||
FLAGS "U"
|
||||
FIELD S4
|
||||
USE %STD
|
||||
@ -259,14 +428,14 @@ BEGIN
|
||||
WARNING "E' necessario specificare uno stato finale"
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 6
|
||||
GROUPBOX DLG_NULL 42 5
|
||||
BEGIN
|
||||
PROMPT 1 12 "@bDocumento finale"
|
||||
PROMPT 1 14 "@bDocumento finale"
|
||||
END
|
||||
|
||||
STRING F_TIPODOC_F 4
|
||||
BEGIN
|
||||
PROMPT 2 13 "Tipo documento "
|
||||
PROMPT 2 15 "Tipo documento "
|
||||
FLAGS "U"
|
||||
FIELD S8
|
||||
CHECKTYPE REQUIRED
|
||||
@ -279,7 +448,7 @@ END
|
||||
|
||||
STRING F_STATO_F_DOC_F 1
|
||||
BEGIN
|
||||
PROMPT 2 14 "Stato finale "
|
||||
PROMPT 2 16 "Stato finale "
|
||||
FLAGS "U"
|
||||
FIELD S9
|
||||
USE %STD
|
||||
@ -293,7 +462,7 @@ END
|
||||
|
||||
STRING F_CODNUM_F 4
|
||||
BEGIN
|
||||
PROMPT 2 15 "Codice numerazione "
|
||||
PROMPT 2 17 "Codice numerazione "
|
||||
FLAGS "U"
|
||||
FIELD S6
|
||||
USE %NUM
|
||||
@ -313,9 +482,14 @@ BEGIN
|
||||
MESSAGE TRUE ENABLE,F_PROVVISORIO
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 35 5
|
||||
BEGIN
|
||||
PROMPT 44 14 "@bTipo numerazione"
|
||||
END
|
||||
|
||||
RADIOBUTTON F_PROVVISORIO 20
|
||||
BEGIN
|
||||
PROMPT 42 13 "Tipo numerazione"
|
||||
PROMPT 44 14 ""
|
||||
ITEM " |Definitiva"
|
||||
ITEM "X|Provvisioria"
|
||||
FIELD B4
|
||||
@ -323,7 +497,7 @@ END
|
||||
|
||||
STRING F_APPLICAZIONE 20
|
||||
BEGIN
|
||||
PROMPT 2 18 "Applicazione "
|
||||
PROMPT 2 19 "Applicazione "
|
||||
FIELD S3
|
||||
END
|
||||
|
||||
@ -363,7 +537,7 @@ END
|
||||
|
||||
BOOLEAN F_SPEDIZIONE
|
||||
BEGIN
|
||||
PROMPT 2 6 "Modalita' di spedizione"
|
||||
PROMPT 2 6 "Modalita'di spedizione"
|
||||
FIELD S1[9,9]
|
||||
END
|
||||
|
||||
@ -375,40 +549,46 @@ END
|
||||
|
||||
BOOLEAN F_CONDPAG
|
||||
BEGIN
|
||||
PROMP 40 2 "Condizione di pagamento"
|
||||
PROMP 28 2 "Condizione di pagamento"
|
||||
FIELD S1[5,5]
|
||||
END
|
||||
|
||||
BOOLEAN F_BANCA
|
||||
BEGIN
|
||||
PROMPT 40 3 "Banca di appoggio"
|
||||
PROMPT 28 3 "Banca di appoggio"
|
||||
FIELD S1[6,6]
|
||||
END
|
||||
|
||||
BOOLEAN F_LISTINO
|
||||
BEGIN
|
||||
PROMPT 40 4 "Listino"
|
||||
PROMPT 28 4 "Listino"
|
||||
FIELD S1[7,7]
|
||||
END
|
||||
|
||||
BOOLEAN F_AGENTE
|
||||
BEGIN
|
||||
PROMP 40 5 "Agente"
|
||||
PROMP 28 5 "Agente"
|
||||
FIELD S1[8,8]
|
||||
END
|
||||
|
||||
BOOLEAN F_TRASPORTO
|
||||
BEGIN
|
||||
PROMPT 40 6 "Causale di trasporto"
|
||||
PROMPT 28 6 "Causale di trasporto"
|
||||
FIELD S1[11,11]
|
||||
END
|
||||
|
||||
BOOLEAN F_VETTORI
|
||||
BEGIN
|
||||
PROMPT 40 7 "Vettori"
|
||||
PROMPT 28 7 "Vettori"
|
||||
FIELD S1[12,12]
|
||||
END
|
||||
|
||||
BOOLEAN F_DESTINAZIONE
|
||||
BEGIN
|
||||
PROMPT 56 2 "Destinazione"
|
||||
FIELD S1[13,13]
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 75 4
|
||||
BEGIN
|
||||
PROMPT 1 10 "Modalita' di raggruppamento delle righe"
|
||||
|
||||
@ -16,6 +16,9 @@
|
||||
#define F_STATV 116
|
||||
#define F_PROVV 117
|
||||
#define F_STATO_PROVV 118
|
||||
#define F_SCARES 119
|
||||
#define F_CODCAUSANT 120
|
||||
#define F_DESCAUSANT 121
|
||||
|
||||
#define F_STATOF_INS 150
|
||||
#define F_STATOF_ST 151
|
||||
|
||||
@ -45,28 +45,28 @@ END
|
||||
|
||||
STRING F_RIFERIMENTO 50
|
||||
BEGIN
|
||||
PROMPT 2 6 "Riferimento "
|
||||
PROMPT 2 5 "Riferimento "
|
||||
FIELD S1
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_PROFILO 8
|
||||
BEGIN
|
||||
PROMPT 2 8 "Profilo documento "
|
||||
PROMPT 2 6 "Profilo documento "
|
||||
FIELD S4
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_PSTAMPA 8
|
||||
BEGIN
|
||||
PROMPT 2 9 "Profilo stampa documento "
|
||||
PROMPT 2 7 "Profilo stampa documento "
|
||||
FIELD S5
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
NUMBER F_NCOPIE 3
|
||||
BEGIN
|
||||
PROMPT 2 10 "Numero di copie "
|
||||
PROMPT 2 8 "Numero di copie "
|
||||
FIELD I0
|
||||
NUM_EXPR {(#THIS_FIELD >= 0)}
|
||||
WARNING "Il numero di copie deve essere positivo"
|
||||
@ -74,7 +74,7 @@ END
|
||||
|
||||
LIST F_TIPO 24
|
||||
BEGIN
|
||||
PROMPT 2 12 "Tipo del documento "
|
||||
PROMPT 2 9 "Tipo del documento "
|
||||
FIELD I1
|
||||
ITEM "0|Altro" MESSAGE ENABLE,2@
|
||||
ITEM "1|Bolla" MESSAGE CLEAR,2@
|
||||
@ -84,7 +84,7 @@ END
|
||||
|
||||
STRING F_CODCAUS 3
|
||||
BEGIN
|
||||
PROMPT 2 13 "Codice causale contabile "
|
||||
PROMPT 2 10 "Codice causale contabile "
|
||||
FIELD S6
|
||||
USE LF_CAUSALI
|
||||
INPUT CODCAUS F_CODCAUS
|
||||
@ -99,7 +99,7 @@ END
|
||||
|
||||
STRING F_DESCAUS 50
|
||||
BEGIN
|
||||
PROMPT 2 14 "Descrizione "
|
||||
PROMPT 2 11 "Descrizione "
|
||||
USE LF_CAUSALI KEY 2
|
||||
INPUT DESCR F_DESCAUS
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
@ -110,6 +110,34 @@ BEGIN
|
||||
GROUP 2
|
||||
END
|
||||
|
||||
STRING F_CODCAUSANT 3
|
||||
BEGIN
|
||||
PROMPT 2 12 "Codice causale anticipo "
|
||||
FIELD S10
|
||||
USE LF_CAUSALI SELECT REG ==""
|
||||
INPUT CODCAUS F_CODCAUSANT
|
||||
DISPLAY "Codice" CODCAUS
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_CODCAUSANT CODCAUS
|
||||
OUTPUT F_DESCAUSANT DESCR
|
||||
CHECKTYPE NORMAL
|
||||
FLAG "U"
|
||||
GROUP 2
|
||||
END
|
||||
|
||||
STRING F_DESCAUSANT 50
|
||||
BEGIN
|
||||
PROMPT 2 13 "Descrizione "
|
||||
USE LF_CAUSALI KEY 2
|
||||
INPUT DESCR F_DESCAUSANT
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
DISPLAY "Codice" CODCAUS
|
||||
OUTPUT F_DESCAUSANT DESCR
|
||||
OUTPUT F_CODCAUSANT CODCAUS
|
||||
CHECKTYPE NORMAL
|
||||
GROUP 2
|
||||
END
|
||||
|
||||
BOOLEAN F_SPESEAUT
|
||||
BEGIN
|
||||
PROMPT 2 15 "Addebito automatico spese cliente"
|
||||
@ -118,7 +146,7 @@ END
|
||||
|
||||
BOOLEAN F_MOVMAG
|
||||
BEGIN
|
||||
PROMPT 2 16 "Movimenti di magazzino a partire dallo stato "
|
||||
PROMPT 2 16 "Mov. di mag. a partire dallo stato "
|
||||
FIELD B1
|
||||
MESSAGE FALSE CLEAR,1@
|
||||
MESSAGE TRUE ENABLE,1@
|
||||
@ -128,7 +156,7 @@ END
|
||||
|
||||
STRING F_STATO_MOV_I 1
|
||||
BEGIN
|
||||
PROMPT 50 16 ""
|
||||
PROMPT 40 16 ""
|
||||
FIELD S7
|
||||
USE %STD
|
||||
INPUT CODTAB F_STATO_MOV_I
|
||||
@ -143,7 +171,7 @@ END
|
||||
|
||||
STRING F_STATO_MOV_F 1
|
||||
BEGIN
|
||||
PROMPT 54 16 "allo stato "
|
||||
PROMPT 42 16 "allo stato "
|
||||
FIELD S8
|
||||
COPY USE F_STATO_MOV_I
|
||||
INPUT CODTAB F_STATO_MOV_F
|
||||
@ -156,6 +184,13 @@ BEGIN
|
||||
WARNING "Stato finale impossibile"
|
||||
END
|
||||
|
||||
BOOLEAN F_SCARES
|
||||
BEGIN
|
||||
PROMPT 58 16 "Scarica il residuo"
|
||||
FIELD B4
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
STRING F_CAUS_MAG 5
|
||||
BEGIN
|
||||
PROMPT 2 17 "Codice causale magazzino "
|
||||
|
||||
@ -7,8 +7,6 @@
|
||||
// Descrizione a caratteri del documento
|
||||
TYPE=Bolla di vendita
|
||||
// Dove sono le risorse per il documento
|
||||
MSKFILE=BOLLAC
|
||||
FRMFILE=BOLLAC.FRM
|
||||
// modifica
|
||||
CAMPICALC=TOTMER|TOTPRE|SPESE|SPESINC|BOLLI|IMPONIBILI|IMPOSTE|TOTDOC|SCONTOD|SCONTOT|OMAGGI|PROVVD
|
||||
CALCOLI=BASESCONTO
|
||||
@ -85,8 +83,8 @@ DENCOMSP = S_DISABILITATO //900
|
||||
PROVCOMSP = S_DISABILITATO //900
|
||||
STATOSP = S_DISABILITATO //900
|
||||
DESSTATOSP = S_DISABILITATO //900
|
||||
DATADOCRIF = S_NASCOSTO //1000
|
||||
NUMDOCRIF = S_NASCOSTO //1000
|
||||
DATADOCRIF = S_NORMALE //1000
|
||||
NUMDOCRIF = S_NORMALE //1000
|
||||
CODAGVIS = S_NASCOSTO //1110
|
||||
DESAGVIS = S_NASCOSTO //1110
|
||||
CODAG = S_NORMALE //1100
|
||||
@ -113,7 +111,7 @@ NCOPIE = S_NASCOSTO //1600
|
||||
GRPARTENZA = S_NORMALE //1700
|
||||
DATAPART = S_NORMALE //1700
|
||||
ORAPART = S_NORMALE //1700
|
||||
IMPPAGATO = S_NASCOSTO //1800
|
||||
IMPPAGATO = S_NORMALE //1800
|
||||
ACCSALDO = S_NASCOSTO //1800
|
||||
DOC1 = S_NASCOSTO //1900
|
||||
DOC2 = S_NASCOSTO //1900
|
||||
@ -199,7 +197,7 @@ NHANDLER=0
|
||||
820 = S_NORMALE
|
||||
830 = S_NORMALE
|
||||
900 = S_NORMALE
|
||||
1000 = S_NASCOSTO
|
||||
1000 = S_NORMALE
|
||||
1100 = S_NORMALE
|
||||
1200 = S_NORMALE
|
||||
1210 = S_NORMALE
|
||||
@ -225,33 +223,33 @@ NHANDLER=0
|
||||
[ORDINEGRUPPI]
|
||||
NGROUPS=30
|
||||
1=100
|
||||
2=200
|
||||
3=300
|
||||
4=400
|
||||
5=500
|
||||
6=600
|
||||
7=700
|
||||
8=800
|
||||
9=810
|
||||
10=820
|
||||
11=830
|
||||
12=900
|
||||
13=1100
|
||||
14=1200
|
||||
15=1500
|
||||
16=1210
|
||||
17=1300
|
||||
18=1400
|
||||
19=1800
|
||||
20=1900
|
||||
21=2100
|
||||
22=2300
|
||||
23=2200
|
||||
24=2800
|
||||
25=2700
|
||||
26=2710
|
||||
27=1700
|
||||
28=2500
|
||||
29=2400
|
||||
2=2500
|
||||
3=200
|
||||
4=300
|
||||
5=400
|
||||
6=500
|
||||
7=600
|
||||
8=700
|
||||
9=2400
|
||||
10=2300
|
||||
11=800
|
||||
12=810
|
||||
13=820
|
||||
14=830
|
||||
15=900
|
||||
16=1100
|
||||
17=1200
|
||||
18=1500
|
||||
19=1210
|
||||
20=1300
|
||||
21=1400
|
||||
22=2100
|
||||
23=2800
|
||||
24=2700
|
||||
25=2710
|
||||
26=1700
|
||||
27=1800
|
||||
28=2200
|
||||
29=1000
|
||||
30=2900
|
||||
|
||||
|
||||
@ -35,8 +35,7 @@ int TCli_for::write_rewrite(TBaseisamfile& f, bool re) const
|
||||
return err;
|
||||
}
|
||||
|
||||
TRectype & TCli_for::vendite() const
|
||||
|
||||
TRectype& TCli_for::vendite() const
|
||||
{
|
||||
const char t = tipo();
|
||||
const long c = codice();
|
||||
@ -44,32 +43,37 @@ TRectype & TCli_for::vendite() const
|
||||
if (_ven_rec.empty() || t != *(const char *) (*_ven_tipo) || c != (long) *_ven_codice)
|
||||
{
|
||||
TLocalisamfile v(LF_CFVEN);
|
||||
TRectype& vr = ((TCli_for *)this)->_ven_rec; // fool const
|
||||
|
||||
((TCli_for *)this)->_ven_rec.zero();
|
||||
((TCli_for *)this)->_ven_rec.put(CFV_TIPOCF,t);
|
||||
((TCli_for *)this)->_ven_rec.put(CFV_CODCF, c);
|
||||
TRectype v_rec(_ven_rec);
|
||||
|
||||
if (((TCli_for *)this)->_ven_rec.read(v) != NOERR)
|
||||
((TCli_for *)this)->_ven_rec = v_rec;
|
||||
vr.zero();
|
||||
vr.put(CFV_TIPOCF,t);
|
||||
vr.put(CFV_CODCF, c);
|
||||
const TRectype v_rec(vr);
|
||||
if (vr.read(v) != NOERR)
|
||||
vr = v_rec;
|
||||
}
|
||||
return (TRectype &) _ven_rec;
|
||||
}
|
||||
|
||||
int TCli_for::read(TRectype & rec, word op, word lockop)
|
||||
int TCli_for::read(const TRectype & rec, word op, word lockop)
|
||||
{
|
||||
int err = TMultiple_rectype::read(rec, op, lockop);
|
||||
|
||||
_ven_rec.zero();
|
||||
int err = TMultiple_rectype::read(rec, op, lockop);
|
||||
return err;
|
||||
}
|
||||
|
||||
int TCli_for::read(char tipo, long codice, word op, word lockop)
|
||||
{
|
||||
int err = NOERR;
|
||||
_ven_rec.zero();
|
||||
zero();
|
||||
put(CLI_TIPOCF, tipo);
|
||||
put(CLI_CODCF, codice);
|
||||
return TMultiple_rectype::read(op, lockop);
|
||||
if (tipo > ' ' && codice > 0L)
|
||||
{
|
||||
put(CLI_TIPOCF, tipo);
|
||||
put(CLI_CODCF, codice);
|
||||
err = TMultiple_rectype::read(op, lockop);
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
int TCli_for::remove(TBaseisamfile& f) const
|
||||
@ -89,7 +93,8 @@ TCli_for::TCli_for(char tipo, long codice) : TMultiple_rectype( LF_CLIFO ), _ven
|
||||
_ven_tipo = new TRecfield(_ven_rec, CFV_TIPOCF);
|
||||
_ven_codice = new TRecfield(_ven_rec, CFV_CODCF);
|
||||
add_file(LF_INDSP, IND_CODIND);
|
||||
read(tipo, codice);
|
||||
if (tipo > ' ' && codice > 0L)
|
||||
read(tipo, codice);
|
||||
}
|
||||
|
||||
TCli_for::TCli_for(const TRectype & rec) : TMultiple_rectype(rec), _ven_rec(LF_CFVEN)
|
||||
@ -99,7 +104,7 @@ TCli_for::TCli_for(const TRectype & rec) : TMultiple_rectype(rec), _ven_rec(LF_C
|
||||
_ven_tipo = new TRecfield(_ven_rec, CFV_TIPOCF);
|
||||
_ven_codice = new TRecfield(_ven_rec, CFV_CODCF);
|
||||
add_file(LF_INDSP, IND_CODIND);
|
||||
read((TRectype &) rec);
|
||||
read(rec);
|
||||
}
|
||||
|
||||
TCli_for::TCli_for(const TCli_for & c) : TMultiple_rectype(c), _ven_rec(c._ven_rec)
|
||||
|
||||
@ -59,7 +59,7 @@ public:
|
||||
long codice() const { return (long) *_codice; }
|
||||
bool ok() const { return !empty();}
|
||||
|
||||
virtual int read(TRectype & rec, word op = _isequal, word lockop = _nolock);
|
||||
virtual int read(const TRectype& rec, word op = _isequal, word lockop = _nolock);
|
||||
int read(char tipo, long codice, word op = _isequal, word lockop = _nolock);
|
||||
virtual int remove(TBaseisamfile& f) const;
|
||||
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
33
|
||||
0
|
||||
$doc|0|0|418|31|Documenti di vendita|NDOC||
|
||||
$doc|0|0|419|31|Documenti di vendita|NDOC||
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
33
|
||||
69
|
||||
71
|
||||
CODNUM|1|4|0|Codice della numerazione
|
||||
ANNO|2|4|0|Anno
|
||||
PROVV|1|1|0|Tipo numerazione <P>rovvisorio <D>efinitivo
|
||||
@ -69,6 +69,8 @@ G1|11|10|0|Campo generale 1
|
||||
DATAAGG|5|8|0|Data ultimo aggiornamento
|
||||
UTENTE|1|10|0|Utente ultimo aggiornamento
|
||||
COLL_GOLEM|11|10|0|Collegamento lista di GOLEM
|
||||
DATACONS|5|8|0|Data di consegna
|
||||
DOCEVASO|8|1|0|Ordine evaso
|
||||
3
|
||||
PROVV+ANNO+CODNUM+NDOC|
|
||||
TIPOCF+CODCF+PROVV+ANNO+DATADOC+CODNUM+NDOC|X
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
34
|
||||
0
|
||||
$rdoc|0|0|314|31|Righe documenti di vendita|NDOC*3||
|
||||
$rdoc|0|0|381|31|Righe documenti di vendita|NDOC*3||
|
||||
|
||||
13
ve/f34.trr
13
ve/f34.trr
@ -1,5 +1,5 @@
|
||||
34
|
||||
36
|
||||
41
|
||||
CODNUM|1|4|0|Codice Numeriazione
|
||||
ANNO|2|4|0|Anno
|
||||
PROVV|1|1|0|Tipo numerazione <P>rovvisoria <D>efinitiva
|
||||
@ -18,8 +18,13 @@ DESCLUNGA|8|1|0|Descrizione estesa caricata
|
||||
DESCEST|11|10|0|Descrizione estesa
|
||||
PREZZO|4|18|2|Prezzo o valore
|
||||
UMQTA|1|2|0|Unita di misura
|
||||
QTA|4|11|3|Quantita'
|
||||
QTAEVASA|4|11|3|Quantita' evasa
|
||||
QTA|4|13|5|Quantita'
|
||||
QTAEVASA|4|13|5|Quantita' evasa
|
||||
QTAGG1|4|13|5|1a quantita' aggiuntiva
|
||||
QTAGG2|4|13|5|2a quantita' aggiuntiva
|
||||
QTAGG3|4|13|5|3a quantita' aggiuntiva
|
||||
QTAGG4|4|13|5|4a quantita' aggiuntiva
|
||||
QTAGG5|4|13|5|5a quantita' aggiuntiva
|
||||
RIGAEVASA|8|1|0|Riga evasa
|
||||
TARA|4|15|2|Tara
|
||||
PNETTO|4|15|2|Peso netto
|
||||
@ -33,7 +38,7 @@ CODIVA|1|4|0|Codice IVA
|
||||
ADDIVA|8|1|0|Addebito IVA
|
||||
ASPBENI|1|2|0|Aspetto dei beni
|
||||
PSPESA|4|5|2|Percentuale di spesa
|
||||
CAUSMAG|1|6|0|Causale di magazzino
|
||||
CAUSMAG|1|4|0|Causale di magazzino
|
||||
MOVMAG|3|7|0|Numero di movimento id magazzino
|
||||
CODMAGC|1|5|0|Codice di magazzino per causale collegata
|
||||
1
|
||||
|
||||
@ -6,12 +6,10 @@
|
||||
[MAIN]
|
||||
// Descrizione a caratteri del documento
|
||||
TYPE=Fattura accompagnatoria
|
||||
// Dove sono le risorse per il documento
|
||||
MSKFILE=FATTURAA
|
||||
FRMFILE=FATTURAA.FRM
|
||||
// modifica
|
||||
CAMPICALC=TOTMER|TOTPRE|SPESE|SPESINC|BOLLI|IMPONIBILI|IMPOSTE|TOTDOC|SCONTOD|SCONTOT|OMAGGI|PROVVD
|
||||
CAMPICALC=TOTMER|TOTPRE|SPESE|SPESINC|SPESIMB|SPESTRA|BOLLI|IMPONIBILI|IMPOSTE|TOTDOC|SCONTOD|SCONTOT|OMAGGI|TOTPROVV
|
||||
CALCOLI=BASESCONTO
|
||||
TOTPROVV =
|
||||
// modifica
|
||||
// Indica se il documento è indirizzato ad un cliente o ad un fornitore
|
||||
TIPOCF=C
|
||||
@ -86,12 +84,14 @@ DENCOMSP = S_DISABILITATO //900
|
||||
PROVCOMSP = S_DISABILITATO //900
|
||||
STATOSP = S_DISABILITATO //900
|
||||
DESSTATOSP = S_DISABILITATO //900
|
||||
DATADOCRIF = S_NASCOSTO //1000
|
||||
NUMDOCRIF = S_NASCOSTO //1000
|
||||
DATADOCRIF = S_NORMALE //1000
|
||||
NUMDOCRIF = S_NORMALE //1000
|
||||
CODAGVIS = S_NASCOSTO //1110
|
||||
DESAGVIS = S_NASCOSTO //1110
|
||||
CODAG = S_NORMALE //1100
|
||||
DESAG = S_NORMALE //1100
|
||||
CODZON = S_NORMALE //1100
|
||||
DESZON = S_NORMALE //1100
|
||||
CODSPMEZZO = S_OBBLIGATORIO //1200
|
||||
DESSPMEZZO = S_NORMALE //1200
|
||||
CODPORTO = S_NORMALE //1210
|
||||
@ -134,7 +134,12 @@ PNETTO = S_NORMALE //2700
|
||||
DESUMPNETTO = S_NASCOSTO //2700
|
||||
NCOLLI = S_NORMALE //2800
|
||||
BLANK = S_DISABILITATO //4000
|
||||
//NOTECLI = S_NORMALE //2500
|
||||
CODNOTE = S_NORMALE //2500
|
||||
NOTECLI = S_NORMALE //2500
|
||||
CAUSMAG = S_OBBLIGATORIO //2900
|
||||
CAUSMAGC = S_DISABILITATO //2900
|
||||
DESCRMAG = S_NORMALE //2900
|
||||
DESCRMAGC = S_DISABILITATO //2900
|
||||
|
||||
[DEFAULT]
|
||||
NDEFAULTS=1
|
||||
@ -188,7 +193,7 @@ NHANDLER=0
|
||||
820 = S_NORMALE
|
||||
830 = S_NORMALE
|
||||
900 = S_NORMALE
|
||||
1000 = S_NASCOSTO
|
||||
1000 = S_NORMALE
|
||||
1100 = S_NORMALE
|
||||
1200 = S_NORMALE
|
||||
1210 = S_NORMALE
|
||||
@ -208,43 +213,37 @@ NHANDLER=0
|
||||
2700 = S_NORMALE
|
||||
2710 = S_NORMALE
|
||||
2800 = S_NORMALE
|
||||
2900 = S_NASCOSTO
|
||||
3000 = S_NORMALE
|
||||
3200 = S_NORMALE
|
||||
3400 = S_NORMALE
|
||||
2900 = S_NORMALE
|
||||
|
||||
[ORDINEGRUPPI]
|
||||
NGROUPS=32
|
||||
NGROUPS=30
|
||||
1=100
|
||||
2=200
|
||||
3=300
|
||||
4=400
|
||||
5=500
|
||||
6=600
|
||||
7=700
|
||||
8=800
|
||||
9=810
|
||||
10=820
|
||||
11=830
|
||||
12=900
|
||||
13=1100
|
||||
14=1200
|
||||
15=1210
|
||||
16=1300
|
||||
17=1400
|
||||
18=1700
|
||||
19=2100
|
||||
20=2700
|
||||
21=2710
|
||||
22=2800
|
||||
23=1500
|
||||
24=1800
|
||||
25=2200
|
||||
26=2300
|
||||
27=2400
|
||||
28=3000
|
||||
29=3200
|
||||
30=2500
|
||||
31=3400
|
||||
32=1600
|
||||
|
||||
2=2500
|
||||
3=200
|
||||
4=300
|
||||
5=400
|
||||
6=500
|
||||
7=600
|
||||
8=700
|
||||
9=2400
|
||||
10=2300
|
||||
11=800
|
||||
12=810
|
||||
13=820
|
||||
14=830
|
||||
15=900
|
||||
16=1100
|
||||
17=1200
|
||||
18=1500
|
||||
19=1210
|
||||
20=1300
|
||||
21=1400
|
||||
22=2100
|
||||
23=2800
|
||||
24=2700
|
||||
25=2710
|
||||
26=1700
|
||||
27=1800
|
||||
28=2200
|
||||
29=1000
|
||||
30=2900
|
||||
|
||||
@ -96,7 +96,9 @@ DOC3 = S_NASCOSTO //1900
|
||||
IMPNETTI = S_NORMALE //2200
|
||||
RAGGREFF = S_NORMALE //2300
|
||||
SPESEINC = S_NORMALE //2400
|
||||
ADDBOLLI = S_NORMALE //2500
|
||||
ADDBOLLI = S_NORMALE //2400
|
||||
CODNOTE = S_NORMALE //2500
|
||||
NOTECLI = S_NORMALE //2500
|
||||
CAUSMAG = S_OBBLIGATORIO //2900
|
||||
CAUSMAGC = S_DISABILITATO //2900
|
||||
DESCRMAG = S_NORMALE //2900
|
||||
@ -166,30 +168,32 @@ NHANDLER=0
|
||||
2200 = S_NORMALE
|
||||
2300 = S_NORMALE
|
||||
2400 = S_NORMALE
|
||||
2500 = S_NORMALE
|
||||
2900 = S_NORMALE
|
||||
4000 = S_NORMALE
|
||||
|
||||
[ORDINEGRUPPI]
|
||||
NGROUPS=22
|
||||
1=100
|
||||
2=200
|
||||
3=300
|
||||
4=400
|
||||
5=500
|
||||
6=600
|
||||
7=700
|
||||
8=800
|
||||
9=810
|
||||
10=820
|
||||
11=830
|
||||
12=1000
|
||||
13=1100
|
||||
14=1210
|
||||
15=1400
|
||||
16=1800
|
||||
17=1900
|
||||
18=2200
|
||||
20=2300
|
||||
21=2400
|
||||
2=2500
|
||||
3=200
|
||||
4=300
|
||||
5=400
|
||||
6=500
|
||||
7=600
|
||||
8=700
|
||||
9=2400
|
||||
10=2300
|
||||
11=800
|
||||
12=810
|
||||
13=820
|
||||
14=830
|
||||
15=1100
|
||||
16=1210
|
||||
17=1400
|
||||
18=1800
|
||||
19=1900
|
||||
20=2200
|
||||
21=1000
|
||||
22=2900
|
||||
|
||||
|
||||
@ -12,8 +12,13 @@ END
|
||||
GENERAL
|
||||
BEGIN
|
||||
OFFSET 0 0
|
||||
FONT "Courier New"
|
||||
SIZE 12
|
||||
// FONT "Courier New"
|
||||
// SIZE 12
|
||||
END
|
||||
|
||||
|
||||
SECTION GRAPHIC
|
||||
BEGIN
|
||||
END
|
||||
|
||||
SECTION HEADER ODD 6
|
||||
|
||||
189
ve/ordinec.src
189
ve/ordinec.src
@ -131,83 +131,64 @@ CODCONT2 = S_NORMALE
|
||||
DESCONT = S_DISABILITATO //810
|
||||
CODCAMP = S_NORMALE
|
||||
DESCAMP = S_DISABILITATO //820
|
||||
SCONTOPERC = S_NORMALE
|
||||
SCONTOPERC = S_NORMALE //830
|
||||
GRINDSPED = S_NORMALE //900
|
||||
CODINDSP = S_NORMALE
|
||||
CODINDSP = S_NORMALE //900
|
||||
RAGSOCSP = S_DISABILITATO //900
|
||||
INDSP = S_DISABILITATO
|
||||
CIVSP = S_DISABILITATO
|
||||
LOCALITASP = S_DISABILITATO
|
||||
CAPSP = S_DISABILITATO
|
||||
COMSP = S_DISABILITATO
|
||||
DENCOMSP = S_DISABILITATO
|
||||
PROVCOMSP = S_DISABILITATO
|
||||
STATOSP = S_DISABILITATO
|
||||
DESSTATOSP = S_DISABILITATO
|
||||
DATADOCRIF = S_NORMALE
|
||||
NUMDOCRIF = S_NORMALE
|
||||
CODAGVIS = S_NASCOSTO
|
||||
DESAGVIS = S_NASCOSTO //1110
|
||||
CODAG = S_NORMALE
|
||||
INDSP = S_DISABILITATO //900
|
||||
CIVSP = S_DISABILITATO //900
|
||||
LOCALITASP = S_DISABILITATO //900
|
||||
CAPSP = S_DISABILITATO //900
|
||||
COMSP = S_DISABILITATO //900
|
||||
DENCOMSP = S_DISABILITATO //900
|
||||
PROVCOMSP = S_DISABILITATO //900
|
||||
STATOSP = S_DISABILITATO //900
|
||||
DESSTATOSP = S_DISABILITATO //900
|
||||
DATADOCRIF = S_NORMALE //1000
|
||||
NUMDOCRIF = S_NOCHECK //1000
|
||||
CODAG = S_NORMALE //1100
|
||||
DESAG = S_NORMALE //1100
|
||||
CODZON = S_NORMALE //1100
|
||||
DESZON = S_NORMALE //1100
|
||||
CODSPMEZZO = S_OBBLIGATORIO
|
||||
CODSPMEZZO = S_OBBLIGATORIO //1200
|
||||
DESSPMEZZO = S_NORMALE //1200
|
||||
CODPORTO = S_NORMALE
|
||||
CODPORTO = S_NORMALE //1210
|
||||
DESPORTO = S_NORMALE //1210
|
||||
CODNOTESP1 = S_NORMALE
|
||||
CODNOTESP1 = S_NORMALE //1300
|
||||
DESNOTESP1 = S_NORMALE //1300
|
||||
CODNOTESP2 = S_NORMALE
|
||||
CODNOTESP2 = S_NASCOSTO //1300
|
||||
DESNOTESP2 = S_NASCOSTO //1300
|
||||
CAUSTRASP = S_OBBLIGATORIO
|
||||
DENCAUSTRASP = S_NORMALE
|
||||
CODVETT1 = S_NASCOSTO
|
||||
CODVETT2 = S_NASCOSTO
|
||||
CODVETT3 = S_NASCOSTO
|
||||
NOMEVETT1 = S_NASCOSTO
|
||||
NOMEVETT2 = S_NASCOSTO
|
||||
NOMEVETT3 = S_NASCOSTO
|
||||
NCOPIE = S_OBBLIGATORIO
|
||||
DATAPART = S_NASCOSTO
|
||||
ORAPART = S_NASCOSTO
|
||||
IMPPAGATO = S_NASCOSTO
|
||||
ACCSALDO = S_NASCOSTO
|
||||
DOC1 = S_NASCOSTO
|
||||
DOC2 = S_NASCOSTO
|
||||
DOC3 = S_NASCOSTO
|
||||
DATACONS = S_OBBLIGATORIO
|
||||
ASPBENI1 = S_NASCOSTO
|
||||
DESCRBENI1 = S_NASCOSTO
|
||||
ASPBENI2 = S_NASCOSTO
|
||||
DESCRBENI2 = S_NASCOSTO
|
||||
IMPNETTI = S_NASCOSTO
|
||||
RAGGREFF = S_NASCOSTO
|
||||
SPESEINC = S_NASCOSTO
|
||||
ADDBRB = S_NASCOSTO
|
||||
ADDBTR = S_NASCOSTO
|
||||
ADDBDE = S_NASCOSTO
|
||||
CODIVABRB = S_NASCOSTO
|
||||
CODIVABTR = S_NASCOSTO
|
||||
CODIVABTRE = S_NASCOSTO
|
||||
CODIVABDE = S_NASCOSTO
|
||||
|
||||
// fine modifiche
|
||||
|
||||
UMTARA = S_NASCOSTO
|
||||
TARA = S_NASCOSTO
|
||||
DESUMTARA = S_NASCOSTO
|
||||
UMPNETTO = S_NASCOSTO
|
||||
PNETTO = S_NASCOSTO
|
||||
DESUMPNETTO = S_NASCOSTO
|
||||
NCOLLI = S_NASCOSTO
|
||||
CAUSMAG1 = S_NASCOSTO
|
||||
DESCRMAG1 = S_NASCOSTO
|
||||
CAUSMAG2 = S_NASCOSTO
|
||||
DESCRMAG2 = S_NASCOSTO
|
||||
|
||||
//RAGGR = S_NORMALE
|
||||
//RAGSOCSP = S_NORMALE
|
||||
CAUSTRASP = S_NORMALE //1400
|
||||
DENCAUSTRASP = S_NORMALE //1400
|
||||
CODVETT1 = S_NORMALE //1500
|
||||
CODVETT2 = S_NASCOSTO //1500
|
||||
CODVETT3 = S_NASCOSTO //1500
|
||||
NOMEVETT1 = S_NORMALE //1500
|
||||
NOMEVETT2 = S_NASCOSTO //1500
|
||||
NOMEVETT3 = S_NASCOSTO //1500
|
||||
NCOPIE = S_NASCOSTO //1600
|
||||
IMPPAGATO = S_NORMALE //1800
|
||||
ACCSALDO = S_NASCOSTO //1800
|
||||
DOC1 = S_NASCOSTO //1900
|
||||
DOC2 = S_NASCOSTO //1900
|
||||
DOC3 = S_NASCOSTO //1900
|
||||
ASPBENI1 = S_OBBLIGATORIO //2100
|
||||
DESCRBENI1 = S_NORMALE //2100
|
||||
ASPBENI2 = S_NASCOSTO //2100
|
||||
DESCRBENI2 = S_NASCOSTO //2100
|
||||
IMPNETTI = S_NORMALE //2200
|
||||
RAGGR = S_NORMALE //2300
|
||||
RAGGREFF = S_NORMALE //2300
|
||||
SPESEINC = S_NORMALE //2400
|
||||
ADDBOLLI = S_NORMALE //2400
|
||||
CODNOTE = S_NORMALE //2500
|
||||
NOTECLI = S_NORMALE //2500
|
||||
CAUSMAG = S_OBBLIGATORIO //2900
|
||||
CAUSMAGC = S_DISABILITATO //2900
|
||||
DESCRMAG = S_NORMALE //2900
|
||||
DESCRMAGC = S_DISABILITATO //2900
|
||||
DATACONS = S_NORMALE //2000
|
||||
BLANK = S_DISABILITATO //4000
|
||||
|
||||
[DEFAULT]
|
||||
// NDEFAULTS=1
|
||||
@ -246,25 +227,57 @@ NHANDLER=0
|
||||
600 = S_NASCOSTO
|
||||
700 = S_NORMALE
|
||||
800 = S_NORMALE
|
||||
900 = S_NASCOSTO
|
||||
1000 = S_NASCOSTO
|
||||
1100 = S_NASCOSTO
|
||||
1200 = S_NASCOSTO
|
||||
1300 = S_NASCOSTO
|
||||
1400 = S_NASCOSTO
|
||||
1500 = S_NASCOSTO
|
||||
1600 = S_NORMALE
|
||||
1700 = S_NASCOSTO
|
||||
1800 = S_NASCOSTO
|
||||
1900 = S_NASCOSTO
|
||||
810 = S_NORMALE
|
||||
820 = S_NORMALE
|
||||
830 = S_NORMALE
|
||||
900 = S_NORMALE
|
||||
1000 = S_NORMALE
|
||||
1100 = S_NORMALE
|
||||
1200 = S_NORMALE
|
||||
1210 = S_NORMALE
|
||||
1300 = S_NORMALE
|
||||
1400 = S_NORMALE
|
||||
1500 = S_NORMALE
|
||||
1600 = S_NASCOSTO
|
||||
1800 = S_NORMALE
|
||||
1900 = S_NORMALE
|
||||
2000 = S_NORMALE
|
||||
2100 = S_NASCOSTO
|
||||
2200 = S_NASCOSTO
|
||||
2300 = S_NASCOSTO
|
||||
2400 = S_NASCOSTO
|
||||
2500 = S_NASCOSTO
|
||||
2600 = S_NASCOSTO
|
||||
2700 = S_NASCOSTO
|
||||
2800 = S_NASCOSTO
|
||||
2900 = S_NASCOSTO
|
||||
2100 = S_NORMALE
|
||||
2200 = S_NORMALE
|
||||
2300 = S_NORMALE
|
||||
2400 = S_NORMALE
|
||||
2500 = S_NORMALE
|
||||
2900 = S_NORMALE
|
||||
4000 = S_NORMALE
|
||||
|
||||
[ORDINEGRUPPI]
|
||||
NGROUPS=27
|
||||
1=100
|
||||
2=2500
|
||||
3=200
|
||||
4=300
|
||||
5=400
|
||||
6=500
|
||||
7=600
|
||||
8=700
|
||||
9=2400
|
||||
10=2300
|
||||
11=800
|
||||
12=810
|
||||
13=820
|
||||
14=830
|
||||
15=900
|
||||
16=1100
|
||||
17=1200
|
||||
18=1500
|
||||
19=1210
|
||||
20=1300
|
||||
21=1400
|
||||
22=2100
|
||||
23=1800
|
||||
24=2200
|
||||
25=1000
|
||||
26=2900
|
||||
27=2000
|
||||
|
||||
|
||||
|
||||
308
ve/ordinef.src
308
ve/ordinef.src
@ -84,127 +84,139 @@ COFI = S_DISABILITATO
|
||||
STATOPAIV = S_DISABILITATO
|
||||
PAIVA = S_DISABILITATO
|
||||
GOLEM = S_NORMALE
|
||||
INDCF = S_DISABILITATO
|
||||
CIVCF = S_DISABILITATO
|
||||
LOCALITACF = S_DISABILITATO
|
||||
// aggiunti 6
|
||||
CAPCF = S_DISABILITATO
|
||||
PROVCOM = S_DISABILITATO
|
||||
COMCF = S_DISABILITATO
|
||||
DENCOM = S_DISABILITATO
|
||||
STATOCF = S_DISABILITATO
|
||||
DESSTATOCF = S_DISABILITATO
|
||||
CODVAL1 = S_NORMALE
|
||||
CODVAL2 = S_NORMALE
|
||||
NOME_VAL1 = S_NORMALE
|
||||
NOME_VAL2 = S_NORMALE
|
||||
CAMBIO = S_NORMALE
|
||||
// aggiunto
|
||||
DATA_CAMBIO1 = S_DISABILITATO
|
||||
DATA_CAMBIO2 = S_DISABILITATO
|
||||
CODLIN = S_NORMALE
|
||||
DESLIN = S_DISABILITATO
|
||||
CODPAG = S_OBBLIGATORIO
|
||||
DESCODPAG = S_DISABILITATO
|
||||
DATAINSC = S_NORMALE
|
||||
//AGGIUNTE 5
|
||||
DATASCAD1 = S_DISABILITATO
|
||||
DATASCAD2 = S_DISABILITATO
|
||||
DATASCAD3 = S_DISABILITATO
|
||||
DATASCAD4 = S_DISABILITATO
|
||||
DATASCAD5 = S_DISABILITATO
|
||||
CODABIA = S_NASCOSTO
|
||||
CODCABA = S_NASCOSTO
|
||||
DESBANAPP = S_NASCOSTO
|
||||
CODABIP = S_NORMALE
|
||||
CODCABP = S_NORMALE
|
||||
DESBANPRE = S_DISABILITATO
|
||||
CODLIST1 = S_OBBLIGATORIO
|
||||
CODLIST2 = S_OBBLIGATORIO
|
||||
DESLIST = S_DISABILITATO
|
||||
// ???????????????????? ********
|
||||
CODCONT1 = S_NASCOSTO
|
||||
CODCONT2 = S_NASCOSTO
|
||||
CODCAMP = S_NASCOSTO
|
||||
SCONTOPERC = S_NASCOSTO
|
||||
CODINDSP = S_NASCOSTO
|
||||
INDSP = S_NASCOSTO
|
||||
CIVSP = S_NASCOSTO
|
||||
LOCALITASP = S_NASCOSTO
|
||||
// AGGIUNTI 6
|
||||
CAPSP = S_NASCOSTO
|
||||
COMSP = S_NASCOSTO
|
||||
DENCOMSP = S_NASCOSTO
|
||||
PROVCOMSP = S_NASCOSTO
|
||||
STATOSP = S_NASCOSTO
|
||||
DESSTATOSP = S_NASCOSTO
|
||||
DATADOCRIF = S_NASCOSTO
|
||||
NUMDOCRIF = S_NASCOSTO
|
||||
CODAGVIS = S_NASCOSTO
|
||||
CODAG = S_NASCOSTO
|
||||
CODSPMEZZO = S_NASCOSTO
|
||||
CODPORTO = S_NASCOSTO
|
||||
PORTO = S_NASCOSTO
|
||||
CODNOTESP1 = S_NASCOSTO
|
||||
CODNOTESP2 = S_NASCOSTO
|
||||
CAUSTRASP = S_NASCOSTO
|
||||
DENCAUSTRASP = S_NASCOSTO
|
||||
CODVETT1 = S_NASCOSTO
|
||||
CODVETT2 = S_NASCOSTO
|
||||
CODVETT3 = S_NASCOSTO
|
||||
NOMEVETT1 = S_NASCOSTO
|
||||
NOMEVETT2 = S_NASCOSTO
|
||||
NOMEVETT3 = S_NASCOSTO
|
||||
NCOPIE = S_OBBLIGATORIO
|
||||
DATAPART = S_NASCOSTO
|
||||
ORAPART = S_NASCOSTO
|
||||
IMPPAGATO = S_NASCOSTO
|
||||
ACCSALDO = S_NASCOSTO
|
||||
DOC1 = S_NASCOSTO
|
||||
DOC2 = S_NASCOSTO
|
||||
DOC3 = S_NASCOSTO
|
||||
DATACONS = S_OBBLIGATORIO
|
||||
ASPBENI1 = S_NASCOSTO
|
||||
DESCRBENI1 = S_NASCOSTO
|
||||
ASPBENI2 = S_NASCOSTO
|
||||
DESCRBENI2 = S_NASCOSTO
|
||||
IMPNETTI = S_NASCOSTO
|
||||
RAGGREFF = S_NASCOSTO
|
||||
SPESEINC = S_NASCOSTO
|
||||
ADDBRB = S_NASCOSTO
|
||||
ADDBTR = S_NASCOSTO
|
||||
ADDBDE = S_NASCOSTO
|
||||
CODIVABRB = S_NASCOSTO
|
||||
CODIVABTR = S_NASCOSTO
|
||||
CODIVABTRE = S_NASCOSTO
|
||||
CODIVABDE = S_NASCOSTO
|
||||
|
||||
// fine modifiche
|
||||
|
||||
UMTARA = S_NASCOSTO
|
||||
TARA = S_NASCOSTO
|
||||
DESUMTARA = S_NASCOSTO
|
||||
UMPNETTO = S_NASCOSTO
|
||||
PNETTO = S_NASCOSTO
|
||||
DESUMPNETTO = S_NASCOSTO
|
||||
NCOLLI = S_NASCOSTO
|
||||
CAUSMAG1 = S_NASCOSTO
|
||||
DESCRMAG1 = S_NASCOSTO
|
||||
CAUSMAG2 = S_NASCOSTO
|
||||
DESCRMAG2 = S_NASCOSTO
|
||||
|
||||
//RAGGR = S_NORMALE
|
||||
//RAGSOCSP = S_NORMALE
|
||||
GRRECAPITO = S_NORMALE //100
|
||||
INDCF = S_DISABILITATO //100
|
||||
CIVCF = S_DISABILITATO //100
|
||||
LOCALITACF = S_DISABILITATO //100
|
||||
CAPCF = S_DISABILITATO //100
|
||||
PROVCOM = S_DISABILITATO //100
|
||||
COMCF = S_DISABILITATO //100
|
||||
DENCOM = S_DISABILITATO //100
|
||||
STATOCF = S_DISABILITATO //100
|
||||
DESSTATOCF = S_DISABILITATO //100
|
||||
CODVAL1 = S_NORMALE //200
|
||||
CODVAL2 = S_NORMALE //200
|
||||
NOME_VAL1 = S_NORMALE //200
|
||||
NOME_VAL2 = S_NORMALE //200
|
||||
CAMBIO = S_NORMALE //200
|
||||
DATA_CAMBIO1 = S_NORMALE //200
|
||||
DATA_CAMBIO2 = S_NORMALE //200
|
||||
CODLIN = S_NORMALE //300
|
||||
DESLIN = S_NORMALE //300
|
||||
CODPAG = S_OBBLIGATORIO //400
|
||||
DESCODPAG = S_NORMALE //400
|
||||
GRSCADENZE = S_NORMALE //500
|
||||
DATAINSC = S_NORMALE //500
|
||||
DATASCAD1 = S_DISABILITATO //500
|
||||
DATASCAD2 = S_DISABILITATO //500
|
||||
DATASCAD3 = S_DISABILITATO //500
|
||||
DATASCAD4 = S_DISABILITATO //500
|
||||
DATASCAD5 = S_DISABILITATO //500
|
||||
CODABIA = S_OBBLIGATORIO //600
|
||||
CODCABA = S_OBBLIGATORIO //600
|
||||
DESBANAPP = S_NORMALE //600
|
||||
CODABIP = S_NORMALE //700
|
||||
CODCABP = S_NORMALE //700
|
||||
DESBANPRE = S_NORMALE //700
|
||||
CATVEN = S_NORMALE //800
|
||||
DESCATVEN = S_DISABILITATO //800
|
||||
CODLIST1 = S_NORMALE //800
|
||||
CODLIST2 = S_NORMALE //800
|
||||
DESLIST = S_DISABILITATO //800
|
||||
CODCONT1 = S_NORMALE //810
|
||||
CODCONT2 = S_NORMALE //810
|
||||
DESCONT = S_DISABILITATO //810
|
||||
CODCAMP = S_NORMALE //820
|
||||
DESCAMP = S_DISABILITATO //820
|
||||
SCONTOPERC = S_NORMALE //830
|
||||
GRINDSPED = S_NORMALE //900
|
||||
CODINDSP = S_NORMALE //900
|
||||
RAGSOCSP = S_DISABILITATO //900
|
||||
INDSP = S_DISABILITATO //900
|
||||
CIVSP = S_DISABILITATO //900
|
||||
LOCALITASP = S_DISABILITATO //900
|
||||
CAPSP = S_DISABILITATO //900
|
||||
COMSP = S_DISABILITATO //900
|
||||
DENCOMSP = S_DISABILITATO //900
|
||||
PROVCOMSP = S_DISABILITATO //900
|
||||
STATOSP = S_DISABILITATO //900
|
||||
DESSTATOSP = S_DISABILITATO //900
|
||||
DATADOCRIF = S_NASCOSTO //1000
|
||||
NUMDOCRIF = S_NASCOSTO //1000
|
||||
CODAGVIS = S_NASCOSTO //1110
|
||||
DESAGVIS = S_NASCOSTO //1110
|
||||
CODAG = S_NORMALE //1100
|
||||
DESAG = S_NORMALE //1100
|
||||
CODSPMEZZO = S_OBBLIGATORIO //1200
|
||||
DESSPMEZZO = S_NORMALE //1200
|
||||
CODPORTO = S_NORMALE //1210
|
||||
DESPORTO = S_NORMALE //1210
|
||||
CODNOTESP1 = S_NORMALE //1300
|
||||
DESNOTESP1 = S_NORMALE //1300
|
||||
CODNOTESP2 = S_NASCOSTO //1300
|
||||
DESNOTESP2 = S_NASCOSTO //1300
|
||||
CAUSTRASP = S_OBBLIGATORIO //1400
|
||||
DENCAUSTRASP = S_NORMALE //1400
|
||||
CODVETT1 = S_NORMALE //1500
|
||||
CODVETT2 = S_NASCOSTO //1500
|
||||
CODVETT3 = S_NASCOSTO //1500
|
||||
NOMEVETT1 = S_NORMALE //1500
|
||||
NOMEVETT2 = S_NASCOSTO //1500
|
||||
NOMEVETT3 = S_NASCOSTO //1500
|
||||
NCOPIE = S_NASCOSTO //1600
|
||||
GRPARTENZA = S_NORMALE //1700
|
||||
DATAPART = S_NORMALE //1700
|
||||
ORAPART = S_NORMALE //1700
|
||||
IMPPAGATO = S_NORMALE //1800
|
||||
ACCSALDO = S_NORMALE //1800
|
||||
DOC1 = S_NASCOSTO //1900
|
||||
DOC2 = S_NASCOSTO //1900
|
||||
DOC3 = S_NASCOSTO //1900
|
||||
DATACONS = S_NASCOSTO //2000
|
||||
ASPBENI1 = S_OBBLIGATORIO //2100
|
||||
DESCRBENI1 = S_NORMALE //2100
|
||||
ASPBENI2 = S_NASCOSTO //2100
|
||||
DESCRBENI2 = S_NASCOSTO //2100
|
||||
IMPNETTI = S_NORMALE //2200
|
||||
RAGGREFF = S_NORMALE //2300
|
||||
SPESEINC = S_NORMALE //2400
|
||||
ADDBOLLI = S_NORMALE //2400
|
||||
UMTARA = S_NORMALE //2710
|
||||
TARA = S_NORMALE //2710
|
||||
DESUMTARA = S_NASCOSTO //2710
|
||||
UMPNETTO = S_NORMALE //2700
|
||||
PNETTO = S_NORMALE //2700
|
||||
DESUMPNETTO = S_NASCOSTO //2700
|
||||
NCOLLI = S_NORMALE //2800
|
||||
DATACONS = S_NORMALE //2000
|
||||
CAUSMAG = S_NORMALE //2900
|
||||
DESCRMAG = S_DISABILITATO //2900
|
||||
CAUSMAGC = S_DISABILITATO //2900
|
||||
DESCRMAGC = S_DISABILITATO //2900
|
||||
BLANK = S_DISABILITATO //4000
|
||||
|
||||
[SHEET]
|
||||
NCOLS=4
|
||||
1=2
|
||||
2=5
|
||||
3=6||30
|
||||
4=9
|
||||
5=10
|
||||
6=13
|
||||
7=8
|
||||
NCOLS=20
|
||||
1=FR_CODMAG
|
||||
2=FR_CODDEP
|
||||
3=FR_CODART
|
||||
4=FR_LIV1
|
||||
5=FR_LIV2
|
||||
6=FR_LIV3
|
||||
7=FR_LIV4
|
||||
8=FR_DESCR
|
||||
9=FR_UMQTA
|
||||
10=FR_QTA
|
||||
11=FR_QTAEVASA
|
||||
12=FR_RIGAEVASA
|
||||
13=FR_PREZZO
|
||||
14=FR_SCONTO
|
||||
15=FR_PERCPROV
|
||||
16=FR_CODIVA
|
||||
17=FR_ADDIVA
|
||||
18=FR_CAUS
|
||||
19=FR_CODMAGC
|
||||
20=FR_CODDEPC
|
||||
|
||||
[RIGHE]
|
||||
NTIPIRIGA=3
|
||||
@ -241,13 +253,53 @@ NHANDLER=0
|
||||
1800 = S_NASCOSTO
|
||||
1900 = S_NASCOSTO
|
||||
2000 = S_NORMALE
|
||||
2100 = S_NASCOSTO
|
||||
2200 = S_NASCOSTO
|
||||
2300 = S_NASCOSTO
|
||||
2400 = S_NASCOSTO
|
||||
2500 = S_NASCOSTO
|
||||
2600 = S_NASCOSTO
|
||||
2700 = S_NASCOSTO
|
||||
2800 = S_NASCOSTO
|
||||
2900 = S_NASCOSTO
|
||||
2100 = S_NORMALE
|
||||
2200 = S_NORMALE
|
||||
2300 = S_NORMALE
|
||||
2400 = S_NORMALE
|
||||
2500 = S_NORMALE
|
||||
2700 = S_NORMALE
|
||||
2710 = S_NORMALE
|
||||
2800 = S_NORMALE
|
||||
2900 = S_NORMALE
|
||||
3000 = S_NORMALE
|
||||
3200 = S_NORMALE
|
||||
3400 = S_NORMALE
|
||||
|
||||
[ORDINEGRUPPI]
|
||||
NGROUPS=34
|
||||
1=100
|
||||
2=200
|
||||
3=300
|
||||
4=400
|
||||
5=500
|
||||
6=600
|
||||
7=700
|
||||
8=800
|
||||
9=810
|
||||
10=820
|
||||
11=830
|
||||
12=900
|
||||
13=1100
|
||||
14=1200
|
||||
15=1210
|
||||
16=1300
|
||||
17=1400
|
||||
18=1700
|
||||
19=2100
|
||||
20=2700
|
||||
21=2710
|
||||
22=2800
|
||||
23=1500
|
||||
24=1800
|
||||
25=2200
|
||||
26=2300
|
||||
27=2400
|
||||
28=3000
|
||||
29=3200
|
||||
30=2500
|
||||
31=3400
|
||||
32=1600
|
||||
33=2000
|
||||
34=2900
|
||||
|
||||
|
||||
@ -106,7 +106,8 @@ void TCond_vendita::set_iva(const TString & codiva)
|
||||
|
||||
bool TCond_vendita::cerca( int tiporicerca )
|
||||
{
|
||||
if( config_ditta().get_bool( "GES", "ve", tiporicerca ) )
|
||||
TConfig config_ditta(CONFIG_DITTA, "ve");
|
||||
if( config_ditta.get_bool( "GES", "ve", tiporicerca ) )
|
||||
{
|
||||
// Se h attiva la gestione contratti ...
|
||||
_condv.setkey( 1 );
|
||||
@ -120,7 +121,7 @@ bool TCond_vendita::cerca( int tiporicerca )
|
||||
if (codcont.empty())
|
||||
return FALSE;
|
||||
_condv.put("TIPO", "C");
|
||||
if(config_ditta().get_bool("GESCONCC", "ve"))
|
||||
if(config_ditta.get_bool("GESCONCC", "ve"))
|
||||
{
|
||||
_condv.put("TIPOCF", clifo().tipo());
|
||||
_condv.put("CODCF", clifo().codice());
|
||||
@ -137,7 +138,7 @@ bool TCond_vendita::cerca( int tiporicerca )
|
||||
_condv.put("TIPO", "L");
|
||||
// Se in ditta h abilitata la gestione della categoria di vendita in chiave
|
||||
// al listino, la carico con gioia
|
||||
if( config_ditta().get_bool("GESLISCV", "ve"))
|
||||
if( config_ditta.get_bool("GESLISCV", "ve"))
|
||||
_condv.put("CATVEN", testa().get(F_CATVEN));
|
||||
_condv.put("COD", codlist);
|
||||
}
|
||||
@ -195,18 +196,18 @@ bool TCond_vendita::cerca( int tiporicerca )
|
||||
}
|
||||
break;
|
||||
case 'R':
|
||||
_rcondv.put("CODRIGA", anamag().get( "RAGGFIS"));
|
||||
_rcondv.put("CODRIGA", _anamag.get( "RAGGFIS"));
|
||||
_rcondv.read();
|
||||
break;
|
||||
case 'S':
|
||||
{
|
||||
_rcondv.put( "CODRIGA", anamag().get("GRMERC"));
|
||||
_rcondv.put( "CODRIGA", _anamag.get("GRMERC"));
|
||||
_rcondv.read( );
|
||||
}
|
||||
break;
|
||||
case 'G':
|
||||
{
|
||||
_rcondv.put( "CODRIGA", anamag().get("GRMERC").left(3));
|
||||
_rcondv.put( "CODRIGA", _anamag.get("GRMERC").left(3));
|
||||
_rcondv.read( );
|
||||
}
|
||||
break;
|
||||
@ -253,7 +254,7 @@ real TCond_vendita::get_percprovv(char tipoprovv, const TString & codpr, TLocali
|
||||
val = age.get_real(AGE_PERCPROVV);
|
||||
break;
|
||||
case 'M':
|
||||
val = anamag().get_real(ANAMAG_PERCPROVV);
|
||||
val = _anamag.get_real(ANAMAG_PERCPROVV);
|
||||
break;
|
||||
case 'C':
|
||||
val = clifo().vendite().get_real(CFV_PERCPROVV);
|
||||
@ -324,17 +325,17 @@ real TCond_vendita::get_percprovv(char tipoprovv, const TString & codpr, TLocali
|
||||
campo.rpad(riga().field(FR_CODARTMAG).size());
|
||||
break;
|
||||
case 'E':
|
||||
campo = anamag().get(ANAMAG_GRMERC);
|
||||
campo.rpad(anamag().curr().length(ANAMAG_GRMERC));
|
||||
campo = _anamag.get(ANAMAG_GRMERC);
|
||||
campo.rpad(_anamag.curr().length(ANAMAG_GRMERC));
|
||||
campo.cut(3);
|
||||
break;
|
||||
case 'R':
|
||||
campo = anamag().get(ANAMAG_GRMERC);
|
||||
campo.rpad(anamag().curr().length(ANAMAG_GRMERC));
|
||||
campo = _anamag.get(ANAMAG_GRMERC);
|
||||
campo.rpad(_anamag.curr().length(ANAMAG_GRMERC));
|
||||
break;
|
||||
case 'F':
|
||||
campo = anamag().get(ANAMAG_RAGGFIS);
|
||||
campo.rpad(anamag().curr().length(ANAMAG_RAGGFIS));
|
||||
campo = _anamag.get(ANAMAG_RAGGFIS);
|
||||
campo.rpad(_anamag.curr().length(ANAMAG_RAGGFIS));
|
||||
break;
|
||||
default:
|
||||
campo.cut(0);
|
||||
@ -361,17 +362,17 @@ real TCond_vendita::get_percprovv(char tipoprovv, const TString & codpr, TLocali
|
||||
|
||||
void TCond_vendita::ricerca(bool load_um_only, bool load_scagl_only)
|
||||
{
|
||||
TString codart = anamag().get(ANAMAG_CODART);
|
||||
TString codart = _anamag.get(ANAMAG_CODART);
|
||||
const TString codriga = riga().get( FR_CODARTMAG );
|
||||
|
||||
_ivarid = clifo().vendite().get_bool(CFV_IVARID);
|
||||
_load_mask = !load_um_only && !load_scagl_only;
|
||||
|
||||
if(anamag().bad() || codriga != codart )
|
||||
if(_anamag.bad() || codriga != codart )
|
||||
{
|
||||
anamag().setkey(1);
|
||||
anamag().put("CODART", codriga);
|
||||
if (anamag().read() != NOERR)
|
||||
_anamag.setkey(1);
|
||||
_anamag.put("CODART", codriga);
|
||||
if (_anamag.read() != NOERR)
|
||||
{
|
||||
set_prezzo(ZERO);
|
||||
set_sconto("");
|
||||
@ -380,16 +381,16 @@ void TCond_vendita::ricerca(bool load_um_only, bool load_scagl_only)
|
||||
return;
|
||||
}
|
||||
}
|
||||
codart = umart().get( "CODART" );
|
||||
codart = _umart.get( "CODART" );
|
||||
const TString16 umriga(riga().get(FR_UMQTA));
|
||||
const TString16 um(umart().get("UM"));
|
||||
if (umart().bad() || codart != codriga || um != umriga)
|
||||
const TString16 um(_umart.get("UM"));
|
||||
if (_umart.bad() || codart != codriga || um != umriga)
|
||||
{
|
||||
umart().setkey(2);
|
||||
umart().put("CODART", codriga);
|
||||
umart().put("UM", um);
|
||||
if (umart().read != NOERR)
|
||||
umart().zero();
|
||||
_umart.setkey(2);
|
||||
_umart.put("CODART", codriga);
|
||||
_umart.put("UM", umriga);
|
||||
if (_umart.read() != NOERR)
|
||||
_umart.zero();
|
||||
}
|
||||
|
||||
const bool found_condv = cerca(A_CONTRATTI) || cerca(A_OFFERTE) || cerca(A_LISTINI);
|
||||
@ -404,17 +405,18 @@ void TCond_vendita::ricerca(bool load_um_only, bool load_scagl_only)
|
||||
_load_mask = !load_um_only && !load_scagl_only;
|
||||
}
|
||||
else
|
||||
set_prezzo(umart().get_real("PREZZO"));
|
||||
set_prezzo(_umart.get_real("PREZZO"));
|
||||
|
||||
|
||||
if (_ivarid)
|
||||
set_iva(anamag().get(ANAMAG_CODIVAR));
|
||||
set_iva(_anamag.get(ANAMAG_CODIVAR));
|
||||
else
|
||||
set_iva(anamag().get(ANAMAG_CODIVA));
|
||||
set_iva(_anamag.get(ANAMAG_CODIVA));
|
||||
|
||||
const char gestione = config_ditta().get_char( "GESSCORIGA", "ve" );
|
||||
const bool sco_scagl = config_ditta().get_bool("GESCOSCA", "ve");
|
||||
const bool sco_um_gest = config_ditta().get_bool("GESSCORIGAUM", "ve");
|
||||
TConfig config_ditta(CONFIG_DITTA, "ve");
|
||||
const char gestione = config_ditta.get_char( "GESSCORIGA", "ve" );
|
||||
const bool sco_scagl = config_ditta.get_bool("GESCOSCA", "ve");
|
||||
const bool sco_um_gest = config_ditta.get_bool("GESSCORIGAUM", "ve");
|
||||
|
||||
switch (gestione)
|
||||
{
|
||||
@ -432,17 +434,17 @@ void TCond_vendita::ricerca(bool load_um_only, bool load_scagl_only)
|
||||
_load_mask = !load_um_only && !load_scagl_only;
|
||||
}
|
||||
else
|
||||
set_sconto(anamag().get("SCONTO"));
|
||||
set_sconto(_anamag.get("SCONTO"));
|
||||
break;
|
||||
case 'A':
|
||||
{
|
||||
// Posiziono l'anagrafica
|
||||
const char rigakey = config_ditta().get_char( "SCORIGAKEY", "ve" );
|
||||
const char rigakey = config_ditta.get_char( "SCORIGAKEY", "ve" );
|
||||
|
||||
_sconti.setkey(1);
|
||||
_sconti.put("TIPO", "R");
|
||||
if( config_ditta().get_bool("GESSCORIGACV", "ve"))
|
||||
_sconti.put("CODCAT", clifo().vendite().get(CFV_CATVEN));
|
||||
if( config_ditta.get_bool("GESSCORIGACV", "ve"))
|
||||
_sconti.put("CODCAT", testa().get(F_CATVEN));
|
||||
if (sco_um_gest)
|
||||
_sconti.put("UM", riga().get( FR_UMQTA));
|
||||
_sconti.put("TIPORIGA", rigakey);
|
||||
@ -457,18 +459,18 @@ void TCond_vendita::ricerca(bool load_um_only, bool load_scagl_only)
|
||||
_sconti.read();
|
||||
break;
|
||||
case 'R':
|
||||
_sconti.put("CODART", anamag().get("RAGGFIS"));
|
||||
_sconti.read();
|
||||
_sconti.put("CODART", _anamag.get("RAGGFIS"));
|
||||
_sconti.read();
|
||||
break;
|
||||
case 'C':
|
||||
{
|
||||
_sconti.put( "CODART", anamag().get("GRMERC"));
|
||||
_sconti.put( "CODART", _anamag.get("GRMERC"));
|
||||
_sconti.read( );
|
||||
}
|
||||
break;
|
||||
case 'L':
|
||||
{
|
||||
_sconti.put("CODART", anamag().get("GRMERC").left(3));
|
||||
_sconti.put("CODART", _anamag.get("GRMERC").left(3));
|
||||
_sconti.read();
|
||||
}
|
||||
break;
|
||||
@ -533,7 +535,7 @@ void TCond_vendita::ricerca(bool load_um_only, bool load_scagl_only)
|
||||
real percprovv = ZERO;
|
||||
|
||||
if (seqric[0] == '-')
|
||||
seqric = config_ditta().get( "AGETIPOPERC", "ve" );
|
||||
seqric = config_ditta.get( "AGETIPOPERC", "ve" );
|
||||
|
||||
int len = seqric.len();
|
||||
|
||||
@ -663,11 +665,11 @@ void TCond_vendita::update_omaggi(bool full)
|
||||
}
|
||||
}
|
||||
|
||||
TCond_vendita::TCond_vendita(TCli_for * clifo, TConfig * ditta, TDocumento_mask * testa, TMask * riga,
|
||||
TLocalisamfile * anamag, TLocalisamfile * umart)
|
||||
: _clifo(clifo), _testa(testa), _riga(riga),
|
||||
TCond_vendita::TCond_vendita(TDocumento_mask * testa, TMask * riga)
|
||||
: _testa(testa), _riga(riga),
|
||||
_condv( LF_CONDV ), _rcondv( LF_RCONDV ), _sconti( LF_SCONTI ),
|
||||
_anamag(anamag), _umart(umart), _config_ditta(ditta), _ivarid(FALSE)
|
||||
_anamag(LF_ANAMAG), _umart(LF_UMART),
|
||||
_ivarid(FALSE), _load_mask(FALSE)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
29
ve/sconti.h
29
ve/sconti.h
@ -22,15 +22,15 @@ class TCond_vendita : public TObject
|
||||
real _prezzo;
|
||||
real _provv;
|
||||
real _molt_sconto;
|
||||
TCli_for * _clifo;
|
||||
TLocalisamfile _condv;
|
||||
TLocalisamfile _rcondv;
|
||||
TLocalisamfile * _anamag;
|
||||
TLocalisamfile _anamag;
|
||||
TLocalisamfile _sconti;
|
||||
TLocalisamfile * _umart;
|
||||
TConfig * _config_ditta;
|
||||
TDocumento_mask * _testa;
|
||||
TMask * _riga;
|
||||
TLocalisamfile _umart;
|
||||
|
||||
TDocumento_mask* _testa;
|
||||
TMask* _riga;
|
||||
|
||||
bool _load_mask;
|
||||
|
||||
bool cerca(int tiporicerca);
|
||||
@ -43,14 +43,11 @@ protected:
|
||||
void set_iva(const TString & codiva);
|
||||
void update_omaggi(bool full);
|
||||
|
||||
TConfig & config_ditta() const { CHECK(_config_ditta, "Configurazione ditta non inizializzata"); return * _config_ditta; }
|
||||
TDocumento_mask & testa() const { CHECK(_testa, "Maschera testata non inizializzata"); return * _testa; }
|
||||
TMask & riga() const { CHECK(_testa, "Maschera testata non inizializzata"); return * _riga; }
|
||||
TLocalisamfile & anamag() const { CHECK(_anamag, "Anagrafica di magazzino non inizializzata") ; return *_anamag; }
|
||||
TLocalisamfile & umart() const { CHECK(_umart, "Anagrafica di unita' di misura magazzino non inizializzata") ; return *_umart; }
|
||||
TMask & riga() const { CHECK(_riga, "Maschera riga non inizializzata"); return * _riga; }
|
||||
|
||||
public:
|
||||
TCli_for & clifo() const { CHECK(_clifo, "Cliente/fornitore non inizializzato"); return * _clifo; }
|
||||
TCli_for & clifo() const { return _testa->doc().clifor(); }
|
||||
bool set_sconto( const char * exp, bool signal = FALSE );
|
||||
const TString& get_sconto() const { return _sconto; }
|
||||
real sconto_val() const { return _molt_sconto;}
|
||||
@ -59,17 +56,15 @@ public:
|
||||
real get_percprovv(char tipoprovv, const TString & codpr, TLocalisamfile & age) const;
|
||||
const TString & get_iva() const { return _codiva; }
|
||||
|
||||
void set_clifo( TCli_for * clifo) { _clifo = clifo; }
|
||||
void set_config( TConfig * ditta) { _config_ditta = ditta; }
|
||||
// void set_clifo( TCli_for * clifo) { _clifo = clifo; }
|
||||
// void set_config( TConfig * ditta) { _config_ditta = ditta; }
|
||||
void set_testa( TDocumento_mask * testa ){ _testa = testa; }
|
||||
void set_riga( TMask * riga ){ _riga = riga; }
|
||||
void set_anamag(TLocalisamfile & anamag) { _anamag = &anamag; }
|
||||
void set_umart(TLocalisamfile & umart) { _umart = &umart; }
|
||||
|
||||
void ricerca(bool load_um_only = FALSE, bool load_scagl_only = FALSE);
|
||||
bool gestum() const { return _condv.get_bool("GESTUM"); }
|
||||
|
||||
TCond_vendita(TCli_for * clifo = NULL, TConfig * _ditta = NULL, TDocumento_mask * testa = NULL, TMask * riga = NULL,
|
||||
TLocalisamfile * anamag = NULL, TLocalisamfile * umart = NULL);
|
||||
TCond_vendita(TDocumento_mask* testa, TMask* riga);
|
||||
virtual ~TCond_vendita() {}
|
||||
};
|
||||
|
||||
|
||||
@ -11,8 +11,8 @@ END
|
||||
GENERAL
|
||||
BEGIN
|
||||
OFFSET 0 0
|
||||
FONT "Courier New"
|
||||
SIZE 12
|
||||
// FONT "Courier New"
|
||||
// SIZE 12
|
||||
END
|
||||
|
||||
|
||||
|
||||
@ -20,8 +20,8 @@ END
|
||||
GENERAL
|
||||
BEGIN
|
||||
OFFSET 0 0
|
||||
FONT "Courier New"
|
||||
SIZE 12
|
||||
// FONT "Courier New"
|
||||
// SIZE 12
|
||||
END
|
||||
|
||||
|
||||
|
||||
@ -17,8 +17,8 @@ END
|
||||
GENERAL
|
||||
BEGIN
|
||||
OFFSET 0 0
|
||||
FONT "Courier New"
|
||||
SIZE 12
|
||||
// FONT "Courier New"
|
||||
// SIZE 12
|
||||
END
|
||||
|
||||
|
||||
|
||||
892
ve/ve0100.cpp
892
ve/ve0100.cpp
File diff suppressed because it is too large
Load Diff
62
ve/ve0100.h
62
ve/ve0100.h
@ -16,39 +16,23 @@ class TMotore_application : public TRelation_application
|
||||
{
|
||||
TArray _file; // Tutti i fiels da usare
|
||||
|
||||
TDocumento * _doc;
|
||||
TCodice_numerazione * _cod_num;
|
||||
|
||||
// Puntatore al profilo del documento caricato
|
||||
TConfig * _pro;
|
||||
TConfig * _config_ditta;
|
||||
TConfig * _config_ditta;
|
||||
|
||||
// Puntatore alla maschera di ricerca
|
||||
TMask * _msk;
|
||||
TMask * _occas_mask;
|
||||
TDocumento_mask * _docmsk;
|
||||
// TMask * _occas_mask;
|
||||
|
||||
// puntatore alla relazione
|
||||
TRelation * _rel;
|
||||
|
||||
// Puntatore allo sheet delle righe documento
|
||||
TSheet_field * _sheet;
|
||||
TCond_vendita * _condv;
|
||||
|
||||
// Indica se il documento ha come soggetto un <C>liente o un <F>ornitore
|
||||
char _tipocf;
|
||||
TString16 _codnum;
|
||||
TString16 _tipodoc;
|
||||
|
||||
bool _ges_mag;
|
||||
bool _ges_dep;
|
||||
|
||||
TString16 _std_mag;
|
||||
TString16 _std_dep;
|
||||
|
||||
// Array di maschere documento
|
||||
|
||||
TAssoc_array _doc_masks;
|
||||
TLista_elaborazioni _elab;
|
||||
|
||||
// Ridefinizione dei metodi virtuali
|
||||
virtual bool user_create( );
|
||||
@ -61,7 +45,7 @@ class TMotore_application : public TRelation_application
|
||||
virtual int read( TMask& m );
|
||||
virtual int write( const TMask& m );
|
||||
virtual int rewrite( const TMask& m );
|
||||
virtual void ini2mask(TConfig& ini, TMask& msk, bool query);
|
||||
virtual void print();
|
||||
|
||||
// Funzioni da associare ad ogni procedura
|
||||
int user_function( int index );
|
||||
@ -74,35 +58,11 @@ protected:
|
||||
void close_files() { _file.destroy(); }
|
||||
virtual void on_firm_change();
|
||||
|
||||
// Procedure e funzioni per la gestione della maschera e dei files
|
||||
void update_profile();
|
||||
|
||||
// Procedure e funzioni per la gestione degli stati
|
||||
int stato_corrente( );
|
||||
|
||||
// Handle che ritorna la maschera per le righe
|
||||
static TMask * ss_getmask( int numriga, TMask& fullmask);
|
||||
|
||||
// Handler che gestisce la richiesta del tipo riga in inserimento
|
||||
static bool ss_handler( TSheet_field& ss, int r, KEY key );
|
||||
|
||||
// Handler per la maschera di ricerca
|
||||
static bool ndoc_handler( TMask_field& f, KEY key );
|
||||
static bool num_handler( TMask_field& f, KEY key );
|
||||
static bool tip_handler( TMask_field& f, KEY key );
|
||||
static bool occas_code_handler(TMask_field& f, KEY key);
|
||||
|
||||
// Handler per la maschera di modifica
|
||||
static bool clifo_handler( TMask_field& f, KEY key );
|
||||
static bool occas_handler( TMask_field& f, KEY key );
|
||||
static bool elabora_handler( TMask_field& f, KEY key );
|
||||
static bool codlist_handler( TMask_field& f, KEY key );
|
||||
static bool codcont_handler( TMask_field& f, KEY key );
|
||||
static bool codcamp_handler( TMask_field& f, KEY key );
|
||||
static bool print_handler( TMask_field& f, KEY key );
|
||||
|
||||
// Configurazione dello sheet dato il profilo
|
||||
void configura_sheet( TSheet_field& sheet, TConfig& config );
|
||||
|
||||
// caricamento Inifile
|
||||
void ini2mask(TConfig& ini, TMask& m, bool query);
|
||||
@ -112,18 +72,18 @@ public:
|
||||
|
||||
// Funzioni di accesso alle variabili private
|
||||
|
||||
TConfig & pro() { CHECK( _pro, "Profilo del documento nullo!" ); return *_pro; }
|
||||
const TFilename & proname() { return _pro->name(); }
|
||||
TMask & query_mask() { CHECK( _msk, "Maschera di ricerca nulla!" ); return *_msk; }
|
||||
TMask & edit_mask() { return (TMask &) _doc_masks[_doc->tipo().codice()]; }
|
||||
TDocumento_mask & edit_mask() { CHECK( _docmsk, "Maschera di edit nulla!" ); return *_docmsk; }
|
||||
TRelation & rel() { CHECK( _rel, "Relazione nulla!" ); return *_rel; }
|
||||
TSheet_field & sheet() { CHECK( _sheet, "Sheet nullo!" ); return *_sheet; }
|
||||
TCond_vendita & condv() { return *_condv; }
|
||||
TSheet_field & sheet() { return edit_mask().sheet(); }
|
||||
TConfig & config_ditta() {return *_config_ditta; }
|
||||
TLista_elaborazioni & elab() { return _elab; }
|
||||
TDocumento & doc() {return *_doc; }
|
||||
TDocumento & doc() {return edit_mask().doc(); }
|
||||
|
||||
// Operazione
|
||||
TMotore_application( ) { }
|
||||
virtual ~TMotore_application( ) { }
|
||||
|
||||
virtual const char* get_next_key( );
|
||||
|
||||
const char tipocf( ) { return _tipocf; }
|
||||
void tipocf( const char tcf ) { _tipocf = tcf; }
|
||||
|
||||
@ -8,12 +8,12 @@ PAGE "Gestione documenti" 1 1 60 14
|
||||
|
||||
GROUPBOX DLG_NULL 78 5
|
||||
BEGIN
|
||||
PROMPT 1 0 ""
|
||||
PROMPT 1 0 "Estremi del documento"
|
||||
END
|
||||
|
||||
STRING F_CODNUM 4
|
||||
BEGIN
|
||||
PROMPT 2 1 "Cod. num. "
|
||||
PROMPT 2 1 "Numerazione "
|
||||
FIELD CODNUM
|
||||
HELP "Codice numerazione"
|
||||
USE %NUM
|
||||
@ -42,7 +42,7 @@ PAGE "Gestione documenti" 1 1 60 14
|
||||
|
||||
STRING F_TIPODOC 4
|
||||
BEGIN
|
||||
PROMPT 2 2 "Tipo doc. "
|
||||
PROMPT 2 2 "Tipo "
|
||||
FIELD TIPODOC
|
||||
HELP "Codice tipo documento"
|
||||
USE %TIP
|
||||
@ -77,9 +77,10 @@ PAGE "Gestione documenti" 1 1 60 14
|
||||
|
||||
NUMBER F_NDOC 6
|
||||
BEGIN
|
||||
PROMPT 24 3 "Numero doc. "
|
||||
PROMPT 24 3 "Numero "
|
||||
FIELD NDOC
|
||||
USE LF_DOC
|
||||
USE LF_DOC
|
||||
JOIN LF_CLIFO TO LF_DOC INTO TIPOCF==TIPOCF CODCF==CODCF
|
||||
INPUT ANNO F_ANNO SELECT
|
||||
INPUT PROVV F_PROVV SELECT
|
||||
INPUT CODNUM F_CODNUM SELECT
|
||||
@ -89,6 +90,10 @@ PAGE "Gestione documenti" 1 1 60 14
|
||||
DISPLAY "Provv" PROVV
|
||||
DISPLAY "Tipo" TIPODOC
|
||||
DISPLAY "N.Doc. " NDOC
|
||||
DISPLAY "Data\ndocumento" DATADOC
|
||||
DISPLAY "C/F" TIPOCF
|
||||
DISPLAY "Codice" CODCF
|
||||
DISPLAY "Ragione Sociale@50" LF_CLIFO->RAGSOC
|
||||
OUTPUT F_NDOC NDOC
|
||||
OUTPUT F_STATO STATO
|
||||
OUTPUT F_TIPODOC TIPODOC
|
||||
|
||||
@ -128,7 +128,8 @@ END
|
||||
NUMBER F_NDOC_ELAB 6
|
||||
BEGIN
|
||||
PROMPT 24 11 "Numero doc. "
|
||||
USE LF_DOC SELECT (TIPOCF==#F_TIPOCF_ELAB)&&(CODCF==#F_CODCF_ELAB)
|
||||
USE LF_DOC
|
||||
JOIN LF_CLIFO TO LF_DOC INTO TIPOCF==TIPOCF CODCF==CODCF
|
||||
INPUT PROVV F_PROVV_ELAB SELECT
|
||||
INPUT ANNO F_ANNO_ELAB SELECT
|
||||
INPUT CODNUM F_CODNUM_ELAB SELECT
|
||||
@ -138,10 +139,15 @@ BEGIN
|
||||
DISPLAY "Provv" PROVV
|
||||
DISPLAY "Tipo" TIPODOC
|
||||
DISPLAY "N.Doc. " NDOC
|
||||
DISPLAY "Data\ndocumento" DATADOC
|
||||
DISPLAY "C/F" TIPOCF
|
||||
DISPLAY "Codice" CODCF
|
||||
DISPLAY "Ragione Sociale@50" LF_CLIFO->RAGSOC
|
||||
OUTPUT F_NDOC_ELAB NDOC
|
||||
CHECKTYPE NORMAL
|
||||
FLAG "R"
|
||||
WARNING "Documento inesistente o incompatibile"
|
||||
ADD RUN ve0 -1
|
||||
END
|
||||
|
||||
LISTBOX F_PROVV_ELAB 14
|
||||
|
||||
254
ve/ve0300.cpp
254
ve/ve0300.cpp
@ -1475,34 +1475,232 @@ void TMask_generator::genera( const TString& profilo )
|
||||
if ( _m->_pageopen == TRUE )
|
||||
{
|
||||
_m->end( );
|
||||
intestazione_pagina( );
|
||||
}
|
||||
|
||||
|
||||
// Generazione del listbox per i tipi di riga da aggiungere nello sheet
|
||||
_m->control ( T_LISTA, F_LBTIPORIGA, 30 );
|
||||
_m->begin( );
|
||||
_m->prompt( 2, 6, "Tipo riga da aggiungere " );
|
||||
_m->end( );
|
||||
|
||||
// Generazione dello sheet : vedi il profilo
|
||||
TScanner sheet_in( "ve0300b.dat" );
|
||||
_m->_out << "SPREADSHEET " << F_SHEET << "\n";
|
||||
_m->begin( );
|
||||
_m->prompt( 2, 7 );
|
||||
do_events();
|
||||
for( i = 0; i < _tab0300b.items( ); i ++ )
|
||||
genera_item_sheet( _tab0300b.row( i ) );
|
||||
_m->end( );
|
||||
|
||||
_m->end( );
|
||||
|
||||
// Generazione pagina dei piedi
|
||||
{
|
||||
TToken_string s(_pro->get("CAMPICALC", "MAIN"));
|
||||
const bool usefiles = _tablefile.empty();
|
||||
|
||||
if (s.not_empty())
|
||||
|
||||
_m->control( T_BOTTONE, DLG_DELREC, 1002 );
|
||||
_m->begin( );
|
||||
_m->prompt( -25, -1, "~Elimina" );
|
||||
_m->message( "EXIT,127" );
|
||||
_m->end( );
|
||||
|
||||
_m->control( T_BOTTONE, DLG_ELABORA, 1002 );
|
||||
_m->begin( );
|
||||
_m->prompt( -35, -1, "E~labora" );
|
||||
// _m->message( "EXIT,345" );
|
||||
_m->end( );
|
||||
|
||||
_m->control( T_BOTTONE, DLG_PRINT, 1002 );
|
||||
_m->begin( );
|
||||
_m->prompt( -45, -1 );
|
||||
_m->message( "EXIT,20082" );
|
||||
_m->end( );
|
||||
|
||||
_m->control( T_BOTTONE, DLG_CANCEL, 1002 );
|
||||
_m->begin( );
|
||||
_m->prompt( -55, -1 );
|
||||
_m->message( "EXIT,27" );
|
||||
_m->end( );
|
||||
|
||||
// End della toolbar
|
||||
_m->end( );
|
||||
|
||||
|
||||
do_events();
|
||||
// Header della prima pagina
|
||||
|
||||
_m->pagina( _m->page( ));
|
||||
|
||||
_m->control( T_CORNICE, DLG_NULL, 7806 );
|
||||
_m->begin( );
|
||||
_m->prompt( 1, 0, "" );
|
||||
_m->end( );
|
||||
|
||||
_m->control( T_STRINGA, F_CODNUM, 4 );
|
||||
_m->begin( );
|
||||
_m->prompt( 2, 1, "Cod. num. " );
|
||||
_m->field("CODNUM");
|
||||
_m->use("%NUM", 1);
|
||||
temp_s.format("CODTAB %d", F_CODNUM);
|
||||
_m->input(temp_s);
|
||||
_m->display("\"Codice\" CODTAB~\"Descrizione@50\" S0");
|
||||
temp_s.format("%d S0", F_DESNUM);
|
||||
_m->output(temp_s);
|
||||
_m->check(S_NORMALE);
|
||||
_m->flag( "GDU" );
|
||||
_m->message( "CO,2@" );
|
||||
_m->end( );
|
||||
|
||||
_m->control( T_STRINGA, F_DESNUM, 50 );
|
||||
_m->begin( );
|
||||
_m->prompt( 24, 1 );
|
||||
_m->flag( "GD" );
|
||||
_m->message( "CO,3@" );
|
||||
_m->end( );
|
||||
|
||||
_m->control( T_STRINGA, F_TIPODOC, 4 );
|
||||
_m->begin( );
|
||||
_m->field( "TIPODOC" );
|
||||
_m->prompt( 2, 2, "Tipo doc. " );
|
||||
_m->use("%TIP" , 1);
|
||||
temp_s.format("CODTAB %d", F_TIPODOC);
|
||||
_m->input(temp_s);
|
||||
_m->display("\"Codice\" CODTAB~\"Descrizione@50\" S0");
|
||||
temp_s.format("%d S0", F_DESTIPODOC);
|
||||
_m->output(temp_s);
|
||||
_m->check(S_NORMALE);
|
||||
_m->flag( "GDU" );
|
||||
_m->message( "CO,4@" );
|
||||
_m->end( );
|
||||
|
||||
_m->control( T_LISTA, F_TIPOCF, 9 );
|
||||
_m->begin( );
|
||||
_m->prompt( 100, 100, "" );
|
||||
_m->field( "TIPOCF" );
|
||||
if ( tipocf == "C" )
|
||||
_m->item("C|Cliente");
|
||||
else
|
||||
_m->item("F|Fornitore");
|
||||
_m->flag( "D" );
|
||||
_m->end( );
|
||||
|
||||
_m->control( T_STRINGA, F_PROVV, 1 );
|
||||
_m->begin( );
|
||||
_m->prompt( 100, 100, "<D><P> " );
|
||||
_m->field( "PROVV" );
|
||||
_m->flag( "D" );
|
||||
_m->end( );
|
||||
|
||||
_m->control( T_STRINGA, F_DESTIPODOC, 50 );
|
||||
_m->begin( );
|
||||
_m->prompt( 24, 2 );
|
||||
_m->flag( "GD" );
|
||||
_m->message( "CO,5@" );
|
||||
_m->end( );
|
||||
|
||||
_m->control( T_STRINGA, F_ANNO, 4 );
|
||||
_m->begin( );
|
||||
_m->prompt( 2, 3, "Esercizio " );
|
||||
_m->field( "ANNO" );
|
||||
_m->flag( "GD" );
|
||||
_m->message( "CO,9@" );
|
||||
_m->end( );
|
||||
|
||||
_m->control( T_NUMERO, F_NDOC, 6 );
|
||||
_m->begin( );
|
||||
_m->prompt( 24, 3, "Numero doc. " );
|
||||
_m->field( "NDOC" );
|
||||
_m->message( "CO,6@" );
|
||||
_m->flag( "GDR" );
|
||||
_m->end( );
|
||||
|
||||
_m->control( T_DATA, F_DATADOC );
|
||||
_m->begin( );
|
||||
_m->prompt( 46, 3, "Data " );
|
||||
_m->field( "DATADOC" );
|
||||
TString m("CO,7@");
|
||||
_m->message(m);
|
||||
// _m->flag( "A" );
|
||||
_m->end( );
|
||||
|
||||
_m->control( T_NUMERO, F_STATO, 1 );
|
||||
_m->begin( );
|
||||
_m->prompt( 67, 3, "Stato " );
|
||||
_m->field( "STATO" );
|
||||
_m->message( "CO,8@" );
|
||||
_m->flag( "DG" );
|
||||
_m->end( );
|
||||
|
||||
_m->control( T_STRINGA, F_CODCF, 6 );
|
||||
_m->begin( );
|
||||
if ( tipocf == "C" )
|
||||
{
|
||||
_m->prompt( 2, 4, "Cliente " );
|
||||
_m->warning( "Cliente assente" );
|
||||
_m->help( "Codice del cliente del documento" );
|
||||
}
|
||||
else
|
||||
{
|
||||
_m->prompt( 2, 4, "Fornitore " );
|
||||
_m->warning( "Fornitore assente" );
|
||||
_m->help( "Codice del fornitore del documento" );
|
||||
}
|
||||
_m->flag( "R" );
|
||||
_m->field( "CODCF" );
|
||||
_m->group( 1 );
|
||||
_m->use( LF_CLIFO, 1 );
|
||||
temp_s.format( "TIPOCF \"%s\"~CODCF %d", (const char *)tipocf, F_CODCF);
|
||||
_m->input( temp_s );
|
||||
_m->display( "\"Codice\" CODCF~\"Ragione Sociale@50\" RAGSOC~\"Partita IVA@12\" PAIV~\"Sospeso\" SOSPESO" );
|
||||
temp_s.format( "%d CODCF~%d RAGSOC", F_CODCF, F_RAGSOC );
|
||||
_m->output( temp_s );
|
||||
_m->check( S_OBBLIGATORIO );
|
||||
temp_s.format( "ADD RU cg0 -1 %s", (const char *)tipocf);
|
||||
_m->outline( temp_s );
|
||||
_m->message( "CO,10@" );
|
||||
_m->end( );
|
||||
|
||||
_m->control( T_STRINGA, F_RAGSOC, 50 );
|
||||
_m->begin( );
|
||||
if ( tipocf == "C" )
|
||||
{
|
||||
_m->warning( "Cliente assente" );
|
||||
_m->help( "Ragione sociale del cliente del documento" );
|
||||
}
|
||||
else
|
||||
{
|
||||
_m->warning( "Fornitore assente" );
|
||||
_m->help( "Ragione sociale del fornitore del documento" );
|
||||
}
|
||||
_m->prompt( 24, 4, "" );
|
||||
_m->group( 1 );
|
||||
_m->use( LF_CLIFO, 2 );
|
||||
temp_s.format( "TIPOCF \"%s\"~RAGSOC %d", (const char *)tipocf, F_RAGSOC );
|
||||
_m->input( temp_s );
|
||||
_m->display( "\"Ragione Sociale@50\" RAGSOC~\"Partita IVA@12\" PAIV~\"Codice\" CODCF" );
|
||||
temp_s.format( "%d CODCF~%d RAGSOC", F_CODCF, F_RAGSOC );
|
||||
_m->output( temp_s );
|
||||
_m->check( S_OBBLIGATORIO );
|
||||
temp_s.format( "ADD RU cg0 -1 %s", (const char *)tipocf);
|
||||
_m->outline( temp_s );
|
||||
_m->message( "CO,11@" );
|
||||
_m->end( );
|
||||
_m->line( MASK_FIRST_LINE );
|
||||
|
||||
_m->_pageopen = TRUE;
|
||||
|
||||
// Generazione
|
||||
|
||||
// Scorro l'array dei gruppi, e ne creo una copia ordinata
|
||||
// con solo i gruppi visibili
|
||||
|
||||
TArray sortedgroups;
|
||||
TString16 chiave, chiavegruppo;
|
||||
last = _pro->get_int( "NGROUPS", "ORDINEGRUPPI" );
|
||||
for( i = 1; i <= last; i ++ )
|
||||
{
|
||||
do_events();
|
||||
chiave.format( "%d", i );
|
||||
const TString key(_pro->get( chiave, "ORDINEGRUPPI" ));
|
||||
|
||||
if (key.not_empty())
|
||||
{
|
||||
if (isdigit(key[0]))
|
||||
{
|
||||
chiavegruppo.GROUPKEY(atoi(key));
|
||||
if( _gruppi.is_key( chiavegruppo ) )
|
||||
sortedgroups.add( _gruppi[ (chiavegruppo) ] );
|
||||
}
|
||||
else
|
||||
sortedgroups.add(key);
|
||||
}
|
||||
}
|
||||
|
||||
TString80 message;
|
||||
|
||||
message.format("Generazione profilo : %s", (const char *) profilo);
|
||||
_bar = new TProgind(sortedgroups.items(), message, FALSE, TRUE);
|
||||
sortedgroups.for_each( genera_gruppo );
|
||||
delete _bar;
|
||||
if ( _m->_pageopen == TRUE )
|
||||
{
|
||||
intestazione_pagina( );
|
||||
TTable* frd = NULL;
|
||||
|
||||
@ -1195,7 +1195,7 @@ Y=0
|
||||
FIELDNAME=CODNOTE
|
||||
MSKID=F_CODNOTE
|
||||
TYPE=T_STRINGA
|
||||
PROMPT="Cod.Note "
|
||||
PROMPT="Cod. Note "
|
||||
SIZE=2
|
||||
USE=%NOT
|
||||
INPUT=CODTAB F_CODNOTE
|
||||
@ -1310,7 +1310,8 @@ Y=0
|
||||
FIELDNAME=DATACONS
|
||||
MSKID=F_DATACONS
|
||||
TYPE=T_DATA
|
||||
PROMPT="Data consegna "
|
||||
PROMPT="Data consegna "
|
||||
SPECIAL=CH REQUIRED
|
||||
|
||||
[ASPBENI1]
|
||||
GROUP=2100
|
||||
@ -1386,7 +1387,7 @@ Y=0
|
||||
FIELDNAME=PERCSPINC
|
||||
MSKID=151
|
||||
TYPE=T_NUMERO
|
||||
PROMPT="% spese incasso "
|
||||
PROMPT="% spese incasso "
|
||||
SIZE=602
|
||||
|
||||
[ADDBOLLI]
|
||||
|
||||
@ -73,7 +73,7 @@ class TDocumento_form : public TForm
|
||||
TTable *_tip;
|
||||
TRelation &_firmrel; // relazione di gestione dei dati della ditta corrente
|
||||
TString _module; // codice del modulo di carta associato a questo al form
|
||||
TCond_vendita * _condv;
|
||||
|
||||
TString_array _exclude_array_t; // array di tipi riga da escludere dalla stampa
|
||||
TString_array _exclude_array_a; // array di articoli da escludere dalla stampa
|
||||
TDocumentoEsteso * _doc; // Documento da stampare
|
||||
@ -165,9 +165,10 @@ TDocumento_form::TDocumento_form(TRectype&/*TDocumentoEsteso**/ doc, TRelation&
|
||||
read(nomeform);
|
||||
_cli_loaded= FALSE;
|
||||
_is_lista = FALSE;
|
||||
_condv = new TCond_vendita(NULL);
|
||||
_doc = new TDocumentoEsteso(doc, _condv); // istanzia TDocumentoEsteso
|
||||
_condv->set_clifo(&_doc->clifor());
|
||||
// _doc = new TDocumentoEsteso(doc, _condv); // istanzia TDocumentoEsteso
|
||||
// _condv = new TCond_vendita(NULL);
|
||||
// _condv->set_clifo(&_doc->clifor());
|
||||
_doc = new TDocumentoEsteso(doc); // istanzia TDocumentoEsteso
|
||||
_docfile = new TDocisamfile(_doc);
|
||||
_rdocfile = new TRDocisamfile(_doc);
|
||||
relation()->replace(_docfile,0);
|
||||
@ -852,6 +853,7 @@ class TStampaDoc_application: public TApplication
|
||||
TRelation *_firmrel; // puntatore alla relazione che gestisce i dati della ditta corrente
|
||||
TDocumento_form *_form; // puntatore al form di stampa
|
||||
TArray _file;
|
||||
TMask * _selection_mask;
|
||||
|
||||
protected:
|
||||
void open_files(int logicnum, ...);
|
||||
@ -886,17 +888,31 @@ void TStampaDoc_application::print_selected()
|
||||
|
||||
doc.put(DOC_CODNUM, _codnum); // compone la chiave per il record di inizio cursore
|
||||
doc.put(DOC_ANNO, _anno);
|
||||
doc.put(DOC_PROVV, _provv);
|
||||
doc.put(DOC_NDOC, _dalnum);
|
||||
if (!order_by_num) doc.put(DOC_DATADOC, _dadata);
|
||||
doc.put(DOC_PROVV, _provv);
|
||||
arec = doc.curr();
|
||||
if (order_by_num)
|
||||
doc.put(DOC_NDOC, _dalnum);
|
||||
else
|
||||
doc.put(DOC_DATADOC, _dadata);
|
||||
doc.setkey(_key);
|
||||
doc.read(); // trova il record iniziale
|
||||
darec = doc.curr();
|
||||
doc.put(DOC_NDOC, _alnum);
|
||||
if (!order_by_num) doc.put(DOC_DATADOC, _adata);
|
||||
int err = doc.read(); // trova il record finale
|
||||
if (err == _iseof) doc.last();
|
||||
else if (err == _iskeynotfound) doc.prev();
|
||||
doc.curr() = arec;
|
||||
if (order_by_num)
|
||||
{
|
||||
doc.put(DOC_NDOC, _alnum);
|
||||
if (doc.read() == _iskeynotfound) // trova il record finale
|
||||
doc.prev();
|
||||
}
|
||||
else
|
||||
{
|
||||
doc.put(DOC_DATADOC, _adata); // trova il record finale
|
||||
doc.put(DOC_NDOC, 999999L);
|
||||
int err = doc.read(_isgteq);
|
||||
if (err == NOERR)
|
||||
err = doc.prev();
|
||||
}
|
||||
|
||||
arec = doc.curr();
|
||||
|
||||
if (arec < darec)
|
||||
@ -1074,6 +1090,7 @@ bool TStampaDoc_application::date2num_handler(TMask_field& f, KEY key)
|
||||
bool TStampaDoc_application::range_handler(TMask_field& f, KEY key)
|
||||
{
|
||||
bool rt = TRUE;
|
||||
TMask& m = f.mask();
|
||||
if (key == K_TAB && f.focusdirty())
|
||||
{
|
||||
const long lim_sup = atol(f.get());
|
||||
@ -1108,7 +1125,16 @@ bool TStampaDoc_application::create()
|
||||
const int argc = TApplication::argc();
|
||||
|
||||
_is_lista = argc == 3 && argv(2)[0] == 'L';
|
||||
on_firm_change();
|
||||
on_firm_change();
|
||||
_selection_mask = new TMask("ve1100a");
|
||||
_selection_mask->set_handler(F_DA_DATADOC, date2num_handler);
|
||||
_selection_mask->set_handler(F_A_DATADOC, date2num_handler);
|
||||
_selection_mask->set_handler(F_A_NDOC, range_handler);
|
||||
if (_is_lista)
|
||||
{
|
||||
_selection_mask->hide(F_NCOPIE);
|
||||
_selection_mask->set_caption("Lista Documenti");
|
||||
}
|
||||
if (argc>3)
|
||||
{ // lettura dei parametri iniziali dalla linea di comando
|
||||
_codnum= argv(2); // il primo parametro è il codice di numerazione
|
||||
@ -1149,6 +1175,7 @@ bool TStampaDoc_application::create()
|
||||
bool TStampaDoc_application::destroy()
|
||||
{
|
||||
delete _firmrel; // distruzione della relazione di gestione della ditta corrente
|
||||
delete _selection_mask;
|
||||
return TApplication::destroy();
|
||||
}
|
||||
|
||||
@ -1161,17 +1188,9 @@ void TStampaDoc_application::on_firm_change()
|
||||
|
||||
bool TStampaDoc_application::select()
|
||||
{
|
||||
TMask m("ve1100a");
|
||||
TMask & m = * _selection_mask;
|
||||
|
||||
if (_is_lista)
|
||||
{
|
||||
m.hide(F_NCOPIE);
|
||||
m.set_caption("Lista Documenti");
|
||||
}
|
||||
TString wdate;
|
||||
m.set_handler(F_DA_DATADOC, date2num_handler);
|
||||
m.set_handler(F_A_DATADOC, date2num_handler);
|
||||
m.set_handler(F_A_NDOC, range_handler);
|
||||
m.reset();
|
||||
if (m.run() == K_ENTER)
|
||||
{
|
||||
_codnum= m.get(F_CODNUM); // lettura dei dati dalla maschera
|
||||
@ -1180,15 +1199,18 @@ bool TStampaDoc_application::select()
|
||||
_dalnum= m.get_long(F_DA_NDOC);
|
||||
_alnum= m.get_long(F_A_NDOC);
|
||||
_ncopie = m.get_int(F_NCOPIE);
|
||||
if (_alnum == 0) _alnum = 9999999L;
|
||||
wdate = m.get(F_DA_DATADOC);
|
||||
if (wdate.not_empty()) _dadata = wdate;
|
||||
else _dadata = botime;
|
||||
wdate = m.get(F_A_DATADOC);
|
||||
if (wdate.not_empty()) _adata = wdate;
|
||||
else _adata = eotime;
|
||||
_key = BY_NUM_KEY;
|
||||
if (m.get(F_DATA_O_NUM) != "N") _key = BY_DATE_KEY;
|
||||
if (_alnum == 0)
|
||||
_alnum = 9999999L;
|
||||
_dadata = m.get_date(F_DA_DATADOC);
|
||||
if (!_dadata.ok())
|
||||
_dadata = botime;
|
||||
_adata = m.get_date(F_A_DATADOC);
|
||||
if (!_adata.ok())
|
||||
_adata = eotime;
|
||||
if (m.get(F_DATA_O_NUM) == "N")
|
||||
_key = BY_NUM_KEY;
|
||||
else
|
||||
_key = BY_DATE_KEY;
|
||||
return TRUE;
|
||||
} else return FALSE;
|
||||
}
|
||||
|
||||
@ -1,59 +1,65 @@
|
||||
#include "ve1100.h"
|
||||
|
||||
PAGE "Stampa Documenti Vendita" -1 -1 40 20
|
||||
PAGE "Stampa Documenti Vendita" -1 -1 60 14
|
||||
|
||||
STRING F_CODNUM 4 4
|
||||
BEGIN
|
||||
PROMPT 1 1 "Codice Num. "
|
||||
FLAG "U"
|
||||
USE %NUM
|
||||
INPUT CODTAB F_CODNUM
|
||||
DISPLAY "Cod. Num." CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CODNUM CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
PROMPT 1 1 "Codice numerazione "
|
||||
FLAG "UP"
|
||||
USE %NUM
|
||||
INPUT CODTAB F_CODNUM
|
||||
DISPLAY "Cod. Num." CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CODNUM CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
NUMBER F_ANNO 4 0
|
||||
BEGIN
|
||||
PROMPT 26 1 "Anno "
|
||||
CHECKTYPE REQUIRED
|
||||
PROMPT 38 1 "Anno "
|
||||
FLAG "P"
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
LIST F_PROVV 12
|
||||
BEGIN
|
||||
PROMPT 1 3 "Tipo numerazione "
|
||||
ITEM "P|Provvisoria"
|
||||
PROMPT 1 2 "Tipo numerazione "
|
||||
ITEM "D|Definitiva"
|
||||
ITEM "P|Provvisoria"
|
||||
FLAG "P"
|
||||
END
|
||||
|
||||
NUMBER F_NCOPIE 3
|
||||
BEGIN
|
||||
PROMPT 1 4 "Numero copie "
|
||||
PROMPT 38 2 "Numero copie "
|
||||
NUM_EXPR {(#THIS_FIELD >= 0)}
|
||||
FLAG "P"
|
||||
WARNING "Il numero di copie deve essere positivo"
|
||||
END
|
||||
|
||||
RADIOBUTTON F_DATA_O_NUM 38
|
||||
RADIOBUTTON F_DATA_O_NUM 58
|
||||
BEGIN
|
||||
PROMPT 1 5 "Selezione su "
|
||||
ITEM "N|Numero documento" MESSAGE ENABLE,1@|CLEAR,2@
|
||||
ITEM "D|Data documento" MESSAGE ENABLE,2@|CLEAR,1@
|
||||
PROMPT 1 4 "Selezione su "
|
||||
ITEM "N|Numero documento" MESSAGE SHOW,1@|HIDE,2@
|
||||
ITEM "D|Data documento" MESSAGE SHOW,2@|HIDE,1@
|
||||
FLAG "P"
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 38 5
|
||||
GROUPBOX DLG_NULL 58 5
|
||||
BEGIN
|
||||
PROMPT 1 9 "Selezione per numero"
|
||||
PROMPT 1 8 "Selezione per numero"
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 38 5
|
||||
GROUPBOX DLG_NULL 58 5
|
||||
BEGIN
|
||||
PROMPT 1 14 "Selezione per data"
|
||||
PROMPT 1 8 "Selezione per data"
|
||||
GROUP 2
|
||||
END
|
||||
|
||||
NUMBER F_DA_NDOC 7 0
|
||||
BEGIN
|
||||
PROMPT 2 10 "Dal num. "
|
||||
PROMPT 2 9 "Dal numero "
|
||||
USE 33
|
||||
JOIN 20 INTO CODCF=CODCF TIPOCF=TIPOCF
|
||||
JOIN 13 TO 20 INTO COM=COMCF
|
||||
@ -72,7 +78,7 @@ END
|
||||
|
||||
NUMBER F_A_NDOC 7 0
|
||||
BEGIN
|
||||
PROMPT 2 12 "Al num. "
|
||||
PROMPT 2 11 "Al numero "
|
||||
USE 33
|
||||
JOIN 20 INTO CODCF=CODCF TIPOCF=TIPOCF
|
||||
JOIN 13 TO 20 INTO COM=COMCF
|
||||
@ -92,7 +98,7 @@ END
|
||||
|
||||
DATE F_DA_DATADOC
|
||||
BEGIN
|
||||
PROMPT 2 15 "Dalla data "
|
||||
PROMPT 2 9 "Dalla data "
|
||||
USE 33 KEY 3 SELECT (PROVV==#F_PROVV) && (ANNO==#F_ANNO) && (CODNUM==#F_CODNUM)
|
||||
JOIN 20 INTO CODCF=CODCF TIPOCF=TIPOCF
|
||||
JOIN 13 TO 20 INTO COM=COMCF
|
||||
@ -112,7 +118,7 @@ END
|
||||
|
||||
DATE F_A_DATADOC
|
||||
BEGIN
|
||||
PROMPT 2 17 "Alla data "
|
||||
PROMPT 2 11 "Alla data "
|
||||
USE 33 KEY 3 SELECT (PROVV==#F_PROVV) && (ANNO==#F_ANNO) && (CODNUM==#F_CODNUM)
|
||||
JOIN 20 INTO CODCF=CODCF TIPOCF=TIPOCF
|
||||
JOIN 13 TO 20 INTO COM=COMCF
|
||||
|
||||
28
ve/ve2.cpp
28
ve/ve2.cpp
@ -1,4 +1,3 @@
|
||||
|
||||
#include <checks.h>
|
||||
#include <xvt.h>
|
||||
|
||||
@ -7,18 +6,17 @@ extern int ve2200(int argc, char* argv[]); // testate listini/contratti/offerte
|
||||
extern int ve2300(int argc, char* argv[]); // righe listini/contratti/offerte
|
||||
extern int ve2400(int argc, char* argv[]); // anagrafica di magazzino
|
||||
|
||||
|
||||
|
||||
int main( int argc, char** argv) {
|
||||
int rt= -1;
|
||||
const int r= (argc>1)?(atoi(&argv[1][1])):(-1);
|
||||
|
||||
switch (r) {
|
||||
case 0: rt = ve2100(argc, argv); break;
|
||||
case 1: rt = ve2200(argc, argv); break;
|
||||
case 2: rt = ve2300(argc, argv); break;
|
||||
case 3: rt = ve2400(argc, argv); break;
|
||||
default: error_box("Sintassi: %s -[0 [R|D|I] | 1 [L|C|O] | 2 [L|C|O] | 3]", argv[0]); break;
|
||||
}
|
||||
return (rt);
|
||||
int main( int argc, char** argv)
|
||||
{
|
||||
const int r = (argc>1)?(atoi(&argv[1][1])):(-1);
|
||||
switch (r)
|
||||
{
|
||||
case 0: ve2100(argc, argv); break;
|
||||
case 1: ve2200(argc, argv); break;
|
||||
case 2: ve2300(argc, argv); break;
|
||||
case 3: ve2400(argc, argv); break;
|
||||
default: error_box("Sintassi: %s -[0 [R|D|I] | 1 [L|C|O] | 2 [L|C|O] | 3]", argv[0]); break;
|
||||
}
|
||||
exit(0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -200,7 +200,7 @@ BEGIN
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_R_CODRIGA_G CODTAB[1,3]
|
||||
OUTPUT F_R_DESRIGA_G S0
|
||||
MESSAGE COPY,F_R_CODRIGA_A
|
||||
// MESSAGE COPY,F_R_CODRIGA_A
|
||||
CHECKTYPE FORCED
|
||||
END
|
||||
|
||||
@ -223,7 +223,7 @@ BEGIN
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_R_CODRIGA_S CODTAB
|
||||
OUTPUT F_R_DESRIGA_S S0
|
||||
MESSAGE COPY,F_R_CODRIGA_A
|
||||
// MESSAGE COPY,F_R_CODRIGA_A
|
||||
CHECKTYPE FORCED
|
||||
END
|
||||
|
||||
@ -245,7 +245,7 @@ BEGIN
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_R_CODRIGA_R CODTAB
|
||||
OUTPUT F_R_DESRIGA_R S0
|
||||
MESSAGE COPY,F_R_CODRIGA_A
|
||||
// MESSAGE COPY,F_R_CODRIGA_A
|
||||
CHECKTYPE FORCED
|
||||
END
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user