FSN#31698 Rapportgenerator filter velden
svn path=/Website/trunk/; revision=24448
This commit is contained in:
@@ -516,6 +516,9 @@ api2 = {
|
||||
if (fld.substring(0,1) == "_")
|
||||
continue;
|
||||
var field = model.fields[fld];
|
||||
if (field.hidden)
|
||||
continue;
|
||||
|
||||
var dbs = field.dbs;
|
||||
if (field.sql)
|
||||
{
|
||||
@@ -847,6 +850,9 @@ api2 = {
|
||||
if (fld.substring(0,1) == "_")
|
||||
continue;
|
||||
var field = model.fields[fld];
|
||||
if (field.hidden)
|
||||
continue;
|
||||
|
||||
var val = api2.sql2jsonval(oRs, fld, model);
|
||||
//waarom was dit aanwezig?
|
||||
//if (field.readonly && !val.id)
|
||||
@@ -907,6 +913,9 @@ api2 = {
|
||||
if (fld.substring(0,1) == "_")
|
||||
continue;
|
||||
var field = model.fields[fld];
|
||||
if (field.hidden)
|
||||
continue;
|
||||
|
||||
var val = api2.sql2jsonval(oRs, fld, model)
|
||||
//waarom was dit aanwezig?
|
||||
//if (field.readonly && !val.id)
|
||||
@@ -1365,14 +1374,14 @@ function generic_REST_GET(model)
|
||||
if (model.soft_delete && params.filter.show_deleted != "on")
|
||||
query.wheres.push(model.soft_delete + " IS NULL");
|
||||
|
||||
var maxcnt = getQParamInt("showall", 0) == 1?S("qp_maxrows2"):S("qp_maxrows");
|
||||
query.wheres.push("ROWNUM <= " + (maxcnt + 1)); // Eentje extra om overflow-melding te triggeren in resultsettable
|
||||
|
||||
var sql = "SELECT " + query.selects.join(", ")
|
||||
+ " FROM " + query.tables.join(", ")
|
||||
+ (query.wheres.length ? " WHERE " + query.wheres.join(" AND " ) : "")
|
||||
+ " ORDER BY " + (model.fields.name?model.fields.name.dbs:model.fields.id.dbs);
|
||||
|
||||
var maxcnt = getQParamInt("showall", 0) == 1?S("qp_maxrows2"):S("qp_maxrows");
|
||||
var sql = "SELECT * FROM (" + sql + ") WHERE ROWNUM <= " + (maxcnt + 1); // Eentje extra om overflow-melding te triggeren in resultsettable
|
||||
|
||||
var json = api2.sql2json (params, sql, model);
|
||||
return json;
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ model_apis =
|
||||
{
|
||||
},
|
||||
|
||||
search: { autosubmit: true },
|
||||
search: { autosearch: true },
|
||||
list: { default_url: "api2/{0}.scf" }
|
||||
// list: { default_url: "api2/{0}.api?pretty=1" }
|
||||
}
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
Notes:
|
||||
*/
|
||||
%>
|
||||
<!-- #include file="../Shared/json2.js" -->
|
||||
<!-- #include file="./model_reportsx.inc" -->
|
||||
<!-- #include file="../fac/fac_usrrap.inc" -->
|
||||
<%
|
||||
@@ -52,7 +51,7 @@ function model_reports_template()
|
||||
if (this.list && this.list.default_url && fld == "id")
|
||||
groupbys.push(this.fields["id"].dbs);
|
||||
else
|
||||
delete this.fields[fld]; // Onnodige velden niet ophalen
|
||||
this.fields[fld].hidden = true; // Onnodige velden niet ophalen
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,6 +65,9 @@ function model_reports_template()
|
||||
case "G":
|
||||
groupbys.push(field.dbs);
|
||||
break;
|
||||
case "U":
|
||||
field.sql = "DISTINCT(" + field.dbs + ")";
|
||||
break;
|
||||
case "S":
|
||||
field.sql = "SUM(" + field.dbs + ")";
|
||||
field.label = L("lcl_usrrap_label_SUM").format(field.label);
|
||||
@@ -135,9 +137,6 @@ function model_reports_template()
|
||||
}
|
||||
}
|
||||
|
||||
var maxcnt = getQParamInt("showall", 0) == 1?S("qp_maxrows2"):S("qp_maxrows");
|
||||
query.wheres.push("ROWNUM <= " + (maxcnt + 1)); // Eentje extra om overflow-melding te triggeren in resultsettable
|
||||
|
||||
var sql = "SELECT " + query.selects.join(", ")
|
||||
+ " FROM " + query.tables.join(", ")
|
||||
+ (query.wheres.length ? " WHERE " + query.wheres.join(" AND " ) : "")
|
||||
@@ -151,6 +150,9 @@ function model_reports_template()
|
||||
order.push(i+1)
|
||||
sql += " ORDER BY " + order.join(", ");
|
||||
|
||||
var maxcnt = getQParamInt("showall", 0) == 1?S("qp_maxrows2"):S("qp_maxrows");
|
||||
var sql = "SELECT * FROM (" + sql + ") WHERE ROWNUM <= " + (maxcnt + 1); // Eentje extra om overflow-melding te triggeren in resultsettable
|
||||
|
||||
for (var fld in this.fields)
|
||||
{ // Overrules voor groeperingen
|
||||
this.fields[fld].typ = this.fields[fld].newtyp || this.fields[fld].typ;
|
||||
|
||||
@@ -38,9 +38,11 @@
|
||||
else
|
||||
__Log("Existing report {0}: {1}".format(usrrap_key, rapport.table));
|
||||
|
||||
var params = { transit: { name: "usrrap_key", val: usrrap_key }};
|
||||
var params = { transit: { name: "usrrap_key", val: usrrap_key },
|
||||
search: { requires: { js: ["./fac_report.js"] }}
|
||||
};
|
||||
if ("estimated_rows" in rapport && rapport.estimated_rows < 250)
|
||||
params.search = { autosubmit: true };
|
||||
params.search.autosearch = true;
|
||||
|
||||
shared.registeraction("report", {refkey: usrrap_key, daily: true});
|
||||
|
||||
|
||||
42
APPL/FAC/fac_report.js
Normal file
42
APPL/FAC/fac_report.js
Normal file
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
$Revision$
|
||||
$Id$
|
||||
|
||||
File: fac_repor.js
|
||||
*/
|
||||
|
||||
function toggleInputSelect()
|
||||
{
|
||||
var inp = $(this).prev()[0];
|
||||
if (inp.tagName == 'INPUT')
|
||||
{
|
||||
$(inp).show().val("Please wait");
|
||||
$(inp).prop('disabled', true);
|
||||
$.getJSON("fac_report_worker.asp", $("[name=u2]").serialize() + "&distinct=" + inp.name, process_worker_info);
|
||||
}
|
||||
else
|
||||
$(inp).replaceWith('<input class="fld" id="' + inp.name +'" name="' + inp.name +'">');
|
||||
}
|
||||
|
||||
function process_worker_info(data)
|
||||
{
|
||||
var inp = $("#" + data.distinct); // we krijgen de naam terug in data.distinct
|
||||
inp.replaceWith('<select size=5 multiple="on" id="' + data.distinct +'" name="' + data.distinct +'"></select>');
|
||||
var sel = $("#" + data.distinct);
|
||||
if(data.values.length > 1)
|
||||
sel.append($('<option></option>').val("").html(L("lcl_shared_alle") + " " + data.values.length));
|
||||
for (var i = 0; i < data.values.length; i++)
|
||||
{
|
||||
var v = data.values[i][data.distinct];
|
||||
sel.append($('<option></option>').val(v).html(v));
|
||||
}
|
||||
}
|
||||
|
||||
$(function ()
|
||||
{
|
||||
$("input.fld").after($("<img class='autoreport' src='../Pictures/comment.png'>")
|
||||
.css('cursor', 'pointer')
|
||||
.attr('title', L("lcl_usrrap_beware"))
|
||||
.click(toggleInputSelect)
|
||||
);
|
||||
});
|
||||
31
APPL/FAC/fac_report_worker.asp
Normal file
31
APPL/FAC/fac_report_worker.asp
Normal file
@@ -0,0 +1,31 @@
|
||||
<%@language = "javascript" %>
|
||||
<% /*
|
||||
$Revision$
|
||||
$Id$
|
||||
|
||||
File fac_report_worker.asp
|
||||
Description: Haal unieke waarden voor een listbox op
|
||||
Parameters: usrrap_key: van een rapport
|
||||
distinct: name van het veld wat we zoeken
|
||||
xxx overige filtervelden
|
||||
Note:
|
||||
*/
|
||||
JSON_Result = true;
|
||||
%>
|
||||
<!-- #include file="../Shared/common.inc" -->
|
||||
<!-- #include file="../Shared/json2.js" -->
|
||||
<!-- #include file="../api2/api2.inc" -->
|
||||
<!-- #include file="../api2/model_reports.inc" -->
|
||||
<!-- #include file="../api2/model_reportsx.inc" -->
|
||||
<%
|
||||
var usrrap_key = getQParamInt("usrrap_key");
|
||||
var rapport = model_reports(usrrap_key);
|
||||
|
||||
var filter = api2.qs2json();
|
||||
var columns = [getQParam("distinct")];
|
||||
|
||||
var xxx_params = { filter : api2.qs2json(), columns: columns, groupby: ["U"] }; // U=distinct
|
||||
var result = { distinct: columns[0], values: rapport.REST_GET(xxx_params) };
|
||||
|
||||
Response.Write(JSON.stringify(result));
|
||||
%>
|
||||
@@ -12,10 +12,10 @@
|
||||
scaffolding(reportsx,
|
||||
{
|
||||
"search": {
|
||||
autosubmit: true
|
||||
autosearch: true
|
||||
},
|
||||
"show": {
|
||||
js: ["./fac_reportx.js"],
|
||||
requires: { js: ["./fac_reportx.js"] },
|
||||
buttons: [{ title: L("lcl_usrrap_show"), action: "show_report", icon: "doc_text_image.png" },
|
||||
{ title: L("lcl_usrrap_clone"), action: "clone_report", icon: "copy.png" }]
|
||||
}
|
||||
|
||||
@@ -177,7 +177,7 @@ function scf_RWFIELDTR(field, fld, val, key)
|
||||
departmentKey: val?val.id:null
|
||||
});
|
||||
}
|
||||
else if (fupper.match(/ALG_RUIMTE|ALG_VERDIEPING|RES_RSV_RUIMTE|MLD_UITVOERENDE|CNT_CONTRACT/) || !foreign)
|
||||
else if (fupper.match(/ALG_RUIMTE|ALG_VERDIEPING|RES_RSV_RUIMTE|MLD_UITVOERENDE|MLD_OPDR|MLD_MELDING|CNT_CONTRACT/) || !foreign)
|
||||
{
|
||||
ROFIELDTR("fldtxt", field.label, "TODO: suggest met " + field.foreign);
|
||||
}
|
||||
|
||||
@@ -22,11 +22,13 @@ function scaffolding_search(model, scf_params)
|
||||
FCLTHeader.Requires({plugins:[],
|
||||
js: ["jquery-ui.js", "jquery.timepicker-table.js"],
|
||||
css: ["timePicker-table.css"]});
|
||||
if ("requires" in scf_params.search)
|
||||
FCLTHeader.Requires(scf_params.search.requires);
|
||||
|
||||
if (model.autfunction)
|
||||
var authparams = user.checkAutorisation(model.autfunction);
|
||||
|
||||
scf_params.search.autosubmit |= getQParamInt("autosearch", 0) == 1;
|
||||
scf_params.search.autosearch |= getQParamInt("autosearch", 0) == 1;
|
||||
|
||||
%>
|
||||
<html>
|
||||
@@ -69,8 +71,8 @@ function scaffolding_search(model, scf_params)
|
||||
$("#groups").val(groups.join(","));
|
||||
document.forms.u2.submit();
|
||||
}
|
||||
<% if (scf_params.search.autosubmit) { %>
|
||||
$(doSubmit); // Autosubmit
|
||||
<% if (scf_params.search.autosearch) { %>
|
||||
$(doSubmit);
|
||||
<% } %>
|
||||
</script>
|
||||
</head>
|
||||
|
||||
@@ -19,8 +19,8 @@ function scaffolding_show(model, scf_params)
|
||||
FCLTHeader.Requires({ plugins: ["jQuery"],
|
||||
js: ["jquery-ui.js"]
|
||||
})
|
||||
if ("js" in scf_params.show)
|
||||
FCLTHeader.Requires({ js: scf_params.show.js });
|
||||
if ("requires" in scf_params.show)
|
||||
FCLTHeader.Requires(scf_params.show.requires);
|
||||
|
||||
var transit = "";
|
||||
if ("transit" in scf_params)
|
||||
|
||||
Reference in New Issue
Block a user