Patch level : 10.0

Files correlati     : ve1.exe
Ricompilazione Demo : [ ]
Commento            :
0001186: Stampa Documenti
Richiesta di preimpostare nella stampa documenti la numerazione, in modo tale che in apertura della parametrica sia impostato il valore 'B01'.


git-svn-id: svn://10.65.10.50/trunk@18381 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2009-02-27 12:32:19 +00:00
parent 9378233cc5
commit 2b37fd2d2f
4 changed files with 55 additions and 65 deletions

View File

@ -1102,24 +1102,30 @@ void TReport_doc_app::print_selection(bool send_by_mail)
void TReport_doc_app::main_loop() void TReport_doc_app::main_loop()
{ {
if (argc() > 6) // Stampa da riga di comando const int a = argc();
if (a > 2)
_msk->set(F_CODNUM, argv(2)); // Stampa da menu con numerazione imposta
if (a > 6) // Stampa da riga di comando
{ {
_msk->set(F_DATA_O_NUM, "N"); // Stampa per numero documento _msk->set(F_DATA_O_NUM, "N"); // Stampa per numero documento
_msk->set(F_PROVV, argv(4));
_msk->set(F_ANNO, argv(3)); _msk->set(F_ANNO, argv(3));
_msk->set(F_CODNUM, argv(2)); _msk->set(F_PROVV, argv(4));
_msk->set(F_DA_NDOC, argv(5)); _msk->set(F_DA_NDOC, argv(5));
_msk->set(F_A_NDOC, argv(6)); _msk->set(F_A_NDOC, argv(6));
// argv(7) = stampa Definitiva o Provvisoria if (a > 8)
if (argc() > 8)
_msk->set(F_NCOPIE, argv(8)); // Numero copie _msk->set(F_NCOPIE, argv(8)); // Numero copie
print_selection(); print_selection();
return;
} }
else
while (true)
{ {
KEY k; const KEY k = _msk->run();
while ((k = _msk->run()) != K_QUIT) // Stampa interattiva if (k == K_QUIT)
print_selection(k != K_ENTER); break;
const bool mail = k != K_ENTER;
print_selection(mail);
} }
} }

View File

@ -247,7 +247,7 @@ public:
// Funzioni che effettuano la cache di importanti valori contenuti nel profilo // Funzioni che effettuano la cache di importanti valori contenuti nel profilo
const char tipocf() const; const char tipocf() const;
void set_defaults(TMask& m) const; void set_defaults(TMask& m) const;
const TString_array& keys_descrs(); const TString_array& keys_descrs() const;
const TString_array& sheet_columns() const; const TString_array& sheet_columns() const;
const TString_array& handlers() const; const TString_array& handlers() const;

View File

