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:
parent
9378233cc5
commit
2b37fd2d2f
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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();
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user