Patch level : 10.0 500

Files correlati     : ve2.exe ve2700a.msk
Ricompilazione Demo : [ ]
Commento            :
Corretta selezione nuovi articoli da aggiungere al listino


git-svn-id: svn://10.65.10.50/trunk@19575 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2009-11-04 15:58:12 +00:00
parent 89d8a61d76
commit b2667c6cde
2 changed files with 95 additions and 63 deletions

View File

@ -515,7 +515,7 @@ void TAggiorna_listini_edit_mask::add_art()
TString query; TString query;
query << "USE ANAMAG\n"; query << "USE ANAMAG\n";
query << "SELECT ((GRMERC?=#GRMERC)||(GRMERC=\"\"))&&(RCONDV.CODRIGA=\"\")\n"; query << "SELECT ((GRMERC?=#GRMERC)||(GRMERC=\"\"))&&(RCONDV.CODRIGA=\"\")\n";
query << "JOIN RCONDV INTO TIPO=\"L\" CATVEN=#CATVEN COD=#COD TIPORIGA=\"A\" CODRIGA=CODART\n"; query << "JOIN RCONDV INTO TIPO=\"L\" CATVEN==#CATVEN COD==#COD TIPORIGA=\"A\" CODRIGA==CODART\n";
query << "JOIN UMART INTO CODART=CODART\n"; query << "JOIN UMART INTO CODART=CODART\n";
TISAM_recordset recset(query); TISAM_recordset recset(query);
TString8 grmerc, grmerc_filter; TString8 grmerc, grmerc_filter;
@ -748,7 +748,6 @@ bool TAggiorna_listini_edit_mask::on_field_event(TOperable_field& o, TField_even
} }
} }
break; break;
case S2_PREZZO: case S2_PREZZO:
if (e == fe_modify && jolly == 2) if (e == fe_modify && jolly == 2)
{ {
@ -818,7 +817,8 @@ bool TAggiorna_listini_edit_mask::on_field_event(TOperable_field& o, TField_even
TSheet_field& sf_listini = sfield(F_MULTILISTINI); TSheet_field& sf_listini = sfield(F_MULTILISTINI);
const int selected_riga = sf_listini.selected(); const int selected_riga = sf_listini.selected();
TMask& rowmask = sf_listini.sheet_row_mask(selected_riga); TMask& rowmask = sf_listini.sheet_row_mask(selected_riga);
rowmask.reset(-1); rowmask.reset(-1); // Azzera tutto ma ...
rowmask.set(S2_CHECK, "X"); // ... forza spunta della riga
} }
} }
break; break;
@ -979,20 +979,85 @@ TAggiorna_listini_edit_mask::TAggiorna_listini_edit_mask(TMask* query_mask)
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
class TAggiorna_listini_query_mask : public TAutomask class TAggiorna_listini_query_mask : public TAutomask
{ {
TArray_sheet* _sheet;
protected: protected:
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
public: public:
TAggiorna_listini_query_mask(); TAggiorna_listini_query_mask();
virtual ~TAggiorna_listini_query_mask();
}; };
bool TAggiorna_listini_query_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) bool TAggiorna_listini_query_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{ {
switch(o.dlg()) switch(o.dlg())
{ {
case F_FATHCATVEN:
if (e == fe_button)
{
TArray_sheet sheet_catven(-1, -1, 78, 10, TR("Categorie di vendita"), HR("Codice|Descrizione@50"));
TString4 catven;
FOR_EACH_SHEET_ROW(*_sheet, t, riga)
{
const char* cv = riga->get(0);
if (catven != cv)
{
catven = cv;
TToken_string r;
r.add(catven);
r.add(cache().get("CVE", catven, "S0"));
sheet_catven.add(r);
}
}
if (sheet_catven.run() == K_ENTER)
{
TToken_string& r = sheet_catven.row(-1);
o.set(r.get(0));
e = fe_modify;
}
}
if ((e == fe_init || e == fe_modify) && !o.empty())
set(F_FATHDESVEN, cache().get("CVE", o.get(), "S0"));
break;
case F_FATHCODLIS: case F_FATHCODLIS:
if (e == fe_button) if (e == fe_button)
{ {
if (_sheet->run() == K_ENTER)
{
//riempie la maschera di query
TToken_string& row = _sheet->row(-1);
set(F_FATHCATVEN, row.get(0), true);
set(F_FATHCODLIS, row.get(1));
set(F_FATHDESLIS, row.get(2));
send_key(K_SPACE, DLG_OK);
}
}
break;
case DLG_OK:
if (e == fe_button && efield(F_FATHCODLIS).check())
{
//lancia la maschera di edit
TAggiorna_listini_edit_mask edit_mask(this); //gli passa la maschera principale
edit_mask.run();
}
return false; // NON deve uscire dal main loop!
default:
break;
}
return true;
}
TAggiorna_listini_query_mask::TAggiorna_listini_query_mask() : TAutomask("ve2700a")
{
//in base alla cervellotica configurazione impostata dall'utonto abilita/disabilita campi
const bool gesliscv = ini_get_bool(CONFIG_DITTA, "ve", "GESLISCV");
enable(F_FATHCATVEN, gesliscv);
//attenzione!!! il campo CATVEN è in chiave 1! per disabilitarlo ci vuole questo trucco!
if (!gesliscv)
efield(F_FATHCATVEN).reset_key(1);
_sheet = new TArray_sheet(-1, -1, 78, 10, TR("Listini padri"), HR("Cat.Ven.|Codice|Descrizione@50"));
TString query; TString query;
query << "USE CONDV\n"; query << "USE CONDV\n";
query << "SELECT (FATHCOD!='')&&(BETWEEN(FATHCATVEN,#CATVEN,#CATVEN))\n"; query << "SELECT (FATHCOD!='')&&(BETWEEN(FATHCATVEN,#CATVEN,#CATVEN))\n";
@ -1026,51 +1091,29 @@ bool TAggiorna_listini_query_mask::on_field_event(TOperable_field& o, TField_eve
} //for(bool ok =... } //for(bool ok =...
//utilizzando l'assoc_array dei padri propone uno sheet di ricerca dei soli listini che hanno paternità //utilizzando l'assoc_array dei padri propone uno sheet di ricerca dei soli listini che hanno paternità
//maschera volante di ricerca (è una display) //maschera volante di ricerca (è una display)
TArray_sheet sheet(-1, -1, 78, 10, TR("Listini padri"), HR("Cat.Ven.|Codice|Descrizione@50"));
//riempimento dello sheet //riempimento dello sheet
FOR_EACH_ASSOC_STRING(listini_padri, obj, key, descr) FOR_EACH_ASSOC_STRING(listini_padri, obj, key, descr)
{ {
TToken_string row; TToken_string row;
row = key; row = key;
row.add(descr); row.add(descr);
sheet.add(row); _sheet->add(row);
} }
sheet.rows_array().sort(); //riordina le righe attualmente scombinate
if (sheet.run() == K_ENTER) if (_sheet->items() > 0)
{ {
//riempie la maschera di query _sheet->rows_array().sort(); //riordina le righe attualmente scombinate
TToken_string& row = sheet.row(sheet.selected());
TToken_string& row = _sheet->row(0);
set(F_FATHCATVEN, row.get(0), true); set(F_FATHCATVEN, row.get(0), true);
set(F_FATHCODLIS, row.get(1)); set(F_FATHCODLIS, row.get(1));
set(F_FATHDESLIS, row.get(2)); set(F_FATHDESLIS, row.get(2));
send_key(K_SPACE, DLG_OK);
} }
}
break;
case DLG_OK:
if (e == fe_button && efield(F_FATHCODLIS).check())
{
//lancia la maschera di edit
TAggiorna_listini_edit_mask edit_mask(this); //gli passa la maschera principale
edit_mask.run();
}
return false; // NON deve uscire dal main loop!
default:
break;
}
return true;
} }
TAggiorna_listini_query_mask::TAggiorna_listini_query_mask() : TAutomask("ve2700a") TAggiorna_listini_query_mask::~TAggiorna_listini_query_mask()
{ {
//in base alla cervellotica configurazione impostata dall'utonto abilita/disabilita campi delete _sheet;
const bool gesliscv = ini_get_bool(CONFIG_DITTA, "ve", "GESLISCV");
enable(F_FATHCATVEN, gesliscv);
enable(F_FATHDESVEN, gesliscv);
//attenzione!!! il campo CATVEN è in chiave 1! per disabilitarlo ci vuole questo trucco!
if (!gesliscv)
efield(F_FATHCATVEN).reset_key(1);
} }
//////////////////////////////////////////////////////// ////////////////////////////////////////////////////////

View File

@ -25,26 +25,15 @@ END
STRING F_FATHCATVEN 2 STRING F_FATHCATVEN 2
BEGIN BEGIN
PROMPT 1 1 "Cat. ven. " PROMPT 1 1 "Cat. ven. "
FLAGS "U" FLAGS "BU"
KEY 1 KEY 1
USE CVE
INPUT CODTAB F_FATHCATVEN
DISPLAY "Cat." CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_FATHCATVEN CODTAB
OUTPUT F_FATHDESVEN S0
CHECKTYPE FORCED CHECKTYPE FORCED
END END
STRING F_FATHDESVEN 50 STRING F_FATHDESVEN 50
BEGIN BEGIN
PROMPT 18 1 "" PROMPT 18 1 ""
USE CVE KEY 2 FLAGS "D"
INPUT S0 F_FATHDESVEN
DISPLAY "Descrizione@50" S0
DISPLAY "Cat." CODTAB
COPY OUTPUT F_FATHCATVEN
CHECKTYPE NORMAL
END END
STRING F_FATHCODLIS 3 STRING F_FATHCODLIS 3