디자이너 컴포넌트 - 사전 정의된 리소스

이 샘플은 Angular, React, Vue 및 순수 JavaScript 응용 프로그램 내에서 ActiveReportsJS Designer 컴포넌트와 함께 사전 정의된 리소스를 사용하는 방법을 보여 줍니다.

자세한 내용은 사전 정의된 데이터 소스 사용Use-Shared-Resources를 방문하십시오. 코드를 보려면 아래로 스크롤하십시오.

<template> <div> <div id="designer-host" :style="{ display: designerHidden ? 'none' : 'block' }" > <ReportDesigner :report="{ id: 'reports/initial.rdlx-json' }" :onRender="onReportPreview" :imageList="images" :dataSources="dataSources" /> </div> <div id="viewer-host" :style="{ display: designerHidden ? 'block' : 'none' }" > <ReportViewer ref="reportViewer" /> </div> </div> </template> <script> import { Viewer, Designer } from "@mescius/activereportsjs-vue"; import { dataSources, images } from "./resources.js"; import Core from "@mescius/activereportsjs/core"; import "@mescius/activereportsjs/pdfexport"; import "@mescius/activereportsjs/htmlexport"; import "@mescius/activereportsjs/tabulardataexport"; export default { components: { ReportViewer: Viewer, ReportDesigner: Designer, }, data() { return { designerHidden: false, images: images, dataSources: dataSources, }; }, methods: { onDesignerOpen() { this.designerHidden = false; }, async onReportPreview(report) { this.designerHidden = true; this.$refs.reportViewer.open(report.definition); }, }, mounted() { var designButton = { key: "$openDesigner", text: "Edit in Designer", iconCssClass: "mdi mdi-pencil", enabled: true, action: () => { this.designerHidden = false; }, }; var viewer = this.$refs.reportViewer.Viewer(); viewer.toolbar.addItem(designButton); viewer.toolbar.updateLayout({ default: [ "$openDesigner", "$split", "$navigation", "$split", "$refresh", "$split", "$history", "$split", "$zoom", "$fullscreen", "$split", "$print", "$split", "$singlepagemode", "$continuousmode", "$galleymode", ], }); }, }; Core.FontStore.registerFonts("/activereportsjs/demos/resource/fontsConfig.json"); </script> <style> @import url("/activereportsjs/demos/arjs/styles/ar-js-ui.css"); @import url("/activereportsjs/demos/arjs/styles/ar-js-designer.css"); @import url("/activereportsjs/demos/arjs/styles/ar-js-viewer.css"); @import url("https://cdn.materialdesignicons.com/2.8.94/css/materialdesignicons.min.css"); #designer-host, #viewer-host { width: 100%; height: 550px; } </style>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <title>ActiveReportsJS Report Designer Predefined Resources Sample</title> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <!-- SystemJS --> <script src="node_modules/systemjs/dist/system.src.js"></script> <script src="systemjs.config.js"></script> <script src="./compiler.js" type="module"></script> <script> System.import("./app.js"); </script> </head> <body style="margin: 0"> <div id="app"></div> </body> </html>
export const dataSource = { Name: "Northwind", ConnectionProperties: { DataProvider: "JSON", ConnectString: "endpoint=https://demodata.mescius.io/northwind/api/v1", }, }; export const categoriesDataSet = { Name: "Categories", Query: { DataSourceName: "Northwind", CommandText: "uri=/Categories;jpath=$.[*]", }, Fields: [ { Name: "categoryId", DataField: "categoryId" }, { Name: "categoryName", DataField: "categoryName" }, { Name: "description", DataField: "description" }, ], }; export const productsDataSet = { Name: "Products", Query: { DataSourceName: "Northwind", CommandText: "uri=/Products;jpath=$.[*]", }, Fields: [ { Name: "productId", DataField: "productId" }, { Name: "productName", DataField: "productName" }, { Name: "supplierId", DataField: "supplierId" }, { Name: "categoryId", DataField: "categoryId" }, { Name: "quantityPerUnit", DataField: "quantityPerUnit" }, { Name: "unitPrice", DataField: "unitPrice" }, { Name: "unitsInStock", DataField: "unitsInStock" }, { Name: "unitsOnOrder", DataField: "unitsOnOrder" }, { Name: "reorderLevel", DataField: "reorderLevel" }, { Name: "discontinued", DataField: "discontinued" }, ], }; export const dataSources = [ { id: "Northwind", title: "Northwind", template: dataSource, canEdit: false, datasets: [ { id: "Categories", title: "Categories", template: categoriesDataSet, canEdit: false, }, { id: "Products", title: "Products", template: productsDataSet, canEdit: false, }, ], }, ]; export const images = [ { id: "images/ambulance.svg", displayName: "Ambulance", mimeType: "image/svg", }, { id: "images/bed.svg", displayName: "Bed", mimeType: "image/svg", }, { id: "images/blooddonation.svg", displayName: "Blood Donation", mimeType: "image/svg", }, { id: "images/siren.svg", displayName: "Siren", mimeType: "image/svg", }, ]; export const reports = [ { id: "reports/CustomersTable.rdlx-json", displayName: "Customers Table", }, { id: "reports/TaxiDrives.rdlx-json", displayName: "Taxi Drive Report", }, ];
(function (global) { SystemJS.config({ transpiler: "systemjs-plugin-babel", typescriptOptions: { target: "es2022", module: "system", }, baseURL: "./node_modules/", packageConfigPaths: [ "./node_modules/*/package.json", "./node_modules/@mescius/*/package.json", "./node_modules/@babel/*/package.json", "./node_modules/@vue/*/package.json", ], map: { vue: "./node_modules/vue/dist/vue.esm-browser.js", "systemjs-babel-build": "systemjs-plugin-babel/systemjs-babel-browser.js", "@mescius/activereportsjs/pdfexport": "@mescius/activereportsjs/dist/ar-js-pdf.js", "@mescius/activereportsjs/tabulardataexport": "@mescius/activereportsjs/dist/ar-js-tabular-data.js", "@mescius/activereportsjs/htmlexport": "@mescius/activereportsjs/dist/ar-js-html.js", "@mescius/activereportsjs/xlsxexport": "@mescius/activereportsjs/dist/ar-js-xlsx.js", "@mescius/activereportsjs-vue": "@mescius/activereportsjs-vue/lib/index.js", "@mescius/activereportsjs/reportviewer": "./reportviewer.js", "@mescius/activereportsjs/viewer": "./reportviewer.js", "@mescius/activereportsjs/reportdesigner": "./reportdesigner.js", "@mescius/activereportsjs/core": "@mescius/activereportsjs/dist/ar-js-core.js", "@mescius/activereportsjs/styles": "@mescius/activereportsjs/styles", "@mescius/activereportsjs-i18n": "@mescius/activereportsjs-i18n/dist/ar-js-locales.js", "@mescius/ar-js-pagereport": "@mescius/activereportsjs/dist/ar-js-core.js", "@mescius/activereportsjs-i18n-ja": "@mescius/activereportsjs-i18n/dist/designer/ja-locale.js", "@mescius/activereportsjs-i18n-zh": "@mescius/activereportsjs-i18n/dist/designer/zh-locale.js", }, meta: { "*.css": { loader: "systemjs-plugin-css" }, "./src/*.vue": { loader: "../plugin-vue/index.js" }, "*.vue": { loader: "./plugin-vue/index.js" }, }, packages: { "vue-demi": { defaultExtension: "mjs", main: "lib/index.mjs", }, }, }); })(this);