FSN#31698 Rapportgenerator fixes
svn path=/Website/trunk/; revision=24704
This commit is contained in:
@@ -419,8 +419,40 @@ api2 = {
|
||||
Response.End;
|
||||
}
|
||||
break;
|
||||
case "varchar":
|
||||
var safe_val = (filter == "exact" ? safe.quoted_sql(filterval) : safe.quoted_sql_wild("%"+filterval+"%"));
|
||||
case "varchar": // Als fld.match(/^fclt_d_/) dan is het een old-style rapport filterveld
|
||||
switch (filter)
|
||||
{
|
||||
case "exact":
|
||||
var safe_val = safe.quoted_sql(filterval);
|
||||
break;
|
||||
case "like":
|
||||
var safe_val = safe.quoted_sql_wild("%"+filterval+"%");
|
||||
case "range":
|
||||
var safe_val;
|
||||
if (filterval1) {
|
||||
if (fld.match(/^fclt_d_/))
|
||||
safe_val1 = api2.toDate(filterval1).beginToSQL();
|
||||
else
|
||||
safe_val1 = safe.quoted_sql(filterval1);
|
||||
}
|
||||
if (filterval2) {
|
||||
if (fld.match(/^fclt_d_/))
|
||||
safe_val2 = api2.toDate(filterval2).endToSQL();
|
||||
else
|
||||
safe_val2 = safe.quoted_sql(filterval2);
|
||||
}
|
||||
if (filterval1 && filterval2) {
|
||||
operand = " BETWEEN ";
|
||||
safe_val = safe_val1+" AND "+safe_val2;
|
||||
} else if (filterval1) {
|
||||
operand = " >= ";
|
||||
safe_val = safe_val1;
|
||||
} else if (filterval2) {
|
||||
operand = " <= ";
|
||||
safe_val = safe_val2;
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case "date": // onderscheid date en datetime?
|
||||
case "datetime":
|
||||
@@ -473,6 +505,10 @@ api2 = {
|
||||
safe_val = safe_val.toUpperCase();
|
||||
}
|
||||
}
|
||||
if (filter == "range" && fld.match(/^fclt_d_/))
|
||||
{
|
||||
dbs = "TO_DATE(" + dbs + ",'dd-mm-yyyy')";
|
||||
}
|
||||
if (filter == "exact" && (field.typ == "date" || field.typ == "datetime"))
|
||||
{
|
||||
dbs = "TRUNC("+dbs+")";
|
||||
|
||||
@@ -115,6 +115,7 @@ function model_reportcolumns(usrrap_key, params)
|
||||
var special_cols = ucolname.match(/^(HIDE_F_|FCLT_X_|FCLT_3D_|FCLT_KEY|FCLT_F_|HTML_|FCLT_D_|FCLT_C_)/);
|
||||
if (special_cols)
|
||||
colpar.caption = colpar.caption.substring(special_cols[0].length);
|
||||
colpar.caption = colpar.caption.replace(/\_/g, " "); // underscores er uit
|
||||
|
||||
if (ucolname.match(/^(HIDE_F_|FCLT_3D_|FCLT_KEY)/))
|
||||
colpar.visible = 'H'; // Hidden
|
||||
@@ -125,8 +126,10 @@ function model_reportcolumns(usrrap_key, params)
|
||||
if (view_name_short.match(/_V_UDR/))
|
||||
colpar.visible = 'H'; // Hidden, die hebben te veel kolommen
|
||||
|
||||
if (ucolname.match(/^(FCLT_F_|FCLT_D_|FCLT_X_)/))
|
||||
if (ucolname.match(/^(FCLT_F_|FCLT_X_)/))
|
||||
colpar.filter = 'A';
|
||||
if (ucolname.match(/^(FCLT_D_)/))
|
||||
colpar.filter = 'R'; // Altijd range
|
||||
|
||||
var ora_type = oRs("data_type").Value;
|
||||
var ora_length = oRs("data_length").Value;
|
||||
|
||||
@@ -26,7 +26,65 @@
|
||||
|
||||
rapport.list.canGraph = (S("fac_usrrap_mode") & 4) == 4;
|
||||
|
||||
//if (rapport.styling)
|
||||
if (rapport.styling && (rapport.styling.id & 2)) // view proc doen we 'old style'
|
||||
Response.Redirect("fac_usrrap_search.asp?usrrap_key=" + usrrap_key);
|
||||
|
||||
if (rapport.styling && (rapport.styling.id & 1)) // XSL proc doen we niet via resultsettable
|
||||
{
|
||||
// Overrule scaffolding_list
|
||||
scaffolding_list = function (model, scf_params)
|
||||
{
|
||||
var xxx_params = { filter : scf_params.filter || api2.qs2json() };
|
||||
var wheres = api2.sqlfilter(xxx_params, rapport);
|
||||
var sql_where = null;
|
||||
if (wheres && wheres.length)
|
||||
sql_where = "WHERE " + wheres.join(" AND " );
|
||||
|
||||
var outputmode = getQParamInt("outputmode", 0);
|
||||
var nohtml = getQParamInt("nohtml", 0) == 1;
|
||||
if (nohtml) // Die is simpel
|
||||
{
|
||||
Response.Clear();
|
||||
FCLT2XMLResponse ({xmlnode: 'rapport', key: usrrap_key, mode: mode, where: sql_where });
|
||||
Response.End;
|
||||
}
|
||||
|
||||
var mode = '';
|
||||
if (outputmode==2) mode = 'excel';
|
||||
if (outputmode==1) mode = 'print';
|
||||
%><html>
|
||||
<head>
|
||||
<% FCLTHeader.Generate({ outputmode: outputmode }); %>
|
||||
<% if (outputmode == 0) {%>
|
||||
<script type="text/javascript">
|
||||
function rap_print()
|
||||
{
|
||||
window.open("fac_report.asp?outputmode=1<%=safe.jsstring(transitQS())%>");
|
||||
}
|
||||
function rap_excel()
|
||||
{
|
||||
window.open("fac_report.asp?outputmode=2<%=safe.jsstring(transitQS())%>");
|
||||
}
|
||||
</script>
|
||||
<% } %>
|
||||
</head>
|
||||
<body id="listbody">
|
||||
<%
|
||||
if(outputmode==0)
|
||||
{
|
||||
var buttons = [ { icon: "print.png", title: L("lcl_print_table"), action: 'rap_print()' },
|
||||
{ icon: "excel.png", title: L("lcl_export_to_excel"), action: 'rap_excel() ' }
|
||||
];
|
||||
IFRAMER_HEADER(model.records_title, buttons);
|
||||
}
|
||||
FCLT2XMLResponse ({xmlnode: 'rapport', key: usrrap_key, mode: mode, where: sql_where});
|
||||
%>
|
||||
</body>
|
||||
</html>
|
||||
<%
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (getQParam("graph", "") == "G")
|
||||
{
|
||||
|
||||
@@ -22,7 +22,8 @@ JSON_Result = true;
|
||||
var rapport = model_reports(usrrap_key);
|
||||
|
||||
var filter = api2.qs2json();
|
||||
var columns = [getQParam("distinct")];
|
||||
var distinct = getQParam("distinct"); // deze kolom zoeken we
|
||||
var columns = [distinct.replace(/^(start_|end_)/,"")];
|
||||
|
||||
var xxx_params = { filter : api2.qs2json(), columns: columns, groupby: ["U"] }; // U=distinct
|
||||
xxx_params.filter.showall = 1;
|
||||
|
||||
@@ -1,4 +1,14 @@
|
||||
<%@language = "javascript" %>
|
||||
<% /*
|
||||
$Revision$
|
||||
$Id$
|
||||
|
||||
File fac_reportx_show.asp
|
||||
Description: Laat een eindgebruiker een rapport kiezen om uit te voeren
|
||||
Parameters:
|
||||
Note:
|
||||
*/
|
||||
%>
|
||||
|
||||
<!-- #include file="../scf/scaffolding.inc" -->
|
||||
<!-- #include file="../api2/model_reportsx.inc" -->
|
||||
|
||||
@@ -15,7 +15,7 @@ if (mode == "save" || mode == "delete")
|
||||
%>
|
||||
<!-- #include file="../Shared/common.inc" -->
|
||||
<!-- #include file="./scaffolding_common.inc" -->
|
||||
<% if (mode != "save" && mode != "delete") { %>
|
||||
<% if (mode != "save" && mode != "delete" && mode != "wrap") { %>
|
||||
<% if (mode != "list") { %>
|
||||
<!-- #include file="../Shared/iface.inc" -->
|
||||
<!-- #include file="../Shared/calendar.inc" -->
|
||||
@@ -47,6 +47,7 @@ function scaffolding(model, scf_params)
|
||||
if (model.includes && imodel in model.includes)
|
||||
{
|
||||
model = model.includes[imodel].model;
|
||||
model.REST_POST = false; // ondersteunen we nog even niet
|
||||
scf_params.transit = { name: "model", val: imodel };
|
||||
}
|
||||
|
||||
@@ -242,6 +243,12 @@ function scf_RWFIELDTR(model, fld, val, key)
|
||||
}
|
||||
else if (field.typ == "check" || field.typ == "check0")
|
||||
RWCHECKBOXTR(fld, "fldcheck", field.label, val);
|
||||
else if (fld.match(/^(start_|end_)fclt_d_/))
|
||||
FCLTcalendar (fld, { initEmpty: 1,
|
||||
label: field.label,
|
||||
volgnr: fld.match(/^start_/)?1:2,
|
||||
required: true
|
||||
});
|
||||
else if (field.typ == "date")
|
||||
FCLTcalendar(fld, { label : field.label,
|
||||
datum : val,
|
||||
|
||||
@@ -40,7 +40,7 @@ function scaffolding_list(model, scf_params)
|
||||
else
|
||||
var authparams = { PRSreadlevel: -1, ALGreadlevel: -1, PRSwritelevel: -1, ALGwritelevel: -1 };
|
||||
|
||||
var showall = getQParamInt("showall", 0) == 1;
|
||||
var showAll = getQParamInt("showall", 0) == 1;
|
||||
var outputmode = getQParamInt("outputmode", 0)
|
||||
|
||||
var default_url = model.list.default_url;
|
||||
@@ -107,14 +107,18 @@ function scaffolding_list(model, scf_params)
|
||||
}
|
||||
|
||||
var xxx_params = { filter : scf_params.filter || api2.qs2json(), columns: scf_params.list.columns, groupby: scf_params.list.groups };
|
||||
if (!("limit" in xxx_params.filter))
|
||||
{
|
||||
xxx_params.filter.limit = showAll?S("qp_maxrows2"):S("qp_maxrows")
|
||||
}
|
||||
|
||||
var xxx_array = model.REST_GET(xxx_params);
|
||||
|
||||
var rst = new ResultsetTable({ dataset: xxx_array,
|
||||
hasMore: model.total_count > xxx_array.length,
|
||||
keyColumn: ("id" in model.fields?"id":null),
|
||||
ID: model.table,
|
||||
title: model.records_title,
|
||||
showAll: showall,
|
||||
showAll: showAll,
|
||||
outputmode: outputmode,
|
||||
buttons: buttons
|
||||
});
|
||||
|
||||
@@ -51,10 +51,6 @@ function scaffolding_wrap(model, scf_params)
|
||||
<% }
|
||||
else
|
||||
{ /* Bestaand object bewerkt, switch naar show-mode */ %>
|
||||
if (params.close)
|
||||
{
|
||||
FcltMgr.closeDetail(window, { close: true})
|
||||
}
|
||||
if (!params.keepForm && !params.deleted)
|
||||
$("#scfFrame")[0].src = "<%=scf_params.this_fullpath%>?mode=show<%=transit%>&id=<%=key%>";
|
||||
|
||||
|
||||
@@ -817,7 +817,7 @@ function __rsProcessResultset(processParams) // processParams wordt blind aan al
|
||||
|
||||
html += "</tbody>";
|
||||
|
||||
if (!oRs.EOF && !isPrinting && !isExcel)
|
||||
if ((!oRs.EOF || this.hasMore) && !isPrinting && !isExcel)
|
||||
{
|
||||
var a_element = "";
|
||||
if (Request.ServerVariables("REQUEST_METHOD") == "POST")
|
||||
@@ -880,7 +880,8 @@ function __rsProcessResultset(processParams) // processParams wordt blind aan al
|
||||
Response.Write(html);
|
||||
endTable();
|
||||
|
||||
if (!oRs.EOF)
|
||||
// 'Klik voor meer' onderaan de tabel
|
||||
if (!oRs.EOF || this.hasMore)
|
||||
{
|
||||
var a_element = "";
|
||||
if (Request.ServerVariables("REQUEST_METHOD") == "POST")
|
||||
@@ -911,7 +912,7 @@ function __rsProcessResultset(processParams) // processParams wordt blind aan al
|
||||
Response.Write(html);
|
||||
}
|
||||
|
||||
if (!isExcel && oRs.EOF)
|
||||
if (!isExcel && oRs.EOF && !this.hasMore)
|
||||
{
|
||||
// MGE: Alleen sortable als alle regels getoond zijn en niet bij excel
|
||||
%>
|
||||
@@ -929,7 +930,7 @@ function __rsProcessResultset(processParams) // processParams wordt blind aan al
|
||||
|
||||
if (summaryShow)
|
||||
{
|
||||
var summaryInfo = (!oRs.EOF? "<span class='summaryincomplete'>" + L("lcl_suminfo_incomplete") + "</span> " : "") + (summaryShow(rowNum) || "");
|
||||
var summaryInfo = ((!oRs.EOF || this.hasMore)? "<span class='summaryincomplete'>" + L("lcl_suminfo_incomplete") + "</span> " : "") + (summaryShow(rowNum) || "");
|
||||
}
|
||||
if (!this.noSetSummary)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user