知方号

知方号

Vue集成报表系列教程10<前端报表插件怎么用的>

Vue集成报表系列教程10

    

        

            

                

                    打开设计器

                

            

        

        

        

        

            

                

                    

                        Open Report

                        

                            ×

                        

                    

                    

                        Select Report:

                        

                            

                                {{reportId}}

                            

                        

                    

                    

                        

                            Close

                        

                    

                

            

        

    

    // 报表设计器包

    import { Designer as ReportDesigner } from "@grapecity/activereports/reportdesigner";

    import "@grapecity/activereports-localization/dist/designer/zh-locale"; // 中文包

    import "@grapecity/activereports-localization";

    import "@grapecity/activereports/styles/ar-js-designer.css";

    // 报表查看器包

    import { Viewer } from "@grapecity/activereports-vue";

    import "@grapecity/activereports/styles/ar-js-viewer.css";

    // 设计器与查看器公用包

    import "@grapecity/activereports/styles/ar-js-ui.css";

    import "../../node_modules/bootstrap/dist/css/bootstrap.min.css";

    import "../../node_modules/bootstrap/dist/js/bootstrap.min.js";

    import $ from "jquery";

    let resolveFunc = null;

    export default {

        name: "Report",

        components: {

            ReportViewer: Viewer,

        },

        data() {

            return {

                reportStorage: new Map(),

                reportIds: null,

                counter: 0,

                designer: null, // 设计器实例

                designerHidden: false, // 显示隐藏设计器

                disableOpenSaveHotkeys: true,

                // 初始化报表查看器参数

                reportTemplate: {

                    Type: "report",

                    Body: {

                        Name: "Body",

                        Type: "section",

                        ReportItems: [

                            {

                                Type: "textbox",

                                Name: "textbox1",

                                Style: {

                                    FontSize: "18pt",

                                },

                                Value: "Hello, ActiveReportsJS Viewer",

                                Height: "10in",

                            },

                        ],

                    },

                    Name: "Report",

                },

            };

        },

        methods: {

            onDesignerOpen() {

                this.designerHidden = false;

            },

            onSelectReport(reportId) {

                if (resolveFunc) {

                    alert("1");

                    $("#dlgOpen").modal("hide");

                    resolveFunc({ definition: this.reportStorage.get(reportId), id: reportId, displayName: reportId });

                    resolveFunc = null;

                }

            },

        },

        mounted() {

            const _this = this;

            this.designer = new ReportDesigner("#designer-host", {

                language: "zh", //汉化;

            }); // 初始化报表设计器

            this.designer.setActionHandlers({

                // 添加预览功能

                onRender: async (report) => {

                    this.designerHidden = true;

                    console.log(report);

                    this.$refs.reportViewer.Viewer().open(report.definition);

                    return Promise.resolve();

                },

                // 添加保存功能

                onSave: (info) => {

                    const reportId = info.id || `NewReport${_this.counter + 1}`;

                    _this.reportStorage.set(reportId, info.definition);

                    _this.counter++;

                    return Promise.resolve({ displayName: reportId });

                },

                // 添加另存为功能

                onSaveAs: function (info) {

                    const reportId = `NewReport${_this.counter + 1}`;

                    _this.reportStorage.set(reportId, info.definition);

                    _this.counter++;

                    return Promise.resolve({ id: reportId, displayName: reportId });

                },

                onOpen: function () {

                    const ret = new Promise(function (resolve) {

                        resolveFunc = resolve;

                        _this.reportIds = _this.reportStorage.keys();

                        $("#dlgOpen").modal("show");

                    });

                    return ret;

                },

            });

        },

    };

    #designer-host, #viewer-host {

        width: 100%;

        height: 800px;

    }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。