EnVisageOnline/Main-RMO/Source/EnVisage/Views/Reporting/BaseReportView.cshtml

126 lines
5.2 KiB
Plaintext

@using DevExpress.Web.Mvc.UI
@model EnVisage.Models.ReportModel
@{
ViewBag.Title = "Test Report";
}
@section scripts {
<script src="~/Scripts/4DX/jquery-ui-1.10.4.min.js" type="text/javascript"></script>
<script src="~/Scripts/4DX/globalize.js" type="text/javascript"></script>
<script src="~/Scripts/4DX/knockout-3.3.0.js" type="text/javascript"></script>
@Html.DevExpress().GetScripts(
new Script { ExtensionSuite = ExtensionSuite.NavigationAndLayout },
new Script { ExtensionSuite = ExtensionSuite.HtmlEditor },
new Script { ExtensionSuite = ExtensionSuite.GridView },
new Script { ExtensionSuite = ExtensionSuite.PivotGrid },
new Script { ExtensionSuite = ExtensionSuite.Editors },
new Script { ExtensionSuite = ExtensionSuite.Chart },
new Script { ExtensionSuite = ExtensionSuite.Report },
new Script { ExtensionSuite = ExtensionSuite.Scheduler },
new Script { ExtensionSuite = ExtensionSuite.TreeList },
new Script { ExtensionSuite = ExtensionSuite.Spreadsheet },
new Script { ExtensionSuite = ExtensionSuite.RichEdit },
new Script { ExtensionSuite = ExtensionSuite.SpellChecker }
)
<script type="text/javascript">
$(document).ready(function () {
$("#rptContent").appendTo("#content-wrapper");
});
var reportParams = {
reportId: '@Model.ReportId',
filters: null,
sortFields: {},
};
function OnBeginReportCallback(s, e) {
//debugger;
e.customArgs["ReportId"] = reportParams.reportId;
e.customArgs["SortFields"] = reportParams.sortFields;
var parametersModel = WebDocumentViewer.previewModel.reportPreview.parametersModel();
reportParams.filters = parametersModel.serializeParameters();
for (var i = 0; i < reportParams.filters.length; i++) {
if (reportParams.filters[i].TypeString === "System.DateTime") {
reportParams.filters[i].Value = FormatDateValueToString(GetParameterValue(parametersModel._parameters, reportParams.filters[i].Key));
}
}
}
function FormatDateValueToString(d) {
//Format: MM/dd/yyyy HH:mm:ss
return (d.getMonth() + 1) + "/" + d.getDate() + "/" + d.getFullYear() + " " + d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds();
}
function GetParameterValue(parameters, name) {
for (var i = 0; i < parameters.length; i++) {
if (parameters[i].path === name)
return parameters[i].value();
}
}
function handleBrickClick(brick) {
if (brick == null || brick.navigation == null || brick.navigation.length == 0)
return;
var fieldName = brick.navigation.url.slice(17, -2);
if (fieldName == null || fieldName.length <= 0)
return;
var length = Object.size(reportParams.sortFields);
if (length == 1 && reportParams.sortFields[fieldName] != null) {
reportParams.sortFields[fieldName] = !reportParams.sortFields[fieldName];
} else {
reportParams.sortFields = {};
reportParams.sortFields[fieldName] = true;
}
CallbackPanel.PerformCallback();
}
function WebDocumentViewer_Init(s, e) {
var previewModel = s.GetPreviewModel();
if (previewModel == null)
return;
previewModel.reportPreview.customProcessBrickClick = function (pageNumber, brick) {
//debugger;
var cancelDefaultClickProcessing = true;
handleBrickClick(brick);
return cancelDefaultClickProcessing;
}
}
function WebDocumentViewer_CustomizeParameterEditors(s, e) {
//debugger;
if (reportParams.filters == null)
return;
var parametersData = reportParams.filters;
for (var i = 0; i < parametersData.length; i++) {
if (parametersData[i].Key === e.parameter.name) {;
s.parametersInfo.parameters.forEach(function (item)
{
if (item.Name === parametersData[i].Key) {
item.Value = parametersData[i].Value;
}
});
return;
}
}
}
</script>
}
@section stylesheets {
@Html.DevExpress().GetStyleSheets(
new StyleSheet { ExtensionSuite = ExtensionSuite.NavigationAndLayout },
new StyleSheet { ExtensionSuite = ExtensionSuite.Editors },
new StyleSheet { ExtensionSuite = ExtensionSuite.HtmlEditor },
new StyleSheet { ExtensionSuite = ExtensionSuite.GridView },
new StyleSheet { ExtensionSuite = ExtensionSuite.PivotGrid },
new StyleSheet { ExtensionSuite = ExtensionSuite.Chart },
new StyleSheet { ExtensionSuite = ExtensionSuite.Report },
new StyleSheet { ExtensionSuite = ExtensionSuite.Scheduler },
new StyleSheet { ExtensionSuite = ExtensionSuite.TreeList },
new StyleSheet { ExtensionSuite = ExtensionSuite.Spreadsheet },
new StyleSheet { ExtensionSuite = ExtensionSuite.RichEdit },
new StyleSheet { ExtensionSuite = ExtensionSuite.SpellChecker }
)
}
@section afterAllScripts{
<div class="row" id="rptContent">
<div class="col-sm-12">
@Html.Partial("_CallbackPanelPartial", Model.Report)
</div>
</div>
}