报表控件Stimulsoft在JavaScript报告工具中的事件:查看器事件(上)

Stimulsoft Ultimate (原Stimulsoft Reports.Ultimate)是用于创建报表和仪表板的通用工具集。该产品包括用于WinForms、ASP.NET、.NET Core、JavaScript、WPF、PHP、Java和其他环境的完整工具集。无需比较产品功能,Stimulsoft Ultimate包含了所有内容!

在本文中,我们为JS报告工具中的查看器事件提供了全面的指南,包括它们的详细描述、参数列表等一系列详细内容。在上一篇文章中,我们讨论了报告事件,而在这篇文章中,我们将讨论查看器事件。

Stimulsoft Reports官方正版下载(qun:740060302)icon-default.png?t=N7T8https://www.evget.com/product/2398/download   

查看器事件

准备变量

该事件在报表构建开始时、在报表中填充变量之前触发。它在StiReport实例上处理onPrepareVariables事件后立即发生。以下是事件处理程序参数的列表:

{
event: "PrepareVariables",
sender: "Viewer",
report: StiReport,

preventDefault: boolean,
async: boolean,

variables: []
}

替换变量值的示例:

viewer.onPrepareVariables = (args, callback) => {
args.variables[0].value = "Replace value";
}

开始处理数据

该事件在请求构建报告所需的数据之前触发。它在StiReport实例上处理onBeginProcessData事件后立即发生。以下是事件处理程序参数的列表:

{
sender: "Viewer",
event: "BeginProcessData",
report: StiReport,

preventDefault: boolean,
async: boolean,

command: string,
database: string,
connection: string,

headers: [],
withCredentials: string,

// Json
pathData: string,
tryParseDateTime: boolean,
relationDirection: StiRelationDirection,

// Xsd
pathSchema: string,

// Xml
pathData: string,
tryParseDateTime: boolean,
relationDirection: StiRelationDirection,

// Excel
pathData: string,
firstRowIsHeader: boolean,

// OData
connectionString: string,
dataSource: string,
collectionName: string,

// Sql
connectionString: string,
dataSource: string,
queryString: string,
timeout: number,
parameters: { name: string, value: string | number }[],
escapeQueryParameters: boolean,

// Gis
pathData: string,
separator: string,
dataType: StiGisDataType,

// Csv
pathData: string,
separator: string,
codePage: number,

// DBase
pathData: string,
codePage: number
}

下面是替换连接字符串的示例:

viewer.onBeginProcessData = (args) => {
if (args.database == "MySQL")
args.connectionString = "new connection string";
}

这是我们自己实现数据检索的示例:

viewer.onBeginProcessData = (args, callback) => {
if (args.database == "MySQL"){
args.preventDefault = true;

var result = {
success: true,

rows: [
["value1", 1, false],
["value2", 1, true],
["value3", 2, false]
],
columns: [
"Column1_name",
"Column2_name",
"Column3_name"
],
types:[
"string",
"int",
"boolean"
]
}

// https://github.com/stimulsoft/DataAdapters.JS/
callback(result);
}
}

进程结束数据

该事件在收到构建报告所需的数据后触发。它在StiReport实例上处理onEndProcessData事件后立即发生。以下是事件处理程序参数的列表 :

{
sender: "Viewer",
event: "EndProcessData",
report: StiReport,

command: string,
dataSource: string,
connection: string,
database: string,

result: DataSet|any
}

从适配器调整数据的示例:

viewer.onEndProcessData = (args) => {
if (args.command == "ExecuteQuery" && args.dataSource == "Categories")
args.result.rows.push(rowData) ;

// https://github.com/stimulsoft/DataAdapters.JS/
}

打印报告

它用于在打印之前修改报告或实现自定义打印功能。
该事件在打印报告之前触发。以下是事件处理程序参数的列表:

{
sender: "Viewer",
event: "PrintReport",
report: StiReport,

preventDefault: boolean,
async: boolean

printAction: string,
}

打印前删除图片的示例:

viewer.onPrintReport = (args) => {
var page = args.report.renderedPages.getByIndex(0);
var image = page.components.getByName("Image1");
if (image)
page.components.remove(image);
}

开始导出报告

它用于在导出之前调整导出设置或修改报告。
该事件在导出报告之前、对话框中指定的导出设置完成之后触发。以下是事件处理程序参数的列表:

{
sender: "Viewer",
event: "BeginExportReport",
report: StiReport

preventDefault: boolean,
async: boolean,

action: StiExportAction,
settings: IStiDashboardExportSettings | StiExportSettings,
format: StiExportFormat,
formatName: string,
fileName: string,
openAfterExport: boolean,
}

调整导出参数的示例:

viewer.onBeginExportReport = (args) => {
if (args.format == Stimulsoft.Report.StiExportFormat.Pdf)
args.settings.imageQuality = 0.5;
}

