找回密码
 立即注册

QQ登录

只需一步,快速开始

[已处理] R14升级到R15问题

adgao
初级会员   /  发表于:2021-1-30 20:44:22
11#
之前R14保存页面功能如下所示,看看R15怎样实现

@{
    Layout = null;
    var reportId = ViewBag.reportId == null ? "" : ViewBag.reportId;
    var reportName = ViewBag.reportName == null ? "" : ViewBag.reportName;
    var theme = "blue";

}

<!DOCTYPE html>
<html lang="en">
<head>
    <title>ActiveReports Web Designer</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta http-equiv="x-ua-compatible" content="ie=edge">

    <!-- No Virtual Directory -->
    <base href="/">

    <!-- For Virtual Directory -->
    <!--<base href="/VirtualDirectoryName/">-->

    <link rel="stylesheet" href="/Content/AR/vendor/css/materialdesignicons.min.css" media="all" type="text/css" />
    <link rel="stylesheet" href="/Content/AR/vendor/css/bootstrap.min.css" />
    <link rel="stylesheet" href="/Content/AR/vendor/css/font-awesome.min.css" />
    <link rel="stylesheet" href="/Content/AR/vendor/css/ionicons.min.css">
    <link rel="stylesheet" href="/Content/AR/vendor/css/fonts-googleapis.css" type="text/css" />
    <link rel="stylesheet" href="/Content/AR/file-dialog.css" />
    <link rel="stylesheet" href="/Content/AR/data-set-picker.css" />
    <link rel="stylesheet" href="/Content/AR/file-view.css" />
    <link rel="stylesheet" href="/Content/AR/viewer-container.css" />
    <link rel="stylesheet" href="/Content/AR/ar-datasource-editor.css" />
    <link rel="stylesheet" href="/Content/AR/web-designer.css" />

    <link rel="icon" type="image/png" sizes="32x32" href="/Content/AR/icons/favicon-32x32.png" />
    <link rel="icon" type="image/png" sizes="16x16" href="/Content/AR/icons/favicon-16x16.png" />
    <link rel="shortcut icon" href="/Content/AR/icons/favicon.ico" />
    <style>
        .gc-appbar__title {
        display:none;
        }
    </style>
