FCLT#56458 Kenmerktype checkbox

svn path=/Website/trunk/; revision=40975
This commit is contained in:
Erik Groener
2019-02-14 13:13:32 +00:00
parent dc756872f9
commit 5bcbbafc21
5 changed files with 37 additions and 31 deletions

View File

@@ -64,6 +64,9 @@
// case "B":
// kenmerktypeLOV = "B;" + L("mgt_srtkenmerk_berekening");
// break;
case "V":
kenmerktypeLOV = "V;" + L("mgt_srtkenmerk_checkbox");
break;
default:
kenmerktypeLOV = (emptyOption ? emptyOption + ";" : "")
+ "C;" + L("mgt_srtkenmerk_karakter")
@@ -79,7 +82,8 @@
+ ";L;" + L("mgt_srtkenmerk_label")
+ ";l;" + L("mgt_srtkenmerk_label_i")
+ ";Q;" + L("mgt_srtkenmerk_blanco")
// + ";B;" + L("mgt_srtkenmerk_berekening");
// + ";B;" + L("mgt_srtkenmerk_berekening")
+ ";V;" + L("mgt_srtkenmerk_checkbox");
}
return kenmerktypeLOV;
}
@@ -190,6 +194,16 @@ function checkSrtkenmerkValue(params)
err = L("mgt_srtkenmerk_err_string").format(klen)+ "\n";
}
}
else if (ktyp == "V")
{
// Checkbox; waarde in checked is altijd true of false, dus altijd valid.
valid = true;
}
else if (ktyp == "N" && klen == 1 && kmin == 0 && kmax == 1)
{
// Dit is de oude schrijfwijze voor een checkbox.
valid = true;
}
else if (ktyp == "N")
{
var t;
@@ -232,28 +246,19 @@ function checkSrtkenmerkValue(params)
}
else
{
if (klen == 1 && kmin == 0 && kmax == 1)
var s = "^\\-?\\d{1," + klen + "}[.,]?$";
valid = value.match(new RegExp(s)) && valid;
if (valid)
{
// Checkbox; waarde in checked is altijd true of false, dus altijd valid.
valid = true;
t = (field.checked?1:0);
t = parseInt(value);
}
else
{
var s = "^\\-?\\d{1," + klen + "}[.,]?$";
valid = value.match(new RegExp(s)) && valid;
if (valid)
err = L("mgt_srtkenmerk_err_integer") + "\n";
if (value.length > klen)
{
t = parseInt(value);
}
else
{
err = L("mgt_srtkenmerk_err_integer") + "\n";
if (value.length > klen)
{
valid = false;
err += L("mgt_srtkenmerk_err_int_len").format(klen) + "\n";
}
valid = false;
err += L("mgt_srtkenmerk_err_int_len").format(klen) + "\n";
}
}
}

View File

@@ -137,7 +137,7 @@ function kenmerkValues(n)
this.op = $("#ko" + n).val();
this.id = n;
if (this.typ == "N" && $("#has_k" + n + "val").val() == 1)
if ((this.typ == "N" || this.typ == "V") && $("#has_k" + n + "val").val() == 1)
{ // Het is een checkbox
this.checkbox = true;
this.val = $("#k" + n + "val").prop("checked") ? 1 : 0;
@@ -234,7 +234,7 @@ function setAdvFlexValue(k)
$("#Suggestk" + k.id + "_show").val(k.sug);
}
if (k.typ == "N" && k.checkbox)
if ((k.typ == "N" || this.typ == "V") && k.checkbox)
$("#k"+k.id+"val").prop("checked", k.val == 1);
else
$("#k"+k.id+"val").val(k.val);

View File

