Patch level : 10.0 patch 204
Files correlati : lv0 Ricompilazione Demo : [ ] Commento : 0001006: Gestione più itinerari nello stesso giorno e itinerario stagionale Prova effettuata: Cliente 1 contratto 1 per il lunedì ho inserito due volte lo stesso itinerario (in questo caso 001) e il progrmma me lo ha accettato...inoltre sono riuscita anche a generare il planning (doppio ovviamente!) P.S.: Mentre va bene se inserisco un itinerario diverso. Adesso le righe COMPLETAMENTE uguali compaiono una sola volta git-svn-id: svn://10.65.10.50/trunk@17989 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
19cd73372b
commit
cf4332ac04
@ -68,7 +68,8 @@ class TPass_plan_contr : public TRelation_application
|
||||
long _codcont;
|
||||
|
||||
private:
|
||||
void genera_giri(const long codli); //richiama la generazione giri in automatico
|
||||
void genera_giri(const long codli); //richiama la generazione giri in automatico
|
||||
void kill_duplicates(const TMask& m); //uccide i duplicati e le righe vuote sullo sheet
|
||||
|
||||
protected:
|
||||
virtual void init_query_mode(TMask& m);
|
||||
@ -149,19 +150,34 @@ void TPass_plan_contr::genera_giri(const long codcli)
|
||||
}
|
||||
}
|
||||
|
||||
//KILL_DUPLICATES: questa funzione elimina dallo sheet tutte le righe che non contengono dati di interesse...
|
||||
//...e/o le righe duplicate sullo sheet
|
||||
void TPass_plan_contr::kill_duplicates(const TMask& m)
|
||||
{
|
||||
TSheet_field& pc = m.sfield(F_PASPLAN);
|
||||
|
||||
//ciclo che elimina le righe che non contengono dati di interesse dallo sheet
|
||||
FOR_EACH_SHEET_ROW_BACK (pc, r, row)
|
||||
if (row->get_int(2) == 0)
|
||||
pc.destroy(r, false);
|
||||
|
||||
//ciclo che elimina tutti i duplicati dallo sheet
|
||||
FOR_EACH_SHEET_ROW_BACK (pc, r1, row1)
|
||||
if (pc.rows_array().find(*row1) < r1)
|
||||
pc.destroy(r1,false);
|
||||
}
|
||||
|
||||
//WRITE: ridefinizione metodo write delle TRelation
|
||||
int TPass_plan_contr::write(const TMask& m)
|
||||
{
|
||||
if (_mask->field(F_CODCF).empty() || _mask->field(F_CODCONT).empty())
|
||||
return _isnocurkey;
|
||||
|
||||
TSheet_field& pc = m.sfield(F_PASPLAN);
|
||||
kill_duplicates(m);
|
||||
|
||||
FOR_EACH_SHEET_ROW_BACK (pc, r, row)
|
||||
if (row->get_int(2) == 0)
|
||||
pc.destroy(r, false);
|
||||
|
||||
const int err = TRelation_application::write(m);
|
||||
|
||||
TSheet_field& pc = m.sfield(F_PASPLAN);
|
||||
|
||||
if (err == NOERR && pc.items() > 0)
|
||||
{
|
||||
@ -178,13 +194,11 @@ int TPass_plan_contr::rewrite(const TMask& m)
|
||||
if (_mask->field(F_CODCF).empty() || _mask->field(F_CODCONT).empty())
|
||||
return _isnocurkey;
|
||||
|
||||
TSheet_field& pc = m.sfield(F_PASPLAN);
|
||||
kill_duplicates(m);
|
||||
|
||||
FOR_EACH_SHEET_ROW_BACK (pc, r, row)
|
||||
if (row->get_int(2) == 0)
|
||||
pc.destroy(r, false);
|
||||
|
||||
const int err = TRelation_application::rewrite(m);
|
||||
|
||||
TSheet_field& pc = m.sfield(F_PASPLAN);
|
||||
|
||||
if (err == NOERR && pc.items() > 0)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user