Patch level : 12.0 1024
Files correlati : ve5.exe Commento : Modificati i ve5800.cpp velib04.cpp ed .h aggiunti un filtro per selezionare solo i documenti da raggruppare.
This commit is contained in:
parent
f2e4d57192
commit
47de958f1a
@ -27,11 +27,30 @@ class TRaggruppamento_documenti_mask : public TAutomask
|
|||||||
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:
|
||||||
TRaggruppamento_documenti_mask() : TAutomask("ve5800a") {}
|
|
||||||
|
TRaggruppamento_documenti_mask();
|
||||||
|
|
||||||
virtual ~TRaggruppamento_documenti_mask() {}
|
virtual ~TRaggruppamento_documenti_mask() {}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
bool selectfunc(const TRelation* r);
|
||||||
|
|
||||||
|
TRaggruppamento_documenti_mask::TRaggruppamento_documenti_mask() : TAutomask("ve5800a")
|
||||||
|
{
|
||||||
|
|
||||||
|
TEdit_field & da = efield(F_FRNDOC);
|
||||||
|
TCursor * cur_da = da.browse()->cursor();
|
||||||
|
cur_da->set_filterfunction(selectfunc); //nome funzione
|
||||||
|
|
||||||
|
TEdit_field & a = efield(F_FRNDOC);
|
||||||
|
TCursor * cur_a = a.browse()->cursor();
|
||||||
|
cur_a->set_filterfunction(selectfunc); //nome funzione
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
bool TRaggruppamento_documenti_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
bool TRaggruppamento_documenti_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||||
{
|
{
|
||||||
switch (o.dlg())
|
switch (o.dlg())
|
||||||
@ -52,11 +71,16 @@ bool TRaggruppamento_documenti_mask::on_field_event(TOperable_field& o, TField_e
|
|||||||
|
|
||||||
class TRaggruppamento_documenti : public TSkeleton_application
|
class TRaggruppamento_documenti : public TSkeleton_application
|
||||||
{
|
{
|
||||||
|
TMask *_mask;
|
||||||
public:
|
public:
|
||||||
void raggruppa_doc(const TMask & m);
|
void set_mask(TMask * m) { _mask = m; }
|
||||||
virtual void main_loop();
|
const TMask * get_mask() const { return _mask; }
|
||||||
|
void raggruppa_doc(const TMask & m);
|
||||||
|
virtual void main_loop();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
TRaggruppamento_documenti & app() { return (TRaggruppamento_documenti &)main_app(); }
|
||||||
|
|
||||||
void TRaggruppamento_documenti::raggruppa_doc(const TMask & m)
|
void TRaggruppamento_documenti::raggruppa_doc(const TMask & m)
|
||||||
{
|
{
|
||||||
TRaggruppamento_documento ragg(m.get(F_CODICE_ELAB));
|
TRaggruppamento_documento ragg(m.get(F_CODICE_ELAB));
|
||||||
@ -88,6 +112,14 @@ void TRaggruppamento_documenti::raggruppa_doc(const TMask & m)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool selectfunc(const TRelation* r)
|
||||||
|
{
|
||||||
|
const TMask * m = app().get_mask();
|
||||||
|
TRaggruppamento_documento ragg(m->get(F_CODICE_ELAB));
|
||||||
|
const TRectype & curr = r->lfile().curr();
|
||||||
|
return ragg.doc_ok(curr);
|
||||||
|
};
|
||||||
|
|
||||||
void TRaggruppamento_documenti::main_loop()
|
void TRaggruppamento_documenti::main_loop()
|
||||||
{
|
{
|
||||||
open_files(LF_TAB, LF_TABCOM, LF_DOC, LF_RIGHEDOC, LF_MOVMAG, NULL);
|
open_files(LF_TAB, LF_TABCOM, LF_DOC, LF_RIGHEDOC, LF_MOVMAG, NULL);
|
||||||
@ -96,6 +128,7 @@ void TRaggruppamento_documenti::main_loop()
|
|||||||
TRaggruppamento_documenti_mask m;
|
TRaggruppamento_documenti_mask m;
|
||||||
|
|
||||||
m.set(F_CODDITTA, prefix().get_codditta(), true);
|
m.set(F_CODDITTA, prefix().get_codditta(), true);
|
||||||
|
set_mask(&m);
|
||||||
while (m.run()==K_ENTER)
|
while (m.run()==K_ENTER)
|
||||||
raggruppa_doc(m);
|
raggruppa_doc(m);
|
||||||
}
|
}
|
||||||
|
@ -627,7 +627,7 @@ void TElaborazione::tipi_stati_iniziali(TToken_string& tipi, TToken_string& stat
|
|||||||
{
|
{
|
||||||
TString4 t;
|
TString4 t;
|
||||||
|
|
||||||
tipi.cut(0);
|
tipi.cut(0);
|
||||||
stati.cut(0);
|
stati.cut(0);
|
||||||
for (int i = 0; i < TElaborazione::_max_tipi_doc_elab; i++)
|
for (int i = 0; i < TElaborazione::_max_tipi_doc_elab; i++)
|
||||||
{
|
{
|
||||||
@ -647,6 +647,28 @@ void TElaborazione::tipi_stati_iniziali(TToken_string& tipi, TToken_string& stat
|
|||||||
CHECK(!stati.empty_items(), "Nessuno stato documento valido");
|
CHECK(!stati.empty_items(), "Nessuno stato documento valido");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool TElaborazione::doc_ok(const TRectype & rec) const
|
||||||
|
{
|
||||||
|
TString4 t;
|
||||||
|
const TString4 tipo = rec.get(DOC_TIPODOC);
|
||||||
|
const char stato = rec.get_char(DOC_STATO);
|
||||||
|
for (int i = 0; i < TElaborazione::_max_tipi_doc_elab; i++)
|
||||||
|
{
|
||||||
|
t = tipo_iniziale(i);
|
||||||
|
const char s = stato_iniziale(i);
|
||||||
|
if (t.blank() && s == '\0')
|
||||||
|
break;
|
||||||
|
else
|
||||||
|
if (t.full() || s > ' ')
|
||||||
|
{
|
||||||
|
if ((t == tipo) && (s == stato))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
// TElaborazione_esterna
|
// TElaborazione_esterna
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
@ -45,7 +45,6 @@ public:
|
|||||||
int items() const { return _documenti.items(); }
|
int items() const { return _documenti.items(); }
|
||||||
|
|
||||||
int sort(const char* fields = ""); // token string of field names
|
int sort(const char* fields = ""); // token string of field names
|
||||||
|
|
||||||
TLista_documenti() { }
|
TLista_documenti() { }
|
||||||
virtual ~TLista_documenti() {};
|
virtual ~TLista_documenti() {};
|
||||||
};
|
};
|
||||||
@ -218,6 +217,9 @@ public:
|
|||||||
virtual bool elabora(TLista_documenti& doc_in, TLista_documenti& doc_out,
|
virtual bool elabora(TLista_documenti& doc_in, TLista_documenti& doc_out,
|
||||||
const TDate& data_elab, bool interattivo = false);
|
const TDate& data_elab, bool interattivo = false);
|
||||||
|
|
||||||
|
bool doc_ok(const TDocumento & doc) const { return doc_ok((const TRectype &)doc); }
|
||||||
|
bool doc_ok(const TRectype & rec) const;
|
||||||
|
|
||||||
TElaborazione(const char* cod);
|
TElaborazione(const char* cod);
|
||||||
TElaborazione(const TRectype& rec) : TRectype(rec) { }
|
TElaborazione(const TRectype& rec) : TRectype(rec) { }
|
||||||
virtual ~TElaborazione() { }
|
virtual ~TElaborazione() { }
|
||||||
|
Loading…
x
Reference in New Issue
Block a user