@@ -157,8 +157,8 @@ function getKenmerkSql(pmodule, pkeyColumn, prequestForm)
where1 = " fac.safe_to_date(" + where1 + ",'DD/MM/YYYY')";
}
}
else if (kt == "N") // Beide kanten naar NUMBER converteren om te kunnen vergelijken "<" en ">"
{ // Een numeriek "N" kenmerk kan ook een checkbox zijn.
else if (kt == "N" || kt == "V") // Beide kanten naar NUMBER converteren om te kunnen vergelijken "<" en ">"
{ // Een numeriek "N" kenmerk kan ook een checkbox "V" zijn.
if (kv == "on") kv = "1";
kv = " fac.safe_to_number(" + safe.quoted_sql(kv.replace(",", ".")) + ")" ; // Bij "Geavanceerd" kan het numerieke getal met de komma i.p.v. punt zijn ingevuld.
where1 = " fac.safe_to_number(" + where1 + ")" ;

View File

@@ -432,10 +432,10 @@ function kenmerk_regel(kv_params)
// Alleen dan hidden name-velden er bij
kvhtml += "<input type=hidden name='"+kv_params.nameprefix + kv_params.idCounter+"key' id='"+kv_params.nameprefix + kv_params.idCounter+"key' value='"+kv_params.kkey+"'>";
kvhtml += "<input type=hidden name='"+kv_params.nameprefix + kv_params.idCounter+"t' id='"+kv_params.nameprefix + kv_params.idCounter+"t' value='"+kv_params.ktype+"'>";
if (kv_params.ktype == "C" || kv_params.ktype == "N" || kv_params.ktype == "B")
if (kv_params.ktype == "C" || kv_params.ktype == "N" || kv_params.ktype == "B" || kv_params.ktype == "V")
{
kvhtml += "<input type=hidden name='"+kv_params.nameprefix + kv_params.idCounter+"p' id='"+kv_params.nameprefix + kv_params.idCounter+"p' value='"+kv_params.klen+"'>";
if (kv_params.ktype == "N" || kv_params.ktype == "B")
if (kv_params.ktype == "N" || kv_params.ktype == "B" || kv_params.ktype == "V")
{
kvhtml += "<input type=hidden name='"+kv_params.nameprefix + kv_params.idCounter+"d' id='"+kv_params.nameprefix + kv_params.idCounter+"d' value='"+kv_params.kdec+"'>";
}
@@ -664,7 +664,7 @@ function listKenmerk(sql, module, key, props)
if (typeof xx != "undefined")
{
flexkenmerkwaarde = xx;
if (oRs("kenmerk_kenmerktype").value == "C" || oRs("kenmerk_kenmerktype").value == "N" || oRs("kenmerk_kenmerktype").value == "B")
if (oRs("kenmerk_kenmerktype").value == "C" || oRs("kenmerk_kenmerktype").value == "N" || oRs("kenmerk_kenmerktype").value == "B" || oRs("kenmerk_kenmerktype").value == "V")
flexkenmerkwaarde = flexkenmerkwaarde.substr(0, oRs("kenmerk_lengte").value); // Kap de waarde op de maximale lengte af
}
}
@@ -796,14 +796,14 @@ function listKenmerk(sql, module, key, props)
// En: voor type M is het altijd nu nog leeg, en die komen dus readonly nooit!
// Voorlopig laat ik die dan altijd maar zien (TODO: evt niet als er 0 bestanden zijn)
if (readonlyfield && !isParent && ktype != 'L' && ktype != 'l' && ktype != 'M' && (!flexkenmerkwaarde || flexkenmerkwaarde=="") &&
(!kenmerk_search && (ktype == 'C' || ktype == 'N' || ktype == 'B' || ktype == 'D' || ktype == 'T' || ktype == 'R' || ktype == 'S')) ) // Als geavanceerd dan maakt het niet uit of het readonly is. Dan moet je het kenmerk gewoon tonen.
(!kenmerk_search && (ktype == 'C' || ktype == 'N' || ktype == 'V' || ktype == 'B' || ktype == 'D' || ktype == 'T' || ktype == 'R' || ktype == 'S')) ) // Als geavanceerd dan maakt het niet uit of het readonly is. Dan moet je het kenmerk gewoon tonen.
{
oRs.MoveNext();
continue;
}
// Als geavanceerd dan maakt het niet uit of het readonly is. Dan moet je het kenmerk gewoon tonen.
if (kenmerk_search && readonlyfield && (ktype == 'C' || ktype == 'N' || ktype == 'B' || ktype == 'D' || ktype == 'T' || ktype == 'R' || ktype == 'S'))
if (kenmerk_search && readonlyfield && (ktype == 'C' || ktype == 'N' || ktype == 'V' || ktype == 'B' || ktype == 'D' || ktype == 'T' || ktype == 'R' || ktype == 'S'))
readonlyfield = false;
colCount++; // Nu pas ophogen.
@@ -1508,7 +1508,8 @@ function listKenmerk(sql, module, key, props)
}
var makeCheckbox = false;
if ((ktype == 'N' || ktype == 'B') && klen == 1 && kmin == 0 && kmax == 1 && (kdec == 0 || !kdec))
// if ((ktype == "B" && klen == 1 && kmin == 0 && kmax == 1 && (kdec == 0 || !kdec)) || ktype=="V") // Nog even niet ivm compatibiliteit van Number met Checkbox!
if (((ktype == "N" || ktype == "B") && klen == 1 && kmin == 0 && kmax == 1 && (kdec == 0 || !kdec)) || ktype=="V")
{
makeCheckbox = true;
if (formobile) // Daar staat de tekst achter het vinkje
@@ -1609,7 +1610,7 @@ function listKenmerk(sql, module, key, props)
// KENMERKTYPE N (Numeriek) of B (Berekening) ===============================================
// ===============================================
// ==========================================================================================
if (ktype == "N" || ktype == "B")
if (ktype == "N" || ktype == "B" || ktype == "V")
{
// Checkbox of numeriek/berekening input veld.
if (makeCheckbox) // deze doen we compleet hier
@@ -2879,7 +2880,7 @@ function flexkenmerken2jsondata(params)
// 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
if (kt == "N")
if (kt == "N" || kt == "V")
{
// Kijken of het een checkbox is
var isCheckbox = getFParamInt("has_" + flex + "val", 0) == 1;

View File

@@ -608,7 +608,7 @@ function flexValue(oRsFlex, showProperties)
{
flexValue = oRsFlex("waarde").value;
// Indien de waarde van het kenmerk numeriek is en alleen de waarden 0 of 1 kan bevatten, dan de text "Ja" of "Nee" tonen
if (oRsFlex("kenmerktype").value == "N" && oRsFlex("nmin").value == 0 && oRsFlex("nmax").value == 1)
if (oRsFlex("kenmerktype").value == "V" || (oRsFlex("kenmerktype").value == "N" && oRsFlex("nmin").value == 0 && oRsFlex("nmax").value == 1))
{
if (flexValue == 0)
flexValue = L("lcl_check_0");