@ -181,7 +181,7 @@ const TString& TTipo_documento::riferimento(const TDocumento & doc, TString& rif
return rif; return rif;
} }
const TString_array& TTipo_documento::keys_descrs() const TString_array& TTipo_documento::keys_descrs() const
{ {
if (_keys_descrs.empty()) if (_keys_descrs.empty())
{ {
@ -208,16 +208,15 @@ const TString_array& TTipo_documento::keys_descrs()
if (k.blank()) if (k.blank())
{ {
TTable tri("%TRI"); TTable tri("%TRI");
for (int err = tri.first(); err == NOERR; err = tri.next()) for (int err = tri.first(); err == NOERR; err = tri.next())
{ {
k.add(tri.get("CODTAB")); k.add(tri.get("CODTAB"));
d.add(tri.get("S0")); d.add(tri.get("S0"));
} }
} }
// Fool const
_keys_descrs.add(k); ((TString_array&)_keys_descrs).add(k);
_keys_descrs.add(d); ((TString_array&)_keys_descrs).add(d);
} }
return _keys_descrs; return _keys_descrs;

View File

@ -54,25 +54,19 @@ bool TOriginal_row_mask::on_key(KEY key)
TDocumento_mask::TDocumento_mask(const char* td) TDocumento_mask::TDocumento_mask(const char* td)
: TVariable_mask(), _progs_page(-1), : TVariable_mask(), _progs_page(-1), _condv(NULL), _smartcard(NULL),
_condv(NULL), _smartcard(NULL), _cms_start(-1), _cms_end(-1), _cms_start_sh(-1), _cms_end_sh(-1),
_cms_start(-1), _cms_end(-1), _cdc_start(-1), _cdc_end(-1), _cdc_start_sh(-1), _cdc_end_sh(-1)
_cms_start_sh(-1), _cms_end_sh(-1),
_cdc_start(-1), _cdc_end(-1),
_cdc_start_sh(-1), _cdc_end_sh(-1)
{ {
CHECK(strlen(td) <= 4, "TDocumento_mask(TipoDocumento) not (MaskName)"); CHECK(td && *td && strlen(td) <= 4, "TDocumento_mask(TipoDocumento) not (MaskName)");
{ {
TMagazzini m; TMagazzini m;
_ges_mag = m.gestmag(); _ges_mag = m.gestmag();
_ges_dep = m.gestdep(); _ges_dep = m.gestdep();
_std_mag = m.standardmag(); _std_mag = m.standardmag();
_std_dep = m.standarddep(); _std_dep = m.standarddep();
} }
TDocumento & d = doc(); TDocumento& d = doc();
d.set_tipo(td); d.set_tipo(td);
const TString16 mname = d.tipo().mask_name(); const TString16 mname = d.tipo().mask_name();
read_mask(mname, 0, MAX_PAGES); read_mask(mname, 0, MAX_PAGES);
@ -82,12 +76,12 @@ TDocumento_mask::TDocumento_mask(const char* td)
_sheet->set_notify( ss_notify ); _sheet->set_notify( ss_notify );
_sheet->set_append(FALSE); _sheet->set_append(FALSE);
TList_field& listbox = (TList_field&)field(F_LBTIPORIGA); TList_field& listbox = lfield(F_LBTIPORIGA);
TTipo_documento& tdoc = (TTipo_documento&)d.tipo(); const TTipo_documento& tdoc = d.tipo();
TToken_string& keys = (TToken_string&)tdoc.keys_descrs()[0]; const TToken_string& keys = tdoc.keys_descrs().row(0);
TToken_string& descrs = (TToken_string&)tdoc.keys_descrs()[1]; const TToken_string& desc = tdoc.keys_descrs().row(1);
listbox.replace_items(keys, descrs); listbox.replace_items(keys, desc);
// Controlla se deve generare la pagina di analitica // Controlla se deve generare la pagina di analitica
_ges_ca = dongle().active(CAAUT) || dongle().active(CMAUT); _ges_ca = dongle().active(CAAUT) || dongle().active(CMAUT);
@ -1660,30 +1654,25 @@ bool TDocumento_mask::clifo_handler( TMask_field& f, KEY key )
void TDocumento_mask::highlight_row(int row, bool dirty, bool update) void TDocumento_mask::highlight_row(int row, bool dirty, bool update)
{ {
TSheet_field & sf = sfield(F_SHEET);
const int items = sf.items();
COLOR back = NORMAL_BACK_COLOR;
COLOR fore = NORMAL_COLOR;
const int last_rule = colors().items() - 1;
bool on = false;
const TRiga_documento & rigadoc = doc()[row + 1]; const TRiga_documento & rigadoc = doc()[row + 1];
TRow_colors * c = NULL; TSheet_field& sf = sfield(F_SHEET);
for (int rule = last_rule; !on && rule >= 0; rule--)
{
c = (TRow_colors *) colors().objptr(rule);
COLOR back = COLOR_INVALID, fore = COLOR_INVALID;
for (int rule = colors().last(); rule >= 0; rule--)
{
TRow_colors* c = (TRow_colors*)colors().objptr(rule);
if (c != NULL) if (c != NULL)
{ {
bool on = false;
if (rule == 0) if (rule == 0)
on = rigadoc.linked(); on = rigadoc.linked(); // Regola standard
else else
{ {
TExpression * expr = (TExpression *) color_rules().objptr(rule); TExpression* expr = (TExpression*)color_rules().objptr(rule);
if (expr != NULL) if (expr != NULL)
{ {
// SET VARS // SET VARS
const int vars = expr->numvar(); const int vars = expr->numvar();
for (int i = 0; i < vars; i++) for (int i = 0; i < vars; i++)
@ -1696,11 +1685,9 @@ void TDocumento_mask::highlight_row(int row, bool dirty, bool update)
if (name.starts_with("#")) if (name.starts_with("#"))
{ {
const short id = atoi(name.mid(1)); const short id = atoi(name.mid(1));
if (id > 0) if (id > 0)
{ {
TToken_string & sheet_row = sf.row(row); TToken_string& sheet_row = sf.row(row);
expr->setvar(i, sheet_row.get(sf.cid2index(id))); expr->setvar(i, sheet_row.get(sf.cid2index(id)));
} }
else else
@ -1709,39 +1696,37 @@ void TDocumento_mask::highlight_row(int row, bool dirty, bool update)
else else
if (name.starts_with("33.") || name.starts_with("DOC.")) if (name.starts_with("33.") || name.starts_with("DOC."))
{ {
const TString & fldname = name.after('.'); const TString& fldname = name.after('.');
expr->setvar(i, doc().get(fldname)); expr->setvar(i, doc().get(fldname));
} }
else else
{ {
const TString & fldname = name.find('.') > 0 ? name.after('.') : name; const TString& fldname = name.find('.') > 0 ? name.after('.') : name;
expr->setvar(i, rigadoc.get(fldname)); expr->setvar(i, rigadoc.get(fldname));
} }
} }
on = expr->as_bool(); on = expr->as_bool();
} }
} }
if (on)
{
back = c->back();
fore = c->fore();
break;
}
} }
} }
if (on && c != NULL)
{ sf.set_back_and_fore_color(back, fore, row);
back = c->back(); if (update)
fore = c->fore();
}
sf.set_back_and_fore_color(back, fore, row);
if (update)
sf.force_update(row); sf.force_update(row);
} }
void TDocumento_mask::highlight() void TDocumento_mask::highlight()
{ {
TSheet_field & sf = sfield(F_SHEET); TSheet_field& sf = sfield(F_SHEET);
const int items = sf.items(); FOR_EACH_SHEET_ROW(sf, i, r)
highlight_row(i, false, false);
for (int i = 0 ; i < items; i++)
highlight_row(i, false, false);
sf.force_update(); sf.force_update();
} }