AAIT#36710: Berekende waarde van velden in Facilitor.
svn path=/Website/trunk/; revision=31887
This commit is contained in:
@@ -303,17 +303,22 @@ function listKenmerk(sql, module, key, props)
|
||||
var val = null;
|
||||
val_seperator = ':';
|
||||
var def_val = oRs("kenmerk_default").value;
|
||||
var isExpression = false;
|
||||
|
||||
if (!kenmerk_search && !multiMode)
|
||||
{
|
||||
// In multiMode no filling of default values
|
||||
val = oRs("kenmerk_waarde").value;
|
||||
|
||||
if (def_val && def_val.match('##EXPR##') != null)
|
||||
isExpression = true;
|
||||
|
||||
// For a new value, this default is used. It could be a primitive value (string, number or key) or
|
||||
// it is suggested to support (later)
|
||||
// a more sophisticated value, using ##asp-variable## and/or SQL:SELECT in the string.
|
||||
if (val != null)
|
||||
{ //__Log("val:"+val);
|
||||
if (val==def_val && val.match('##SQL##') != null )
|
||||
if (val == def_val && val.match('##SQL##') != null)
|
||||
{
|
||||
//__Log("val match");
|
||||
prssql = true;
|
||||
@@ -326,6 +331,10 @@ function listKenmerk(sql, module, key, props)
|
||||
val = '';
|
||||
oRsPerslid.Close();
|
||||
}
|
||||
else if (def_val && val == def_val && def_val.match('##EXPR##') != null)
|
||||
{
|
||||
val = "";
|
||||
}
|
||||
}
|
||||
}
|
||||
// Meegegeven default verwerken (UWVA Pacta o.a.)
|
||||
@@ -372,9 +381,10 @@ function listKenmerk(sql, module, key, props)
|
||||
|
||||
// Velden die de gebruiker niet mag zien zijn we h<><68>l snel klaar mee
|
||||
// Ook velden waar je niet op kunt zoeken slaan we direct over in zoekmode
|
||||
// En labels met een readonly-kenmerk tonen we niet als readonly, om invulinstructies in showmode weg te laten
|
||||
if ((!kenmerk_search && props.fnIsInvisible && props.fnIsInvisible(kvolgnr, ktype, oRs)) ||
|
||||
(kenmerk_search && (ktype == 'L' || ktype == 'l' || ktype == 'Q' || ktype == 'M' || ktype == 'F' || ktype == 'E') ||
|
||||
kvolgnr < 0)
|
||||
(kenmerk_search && (ktype == 'L' || ktype == 'l' || ktype == 'Q' || ktype == 'M' || ktype == 'F' || ktype == 'E') || kvolgnr < 0) ||
|
||||
(!kenmerk_search && (ktype == 'L' || ktype == 'l') && forceReadonly && props.fnIsReadonly(kvolgnr, oRs))
|
||||
)
|
||||
{
|
||||
oRs.MoveNext();
|
||||
@@ -974,9 +984,9 @@ function listKenmerk(sql, module, key, props)
|
||||
}
|
||||
if (kdim == 'xxx')
|
||||
{
|
||||
if (!missing && val)
|
||||
if (!missing && val)
|
||||
kv += "<img class='kenmerk' src=' " + protectQS.create(OpenFlexFile(module, niveau, key, kkey, val, { mime_type: "image/png", contentdp: "inline" })) + "'>";
|
||||
else
|
||||
else
|
||||
kv += "<img class='kenmerk' style='display:none'>";
|
||||
}
|
||||
}
|
||||
@@ -1021,7 +1031,7 @@ function listKenmerk(sql, module, key, props)
|
||||
// De uitzonderingen hebben we nu gehad, alle overige types beginnen hetzelfde
|
||||
// ===========================================================================
|
||||
// JGL: Wat zijn de overige types nog van CNDRSXFEMLlQB ?
|
||||
// Volgens mij NDXLlQ waarbij L en l nog overruled worden
|
||||
// Volgens mij NDXLlQB waarbij L en l nog overruled worden.
|
||||
|
||||
if (kv == "" && ktype != "M" && ktype != "F" && ktype != "E" && !makeCheckbox)
|
||||
{ // Ook lege folders met bestanden en een enkele bestandsnaam krijgen we via de query mee. Maar deze niet tonen.
|
||||
@@ -1082,6 +1092,7 @@ function listKenmerk(sql, module, key, props)
|
||||
+ (kdec > 0 ? " float " : " number ")
|
||||
+ "'"
|
||||
+ (required ? " required='required' " : "")
|
||||
+ (isExpression? " readonly " : "")
|
||||
//+ " placeholder='"+val_label+"'"
|
||||
+ " value='" + (kdec > 0 && val? safe.displayfloat(parseFloat(val), kdec) : safe.html(val)) + "'"
|
||||
+ " maxlength='" + ((kmin >= 0? 0 : 1) + (kdec > 0? 1 : 0) + klen) + "'"
|
||||
@@ -1098,6 +1109,7 @@ function listKenmerk(sql, module, key, props)
|
||||
+ (required ? required_class : "")
|
||||
+ "'"
|
||||
+ (required ? " required='required' " : "")
|
||||
+ (isExpression? " readonly " : "")
|
||||
+ " value='" + safe.htmlattr(val) + "'"
|
||||
+ ">";
|
||||
// Als er voor een datumveld geen kmin en kmax is ingevuld dan is de yearRange default -10 tot +10 jaar vanaf geselecteerd jaar.
|
||||
@@ -1385,6 +1397,10 @@ function listKenmerk(sql, module, key, props)
|
||||
{ // Alleen dan hidden name-velden er bij
|
||||
%> <input type=hidden name='<%=nameprefix + idCounter%>key' id='<%=nameprefix + idCounter%>key' value='<%=kkey%>'>
|
||||
<input type=hidden name='<%=nameprefix + idCounter%>t' id='<%=nameprefix + idCounter%>t' value='<%=ktype%>'>
|
||||
<% if (isExpression)
|
||||
{ %>
|
||||
<input type=hidden name='<%=nameprefix + idCounter%>e' id='<%=nameprefix + idCounter%>e' value='1'>
|
||||
<% } %>
|
||||
<% }
|
||||
idCounter++; // Nu ophogen
|
||||
|
||||
@@ -1657,7 +1673,7 @@ function _saveFlexKenmerken(parentKey, params, flexdata) // TODO: support multiM
|
||||
}
|
||||
// Nu oude kenmerken verzamelen in kenmerk_keys
|
||||
var oRs = Oracle.Execute(params.currentKenmerkenSQL);
|
||||
while( !oRs.eof )
|
||||
while (!oRs.eof)
|
||||
{
|
||||
kenmerk_keys[oRs(params.kenmerkKey).value] = oRs(params.kenmerkWaarde).value; // kenmerkwaarde moet oldval bevatten
|
||||
oRs.MoveNext();
|
||||
@@ -1697,10 +1713,12 @@ function _saveFlexKenmerken(parentKey, params, flexdata) // TODO: support multiM
|
||||
|
||||
var trackarray = []; // eventuele tracking
|
||||
|
||||
var hasExpression = false;
|
||||
for (kenmerk=0; kenmerk<flexdata.length; kenmerk++)
|
||||
{
|
||||
var flex = flexdata[kenmerk];
|
||||
var vold = kenmerk_keys[flex.id]? kenmerk_keys[flex.id] : "";
|
||||
hasExpression = hasExpression || flex.expr == 1;
|
||||
var vnew = flex.value || "";
|
||||
|
||||
// tracking?
|
||||
@@ -1830,9 +1848,73 @@ function _saveFlexKenmerken(parentKey, params, flexdata) // TODO: support multiM
|
||||
}
|
||||
}
|
||||
|
||||
if (hasExpression)
|
||||
{
|
||||
if (params.module == "MLD")
|
||||
{
|
||||
if (params.flexPath == "MLD/O")
|
||||
module = "OPD"
|
||||
else
|
||||
module = "MLD"
|
||||
}
|
||||
else
|
||||
module = params.module;
|
||||
|
||||
// Tabel fac_kenmwaarden vullen, expressies berekenen en tabel fac_kenmwaarden weer leeg maken.
|
||||
// Vorige waarden verwijderen.
|
||||
removekenmerkwaarden(module, parentKey);
|
||||
savekenmerkwaarden(module, parentKey, params.moduleVal, flexdata);
|
||||
evaluateflexexpresions(module, parentKey);
|
||||
//removekenmerkwaarden(module, parentKey);
|
||||
}
|
||||
|
||||
return trackarray;
|
||||
}
|
||||
|
||||
function savekenmerkwaarden(module, refkey, niveau, flexdata)
|
||||
{
|
||||
for (kenmerk = 0; kenmerk < flexdata.length; kenmerk++)
|
||||
{
|
||||
var sql = "INSERT INTO fac_kenmwaarden"
|
||||
+ " (fac_kenmwaarden_module"
|
||||
+ " , fac_kenmwaarden_refkey"
|
||||
+ (niveau
|
||||
? " , fac_kenmwaarden_niveau"
|
||||
: "")
|
||||
+ " , fac_kenmwaarden_kenmerk_key"
|
||||
+ " , fac_kenmwaarden_waarde"
|
||||
+ " , fac_kenmwaarden_kenmerktype"
|
||||
+ " , fac_kenmwaarden_isexpr"
|
||||
+ " )"
|
||||
+ " VALUES (" + safe.quoted_sql(module)
|
||||
+ " , " + refkey
|
||||
+ (niveau
|
||||
? " , " + niveau
|
||||
: "")
|
||||
+ " , " + flexdata[kenmerk].id
|
||||
+ " , " + safe.quoted_sql(flexdata[kenmerk].value)
|
||||
+ " , " + safe.quoted_sql(flexdata[kenmerk].type)
|
||||
+ " , " + flexdata[kenmerk].expr
|
||||
+ " )";
|
||||
Oracle.Execute(sql);
|
||||
}
|
||||
}
|
||||
|
||||
function evaluateflexexpresions(module, refkey)
|
||||
{ // Berekening van de expressie kenmerken.
|
||||
var sql = "BEGIN flx.evaluateflexexpresions(" + safe.quoted_sql(module) + ", " + refkey + "); END;";
|
||||
Oracle.Execute(sql);
|
||||
}
|
||||
|
||||
function removekenmerkwaarden(module, refkey)
|
||||
{
|
||||
var sql = "DELETE FROM fac_kenmwaarden"
|
||||
+ " WHERE fac_kenmwaarden_module = " + safe.quoted_sql(module)
|
||||
+ " AND fac_kenmwaarden_refkey = " + refkey;
|
||||
Oracle.Execute(sql);
|
||||
}
|
||||
|
||||
|
||||
function flexkenmerken2jsondata(params)
|
||||
{
|
||||
// Lees de Form parameters van flexkenmerken en zet ze in een json-object.
|
||||
@@ -1857,9 +1939,10 @@ function flexkenmerken2jsondata(params)
|
||||
var ktn = Request.Form(flex + "t").Count;
|
||||
if( kkn && ktn )
|
||||
{
|
||||
var kk = getFParamInt(flex + "key"); // kenmerk key
|
||||
var kt = getFParam(flex + "t", ""); // Type letter
|
||||
var kv = getFParam(flex + "val", ""); // kenmerk waarde
|
||||
var kk = getFParamInt(flex + "key"); // kenmerk key
|
||||
var kt = getFParam(flex + "t", ""); // Type letter
|
||||
var kv = getFParam(flex + "val", ""); // kenmerk waarde
|
||||
var ke = Request.Form(flex + "e").Count; // Flexkenmerk is een expressie.
|
||||
|
||||
// ATTENTIE: Als het een numeriek/decimaal veld is, kan het zijn dat er een komma in voorkomt die eigenlijk een punt moet zijn.
|
||||
// Als het een numeriek/decimaal veld is, kan het ook een checkbox zijn
|
||||
@@ -1887,7 +1970,8 @@ function flexkenmerken2jsondata(params)
|
||||
jsondata.push( { id: kk,
|
||||
//name: "",
|
||||
type: kt,
|
||||
value: kv
|
||||
value: kv,
|
||||
expr: (ke? 1 : 0)
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user