Report Viewer Component - Setting Parameter Values

The Report Viewer API allows you to open a parameterized report by applying specific parameter values. This feature is helpful if you want to implement a custom parameters panel or use hidden parameters that receive values at runtime. The samples below show the implementation of the custom parameter panel with Angular, React, Vue, and pure JavaScript applications. For more details, please visit the Setting Parameter Values. To view the code, scroll down the page.

<template> <div> <div class="container-fluid"> <div class="form-group mb-3 mt-3"> <div> <label>Select Product Categories</label> </div> <div class="form-check form-check-inline" v-for="category in categories" :key="category.categoryId" > <input class="form-check-input" type="checkbox" v-model="category.checked" :id="'category' + category.categoryId" /> <label class="form-check-label" :for="'category' + category.categoryId" >{{ category.categoryName }}</label > </div> <div class="mt-1"> <button type="button" class="btn btn-outline-primary" @click="onPreview" :disabled="previewDisabled" > Preview Report </button> </div> </div> </div> <div id="viewer-host"> <JSViewer ref="reportViewer"></JSViewer> </div> </div> </template> <script> import { ref, computed, onMounted } from "vue"; import { Viewer } from "@grapecity/activereports-vue"; import "@grapecity/activereports/pdfexport"; import "@grapecity/activereports/htmlexport"; import "@grapecity/activereports/tabulardataexport"; import "@grapecity/activereports-localization"; import { FontStore } from "@grapecity/activereports/core"; FontStore.registerFonts("/activereportsjs/demos/resource/fontsConfig.json"); export default { components: { JSViewer: Viewer, }, setup() { const reportViewer = ref(null); const previewDisabled = ref(false); const categories = ref([ { categoryId: 1, categoryName: "Beverages", checked: true, }, { categoryId: 2, categoryName: "Condiments", checked: false, }, { categoryId: 3, categoryName: "Confections", checked: false, }, { categoryId: 4, categoryName: "Dairy Products", checked: false, }, { categoryId: 5, categoryName: "Grains/Cereals", checked: false, }, { categoryId: 6, categoryName: "Meat/Poultry", checked: false, }, { categoryId: 7, categoryName: "Produce", checked: false, }, { categoryId: 8, categoryName: "Seafood", checked: false, }, ]); const onPreview = () => { reportViewer.value.Viewer().open("reports/multi-value-param.rdlx-json", { ReportParams: [ { Name: "CategoryId", Value: categoryIds.value, }, ], }); }; const categoryIds = computed(() => categories.value.filter((cat) => cat.checked).map((cat) => cat.categoryId) ); onMounted(() => { onPreview(); reportViewer.value.Viewer().documentLoaded.register(() => { previewDisabled.value = false; }); reportViewer.value.Viewer().reportLoaded.register(() => { previewDisabled.value = true; }); }); return { reportViewer, previewDisabled, categories, onPreview, categoryIds, }; }, }; </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 sample</title> <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/resource/themes/orange-ui.css" /> <link rel="stylesheet" type="text/css" href="/activereportsjs/demos/resource/themes/orange-viewer.css" /> <script> System.import("$DEMOROOT$/en/lib/vue/license.ts"); System.import("./app.js"); </script> </head> <body style="margin: 0"> <div id="app"></div> </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/@grapecity/*/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", "@grapecity/activereports/pdfexport": "@grapecity/activereports/dist/ar-js-pdf.js", "@grapecity/activereports/tabulardataexport": "@grapecity/activereports/dist/ar-js-tabular-data.js", "@grapecity/activereports/htmlexport": "@grapecity/activereports/dist/ar-js-html.js", "@grapecity/activereports/xlsxexport": "@grapecity/activereports/dist/ar-js-xlsx.js", "@grapecity/activereports-vue": "@grapecity/activereports-vue/lib/index.js", "@grapecity/activereports/reportviewer": "@grapecity/activereports/dist/ar-js-viewer.js", "@grapecity/activereports/viewer": "@grapecity/activereports/dist/ar-js-viewer.js", "@grapecity/activereports/reportdesigner": "@grapecity/activereports/dist/ar-js-designer.js", "@grapecity/activereports/core": "@grapecity/activereports/dist/ar-js-core.js", "@grapecity/activereports/styles": "@grapecity/activereports/styles", "@grapecity/activereports-localization": "@grapecity/activereports-localization/dist/ar-js-locales.js", "@grapecity/ar-js-pagereport": "@grapecity/activereports/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);