网站首页 > 知识剖析 正文
这一节,我将初步实现查询功能。
打开 “报表.et”,选择菜单『开发工具』-『查看代码』,打开WPS宏编辑器,在左上侧的工程栏里的『代码』下面,插入两个模块,分别重命名为lib和main。如图11.0:
lib模块里面存放一些通用函数库,main里面存放commandbutton的click事件。如果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宏的编写。
编写代码期间,如果要查询对象的属性或者方法,可以参考 第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:
本节使用的两个工作簿在下面的链接,下载后放到一个文件夹中。
打开报表文件,在第4节的图4.4中,点击连接文件后面的浏览,找到database.et文件,就可以使用了。
//本次查询使用的数据库文件
database.et 文件的下载链接:https://kdocs.cn/l/cjquBVytt7DX
//本次查询使用的报表文件
报表.et文件的下载链接:https://kdocs.cn/l/cs4kB6lxkomD
本节内容到此结束,下一节将继续完善报表查询的相关功能。
猜你喜欢
- 2024-12-27 前端中JS的字符编码及常用操作字符API
- 2024-12-27 更好搜索体验,火狐Firefox33.0.0.5397官方下载
- 2024-12-27 Fuse.js - 免费开源、小巧无依赖的模糊搜索 JavaScript 工具库
- 2024-12-27 JavaScript字符串charAt()方法教程
- 2024-12-27 Firefox火狐浏览器126版更新修复PDF.js漏洞
- 2024-12-27 JS原生对字符串操作的常用方法 原生js怎么获取子元素
- 2024-12-27 新增忘记按钮,火狐浏览器Firefox33.1官方下载
- 2024-12-27 使用JShaman进行JS代码加密时,保留字的作用
- 2024-12-27 Python教程:第9篇 字符串基本操作
- 2024-12-27 Web3系列教程之入门篇——1:了解React (Next.js)
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)