Patch level : 10.0 272
Files correlati : ve0.exe Ricompilazione Demo : [ ] Commento : 0001132: handler reperimento prezzi il riporto di una riga di condizioni di vendita, se selezionato per articolo, riporta i campi sfalsati. git-svn-id: svn://10.65.10.50/trunk@18619 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
8836171e4c
commit
9b7822e164
@ -165,14 +165,8 @@ TDocumento_mask::TDocumento_mask(const char* td)
|
||||
set_handler( DLG_CONFERMA, confirm_handler );
|
||||
|
||||
const TString_array& handlers = tdoc.handlers();
|
||||
int numhandler = handlers.items();
|
||||
|
||||
for (i = 0; i < numhandler; i ++ )
|
||||
{
|
||||
TToken_string& riga = (TToken_string&) handlers[i];
|
||||
|
||||
user_set_handler( riga.get_int( 0 ), riga.get_int( 1 ) );
|
||||
}
|
||||
FOR_EACH_ARRAY_ROW(handlers, r, riga)
|
||||
user_set_handler( riga->get_int(0), riga->get_int(1) );
|
||||
|
||||
_livelli_giac = new TCodgiac_livelli;
|
||||
|
||||
@ -1238,39 +1232,45 @@ TVariable_mask* TDocumento_mask::riga_mask(int numriga)
|
||||
if (use_fsc && fasinfo.parent() <= 0)
|
||||
insert_anal_fields(*m, page, LF_FASI, y, dlg, dlgd, false);
|
||||
}
|
||||
}
|
||||
|
||||
TFilename proname; tiporiga.profile_name(proname);
|
||||
TConfig pro( proname, "HANDLERS" );
|
||||
|
||||
const int numhandler = pro.get_int( "NHANDLER", "HANDLERS" );
|
||||
for(int i = 1; i <= numhandler; i++)
|
||||
{
|
||||
TString8 chiave;chiave.format("%d", i );
|
||||
TToken_string riga(pro.get(chiave, "HANDLERS"));
|
||||
user_set_row_handler( *m, riga.get_int(0), riga.get_int(1) );
|
||||
}
|
||||
TFilename proname; tiporiga.profile_name(proname);
|
||||
TConfig pro( proname, "HANDLERS" );
|
||||
TAssoc_array& handlers = pro.list_variables();
|
||||
FOR_EACH_ASSOC_STRING(handlers, obj, key, str)
|
||||
{
|
||||
int id = 0, hd = 0;
|
||||
if (*key == 'H' && strchr(str, '|') == NULL) // Provo a gestire il caso Handler(105) = 3
|
||||
{
|
||||
const TFixed_string k(key);
|
||||
id = atoi(k.after('('));
|
||||
hd = atoi(str);
|
||||
}
|
||||
else // Provo a gestire il caso 1 = 105|3
|
||||
{
|
||||
const TToken_string riga = str;
|
||||
riga.get(0, id);
|
||||
riga.get(1, hd);
|
||||
}
|
||||
if (id >= DLG_USER && hd > 0)
|
||||
user_set_row_handler(*m, id, hd);
|
||||
}
|
||||
|
||||
m->set_sheet(&sfield(F_SHEET));
|
||||
|
||||
int pos = m->id2pos(FR_PREZZO);
|
||||
if (pos >= 0)
|
||||
{
|
||||
TEditable_field & f =((TEditable_field &) m->fld(pos));
|
||||
f.reset_driver(F_CODVAL);
|
||||
f.add_driver(-F_CODVAL);
|
||||
if (m->id2pos(FR_PREZZO) >= 0)
|
||||
{
|
||||
TEditable_field& f = (TEditable_field&)m->efield(FR_PREZZO);
|
||||
f.reset_driver(F_CODVAL);
|
||||
f.add_driver(-F_CODVAL);
|
||||
}
|
||||
|
||||
if (m->id2pos(FR_IMPFISSO) >= 0)
|
||||
{
|
||||
TEditable_field& f = m->efield(FR_IMPFISSO);
|
||||
f.reset_driver(); // Perche' qui non c'e' scritto f.reset_driver(F_CODVAL) ?
|
||||
f.add_driver(-F_CODVAL);
|
||||
}
|
||||
}
|
||||
|
||||
pos = m->id2pos(FR_IMPFISSO);
|
||||
if (pos >= 0)
|
||||
{
|
||||
TEditable_field & f =((TEditable_field &) m->fld(pos));
|
||||
f.reset_driver();
|
||||
f.add_driver(-F_CODVAL);
|
||||
}
|
||||
|
||||
m->set_sheet(&sfield(F_SHEET));
|
||||
return m;
|
||||
|
||||
}
|
||||
|
||||
void TDocumento_mask::update_giacenza()
|
||||
|
@ -1020,7 +1020,7 @@ bool TPrice_article_sheet::get_ini_paragraph(const TEdit_field& field, TString&
|
||||
}
|
||||
|
||||
TPrice_article_sheet::TPrice_article_sheet(TCursor& cur, TEdit_field& f)
|
||||
: TBrowse_sheet(&cur, "NDOC|33->DATADOC|PREZZO|QTA|SCONTO|-201->S0|-202->S0",
|
||||
: TBrowse_sheet(&cur, HR("NDOC|33->DATADOC|PREZZO|QTA|SCONTO|-201->S0|-202->S0"),
|
||||
TR("Ricerca Prezzi"),
|
||||
HR("Num.|Data@10|Prezzo@18P|Quantità@15P|Sconto@10|Numerazione@18|Tipo Documento@18"),
|
||||
0, f, TToken_string())
|
||||
@ -1095,12 +1095,13 @@ static void search_price_article(TEdit_field& f, KEY key )
|
||||
if (sheet.run() == K_ENTER)
|
||||
{
|
||||
__in_handler = true;
|
||||
row_mask.set(FR_CODART, codart, 3);
|
||||
row_mask.set(FR_CODART, codart, 0x3);
|
||||
row_mask.field(FR_CODART).set_dirty(false);
|
||||
__in_handler = false;
|
||||
const TString & prezzo = sheet.row(-1).get(3);
|
||||
TToken_string& row = sheet.row(-1);
|
||||
const TString& prezzo = row.get(2);
|
||||
row_mask.set(FR_PREZZO, prezzo);
|
||||
const TString & sconto = sheet.row(-1).get(5);
|
||||
const TString& sconto = row.get(4);
|
||||
row_mask.set(FR_SCONTO, sconto);
|
||||
}
|
||||
}
|
||||
@ -1131,7 +1132,7 @@ bool search_price_handler(TMask_field& f, KEY key )
|
||||
{
|
||||
TDate datadoc = mask.get_date(F_DATADOC);
|
||||
const char tipocf = mask.get(F_TIPOCF)[0];
|
||||
const TString8 codcf = mask.get(F_CODCF);
|
||||
const long codcf = mask.get_long(F_CODCF);
|
||||
const int current_doc_row = sh.selected() + 1;
|
||||
|
||||
TToken_string nums(((TTipo_riga_documento&)mask.doc()[current_doc_row].tipo()).search_nums());
|
||||
@ -1143,7 +1144,7 @@ bool search_price_handler(TMask_field& f, KEY key )
|
||||
TString4 last_num(first_num);;
|
||||
|
||||
TString form;
|
||||
form << "(33->TIPOCF==\"" << tipocf << "\")&&(33->CODCF==\"" << (const char *)codcf << "\")&&(ANSI(33->DATADOC)<=\"" << datadoc.string(ANSI) << "\")" << "&&((CODNUM==\"" << first_num << "\")";
|
||||
form << "(33->TIPOCF==\"" << tipocf << "\")&&(33->CODCF==\"" << codcf << "\")&&(ANSI(33->DATADOC)<=\"" << datadoc.string(ANSI) << "\")" << "&&((CODNUM==\"" << first_num << "\")";
|
||||
for (const char * s = nums.get(); s && *s; s = nums.get())
|
||||
{
|
||||
if (first_num > s)
|
||||
@ -1166,7 +1167,6 @@ bool search_price_handler(TMask_field& f, KEY key )
|
||||
for (int l = 0; l<4 ; l++)
|
||||
mask.doc().livelli().pack_grpcode(livello, row_mask.get(FR_LIV1 + l),l + 1);
|
||||
|
||||
|
||||
from.put(RDOC_CODART, codart);
|
||||
from.put(RDOC_LIVELLO, livello);
|
||||
from.put(RDOC_CODNUM, first_num);
|
||||
@ -1184,12 +1184,12 @@ bool search_price_handler(TMask_field& f, KEY key )
|
||||
{
|
||||
cur = 0L;
|
||||
__in_handler = true;
|
||||
row_mask.set(FR_CODART, codart, 3);
|
||||
row_mask.set(FR_CODART, codart, 0x3);
|
||||
row_mask.field(FR_CODART).set_dirty(false);
|
||||
__in_handler = false;
|
||||
const TString & prezzo = cur.curr().get(RDOC_PREZZO);
|
||||
const TString& prezzo = cur.curr().get(RDOC_PREZZO);
|
||||
row_mask.set(FR_PREZZO, prezzo);
|
||||
const TString & sconto = cur.curr().get(RDOC_SCONTO);
|
||||
const TString& sconto = cur.curr().get(RDOC_SCONTO);
|
||||
row_mask.set(FR_SCONTO, sconto);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user