Patch level :10.0
Files correlati : Ricompilazione Demo : [ ] Commento : gestione nuovi listini: aggiunta ricerca automatica e controllo OEM git-svn-id: svn://10.65.10.50/trunk@19347 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
8226b1074f
commit
abe8417d5e
@ -21,7 +21,7 @@ protected:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
int find_art(TSheet_field& s, const char tipo, const TString& art, const int tranne = -1) const;
|
int find_art(TSheet_field& s, const char tipo, const TString& art, const int tranne = -1) const;
|
||||||
int guess_art(TSheet_field& s, const char tipo, const TString& art) const;
|
int guess_art(TSheet_field& s, const char tipo, const TString& art, const int column) const;
|
||||||
TGestione_listini_semplice_mask();
|
TGestione_listini_semplice_mask();
|
||||||
|
|
||||||
};
|
};
|
||||||
@ -40,9 +40,21 @@ TGestione_listini_semplice_mask::TGestione_listini_semplice_mask() : TAutomask("
|
|||||||
|
|
||||||
//metodo per la ricerca al volo di un articolo (serve per posizionare il cursore sullo sheet in tempo reale..
|
//metodo per la ricerca al volo di un articolo (serve per posizionare il cursore sullo sheet in tempo reale..
|
||||||
//..mentre si digita il codice articolo nel campo di ricerca
|
//..mentre si digita il codice articolo nel campo di ricerca
|
||||||
int TGestione_listini_semplice_mask::guess_art(TSheet_field& s, const char tipo, const TString& art) const
|
int TGestione_listini_semplice_mask::guess_art(TSheet_field& s, const char tipo, const TString& art,
|
||||||
|
const int column) const
|
||||||
{
|
{
|
||||||
return 0;
|
int i = -1;
|
||||||
|
FOR_EACH_SHEET_ROW(s, r, row)
|
||||||
|
{
|
||||||
|
const char tiporiga = row->get_char(0);
|
||||||
|
const TString& cod = row->get(column);
|
||||||
|
if (tipo == tiporiga && cod.starts_with(art, true))
|
||||||
|
{
|
||||||
|
i = r;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
//metodo che restituisce l'indice della riga dello sheet che contiene
|
//metodo che restituisce l'indice della riga dello sheet che contiene
|
||||||
@ -83,14 +95,38 @@ bool TGestione_listini_semplice_mask::on_field_event(TOperable_field &o, TField_
|
|||||||
case F_L_CODRIGA_G:
|
case F_L_CODRIGA_G:
|
||||||
case F_L_CODRIGA_S:
|
case F_L_CODRIGA_S:
|
||||||
case F_L_CODRIGA_R:
|
case F_L_CODRIGA_R:
|
||||||
if (e == fe_modify)
|
if (e == fe_edit || e == fe_modify)
|
||||||
{
|
{
|
||||||
const char tiporiga = get(F_L_TIPORIGA)[0];
|
const char tiporiga = get(F_L_TIPORIGA)[0];
|
||||||
const TString& codriga = o.get();
|
const TString& codriga = ((TEditable_field&)o).get_window_data();
|
||||||
TSheet_field& sf_righe = sfield(F_L_RIGHE);
|
TSheet_field& sf_righe = sfield(F_L_RIGHE);
|
||||||
const long riga = find_art(sf_righe, tiporiga, codriga);
|
const long riga = guess_art(sf_righe, tiporiga, codriga, 1);
|
||||||
if (riga >= 0)
|
if (riga >= 0)
|
||||||
|
{
|
||||||
sf_righe.select(riga, true);
|
sf_righe.select(riga, true);
|
||||||
|
const short f_descr = o.dlg() + 1;
|
||||||
|
const char* descr = sf_righe.cell(riga, 2);
|
||||||
|
set(f_descr, descr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case F_L_DESRIGA_A:
|
||||||
|
case F_L_DESRIGA_G:
|
||||||
|
case F_L_DESRIGA_S:
|
||||||
|
case F_L_DESRIGA_R:
|
||||||
|
if (e == fe_edit || e == fe_modify)
|
||||||
|
{
|
||||||
|
const char tiporiga = get(F_L_TIPORIGA)[0];
|
||||||
|
const TString& desriga = ((TEditable_field&)o).get_window_data();
|
||||||
|
TSheet_field& sf_righe = sfield(F_L_RIGHE);
|
||||||
|
const long riga = guess_art(sf_righe, tiporiga, desriga, 2);
|
||||||
|
if (riga >= 0)
|
||||||
|
{
|
||||||
|
sf_righe.select(riga, true);
|
||||||
|
const short f_cod = o.dlg() - 1;
|
||||||
|
const char* cod = sf_righe.cell(riga, 1);
|
||||||
|
set(f_cod, cod);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
//se abilita la gestione scaglioni nello sheet devono comparire le colonne NSCAGL e QLIM
|
//se abilita la gestione scaglioni nello sheet devono comparire le colonne NSCAGL e QLIM
|
||||||
@ -202,6 +238,8 @@ public:
|
|||||||
|
|
||||||
void TGestione_listini_semplice::save_rows()
|
void TGestione_listini_semplice::save_rows()
|
||||||
{
|
{
|
||||||
|
TWait_cursor hourglass;
|
||||||
|
|
||||||
//attenzione!!! fatto questo casino per poter usare la find_art() che è un metodo della maschera listini
|
//attenzione!!! fatto questo casino per poter usare la find_art() che è un metodo della maschera listini
|
||||||
const TGestione_listini_semplice_mask& m = *_mask;
|
const TGestione_listini_semplice_mask& m = *_mask;
|
||||||
//instanzio un TISAM_recordset sulle righe listino e un localisamfile
|
//instanzio un TISAM_recordset sulle righe listino e un localisamfile
|
||||||
@ -296,6 +334,7 @@ int TGestione_listini_semplice::read(TMask& m)
|
|||||||
//se la read va a buon fine
|
//se la read va a buon fine
|
||||||
if (err == NOERR)
|
if (err == NOERR)
|
||||||
{
|
{
|
||||||
|
TWait_cursor hourglass;
|
||||||
//instanzio un TISAM_recordset sulle righe listino (RCONDV)
|
//instanzio un TISAM_recordset sulle righe listino (RCONDV)
|
||||||
TISAM_recordset righelist(build_query());
|
TISAM_recordset righelist(build_query());
|
||||||
righelist.set_var("#CATVEN", m.get(F_L_CATVEN));
|
righelist.set_var("#CATVEN", m.get(F_L_CATVEN));
|
||||||
@ -354,9 +393,17 @@ int TGestione_listini_semplice::write(const TMask& m)
|
|||||||
|
|
||||||
bool TGestione_listini_semplice::user_create()
|
bool TGestione_listini_semplice::user_create()
|
||||||
{
|
{
|
||||||
|
//controlla che solo il producer AGA possa usare questo programma
|
||||||
|
const int oem = ini_get_int(CONFIG_OEM, "MAIN", "OEM", -1);
|
||||||
|
if (oem != 0)
|
||||||
|
{
|
||||||
|
error_box(TR("Programma non autorizzato!"));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
_rel = new TRelation(LF_CONDV);
|
_rel = new TRelation(LF_CONDV);
|
||||||
|
|
||||||
//attenzione!! questo è il parametro per avere la lunghezza del numero riga
|
//attenzione!! questo è il parametro per avere la lunghezza del numero riga sullo sheet
|
||||||
TSheet_field::set_line_number_width(5);
|
TSheet_field::set_line_number_width(5);
|
||||||
|
|
||||||
_mask = new TGestione_listini_semplice_mask;
|
_mask = new TGestione_listini_semplice_mask;
|
||||||
|
@ -124,7 +124,7 @@ BEGIN
|
|||||||
DISPLAY "Descrizione@50" DESCR
|
DISPLAY "Descrizione@50" DESCR
|
||||||
OUTPUT F_L_CODRIGA_A CODART
|
OUTPUT F_L_CODRIGA_A CODART
|
||||||
OUTPUT F_L_DESRIGA_A DESCR
|
OUTPUT F_L_DESRIGA_A DESCR
|
||||||
//CHECKTYPE FORCED
|
CHECKTYPE SEARCH
|
||||||
ADD RUN ve2 -3
|
ADD RUN ve2 -3
|
||||||
GROUP 1
|
GROUP 1
|
||||||
END
|
END
|
||||||
@ -137,7 +137,7 @@ BEGIN
|
|||||||
DISPLAY "Descrizione@50" DESCR
|
DISPLAY "Descrizione@50" DESCR
|
||||||
DISPLAY "Articolo@20" CODART
|
DISPLAY "Articolo@20" CODART
|
||||||
COPY OUTPUT F_L_CODRIGA_A
|
COPY OUTPUT F_L_CODRIGA_A
|
||||||
//CHECKTYPE NORMAL
|
CHECKTYPE SEARCH
|
||||||
ADD RUN ve2 -3
|
ADD RUN ve2 -3
|
||||||
GROUP 1
|
GROUP 1
|
||||||
END
|
END
|
||||||
@ -152,7 +152,7 @@ BEGIN
|
|||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
OUTPUT F_L_CODRIGA_G CODTAB[1,3]
|
OUTPUT F_L_CODRIGA_G CODTAB[1,3]
|
||||||
OUTPUT F_L_DESRIGA_G S0
|
OUTPUT F_L_DESRIGA_G S0
|
||||||
//CHECKTYPE FORCED
|
CHECKTYPE SEARCH
|
||||||
GROUP 2
|
GROUP 2
|
||||||
END
|
END
|
||||||
|
|
||||||
@ -164,7 +164,7 @@ BEGIN
|
|||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
DISPLAY "Gr. merc." CODTAB[1,3]
|
DISPLAY "Gr. merc." CODTAB[1,3]
|
||||||
COPY OUTPUT F_L_CODRIGA_G
|
COPY OUTPUT F_L_CODRIGA_G
|
||||||
//CHECKTYPE NORMAL
|
CHECKTYPE SEARCH
|
||||||
GROUP 2
|
GROUP 2
|
||||||
END
|
END
|
||||||
|
|
||||||
@ -179,7 +179,7 @@ BEGIN
|
|||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
OUTPUT F_L_CODRIGA_S CODTAB
|
OUTPUT F_L_CODRIGA_S CODTAB
|
||||||
OUTPUT F_L_DESRIGA_S S0
|
OUTPUT F_L_DESRIGA_S S0
|
||||||
//CHECKTYPE FORCED
|
CHECKTYPE SEARCH
|
||||||
GROUP 3
|
GROUP 3
|
||||||
END
|
END
|
||||||
|
|
||||||
@ -192,7 +192,7 @@ BEGIN
|
|||||||
DISPLAY "Gr. merc." CODTAB[1,3]
|
DISPLAY "Gr. merc." CODTAB[1,3]
|
||||||
DISPLAY "Sottogr. merc." CODTAB[4,5]
|
DISPLAY "Sottogr. merc." CODTAB[4,5]
|
||||||
COPY OUTPUT F_L_CODRIGA_S
|
COPY OUTPUT F_L_CODRIGA_S
|
||||||
//CHECKTYPE NORMAL
|
CHECKTYPE SEARCH
|
||||||
GROUP 3
|
GROUP 3
|
||||||
END
|
END
|
||||||
|
|
||||||
@ -206,7 +206,7 @@ BEGIN
|
|||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
OUTPUT F_L_CODRIGA_R CODTAB
|
OUTPUT F_L_CODRIGA_R CODTAB
|
||||||
OUTPUT F_L_DESRIGA_R S0
|
OUTPUT F_L_DESRIGA_R S0
|
||||||
//CHECKTYPE FORCED
|
CHECKTYPE SEARCH
|
||||||
GROUP 4
|
GROUP 4
|
||||||
END
|
END
|
||||||
|
|
||||||
@ -218,7 +218,7 @@ BEGIN
|
|||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
DISPLAY "Ragg. fisc." CODTAB
|
DISPLAY "Ragg. fisc." CODTAB
|
||||||
COPY OUTPUT F_L_CODRIGA_R
|
COPY OUTPUT F_L_CODRIGA_R
|
||||||
//CHECKTYPE NORMAL
|
CHECKTYPE SEARCH
|
||||||
GROUP 4
|
GROUP 4
|
||||||
END
|
END
|
||||||
//------------------------------------------
|
//------------------------------------------
|
||||||
|
Loading…
x
Reference in New Issue
Block a user