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:
parent
89d8a61d76
commit
b2667c6cde
143
ve/ve2700.cpp
143
ve/ve2700.cpp
@ -515,7 +515,7 @@ void TAggiorna_listini_edit_mask::add_art()
|
||||
TString query;
|
||||
query << "USE ANAMAG\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";
|
||||
TISAM_recordset recset(query);
|
||||
TString8 grmerc, grmerc_filter;
|
||||
@ -748,7 +748,6 @@ bool TAggiorna_listini_edit_mask::on_field_event(TOperable_field& o, TField_even
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case S2_PREZZO:
|
||||
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);
|
||||
const int selected_riga = sf_listini.selected();
|
||||
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;
|
||||
@ -979,68 +979,54 @@ TAggiorna_listini_edit_mask::TAggiorna_listini_edit_mask(TMask* query_mask)
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
class TAggiorna_listini_query_mask : public TAutomask
|
||||
{
|
||||
TArray_sheet* _sheet;
|
||||
|
||||
protected:
|
||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
|
||||
public:
|
||||
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)
|
||||
{
|
||||
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:
|
||||
if (e == fe_button)
|
||||
{
|
||||
TString query;
|
||||
query << "USE CONDV\n";
|
||||
query << "SELECT (FATHCOD!='')&&(BETWEEN(FATHCATVEN,#CATVEN,#CATVEN))\n";
|
||||
query << "FROM TIPO=L\n";
|
||||
query << "TO TIPO=L\n";
|
||||
//ottiene tutti i listini che hanno un padre
|
||||
TISAM_recordset listini_figli(query);
|
||||
listini_figli.set_var("#CATVEN", get(F_FATHCATVEN));
|
||||
const int listini_figli_items = listini_figli.items();
|
||||
//adesso deve crearsi la lista dei padri
|
||||
TAssoc_array listini_padri;
|
||||
for (bool ok = listini_figli.move_first(); ok; ok = listini_figli.move_next())
|
||||
{
|
||||
//quale è il padre del figlio?
|
||||
TToken_string key;
|
||||
key.add(listini_figli.get(CONDV_FATHCATVEN).as_string(), 0);
|
||||
key.add(listini_figli.get(CONDV_FATHCOD).as_string(), 1);
|
||||
//se non esiste già nella lista dei padri deve essere aggiunto!
|
||||
if (!listini_padri.is_key(key))
|
||||
{
|
||||
//necessita della descrizione del padre
|
||||
TToken_string chiave;
|
||||
chiave.add("L");
|
||||
chiave.add(key.get(0));
|
||||
chiave.add("");
|
||||
chiave.add("");
|
||||
chiave.add(key.get(1));
|
||||
const TString& descr_padre = cache().get(LF_CONDV, chiave, CONDV_DESCR);
|
||||
listini_padri.add(key, descr_padre);
|
||||
}
|
||||
} //for(bool ok =...
|
||||
//utilizzando l'assoc_array dei padri propone uno sheet di ricerca dei soli listini che hanno paternità
|
||||
//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
|
||||
FOR_EACH_ASSOC_STRING(listini_padri, obj, key, descr)
|
||||
{
|
||||
TToken_string row;
|
||||
row = key;
|
||||
row.add(descr);
|
||||
sheet.add(row);
|
||||
}
|
||||
sheet.rows_array().sort(); //riordina le righe attualmente scombinate
|
||||
|
||||
if (sheet.run() == K_ENTER)
|
||||
if (_sheet->run() == K_ENTER)
|
||||
{
|
||||
//riempie la maschera di query
|
||||
TToken_string& row = sheet.row(sheet.selected());
|
||||
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));
|
||||
@ -1067,10 +1053,67 @@ TAggiorna_listini_query_mask::TAggiorna_listini_query_mask() : TAutomask("ve2700
|
||||
//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);
|
||||
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);
|
||||
|
||||
_sheet = new TArray_sheet(-1, -1, 78, 10, TR("Listini padri"), HR("Cat.Ven.|Codice|Descrizione@50"));
|
||||
TString query;
|
||||
query << "USE CONDV\n";
|
||||
query << "SELECT (FATHCOD!='')&&(BETWEEN(FATHCATVEN,#CATVEN,#CATVEN))\n";
|
||||
query << "FROM TIPO=L\n";
|
||||
query << "TO TIPO=L\n";
|
||||
//ottiene tutti i listini che hanno un padre
|
||||
TISAM_recordset listini_figli(query);
|
||||
listini_figli.set_var("#CATVEN", get(F_FATHCATVEN));
|
||||
const int listini_figli_items = listini_figli.items();
|
||||
//adesso deve crearsi la lista dei padri
|
||||
TAssoc_array listini_padri;
|
||||
for (bool ok = listini_figli.move_first(); ok; ok = listini_figli.move_next())
|
||||
{
|
||||
//quale è il padre del figlio?
|
||||
TToken_string key;
|
||||
key.add(listini_figli.get(CONDV_FATHCATVEN).as_string(), 0);
|
||||
key.add(listini_figli.get(CONDV_FATHCOD).as_string(), 1);
|
||||
//se non esiste già nella lista dei padri deve essere aggiunto!
|
||||
if (!listini_padri.is_key(key))
|
||||
{
|
||||
//necessita della descrizione del padre
|
||||
TToken_string chiave;
|
||||
chiave.add("L");
|
||||
chiave.add(key.get(0));
|
||||
chiave.add("");
|
||||
chiave.add("");
|
||||
chiave.add(key.get(1));
|
||||
const TString& descr_padre = cache().get(LF_CONDV, chiave, CONDV_DESCR);
|
||||
listini_padri.add(key, descr_padre);
|
||||
}
|
||||
} //for(bool ok =...
|
||||
//utilizzando l'assoc_array dei padri propone uno sheet di ricerca dei soli listini che hanno paternità
|
||||
//maschera volante di ricerca (è una display)
|
||||
//riempimento dello sheet
|
||||
FOR_EACH_ASSOC_STRING(listini_padri, obj, key, descr)
|
||||
{
|
||||
TToken_string row;
|
||||
row = key;
|
||||
row.add(descr);
|
||||
_sheet->add(row);
|
||||
}
|
||||
|
||||
if (_sheet->items() > 0)
|
||||
{
|
||||
_sheet->rows_array().sort(); //riordina le righe attualmente scombinate
|
||||
|
||||
TToken_string& row = _sheet->row(0);
|
||||
set(F_FATHCATVEN, row.get(0), true);
|
||||
set(F_FATHCODLIS, row.get(1));
|
||||
set(F_FATHDESLIS, row.get(2));
|
||||
}
|
||||
}
|
||||
|
||||
TAggiorna_listini_query_mask::~TAggiorna_listini_query_mask()
|
||||
{
|
||||
delete _sheet;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////
|
||||
|
@ -25,26 +25,15 @@ END
|
||||
STRING F_FATHCATVEN 2
|
||||
BEGIN
|
||||
PROMPT 1 1 "Cat. ven. "
|
||||
FLAGS "U"
|
||||
FLAGS "BU"
|
||||
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
|
||||
END
|
||||
|
||||
STRING F_FATHDESVEN 50
|
||||
BEGIN
|
||||
PROMPT 18 1 ""
|
||||
USE CVE KEY 2
|
||||
INPUT S0 F_FATHDESVEN
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Cat." CODTAB
|
||||
COPY OUTPUT F_FATHCATVEN
|
||||
CHECKTYPE NORMAL
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_FATHCODLIS 3
|
||||
|
Loading…
x
Reference in New Issue
Block a user