结束导出报告

用于实现独立的文件保存。
该事件在导出报告之后、保存文件之前触发。以下是事件处理程序参数的列表:

{
sender: "Viewer",
event: "BeginExportReport",
report: StiReport,

preventDefault: boolean,
async: boolean,

action: StiExportAction,
format: StiExportFormat,
formatName: string,
fileName: string,
openAfterExport: boolean,
data: string | number[]
}

更改导出文件名称的示例:

viewer.onEndExportReport = (args) => {
args.fileName = "SampleFileName.txt";
}

交互上

该事件在交互发生之前触发。以下是事件处理程序参数的列表:

{
sender: "Viewer",
event: "Interaction",
report: StiReport,

preventDefault: boolean,
async: boolean,

action: string,
variables,
sortingParameters,
collapsingParameters,
drillDownParameters,
filteringParameters
}

替换变量值的示例:

viewer.onInteraction = (args) => {
if (args.action == "Variables")
args.variables["Variable1"] = "New Value";
}

电子邮件报告

它用于通过电子邮件发送导出的报告。
该事件在通过电子邮件发送报告之前触发。以下是事件处理程序参数的列表:

{
sender: "Viewer",
event: "EmailReport",
report: StiReport,

settings: {
email: string;
subject: string;
message: string;
},
format: StiExportFormat,
formatName: string,
fileName: string,
data: number[] | string
}

要启用该按钮,您需要设置以下参数:

viewerOptions.toolbar.showSendEmailButton = true;

发送电子邮件的示例:

viewer.onEmailReport = (args) => {
var emailAddress = args.settings.email;
var emailMessage = args.settings.message;
var emailSubject = args.settings.subject;
var emailAttachmentFileName = args.fileName;
var emailAttachment = args.data;

sendEmail(emailAddress, emailMessage, emailSubject, emailAttachmentFileName, emailAttachment);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/830247.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[华为OD]给定一个 N*M 矩阵,请先找出 M 个该矩阵中每列元素的最大值 100

题目: 给定一个 N*M 矩阵,请先找出 M 个该矩阵中每列元素的最大值,然后输出这 M 个值中的 最小值 补充说明: N 和 M 的取值范围均为:[0, 100] 示例 1 输入: [[1,2],[3,4]] 输出: 3 说…

力扣-有效的数独

请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图) 注…

(三十一)第 5 章 数组和广义表(稀疏矩阵的三元组行逻辑链接的顺序存储表示实现)

1. 背景说明 2. 示例代码 1)errorRecord.h // 记录错误宏定义头文件#ifndef ERROR_RECORD_H #define ERROR_RECORD_H#include <stdio.h> #include <string.h> #include <stdint.h>// 从文件路径中提取文件名 #define FILE_NAME(X) strrchr(X, \\) ? strrch…

AI 工具合集

以下工具来源于互联网&#xff0c;可能会失效&#xff0c;请参考使用 网红工具 名称链接说明GPT-4https://chat.openai.com/ 需要梯子&#xff0c;需要付费。功能最强大的聊天机 器人。 文心一言https://yiyan.baidu.com/welcome 国内版 GPT&#xff0c;需要申请账号。回答问…

最好用的电脑监控软件,电脑监控软件怎么监控员工

电脑监控软件是一种专为跟踪和记录计算机使用情况而设计的应用程序&#xff0c;主要用于提升企业内部的信息安全、提高工作效率及监管员工行为。这些软件通常通过以下几种方式实现监控功能&#xff1a; 实时屏幕监控&#xff1a; 软件能够实时显示被监控电脑的屏幕画面&#x…

数据分析:扩增子分析(qiime2平台全流程分析)

Amplicon sequencing analysis pipeline through qiime2 platform qiime2是扩增子数据分析的最佳平台之一&#xff0c;其提供了大量从原始data到统计分析的插件&#xff0c;尤其是它的可重复分析且可扩展插件的理念使得其成为扩增子分析首选的平台。 Platform qiime2是扩增子…

Airmail 5 for Mac:高效电子邮件管理软件

Airmail 5 for Mac作为一款功能强大的电子邮件客户端软件&#xff0c;为Mac用户带来了全新的邮件管理体验。其高效、直观的操作界面&#xff0c;使得用户可以轻松管理各类邮件&#xff0c;提升工作效率。 Airmail 5 for Mac v5.7.4中文激活版 首先&#xff0c;Airmail 5支持多个…

若依前后端部署系统--详细附图

一、后端部署 1、在ruoyi项目的Maven中的生命周期下双击package.bat打包Web工程&#xff0c;生成jar包文件。 提示打包成功 2、多模块版本会生成在ruoyi/ruoyi-admin模块下target文件夹,我们打开目录ruoyi-admin/taget&#xff0c;打开cmd&#xff0c;运行java -jar jar包名称…