</head>
<body class="theme-@(theme)">
    <script src="/Content/AR/vendor/js/jquery.min.js"></script>
    <script src="/Content/AR/vendor/js/bootstrap.min.js"></script>
    <script src="/Content/AR/baseServerApi.js"></script>
    <script src="/Content/AR/file-dialog.js"></script>
    <script src="/Content/AR/data-set-picker.js"></script>
    <script src="/Content/AR/file-view.js"></script>
    <script src="/Content/AR/viewer-container.js"></script>
    <script src="/Content/AR/ar-datasource-editor.js"></script>
    <script src="/Content/AR/web-designer.js"></script>

    <div id="designer-id" style="width: 100%; height: 100%;"></div>
    <div id="file-view-id" style="width: 100%; height: 100%; display: none;"></div>
    <div id="viewer-container-id" class="theme-default" style="width: 100%; height: 100%; display: none;"></div>
    <div id="save-as-dialog-id" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; display: none; z-index: 9999;"></div>
    <div id="data-set-picker-dialog-id" style="position: absolute;top: 0;left: 0;width: 100%;height: 100%;display: none;z-index: 9999;background-color: #dedede;"></div>
    <div id="data-source-editor-dialog-id"></div>

    <script>
        var oldReportId = "@reportId";
        var keyValue = "@Request["ID"]";
        function reload() {
            window.location.reload();

        }
                var showElement = function (id) {
                        if (!id) return;
                        ($('#' + id)).css('display', 'block');
                };

                var hideElement = function (id) {
                        if (!id) return;
                        ($('#' + id)).css('display', 'none');
                };

                var designerId = 'designer-id';
                var fileViewId = 'file-view-id';
                var viewerContainerId = 'viewer-container-id';
                var saveAsDialogId = 'save-as-dialog-id';
                var dataSetPickerDialogId = 'data-set-picker-dialog-id';
                var dataSourceEditorDialogId = 'data-source-editor-dialog-id';
                var dialogs = [
                        saveAsDialogId,
                        dataSetPickerDialogId, dataSourceEditorDialogId,
                ];

                var hideDialogs = function () {
                        dialogs.forEach(hideElement);
                }

                var showDesigner = function () {
                        var info = GrapeCity.ActiveReports.WebDesigner.api.getReportInfo();
                        var isDirty = GrapeCity.ActiveReports.WebDesigner.api.isReportDirty();
                        document.title = info.name + (isDirty ? ' *' : '');
                        showElement(designerId);
                        GrapeCity.ActiveReports.WebDesigner.focus();
                };

                var showViewer = function () {
                        showElement(viewerContainerId);
                        hideElement(designerId);
                };

                function onSave(options) {
                        GrapeCity.ActiveReports.WebDesigner.api.saveReport({
                                reportInfo: {
                                        id: options.reportInfo.id,
                                        name: options.reportInfo.name,
                                },
                        });
                }

                function onSaveAs(options) {
                        showElement(saveAsDialogId);

                        fileDialog.createSaveReportAsDialog(saveAsDialogId, {
                                api: {
                                        getReportsList: function() {
                                                return baseServerApi.getReportsList().then(function(reportsList) {
                                                        return reportsList.map(function(reportInfo) {
                                                                return { path: reportInfo.Name };
                                                        });
                                                });
                                        },
                    saveReport: function (saveOptions) {
                        return baseServerApi.saveNewReport({ name: saveOptions.path, content: options.reportInfo.content }).then(function (saveResult) {
                                                        return { id: saveResult.Id };
                                                });
                                        },
                                },
                                locale: options.locale,
                                reportInfo: {
                                        path: options.reportInfo.name,
                                },
                                onSuccess: function (saveResult) {
                                        hideElement(saveAsDialogId);
                                        options.onSuccess({ id: saveResult.id, name: saveResult.path });
                                },
                                onClose: function () {
                                        hideElement(saveAsDialogId);
                                        showDesigner();
                                },
                        });
                }

                var makeOptions = function (baseOptions, additionalOptions) {
                        return $.extend({}, baseOptions || {}, additionalOptions || {});
                }

                var designerOptions = GrapeCity.ActiveReports.WebDesigner.createDesignerOptions(baseServerApi);
                designerOptions.reportInfo = '@reportId' ? { id: '@reportId' } : null;

                // Used in About dialog and File View Help tab.
                designerOptions.documentation.home = 'https://www.grapecity.com/activereports/docs/v14/online-webdesigner/overview.html';
                // Used in notifications about report items transformation.
                designerOptions.documentation.reportItemsTransformation = 'https://www.grapecity.com/activereports/docs/v14/online-webdesigner/supportedcontrols.html';

                designerOptions.reportItemsFeatures.table.autoFillFooter = true;

                designerOptions.saveButton.visible = true;
                designerOptions.onSave = onSave;

                designerOptions.saveAsButton.visible = true;
                designerOptions.onSaveAs = onSaveAs;

                designerOptions.openFileView = function (options) {
                        hideElement(designerId);
                        showElement(fileViewId);

            var fileViewOptions = makeOptions(options, {
                onClose: function () {
                    if (options.onClose) options.onClose();
                    hideElement(fileViewId);
                    showDesigner();
                },
                serverApi: {
                    getReportsList: baseServerApi.getReportsList,
                    getReportRevisions: baseServerApi.getReportRevisions,
                    getDataSetsList: baseServerApi.getDataSetsList,
                    getTemplatesList: baseServerApi.getTemplatesList,
                    getTemplateContent: baseServerApi.getTemplateContent,
                    getTemplateThumbnail: baseServerApi.getTemplateThumbnail,
                },
                createReport: function (p1) {
                    console.log(p1);
                    if (confirm("当前操作将覆盖源文件,请确认是否覆盖")) {
                        var source = "rdl.rdlx";
                        if (p1.reportType == "FPL") {
                            source = "page.rdlx";
                        } else if (p1.reportType == undefined) {
                            source = "organize.rdlx";
                        }
                        $.ajax({
                            url: "/ImpSence/Office_Report/NewReport",
                            type: "post",
                            data: { source: source, target: oldReportId },
                            dataType: "json",
                            success: function (data) {
                                if (data.error == 0) {
                                    //p1.reportInfo = { idldReportId,name: oldReportId };

                                    //GrapeCity.ActiveReports.WebDesigner.api.openReport(p1);
                                    p1.onFinish();
                                    GrapeCity.ActiveReports.WebDesigner.renderApplication(designerId, designerOptions);
                                } else {
                                    alert(data, msg);
                                }

                            }
                        });

                    }

                },
                openReport: function (p1, p2, p3) {
                    console.log(p1);
                    if (confirm("当前操作将覆盖源文件,请确认是否覆盖")) {
                        $.ajax({
                            url: "/ImpSence/Office_Report/WriteExist",
                            type: "post",
                            data: { source: p1.reportInfo.id, targetldReportId },
                            dataType: "json",
                            success: function (data) {
                                if (data.error == 0) {
                                    p1.reportInfo.id = oldReportId;
                                    p1.reportInfo.name = oldReportId;

                                    GrapeCity.ActiveReports.WebDesigner.api.openReport(p1);

                                } else {
                                    alert(data,msg);
                                }

                            }
                        });

                    }
                    //p1.onFinish();
                },
                saveReport: function (p1) {
                    console.log(p1);
                    //baseServerApi.saveExistingReport({ id:"", content:""});
                    GrapeCity.ActiveReports.WebDesigner.api.saveReport(p1);
                    //p1.onFinish();
                    //GrapeCity.ActiveReports.WebDesigner.api.openReport({ reportInfo: { id: oldReportId, name: oldReportId }, permissions:["all"]});
                    top["Form"].location.href = "/ImpSence/Office_Report/Design?ID=" + keyValue;

                },
                        });

                        fileView.renderFileView(fileViewId, fileViewOptions);
                };

                designerOptions.openViewer = function (options) {
                        hideElement(designerId);
                        showElement(viewerContainerId);

                        var viewerContainerOptions = makeOptions(options, {
                                makeViewerUrl: function () {
                                        var baseUrl = 'preview/';
                                        var reportId = encodeURIComponent(options.reportInfo.id);
                                        var themeName = '@theme' || 'blue';
                                        return baseUrl + reportId + '?theme=' + themeName;
                                },
                        });
                        viewerContainer.renderViewerContainer(viewerContainerId, viewerContainerOptions, function () {
                                var isTemporaryReport = options.reportInfo.isTemporary;
                                if (isTemporaryReport) {
                                        var reportId = options.reportInfo.id;
                                        baseServerApi.deleteTemporaryReport({ id: reportId });
                                }
                                hideElement(viewerContainerId);
                                showDesigner();
                        });
                };

                designerOptions.dataTab.dataSets.canModify = true;
                designerOptions.dataSetPicker.open = function (options) {
                        var openInPanel = options.mode === 'Panel';
                        if (!openInPanel) {
                                hideDialogs();
                                showElement(dataSetPickerDialogId);
                        }
                        dataSetPicker.renderDataSetPicker(openInPanel ? options.elementId : dataSetPickerDialogId, makeOptions(options, {
                                serverApi: {
                                        getDataSetsList: baseServerApi.getDataSetsList,
                                        getDataSourcesAndDataSets: baseServerApi.getDataSourcesAndDataSets,
                                },
                                onClose: function () {
                                        options.onClose();
                                        if (!openInPanel) hideElement(dataSetPickerDialogId);
                                        dataSetPicker.dispose();
                                        showDesigner();
                                }
                        }));
                };
                designerOptions.dataSetPicker.close = function () {
                        dataSetPicker.dispose();
                };

                designerOptions.dataTab.dataSources.canModify = true;
                ARDataSourceEditor.init(dataSourceEditorDialogId);
                designerOptions.openDataSourceEditor = function(options) {
                        ARDataSourceEditor.open(makeOptions(options, {
                                serverApi: {
                                        testConnection: function (opts) {
                                                return baseServerApi.testDataSourceConnection(makeOptions(opts, {
                                                        reportId: GrapeCity.ActiveReports.WebDesigner.api.getReportInfo().id,
                                                }));
                                        },
                                },
                        }));
                };

                GrapeCity.ActiveReports.WebDesigner.renderApplication(designerId, designerOptions);

    </script>
