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;
|
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,68 +979,54 @@ 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)
|
||||||
{
|
{
|
||||||
TString query;
|
if (_sheet->run() == K_ENTER)
|
||||||
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)
|
|
||||||
{
|
{
|
||||||
//riempie la maschera di query
|
//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_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));
|
||||||
@ -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
|
//in base alla cervellotica configurazione impostata dall'utonto abilita/disabilita campi
|
||||||
const bool gesliscv = ini_get_bool(CONFIG_DITTA, "ve", "GESLISCV");
|
const bool gesliscv = ini_get_bool(CONFIG_DITTA, "ve", "GESLISCV");
|
||||||
enable(F_FATHCATVEN, gesliscv);
|
enable(F_FATHCATVEN, gesliscv);
|
||||||
enable(F_FATHDESVEN, gesliscv);
|
|
||||||
//attenzione!!! il campo CATVEN è in chiave 1! per disabilitarlo ci vuole questo trucco!
|
//attenzione!!! il campo CATVEN è in chiave 1! per disabilitarlo ci vuole questo trucco!
|
||||||
if (!gesliscv)
|
if (!gesliscv)
|
||||||
efield(F_FATHCATVEN).reset_key(1);
|
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
|
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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user