以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]execl模板的序号与合并单元格 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=127373) |
||||
-- 作者:天一生水 -- 发布时间:2018/11/12 18:18:00 -- [求助]execl模板的序号与合并单元格 请教老师,怎样设置模板,才能将导出的execl文件如图合并单元格([序号]、[法院]跟随[案号]合并单元格),和自动编号: execl模板是这样设置的: 模板文件:
谢谢! |
||||
-- 作者:有点甜 -- 发布时间:2018/11/12 19:21:00 -- 模板那里,序号、法院 列,改成变量 [!序号] [!法院]
编写报表事件beforeBuild
vars("序号") = 0 vars("法院") = ""
编写builddetail事件
if vars("序号") = 0 then vars("序号") = 1 vars("法院") = e.datarow("法院") vars("上一行") = e.datarow Else If vars("上一行")("案号") <> e.datarow("案号") Then vars("序号") += 1 vars("法院") = e.datarow("法院") vars("上一行") = e.datarow End If End If |
||||
-- 作者:天一生水 -- 发布时间:2018/11/12 22:03:00 -- 按照老师的代码,改写了模板、设置了报表事件、添加了报表管理,但是没有成功。 另外,我把上述代码写进按钮里,行不行? 代码如下: Dim Book As New XLS.Book(ProjectPath & "Attachments\\出庭汇总.xls") Dim fl As String = ProjectPath & "Reports\\出庭汇总.xls" \'编写报表事件beforeBuild vars("序号") = 0 vars("法院") = "" \'编写builddetail事件 If vars("序号") = 0 Then vars("序号") = 1 vars("法院") = DataTables("出庭汇总").DataRow("法院") vars("上一行") = DataTables("出庭汇总").DataRow Else If vars("上一行")("案号") <> DataTables("出庭汇总").DataRow("案号") Then vars("序号") += 1 vars("法院") = DataTables("出庭汇总").DataRow("法院") vars("上一行") = DataTables("出庭汇总").DataRow End If End If Book.Build() \'生成细节区 Book.Save(fl) \'保存工作簿 Dim Proc As New Process \'打开工作簿 Proc.File = fl Proc.Start() |
||||
-- 作者:天一生水 -- 发布时间:2018/11/12 22:22:00 -- 实例:
|
||||
-- 作者:有点蓝 -- 发布时间:2018/11/12 22:25:00 -- [!序号] 中括号,不是尖括号
|
||||
-- 作者:有点蓝 -- 发布时间:2018/11/12 22:35:00 -- ![]() ![]() |
||||
-- 作者:天一生水 -- 发布时间:2018/11/12 22:42:00 -- 哦,谢谢蓝老师! 用菜单生成报表还有点问题,就是[法院]这一列没有跟随[序号]和[案号]同步合并单元格。 另外,要是把上述过程写入一个按钮中,代码怎样修改一下呢? 按钮代码如下: Dim Book As New XLS.Book(ProjectPath & "Attachments\\出庭汇总.xls") Dim fl As String = ProjectPath & "Reports\\出庭汇总.xls" Book.Build() \'生成细节区 Book.Save(fl) \'保存工作簿 Dim Proc As New Process \'打开工作簿 Proc.File = fl Proc.Start() 都解决了,谢谢两位老师!上图在报表管理中将自由合并设为false就行了。
[此贴子已经被作者于2018/11/12 23:29:21编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2018/11/12 22:49:00 -- 报表事件不变,按钮事件: 按钮代码如下: Dim Book As New XLS.Book(ProjectPath & "Attachments\\出庭汇总.xls") Dim fl As String = ProjectPath & "Reports\\出庭汇总.xls" Book.Build() \'生成细节区 Book.Save(fl) \'保存工作簿 Dim Proc As New Process \'打开工作簿 Proc.File = fl Proc.Start() |
||||
-- 作者:有点甜 -- 发布时间:2018/11/13 9:27:00 -- 自由合并设置成false即可
Dim Book As New XLS.Book(ProjectPath & "Attachments\\出庭汇总.xls") |
||||
-- 作者:天一生水 -- 发布时间:2018/11/16 10:18:00 -- 甜老师好! 还是有点问题: 当一个数据表存在多个模板时,且只有其中一个模板需要启动报表事件,当写入其他模板时就会报错。 能不能在事件里加上判断,或者把报表事件写入到特定按钮里呢? |