</body>
</html>
回复 使用道具 举报
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2021-2-1 10:00:28
12#
收到,我这边先研究下,看看具体怎么替换实现
回复 使用道具 举报
adgao
初级会员   /  发表于:2021-2-3 10:24:45
13#
现在有替换方法了吗?这个保存功能对开发很重要。
回复 使用道具 举报
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2021-2-3 10:55:58
14#
你好,这个问题是15暂时不支持14的写法,15这边现在在做这方面的处理:Case号25868
回复 使用道具 举报
adgao
初级会员   /  发表于:2021-2-5 15:49:36
15#
不支持14,15怎么做?
回复 使用道具 举报
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2021-2-5 16:50:05
16#
15的目前不支持这部分,但是现在研发已经在进行对应的解决方案的处理了。目前正在积极的开发中
回复 使用道具 举报
adgao
初级会员   /  发表于:2021-2-8 07:53:29
17#
有没有大概的时间计划?这个功能之前就有,也没做什么大的调整,不会很长时间吧?
回复 使用道具 举报
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2021-2-8 09:16:31
18#
您好我查了下这个Case AR-25868 的状态,已经列入Hotfix 的修复计划,具体完成时间还没确定,一般是在一周到两周左右发hotfix。

回复 使用道具 举报
adgao
初级会员   /  发表于:2021-2-20 10:26:51
19#
报表保存功能修复进展如何?
回复 使用道具 举报
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2021-2-20 11:00:33
20#
你好,现在这个15.04这个版本修复了该问题
  1. designerOptions.dataTab.dataSets.canModify = true;
  2.         designerOptions.dataTab.dataSources.canModify = true;
  3.         designerOptions.onReportSaved = function (options) { console.log(options.id); console.log(options.name) }  可以在该方法中进行保存回调的操作
复制代码
https://github.com/activereports/WebSamples15
通过该链接进行下载,然后更新 引用到最新的版本



回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部