Patch level :10.0
Files correlati : Ricompilazione Demo : [ ] Commento :aggiunta colonna check sullo sheet git-svn-id: svn://10.65.10.50/trunk@19383 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
07eb5f8967
commit
f54528049a
@ -38,7 +38,9 @@ public:
|
|||||||
TAggiorna_listini_edit_mask(TMask* query_mask);
|
TAggiorna_listini_edit_mask(TMask* query_mask);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//METODI ON_FIELD
|
||||||
|
//---------------
|
||||||
|
// metodi per F_LISTINI_FIGLI
|
||||||
//metodo per riempire lo sheet dei listini figli con i ricarichi oggi tanto di moda
|
//metodo per riempire lo sheet dei listini figli con i ricarichi oggi tanto di moda
|
||||||
void TAggiorna_listini_edit_mask::fill_ricarichi_children_list()
|
void TAggiorna_listini_edit_mask::fill_ricarichi_children_list()
|
||||||
{
|
{
|
||||||
@ -165,25 +167,33 @@ void TAggiorna_listini_edit_mask::save_children_list()
|
|||||||
} //if(grmerc.full())
|
} //if(grmerc.full())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//metodi F_MULTILISTINI
|
||||||
//restituisce la posizione della riga ALTA, quella disabilitata
|
//restituisce la posizione della riga ALTA, quella disabilitata
|
||||||
int TAggiorna_listini_edit_mask::find_codart(TSheet_field& sf, const TString& codart, const TString& um)
|
int TAggiorna_listini_edit_mask::find_codart(TSheet_field& sf, const TString& codart, const TString& codum)
|
||||||
{
|
{
|
||||||
//cerca la riga tra quelle esistenti
|
//cerca la riga tra quelle esistenti
|
||||||
|
const int codart_pos = sf.cid2index(F_CODRIGA);
|
||||||
|
const int codum_pos = codart_pos + 1;
|
||||||
|
|
||||||
for (int i = 1; i < sf.items(); i += 2)
|
for (int i = 1; i < sf.items(); i += 2)
|
||||||
{
|
{
|
||||||
const char* cod = sf.cell(i, 0);
|
const char* art = sf.cell(i, codart_pos);
|
||||||
if (codart == cod)
|
TString4 um = sf.cell(i, codum_pos);
|
||||||
|
um.trim();
|
||||||
|
if (codart == art && codum == um)
|
||||||
return i - 1;
|
return i - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
//non trova la riga nel padre -> la aggiunge
|
//non trova la riga nel padre -> la aggiunge
|
||||||
TToken_string& row_alta = sf.row(-1);
|
TToken_string& row_alta = sf.row(-1);
|
||||||
sf.disable_cell(sf.items()-1, -1);
|
sf.disable_cell(sf.items()-1, -1);
|
||||||
const TString& descr = cache().get(LF_ANAMAG, codart, ANAMAG_DESCR);
|
const TString& descr = cache().get(LF_ANAMAG, codart, ANAMAG_DESCR);
|
||||||
row_alta.add(descr);
|
row_alta.add(descr, codart_pos);
|
||||||
row_alta.add(um);
|
row_alta.add(codum, codum_pos);
|
||||||
|
|
||||||
TToken_string& row_bassa = sf.row(-1);
|
TToken_string& row_bassa = sf.row(-1);
|
||||||
row_bassa.add(codart);
|
row_bassa.add(codart, codart_pos);
|
||||||
|
|
||||||
return sf.items() - 2; //ritorna la penultima riga (riga alta)
|
return sf.items() - 2; //ritorna la penultima riga (riga alta)
|
||||||
}
|
}
|
||||||
@ -225,12 +235,14 @@ void TAggiorna_listini_edit_mask::fill_multilistini_sheet()
|
|||||||
TProgind pi(recset_rows_items, TR("Creazione righe listini..."), true, true);
|
TProgind pi(recset_rows_items, TR("Creazione righe listini..."), true, true);
|
||||||
|
|
||||||
TSheet_field& sf_multilistini = sfield(F_MULTILISTINI);
|
TSheet_field& sf_multilistini = sfield(F_MULTILISTINI);
|
||||||
|
const int prezzo_pos = sf_multilistini.cid2index(F_PREZZO);
|
||||||
|
|
||||||
//per ogni riga del recordset va ad aggiornare lo sheet sulla maschera (aggiunge la riga)
|
//per ogni riga del recordset va ad aggiornare lo sheet sulla maschera (aggiunge la riga)
|
||||||
for (bool ok = recset_rows.move_first(); ok; ok = recset_rows.move_next())
|
for (bool ok = recset_rows.move_first(); ok; ok = recset_rows.move_next())
|
||||||
{
|
{
|
||||||
if (!pi.addstatus(1))
|
if (!pi.addstatus(1))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
//dati riga corrente
|
//dati riga corrente
|
||||||
const TString& codart = recset_rows.get(RCONDV_CODRIGA).as_string();
|
const TString& codart = recset_rows.get(RCONDV_CODRIGA).as_string();
|
||||||
const TString& um = recset_rows.get(RCONDV_UM).as_string();
|
const TString& um = recset_rows.get(RCONDV_UM).as_string();
|
||||||
@ -246,9 +258,9 @@ void TAggiorna_listini_edit_mask::fill_multilistini_sheet()
|
|||||||
//mette il prezzo al posto giusto (padre e figlio)
|
//mette il prezzo al posto giusto (padre e figlio)
|
||||||
const int pos = keys_figli.get_pos(riga_key);
|
const int pos = keys_figli.get_pos(riga_key);
|
||||||
if (pos < 0)
|
if (pos < 0)
|
||||||
sf_multilistini.row(riga_alta + 1).add(prezzo.string(), 1);
|
sf_multilistini.row(riga_alta + 1).add(prezzo.string(), prezzo_pos);
|
||||||
else
|
else
|
||||||
sf_multilistini.row(riga_alta).add(prezzo.string(), 2 + pos);
|
sf_multilistini.row(riga_alta).add(prezzo.string(), prezzo_pos + 1 + pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
//aggiorna i prezzi nuovi dei listini figli
|
//aggiorna i prezzi nuovi dei listini figli
|
||||||
@ -263,15 +275,16 @@ void TAggiorna_listini_edit_mask::update_sons_prices()
|
|||||||
//PrezzoNuovoFiglio = Ricaricofiglio * PrezzoPadre (questo vale per ogni articolo)
|
//PrezzoNuovoFiglio = Ricaricofiglio * PrezzoPadre (questo vale per ogni articolo)
|
||||||
TSheet_field& sf_figli = sfield(F_LISTINI_FIGLI);
|
TSheet_field& sf_figli = sfield(F_LISTINI_FIGLI);
|
||||||
TSheet_field& sf_listini = sfield(F_MULTILISTINI);
|
TSheet_field& sf_listini = sfield(F_MULTILISTINI);
|
||||||
|
const int prezzo_pos = sf_listini.cid2index(F_PREZZO);
|
||||||
|
|
||||||
FOR_EACH_SHEET_ROW(sf_figli, r, riga_figlio)
|
FOR_EACH_SHEET_ROW(sf_figli, r, riga_figlio)
|
||||||
{
|
{
|
||||||
const real ricarico = riga_figlio->get(2);
|
const real ricarico = riga_figlio->get(2);
|
||||||
FOR_EACH_SHEET_ROW(sf_listini, i, riga) if (i & 1) //è come dire mod(i,2)=1 (ignoranti!)
|
FOR_EACH_SHEET_ROW(sf_listini, i, riga) if (i & 1) //è come dire mod(i,2)=1 (ignoranti!)
|
||||||
{
|
{
|
||||||
const real fath_prezzo = riga->get(1);
|
const real fath_prezzo = riga->get(prezzo_pos);
|
||||||
const TPrice son_prezzo = fath_prezzo * (CENTO + ricarico) / CENTO;
|
const TPrice son_prezzo = fath_prezzo * (CENTO + ricarico) / CENTO;
|
||||||
riga->add(son_prezzo.get_num().string(), r + 2);
|
riga->add(son_prezzo.get_num().string(), r + prezzo_pos + 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
sf_listini.force_update();
|
sf_listini.force_update();
|
||||||
@ -311,6 +324,10 @@ bool TAggiorna_listini_edit_mask::on_field_event(TOperable_field& o, TField_even
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//METODI COSTRUTTORE
|
||||||
|
//------------------
|
||||||
|
// metodi per F_LISTINI_FIGLI
|
||||||
//metodo per aggiungere i figli allo sheet dei medesimi
|
//metodo per aggiungere i figli allo sheet dei medesimi
|
||||||
void TAggiorna_listini_edit_mask::fill_children_list()
|
void TAggiorna_listini_edit_mask::fill_children_list()
|
||||||
{
|
{
|
||||||
@ -350,6 +367,8 @@ void TAggiorna_listini_edit_mask::fill_children_list()
|
|||||||
sf_righe.force_update();
|
sf_righe.force_update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// metodi per F_MULTILISTINI
|
||||||
//metodo per riempire lo sheet con i dati da aggiornare
|
//metodo per riempire lo sheet con i dati da aggiornare
|
||||||
void TAggiorna_listini_edit_mask::set_header_multilistini_sheet()
|
void TAggiorna_listini_edit_mask::set_header_multilistini_sheet()
|
||||||
{
|
{
|
||||||
@ -360,7 +379,7 @@ void TAggiorna_listini_edit_mask::set_header_multilistini_sheet()
|
|||||||
|
|
||||||
TSheet_field& sf_figli = sfield(F_LISTINI_FIGLI);
|
TSheet_field& sf_figli = sfield(F_LISTINI_FIGLI);
|
||||||
TString column_header;
|
TString column_header;
|
||||||
int num_of_columns = 2;
|
int num_of_columns = 3;
|
||||||
FOR_EACH_SHEET_ROW(sf_figli, r, riga)
|
FOR_EACH_SHEET_ROW(sf_figli, r, riga)
|
||||||
{
|
{
|
||||||
column_header.cut(0);
|
column_header.cut(0);
|
||||||
@ -368,7 +387,7 @@ void TAggiorna_listini_edit_mask::set_header_multilistini_sheet()
|
|||||||
column_header.trim();
|
column_header.trim();
|
||||||
column_header << riga->get(1);
|
column_header << riga->get(1);
|
||||||
|
|
||||||
sf_multilistini.set_column_header(r + 2, column_header);
|
sf_multilistini.set_column_header(num_of_columns, column_header);
|
||||||
num_of_columns ++;
|
num_of_columns ++;
|
||||||
}
|
}
|
||||||
//cancella i figli in eccesso
|
//cancella i figli in eccesso
|
||||||
|
25
ve/ve2700.h
25
ve/ve2700.h
@ -23,15 +23,16 @@
|
|||||||
#define F_DESLIS 104
|
#define F_DESLIS 104
|
||||||
|
|
||||||
//multi-terribile sheet dei multi-listini
|
//multi-terribile sheet dei multi-listini
|
||||||
#define F_CODRIGA 101
|
#define F_CHECK 101
|
||||||
#define F_PREZZO 102
|
#define F_CODRIGA 102
|
||||||
#define F_LIST1 103
|
#define F_PREZZO 103
|
||||||
#define F_LIST2 104
|
#define F_LIST1 104
|
||||||
#define F_LIST3 105
|
#define F_LIST2 105
|
||||||
#define F_LIST4 106
|
#define F_LIST3 106
|
||||||
#define F_LIST5 107
|
#define F_LIST4 107
|
||||||
#define F_LIST6 108
|
#define F_LIST5 108
|
||||||
#define F_LIST7 109
|
#define F_LIST6 109
|
||||||
#define F_LIST8 110
|
#define F_LIST7 110
|
||||||
#define F_LIST9 111
|
#define F_LIST8 111
|
||||||
#define F_LIST10 112
|
#define F_LIST9 112
|
||||||
|
#define F_LIST10 113
|
||||||
|
@ -131,6 +131,7 @@ END
|
|||||||
SPREADSHEET F_MULTILISTINI -1 -1
|
SPREADSHEET F_MULTILISTINI -1 -1
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 0 8 "Aggiornamento figli"
|
PROMPT 0 8 "Aggiornamento figli"
|
||||||
|
ITEM "@1"
|
||||||
ITEM "Descrizione\nArticolo@30"
|
ITEM "Descrizione\nArticolo@30"
|
||||||
ITEM "U. M. \nPrezzo base@8R"
|
ITEM "U. M. \nPrezzo base@8R"
|
||||||
ITEM "Figlio 1@8"
|
ITEM "Figlio 1@8"
|
||||||
@ -229,6 +230,11 @@ ENDPAGE
|
|||||||
|
|
||||||
PAGE "Riga aggiornamento listini" -1 -1 78 22
|
PAGE "Riga aggiornamento listini" -1 -1 78 22
|
||||||
|
|
||||||
|
BOOLEAN F_CHECK
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 0 "Includere "
|
||||||
|
END
|
||||||
|
|
||||||
STRING F_CODRIGA 50 20
|
STRING F_CODRIGA 50 20
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 1 "Codice "
|
PROMPT 1 1 "Codice "
|
||||||
|
Loading…
x
Reference in New Issue
Block a user