뷰어 컴포넌트 - 보고서 로드

이 샘플에서는 Angular, React, Vue 및 순수 JavaScript 응용 프로그램을 사용하여 ActiveReportsJS Viewer 컴포넌트로 보고서를 로드하는 방법을 보여 줍니다. "원본 보고서 로드" 버튼은 보고서를 URL에서 로드하고, "수정된 보고서 로드" 버튼은 먼저 보고서를 가져오고 배경 이미지를 추가한 다음 결과 보고서 정의를 로드합니다. 자세한 내용은 보고서 로드 페이지를 방문하십시오. 코드를 보려면 아래로 스크롤하십시오.

<template> <div> <div id="viewer-toolbar" class="container-fluid"> <div class="row mt-3 mb-3"> <button type="button" class="btn btn-outline-primary col-sm-2 ml-1" @click="onLoadFromFile" > Load Original Report </button> <button type="button" class="btn btn-outline-secondary col-sm-2 ml-1" @click="onLoadFromDefinition" > Load Modified Report </button> </div> </div> <div id="viewer-host"> <JSViewer ref="reportViewer" theme="ActiveReports"></JSViewer> </div> </div> </template> <script> import { ref } from "vue"; import { Viewer } from "@mescius/activereportsjs-vue"; import "@mescius/activereportsjs/pdfexport"; import "@mescius/activereportsjs/htmlexport"; import "@mescius/activereportsjs/tabulardataexport"; import Core from "@mescius/activereportsjs/core"; Core.FontStore.registerFonts("/activereportsjs/demos/resource/fontsConfig.json"); export default { components: { JSViewer: Viewer, }, setup() { const reportViewer = ref(null); const onLoadFromFile = () => { reportViewer.value .Viewer() .open("/activereportsjs/demos/resource/reports/Frontstore.rdlx-json"); }; const onLoadFromDefinition = () => { fetch("/activereportsjs/demos/resource/reports/Frontstore.rdlx-json") .then((data) => data.json()) .then((report) => { report.Body.Style.BackgroundImage = { Value: "background.svg" }; reportViewer.value.Viewer().open(report); }); }; return { reportViewer, onLoadFromFile, onLoadFromDefinition, }; }, }; </script> <style> #viewer-host { width: 100%; height: 500px; } </style>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <title>ActiveReportsJS Report Viewer Report Loading Sample</title> <!-- vue sample--> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <link href="https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&display=swap" rel="stylesheet" /> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous" /> <link rel="stylesheet" href="https://cdn.materialdesignicons.com/2.8.94/css/materialdesignicons.min.css" /> <!-- 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 src="/activereportsjs/demos/arjs/dist/ar-js-core.js"></script> <script src="/activereportsjs/demos/arjs/dist/ar-js-viewer.js"></script> <link rel="stylesheet" type="text/css" href="/activereportsjs/demos/arjs/styles/ar-js-ui.css" /> <link rel="stylesheet" type="text/css" href="/activereportsjs/demos/arjs/styles/ar-js-viewer.css" /> <script> System.import("./app.js"); </script> </head> <body style="margin: 0"> <div id="app"></div> <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous" ></script> <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous" ></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js" integrity="sha384-B4gt1jrGC7Jh4AgTPSdUtOBvfO8shuf57BaghqFfPlYxofvL8/KUEfYiJOMMV+rV" crossorigin="anonymous" ></script> </body> </html>
(function (global) { SystemJS.config({ transpiler: "systemjs-plugin-babel", typescriptOptions: { target: "es5", 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": "@mescius/activereportsjs/dist/ar-js-designer.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", }, 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);