Windows Server 评估版转换(升级)为完整版

临时方法 获取 Windows Server 的剩余宽限期 Slmgr /dliWindows Server免费试用期可以使用以下命令合法延长5次&#xff0c;共180天&#xff1a; slmgr /rearm这意味着所评估的 Windows Server 的最长可用时间为 3 年 ( 180 days * 6)。 试用期到期后&#xff0c;Windows S…

为什么有些3D模型导入总是渲染不出来?---模大狮模型网

在使用3D建模软件时&#xff0c;有时候会遇到一些导入模型后无法正确渲染的问题&#xff0c;这给用户带来了不便和困扰。本文将探讨一些可能导致3D模型无法渲染的原因&#xff0c;并提供解决方案&#xff0c;帮助您顺利渲染模型。 一、文件格式不兼容某些3D建模软件只支持特定的…

共赢闽企数字生态,2024纷享销客福建生态伙伴会圆满成功

4月26日&#xff0c;2024纷享销客福建生态伙伴会在厦门顺利举行&#xff0c;大会以“共赢闽企数字生态&#xff0c;共绘数智发展蓝图“为主题&#xff0c;特邀纷享销客创始人&CEO罗旭、建发旅游集团信息中心总经理高勇、金蝶&#xff08;厦门&#xff09;市场总监王鹭鸣、纷…

一加Ace3/12/Ace2pro手机ColorOS14刷KernelSU内核ROOT-解决无限重启变砖

一加Ace3/一加12/一加11等手机升级了安卓14底层&#xff0c;并且ColorOS版本也更新到了14版本界面和功能都比之前的系统表现更加优秀&#xff0c;但刷机方面&#xff0c;相对之前存在一些差异&#xff0c;特别是KernelSU内核级别root权限&#xff0c;不再支持一键刷入KernelSU通…

七、OSPF特殊区域及其特性

目录 OSPF区域分类 hello报文中option字段 1.末节区域&#xff08;Stub区域&#xff09; 2.完全末节区域&#xff08;Toally Stub区域&#xff09; 3.七类LSA 4.非完全末节区域&#xff08;NSSA区域&#xff09; 5.完全非完全末节区域&#xff08;Toally NSSA区域&#…

vue使用pdfjs-dist在电脑上展示PDF文件

安装 安装的时候一定要带上版本号,这里采用的是2.0.943(因为这个版本对于我目前的项目比较合适可以正常使用,其他版本大概率会报错),当前项目使用的是vue2,vue的版本是2.5.10 npm install pdfjs-dist@2.0.943 查看版本发现这玩意版本非常之多 使用 在使用pdfjs-dist库…

CSS Position定位(详解网页中的定位属性)

目录 一、Position介绍 1.概念 2.特点 3.作用 4.应用 二、Position用法 1.position属性 2.static定位 3.fixed定位 4.relative定位 5.absolute定位 6.sticky定位 7.重叠的元素 三、CSS定位属性 四、总结 一、Position介绍 1.概念 文档流&#xff08;Document Fl…

uniapp 微信小程序 分享海报的实现

主页面 <template><view class"page"><!-- 自定义导航栏--><Navbar title"我的海报"></Navbar><view class"container"><poster ref"poster" :imageUrl"image" :imageWidth"7…

NGINX发布动态页面的方法

一、建立 [rootserver100 html]# vim index.php [rootserver100 html]# pwd /usr/share/nginx/html 二、下载PHP文件 [rootserver100 conf.d]# dnf install php.x86_64 -y 正在更新 Subscription Management 软件仓库。 无法读取客户身份 本系统尚未在权利服务器中注册。可…

Latex入门教学——常用语句介绍

目录 一、导言 二、正文 三、图片 四、公式 五、表格 六、参考文献 LaTex模板下载 IEEE模板&#xff1a;IEEE Article Templates - IEEE Author Center Journals通用模板&#xff1a;Overleaf, Online LaTeX Editor其他方法&#xff1a;百度&#xff0c;CSDN等。 一、导…

力扣题目:寻找数组的中心下标

力扣题目&#xff1a;寻找数组的中心下标 题目链接: 724.寻找数组的中心下标 题目描述 代码思路 根据题目内容&#xff0c;维护好前后缀和&#xff0c;然后从左到右遍历寻找合适的下标 代码纯享版 class Solution {public int pivotIndex(int[] nums) {int sumleft 0, su…

Go 语言数组

Go 语言提供了数组类型的数据结构。 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列&#xff0c;这种类型可以是任意的原始类型例如整型、字符串或者自定义类型。 相对于去声明 number0, number1, ..., number99 的变量&#xff0c;使用数组形式 numbers[0], num…