Patch level : 12.0 472
Files correlati : mr0 Commento : - Aggiornata maschera e programma Consultivazione, aggiunti filtri per togliere parte dei risultati ottenuti che servono solo a scopi di controllo - Sistemato errore loop infinito durante la ricerda di ordini clienti già chiusi git-svn-id: svn://10.65.10.50/branches/R_10_00@24146 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
feecc64d95
commit
635a076f2b
@ -13,17 +13,35 @@
|
||||
class TConsuntivazione_mask : public TAutomask
|
||||
{
|
||||
protected:
|
||||
void reload_sheet();
|
||||
void load_sheet();
|
||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
|
||||
public:
|
||||
TConsuntivazione_mask() : TAutomask("velib04e") { }
|
||||
TConsuntivazione_mask() : TAutomask("velib04e") {}
|
||||
virtual ~TConsuntivazione_mask() { }
|
||||
};
|
||||
|
||||
TConsuntivazione_mask& msk()
|
||||
{
|
||||
static TConsuntivazione_mask* msk = NULL;
|
||||
if (msk == NULL)
|
||||
msk = new TConsuntivazione_mask();
|
||||
return *msk;
|
||||
}
|
||||
|
||||
static bool scan_rilprod(const TRelation& rel, void* pJolly)
|
||||
{
|
||||
const TRectype& rec = rel.curr();
|
||||
|
||||
// Prima di fare qualsiasi cosa controllo che la riga vada messa
|
||||
// Abilito le righe aperte
|
||||
if(!msk().get_bool(B_RIGHE_APERTE) && !rec.get_bool("CHIUSO"))
|
||||
return true;
|
||||
// Abilito le righe chiuse con QTA <= 0
|
||||
if(!msk().get_bool(B_RIGHE_CHIU_QTA) && rec.get_bool("CHIUSO") && rec.get_real(RDOC_QTA) <= ZERO)
|
||||
return true;
|
||||
|
||||
TSheet_field& sheet = *(TSheet_field*)pJolly;
|
||||
TToken_string& row = sheet.row(-1);
|
||||
TLocalisamfile righe(LF_RRILPROD);
|
||||
@ -57,6 +75,20 @@ static bool scan_rilprod(const TRelation& rel, void* pJolly)
|
||||
return true;
|
||||
}
|
||||
|
||||
void TConsuntivazione_mask::reload_sheet()
|
||||
{
|
||||
load_sheet();
|
||||
TSheet_field& s = sfield(F_SHEET);
|
||||
FOR_EACH_SHEET_ROW(s, n, row)
|
||||
{
|
||||
const real r(row->get(s.cid2index(S_QTA)));
|
||||
|
||||
if (r <= ZERO)
|
||||
s.disable_row(n);
|
||||
}
|
||||
s.force_update();
|
||||
}
|
||||
|
||||
void TConsuntivazione_mask::load_sheet()
|
||||
{
|
||||
TRelation rel(LF_RILPROD);
|
||||
@ -73,19 +105,13 @@ bool TConsuntivazione_mask::on_field_event(TOperable_field& o, TField_event e, l
|
||||
{
|
||||
switch (o.dlg())
|
||||
{
|
||||
case DLG_RECALC:
|
||||
if(e == fe_button)
|
||||
reload_sheet();
|
||||
case F_SHEET:
|
||||
if (e == fe_init)
|
||||
{
|
||||
load_sheet();
|
||||
TSheet_field& s = sfield(F_SHEET);
|
||||
FOR_EACH_SHEET_ROW(s, n, row)
|
||||
{
|
||||
const real r(row->get(s.cid2index(S_QTA)));
|
||||
|
||||
if (r <= ZERO)
|
||||
s.disable_row(n);
|
||||
}
|
||||
s.force_update();
|
||||
reload_sheet();
|
||||
}
|
||||
break;
|
||||
case DLG_TUTTE:
|
||||
@ -140,7 +166,7 @@ bool TConsuntivazione_produzione::ref2doc(char & provv, int & anno, TString8 & c
|
||||
|
||||
f.setkey(4);
|
||||
ok = false;
|
||||
for (int err = f.read(_isequal); !ok && rec == cmp && err == NOERR; f.next())
|
||||
for (int err = f.read(_isequal); !ok && rec == cmp && err == NOERR; err = f.next())
|
||||
{
|
||||
if (rec.get(RDOC_CODNUM) == ordprod)
|
||||
if(rec.get(RDOC_CODARTMAG) == codart)
|
||||
@ -160,12 +186,12 @@ bool TConsuntivazione_produzione::ref2doc(char & provv, int & anno, TString8 & c
|
||||
bool TConsuntivazione_produzione::elabora(TLista_documenti& doc_in, TLista_documenti& doc_out,
|
||||
const TDate& data_elab, bool interattivo)
|
||||
{
|
||||
TConsuntivazione_mask msk;
|
||||
//TConsuntivazione_mask msk;
|
||||
TLog_report log("Consuntivazione produzione");
|
||||
bool done = false;
|
||||
if (msk.run() == K_ENTER)
|
||||
if (msk().run() == K_ENTER)
|
||||
{
|
||||
TSheet_field& sheet = msk.sfield(F_SHEET);
|
||||
TSheet_field& sheet = msk().sfield(F_SHEET);
|
||||
TLocalisamfile rilevazioni(LF_RILPROD);
|
||||
TRectype& ril = rilevazioni.curr();
|
||||
const TString8 codnum = codice_numerazione_finale();
|
||||
|
@ -19,4 +19,6 @@
|
||||
#define S_NDOC 113
|
||||
#define S_NRIGA 114
|
||||
|
||||
#define DLG_TUTTE 201
|
||||
#define DLG_TUTTE 201
|
||||
#define B_RIGHE_APERTE 202
|
||||
#define B_RIGHE_CHIU_QTA 203
|
@ -8,9 +8,16 @@ BEGIN
|
||||
PICTURE BMP_ELABORA
|
||||
END
|
||||
|
||||
BUTTON DLG_RECALC 10 2
|
||||
BEGIN
|
||||
PROMPT -13 -11 "Ricarica"
|
||||
PICTURE BMP_RECALC
|
||||
END
|
||||
|
||||
BUTTON DLG_TUTTE 10 2
|
||||
BEGIN
|
||||
PROMPT -23 -11 "~Tutte"
|
||||
PICTURE BMP_SELECT
|
||||
END
|
||||
|
||||
#include <helpbar.h>
|
||||
@ -19,6 +26,22 @@ ENDPAGE
|
||||
|
||||
PAGE "Consuntivazione produzione" 0 0 0 0
|
||||
|
||||
BOOLEAN B_RIGHE_APERTE
|
||||
BEGIN
|
||||
PROMPT 0 0 "Visualizza righe Aperte"
|
||||
END
|
||||
|
||||
BOOLEAN B_RIGHE_CHIU_QTA
|
||||
BEGIN
|
||||
PROMPT 27 0 "Visualizza righe chiuse con Quantità > 0"
|
||||
END
|
||||
|
||||
STRING DLG_PROFILE 50
|
||||
BEGIN
|
||||
PROMPT -1 -1 "Profilo "
|
||||
PSELECT
|
||||
END
|
||||
|
||||
SPREADSHEET F_SHEET
|
||||
BEGIN
|
||||
PROMPT 0 1 ""
|
||||
|
Loading…
x
Reference in New Issue
Block a user