143 lines
6.1 KiB
Plaintext
143 lines
6.1 KiB
Plaintext
@using DevExpress.Web.Mvc.UI
|
|
@model EnVisage.Models.DesignModel
|
|
@{
|
|
ViewBag.Title = "Designer";
|
|
Layout = "~/Views/Shared/_Layout.cshtml";
|
|
}
|
|
|
|
@section scripts {
|
|
@*<script type="text/javascript"> window.jQuery || document.write('<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.js">' + "<" + "/script>"); </script>*@
|
|
<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>
|
|
<script src="~/Scripts/4DX/ace.js" type="text/javascript"></script>
|
|
<script src="~/Scripts/4DX/ext-language_tools.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">
|
|
$(function () {
|
|
$("#rptContent").appendTo("#content-wrapper");
|
|
reportDesigner.CustomizeMenuActions.AddHandler(function (s, e) {
|
|
var saveItem = e.Actions.filter(function (x) { return x.text === 'Save' })[0];
|
|
saveItem.text = 'Save&Close';
|
|
saveItem.imageClassName = 'saveCloseAction';
|
|
});
|
|
reportDesigner.SaveCommandExecuted.AddHandler(function (s, e) {
|
|
if (e.Result) {
|
|
window.location = reportDesigner.cpIndexUrl;
|
|
}
|
|
});
|
|
}); var reportParams = {
|
|
reportId: '@Model.Id',
|
|
sortFields: {},
|
|
};
|
|
function OnBeginReportCallback(s, e) {
|
|
e.customArgs["ReportId"] = reportParams.reportId;
|
|
e.customArgs["SortFields"] = reportParams.sortFields;
|
|
}
|
|
function OnBeforeExportRequest(s, e) {
|
|
e.customArgs["ReportId"] = reportParams.reportId;
|
|
e.customArgs["SortFields"] = reportParams.sortFields;
|
|
}
|
|
function Report_HeaderClick(s, e, fieldName) {
|
|
if (e.shiftKey) {
|
|
var field = reportParams.sortFields[fieldName];
|
|
if (field != null) {
|
|
reportParams.sortFields[fieldName] = !reportParams.sortFields[fieldName];
|
|
} else {
|
|
reportParams.sortFields[fieldName] = true;
|
|
}
|
|
} else {
|
|
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 handleBrickClick(brick) {
|
|
if (brick == null || brick.content == null || brick.content.length == 0)
|
|
return;
|
|
var fieldName = brick.content[0].Value.replace(" ▼", "").replace(" ▲", "");
|
|
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;
|
|
}
|
|
}
|
|
</script>
|
|
}
|
|
@section stylesheets {
|
|
<link href="~/Content/stylesheets/jquery-ui.css" rel="stylesheet" type="text/css">
|
|
@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 }
|
|
)
|
|
<style type="text/css">
|
|
.saveCloseAction {
|
|
background-image: url(/Content/images/SaveClose.png);
|
|
}
|
|
</style>
|
|
}
|
|
@section afterAllScripts{
|
|
<div class="row" id="rptContent">
|
|
<div class="col-sm-12">
|
|
@Html.DevExpress().ReportDesigner(settings =>
|
|
{
|
|
settings.Name = "reportDesigner";
|
|
object newReportUrl = new { Controller = "Reporting", Action = "AddNewReport", name = Model.NewName };
|
|
object existReportUrl = new { Controller = "Reporting", Action = "UpdateReport", id = Model.Id };
|
|
settings.SaveCallbackRouteValues = (!string.IsNullOrWhiteSpace (Model.Id) && Model.Id != "0") ? existReportUrl : newReportUrl;
|
|
//settings.Height = System.Web.UI.WebControls.Unit.Percentage(100);
|
|
settings.ControlStyle.CssClass = "fullscreen";
|
|
if (Model.DataSource != null)
|
|
{
|
|
settings.DataSources.Add("ReportingDataSource", Model.DataSource);
|
|
}
|
|
settings.CustomJSProperties = (_, e) => e.Properties["cpIndexUrl"] = Url.Action("List", "Reporting");
|
|
}).Bind(Model.Report).GetHtml()
|
|
</div>
|
|
</div>
|
|
|
|
} |