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:
guy 2009-03-26 16:31:58 +00:00
parent 8836171e4c
commit 9b7822e164
2 changed files with 47 additions and 47 deletions

View File

@ -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()

View File

@ -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);
}
}