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> #include <confapp.h>
#endif #endif
#ifndef __MSKSHEET_H
#include <msksheet.h>
#endif
#ifndef __RELATION_H
#include <relation.h>
#endif
#ifndef __TABUTIL_H #ifndef __TABUTIL_H
#include <tabutil.h> #include <tabutil.h>
#endif #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 mask.set_handler(F_EX_PERCIVA1,check_fields_iva); // Basta su uno che controlla tutti all'uscita della maschera
} }
break; 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: default:
break; break;
} }
@ -162,8 +199,31 @@ bool TConf_vendite::postprocess_config (TMask& mask, TConfig& config)
} }
break; 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; break;

View File

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

View File

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