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()
{
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_PROVV, argv(4));
_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_A_NDOC, argv(6));
// argv(7) = stampa Definitiva o Provvisoria
if (argc() > 8)
if (a > 8)
_msk->set(F_NCOPIE, argv(8)); // Numero copie
print_selection();
return;
}
else
while (true)
{
KEY k;
while ((k = _msk->run()) != K_QUIT) // Stampa interattiva
print_selection(k != K_ENTER);
const KEY k = _msk->run();
if (k == K_QUIT)
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
const char tipocf() 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& handlers() const;

View File

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

View File

@ -54,25 +54,19 @@ bool TOriginal_row_mask::on_key(KEY key)
TDocumento_mask::TDocumento_mask(const char* td)
: TVariable_mask(), _progs_page(-1),
_condv(NULL), _smartcard(NULL),
_cms_start(-1), _cms_end(-1),
_cms_start_sh(-1), _cms_end_sh(-1),
_cdc_start(-1), _cdc_end(-1),
_cdc_start_sh(-1), _cdc_end_sh(-1)
: TVariable_mask(), _progs_page(-1), _condv(NULL), _smartcard(NULL),
_cms_start(-1), _cms_end(-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;
_ges_mag = m.gestmag();
_ges_dep = m.gestdep();
_std_mag = m.standardmag();
_std_dep = m.standarddep();
}
TDocumento & d = doc();
TDocumento& d = doc();
d.set_tipo(td);
const TString16 mname = d.tipo().mask_name();
read_mask(mname, 0, MAX_PAGES);
@ -82,12 +76,12 @@ TDocumento_mask::TDocumento_mask(const char* td)
_sheet->set_notify( ss_notify );
_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();
TToken_string& keys = (TToken_string&)tdoc.keys_descrs()[0];
TToken_string& descrs = (TToken_string&)tdoc.keys_descrs()[1];
listbox.replace_items(keys, descrs);
const TTipo_documento& tdoc = d.tipo();
const TToken_string& keys = tdoc.keys_descrs().row(0);
const TToken_string& desc = tdoc.keys_descrs().row(1);
listbox.replace_items(keys, desc);
// Controlla se deve generare la pagina di analitica
_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)
{
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];
TRow_colors * c = NULL;
for (int rule = last_rule; !on && rule >= 0; rule--)
{
c = (TRow_colors *) colors().objptr(rule);
TSheet_field& sf = sfield(F_SHEET);
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)
{
bool on = false;
if (rule == 0)
on = rigadoc.linked();
on = rigadoc.linked(); // Regola standard
else
{
TExpression * expr = (TExpression *) color_rules().objptr(rule);
TExpression* expr = (TExpression*)color_rules().objptr(rule);
if (expr != NULL)
{
// SET VARS
// SET VARS
const int vars = expr->numvar();
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("#"))
{
const short id = atoi(name.mid(1));
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)));
}
else
@ -1709,39 +1696,37 @@ void TDocumento_mask::highlight_row(int row, bool dirty, bool update)
else
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));
}
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));
}
}
on = expr->as_bool();
}
}
if (on)
{
back = c->back();
fore = c->fore();
break;
}
}
}
if (on && c != NULL)
{
back = c->back();
fore = c->fore();
}
sf.set_back_and_fore_color(back, fore, row);
if (update)
sf.set_back_and_fore_color(back, fore, row);
if (update)
sf.force_update(row);
}
void TDocumento_mask::highlight()
{
TSheet_field & sf = sfield(F_SHEET);
const int items = sf.items();
for (int i = 0 ; i < items; i++)
highlight_row(i, false, false);
TSheet_field& sf = sfield(F_SHEET);
FOR_EACH_SHEET_ROW(sf, i, r)
highlight_row(i, false, false);
sf.force_update();
}