wps生成报表(WPS报表JS宏查询的初步实现)

这一节,我将初步实现查询功能。

打开 “报表.et”,选择菜单『开发工具』-『查看代码』,打开WPS宏编辑器,在左上侧的工程栏里的『代码』下面,插入两个模块,分别重命名为lib和main。如图11.0:

wps生成报表(WPS报表JS宏查询的初步实现)(1)

工程总览 图11.0

lib模块里面存放一些通用函数库,main里面存放commandbutton的click事件。如果11.1

wps生成报表(WPS报表JS宏查询的初步实现)(2)

按钮事件 图11.1

在function CommandButton1_Click()添加代码如下:

//查询按钮的单击事件 function CommandButton1_Click() { //使用变量ReportSh 引用报表工作表对象 let ReportSh = Application.Worksheets.Item("报表") //使用变量ReportQuery 引用报表工作表内的查询对象 let ReportQuery = ReportSh.QueryTables.Item(1) }

把第4行代码 Application.Worksheets.Item("报表") 复制到立即窗口,后面加上“.Name”并回车。可以看到报表名字被成功显示,说明这条语句能成功获取报表工作表对象。

其他调试操作,请看动图11.2:

wps生成报表(WPS报表JS宏查询的初步实现)(3)

立即窗口调试 图11.2

初学者可以这样一步一步的完善WPS宏的编写。

编写代码期间,如果要查询对象的属性或者方法,可以参考 第2节 内容。

最终查询代码如下:

//查询按钮的单击事件 function CommandButton1_Click() { //使用变量ReportSh 引用工作表对象:报表 let ReportSh = Application.Worksheets.Item("报表") //使用变量ReportQuery 引用报表工作表内的查询对象 let ReportQuery = ReportSh.QueryTables.Item(1) //DictSh 引用工作表对象:字典 let DictSh = Application.Worksheets.Item("字典") //先定义一个 where 语句来测试 sql 语句 const whereStr = 'where (left([单位],6)="101006") and ([计划月份] between "01" and "05")' /* * 将字典工作表D1单元格存储的sql语句取出 * 并使用 whereStr 替换语句中的 ? * 如果使用replace,具体可网上搜索相应教程 * 可以看到,与vba相比,js宏代码在写字符串处理方面有很大优势 */ let sqlstr = DictSh.Range("D1").Value2.replace(/\?/g, whereStr) // Console.log(sqlstr) //将sqlstr 赋值给查询对象,并刷新查询 ReportQuery.CommandText = sqlstr ReportQuery.Refresh() }

第21行注释掉的语句Console.log(sqlstr),就是在函数体中调试输出结果到立即窗口的方法之一。也可以使用Debug.Print(sqlstr)

最终执行结果如图11.3:

wps生成报表(WPS报表JS宏查询的初步实现)(4)

sql 语句初步调试 图11.3


本节使用的两个工作簿在下面的链接,下载后放到一个文件夹中。

打开报表文件,在第4节的图4.4中,点击连接文件后面的浏览,找到database.et文件,就可以使用了。

//本次查询使用的数据库文件 database.et 文件的下载链接:https://kdocs.cn/l/cjquBVytt7DX //本次查询使用的报表文件 报表.et文件的下载链接:https://kdocs.cn/l/cs4kB6lxkomD


本节内容到此结束,下一节将继续完善报表查询的相关功能。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页