Patch level :10.0

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :gestione del configuratore dei fidi funzionante


git-svn-id: svn://10.65.10.50/trunk@17539 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2008-11-03 16:45:40 +00:00
parent 7b324606fd
commit 168a422537
3 changed files with 75 additions and 9 deletions

View File

@ -8,6 +8,14 @@
#include <confapp.h>
#endif
#ifndef __MSKSHEET_H
#include <msksheet.h>
#endif
#ifndef __RELATION_H
#include <relation.h>
#endif
#ifndef __TABUTIL_H
#include <tabutil.h>
#endif
@ -118,6 +126,35 @@ bool TConf_vendite::preprocess_config (TMask& mask, TConfig& config)
mask.set_handler(F_EX_PERCIVA1,check_fields_iva); // Basta su uno che controlla tutti all'uscita della maschera
}
break;
case 8:
{
TSheet_field& sf = mask.sfield(F_DOCS); //prende lo sheet..
const TMask& sm = sf.sheet_mask(); //..poi la maschera di sheet..
bool found = true;
for (int r = 0; found; r++) //finchè ci sono valori c'è speranza!..
{ //Ovvero legge i valori finchè ce ne sono e non sono nulli aggiornando i..
FOR_EACH_MASK_FIELD(sm, j, f) //..campi dello sheet
{
const TFieldref* fr = f->field();
if (fr != NULL)
{
const TString& value = get_config()->get(fr->name(), NULL, r);
if (value.empty() && f->dlg() == 101)
{
found = false;
break;
}
else
{
sf.row(r).add(value, sf.cid2index(f->dlg()));
}
}
sf.check_row(sf.items() - 1); //metodo per ricaricare le descrizioni delle numerazioni
} //FOR_EACH_MASK_FIELD
} //for(int r=0...
}
break;
default:
break;
}
@ -162,8 +199,31 @@ bool TConf_vendite::postprocess_config (TMask& mask, TConfig& config)
}
break;
case 8:
case 8: //ve0200h.uml (fido bau!)
{
//sporco trucco perchè la postprocess_config salverebbe tutto in ogni modo (vedi file confapp.cpp e rabbrividisci!)..
//..mentre qui si vuole salvare solo in caso di CONFERMA da parte dell'utonto
const KEY k = mask.last_key();
bool tosave = k == K_ENTER || k == K_SAVE;
if (tosave)
{
TSheet_field& sf = mask.sfield(F_DOCS); //prende lo sheet..
const TMask& sm = sf.sheet_mask(); //..poi la maschera di sheet..
FOR_EACH_SHEET_ROW(sf, j, row) //per ogni riga dello sheet deve salvare SOLO i campi che hanno un field
{
short id = 101;
FOR_EACH_TOKEN((*row), tok)
{
const TFieldref* fr = sm.field(id++).field(); //settatore dei valori sul .ini
if (fr != NULL)
config.set(fr->name(), tok, NULL, true, j);
}
}
//gestione della eliminazione: finito il giro sulle righe presenti (FOR_EACH_SHEET_ROW) ogni altro campo presente..
//..eventualmente sul config risulta di troppo e viene giustamente accoppato
const TFieldref* fr = sm.field(101).field();
config.remove(fr->name(), sf.items());
}
}
break;

View File

@ -16,16 +16,18 @@ ENDPAGE
PAGE "Configurazione calcolo fido clienti" -1 -1 78 10
NUMBER F_DANGERDAYS 2
NUMBER F_RISKDAYS 2
BEGIN
PROMPT 1 2 "Giorni di rischio "
FLAGS "U"
FIELD FIDO_RISKDAYS
END
NUMBER F_SAFEPERC 6 2
NUMBER F_PERCTOLL 6 2
BEGIN
PROMPT 1 3 "% di tolleranza "
FLAGS "U"
FIELD FIDO_PERCTOLL
END
TEXT DLG_NULL
@ -33,14 +35,14 @@ BEGIN
PROMPT 1 5 "@bNumerazioni/Tipi documenti da considerare"
END
SPREADSHEET F_DOCS -1 4
SPREADSHEET F_DOCS -1 -1
BEGIN
PROMPT 1 6 ""
ITEM "Numerazione"
ITEM "Descrizione@50"
ITEM "Tipo"
ITEM "Stato"
ITEM "Scarico"
ITEM "Doc. a residuo"
END
ENDPAGE
@ -60,6 +62,7 @@ BEGIN
OUTPUT SN_DESCR S0
CHECKTYPE REQUIRED
FLAGS "UZ"
FIELD FIDO_NUM
END
STRING SN_DESCR 50
@ -76,23 +79,26 @@ STRING SN_TIPO 4
BEGIN
PROMPT 1 3 "Tipo "
USE %TIP
INPUT CODTAB F_TIPODOC
INPUT CODTAB SN_TIPO
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT SN_TIPO CODTAB
CHECKTYPE REQUIRED
FLAG "UPD"
FLAG "UP"
FIELD FIDO_TIP
END
NUMBER SN_STATO 1
BEGIN
PROMPT 1 4 "Stato "
CHECKTYPE REQUIRED
FIELD FIDO_STA
END
BOOLEAN SN_RESIDUO
BEGIN
PROMPT 1 5 "Documento a residuo "
FIELD FIDO_RES
END
BUTTON DLG_OK 10 2

View File

@ -223,8 +223,8 @@
#define F_EAN8CIN 174
// Campi per ve0200h.uml
#define F_DANGERDAYS 201
#define F_SAFEPERC 202
#define F_RISKDAYS 201
#define F_PERCTOLL 202
#define F_DOCS 203
#define SN_CODNUM 101