171 lines
8.5 KiB
C++
171 lines
8.5 KiB
C++
<% /*
|
|
$Revision$
|
|
$Id$
|
|
|
|
File: rapportselector.inc
|
|
Description: Algemen interface functie om een rapport suggestbox te maken
|
|
Deze moet je kunnen includen en aanroepen.
|
|
Resulteert dan uiteindelijk in een zichtbaar textveld aangemaakt die de rapporten bevat (rapportnaam veld)
|
|
en een hidden keyveld die de key van het rapport bevat (rapportkey veld).
|
|
Het rapportnaam veld heeft geen naam en wordt niet meegesubmit.
|
|
Het rapportkey veld heeft een naam en wordt meegesubmit.
|
|
Het resultaat heeft de vorm "[<td>label</td><td>]selectveld[</td>]"
|
|
parameters: fieldName: veldnaam van het rapportkey veld. Dit veld wordt gesubmit.
|
|
objectName: naam van het suggest object dat wordt aangemaakt.
|
|
params: object met meegegeven parameters.
|
|
rapportKey: initiële key waarde van het rapport die ingevuld moet worden.
|
|
label: label dat voor het rapportnaam veld wordt weergegeven.
|
|
filtercode: extra filtercode voor de query die gebruikt wordt voor de suggest.
|
|
onChange: onchange op het textveld.
|
|
extraParamField: veldnaam voor een extra hidden parameter veld.
|
|
isBad: boolean die aangeeft dat het rapport veld als ongeldig
|
|
en leeg weergegeven moet worden (true|false(default)).
|
|
readonly: geeft aan of het rapportnaam veld readonly weergegeven moet worden (true|false(default)).
|
|
suppressEmpty: niets tonen als suppressEmpty en readonly
|
|
*/ %>
|
|
|
|
<%
|
|
FCLTHeader.Requires({ plugins: ["suggest", "jQuery"], js: [] });
|
|
|
|
function FCLTrapportselector(fieldName, objectName, params)
|
|
{
|
|
if (typeof params == "undefined") params = {};
|
|
if (!((params.rapportKey && params.rapportKey > 0) || (params.rapportViewName && params.rapportViewName != "")) && params.readonly && params.suppressEmpty) return;
|
|
|
|
// Is er een initiele waarde meegegeven? Zoek dan de omschrijving erbij!
|
|
var lrapportName = (params.whenEmpty != null ? params.whenEmpty : (params.readonly ? L("lcl_select_readonly") : L("lcl_select_rapport")));
|
|
var lextraInit = "";
|
|
var tabelized = false;
|
|
|
|
if ((params.rapportKey && params.rapportKey > 0) || (params.rapportViewName && params.rapportViewName != ""))
|
|
{
|
|
var sql = "SELECT fac_usrrap_key"
|
|
+ " , " + lcl.xsqla("fac_usrrap_omschrijving", "fac_usrrap_key")
|
|
+ " , fac_usrrap_info"
|
|
+ " , fac_usrrap_view_name"
|
|
+ " , fac_usrrap_autorefresh extra"
|
|
+ " , fac_usrrap_functie"
|
|
+ " FROM fac_usrrap"
|
|
+ " WHERE (fac_functie_key IS NULL"
|
|
+ " OR fac_functie_key IN"
|
|
+ " (SELECT fac_functie_key FROM fac_v_webgebruiker"
|
|
+ " WHERE prs_perslid_key = " + user_key + "))"
|
|
+ (params.rapportKey && params.rapportKey > 0 // rapportKey of rapportViewName moet meegegeven zijn.
|
|
? " AND fac_usrrap_key = " + params.rapportKey
|
|
: " AND UPPER(fac_usrrap_view_name) = " + safe.quoted_sql_upper(params.rapportViewName));
|
|
var oRs = Oracle.Execute(sql);
|
|
if (oRs.Eof)
|
|
{
|
|
__DoLog("Gebruiker " + user_key + " heeft geen rechten voor een deeplink naar dit rapport.", "#FFFF00");
|
|
shared.simpel_page(L("lcl_no_auth"));
|
|
Response.End();
|
|
}
|
|
lrapportName = oRs("fac_usrrap_omschrijving").value;
|
|
lextraInit = oRs("extra").value;
|
|
params.rapportKey = oRs("fac_usrrap_key").value;
|
|
tabelized = (oRs("fac_usrrap_functie").value&8);
|
|
}
|
|
else
|
|
{
|
|
var sql = "SELECT COUNT(fac_usrrap_key) aantal"
|
|
+ " FROM fac_usrrap"
|
|
+ " WHERE (fac_functie_key IS NULL"
|
|
+ " OR fac_functie_key IN"
|
|
+ " (SELECT fac_functie_key FROM fac_v_webgebruiker"
|
|
+ " WHERE prs_perslid_key = " + user_key + "))"
|
|
+ (params.rapportKey > 0 // rapportKey of rapportViewName moet meegegeven zijn.
|
|
? " AND fac_usrrap_key = " + params.rapportKey
|
|
: " AND UPPER(fac_usrrap_view_name) = " + safe.quoted_sql_upper(params.rapportViewName));
|
|
var oRs = Oracle.Execute(sql);
|
|
// Als er maar één rapport is, dan deze selecteren.
|
|
if (oRs("aantal").value == 1)
|
|
{
|
|
sql = "SELECT fac_usrrap_key"
|
|
+ " , " + lcl.xsqla("fac_usrrap_omschrijving", "fac_usrrap_key")
|
|
+ " , fac_usrrap_info"
|
|
+ " , fac_usrrap_view_name"
|
|
+ " , fac_usrrap_autorefresh extra"
|
|
+ " , fac_usrrap_functie"
|
|
+ " FROM fac_usrrap"
|
|
+ " WHERE (fac_functie_key IS NULL"
|
|
+ " OR fac_functie_key IN"
|
|
+ " (SELECT fac_functie_key FROM fac_v_webgebruiker"
|
|
+ " WHERE prs_perslid_key = " + user_key + "))"
|
|
+ (params.rapportKey > 0 // rapportKey of rapportViewName moet meegegeven zijn.
|
|
? " AND fac_usrrap_key = " + params.rapportKey
|
|
: " AND UPPER(fac_usrrap_view_name) = " + safe.quoted_sql_upper(params.rapportViewName));
|
|
var oRs = Oracle.Execute(sql);
|
|
lrapportName = oRs("fac_usrrap_omschrijving").value;
|
|
lextraInit = oRs("extra").value;
|
|
params.rapportKey = oRs("fac_usrrap_key").value;
|
|
tabelized = (oRs("fac_usrrap_functie").value&8);
|
|
}
|
|
}
|
|
|
|
// Bouw de url voor de rapporten query op
|
|
var rapportQueryUrl = rooturl+"/appl/shared/suggest/SuggestRapport.asp?a=1"
|
|
+ (params.filtercode? "&filtcode=" + params.filtercode : "")
|
|
+ (params.showall? "&showall=" + params.showall : "")
|
|
+ (params.extracode? "&extracode=" + params.extracode : "")
|
|
+ (params.fcode? "&fcode=" + params.fcode : "");
|
|
if (params.label)
|
|
{ %><tr>
|
|
<td class="label">
|
|
<label for="<%=fieldName%>"><%=params.label%>:</label>
|
|
</td>
|
|
<td>
|
|
<%
|
|
} %>
|
|
<nobr>
|
|
<input id="<%=fieldName%>_show" class="fldusrrap<%=!params.readonly&¶ms.required? " required" : ""%>" value="<%=safe.htmlattr(lrapportName+(tabelized?' #':''))%>"
|
|
<%=params.readonly? " readonly" : ""%>
|
|
<%=params.onChange && !params.readonly? " sgonChange='" + params.onChange + "'" : ""%>>
|
|
<input type="hidden" id="<%=fieldName%>" name="<%=fieldName%>" value="<%=params.rapportKey%>">
|
|
|
|
<% if (params.extraParamField)
|
|
{ /* het extra parameter veld wordt door suggest object gevuld */%>
|
|
<input type="hidden" id="<%=params.extraParamField%>" name="<%=params.extraParamField%>" value="<%=safe.htmlattr(lextraInit)%>">
|
|
<% } %>
|
|
</nobr>
|
|
<%
|
|
if (params.label)
|
|
{ %>
|
|
</td></tr>
|
|
<%
|
|
}
|
|
|
|
if (!params.readonly)
|
|
{
|
|
if (params.urlAdd)
|
|
{
|
|
var urlAddTxt = "[";
|
|
for (var i = 0; i < params.urlAdd.length; i++)
|
|
{
|
|
urlAddTxt += (i > 0? ", " : "") + "{ urlParam: \"" + params.urlAdd[i].urlParam + "\", field: \"" + params.urlAdd[i].field + "\" }";
|
|
}
|
|
urlAddTxt += "]"
|
|
}
|
|
%>
|
|
<script type="text/javascript">
|
|
jQuery(document).ready
|
|
(function()
|
|
{
|
|
<%=objectName%> = new Suggest({ objectName: "<%=objectName%>",
|
|
queryField: $("#<%=fieldName%>_show")[0],
|
|
queryUrl: "<%=rapportQueryUrl%>",
|
|
initKey: <%=params.rapportKey? params.rapportKey : -1%>,
|
|
keyField: $("#<%=fieldName%>")[0],
|
|
highlightDescript: true
|
|
<%=params.urlAdd? ", urlAdd: " + urlAddTxt : ""%>
|
|
<%=params.extraParamField? ", extraParamField: $(\"" + "#" + params.extraParamField + "\")[0]" : ""%>
|
|
<%=params.extraParamField? ", initExtraParam: \"" + safe.jsstring("" + lextraInit) + "\"": ""%>
|
|
<%=params.isBad? ", isBad: true": ""%>
|
|
<%=params.readonly? ", fieldReadonly: true": ""%>
|
|
});
|
|
}
|
|
)
|
|
</script>
|
|
<%
|
|
}
|
|
}
|
|
%> |