以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- excel报表直接引用数据 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=142009) |
-- 作者:swagger -- 发布时间:2019/10/16 13:56:00 -- excel报表直接引用数据 结构如下(订单表和客户表没有关联): <订单,1> <订单明细,-1> <订单,1> 之前用的是客户表1,sql load 数据 DataTables("客户1").AppendLoad(filter) ,正常打印。 现在换了客户表2,sql load 数据 DataTables("客户2").AppendLoad(filter) ,<"地址:" & [客户2,地址]>,不正常打印,地址不能显示。 是什么原因呢? 检查了 地址列名一样
[此贴子已经被作者于2019/10/16 13:59:41编辑过]
|
-- 作者:有点蓝 -- 发布时间:2019/10/16 13:59:00 -- <"地址:" & [@客户,地址]> |
-- 作者:swagger -- 发布时间:2019/10/16 14:29:00 -- 不知道为什么之前用这个格式一直正常打印 <"地址:" & [客户1,地址]>。 刚刚改为<"地址:" & [@客户1,地址]>,可以显示地址。但是又出现了一个新的问题,选择不同的订单时,打印出来还是固定某个客户地址,除非选择不同的客户行,譬如选择订单1(客户a)和订单2(客户b),显示都是客户a的地址。之前是可以选择不同的订单,然后显示对应订单的客户地址。 |
-- 作者:有点蓝 -- 发布时间:2019/10/16 14:31:00 -- 打印前使用代码定位一下需要打印的客户,选中这个客户所在的行即可 |
-- 作者:swagger -- 发布时间:2019/10/16 14:40:00 -- 代码怎么写呢,之前就在currentchanged里面写了 ,选择订单可以正常定位客户。现在怎么不行了 If e.Table.Current IsNot Nothing Then Dim Filter As String = "客户id = \'" & e.Table.Current("客户id") & "\'" If DataTables("客户1").Find(filter) Is Nothing Then DataTables("客户1").AppendLoad(filter) End If End If |
-- 作者:有点蓝 -- 发布时间:2019/10/16 14:45:00 -- 定位用这种:http://www.foxtable.com/webhelp/topics/0553.htm If e.Table.Current IsNot Nothing Then
Dim Filter As String = "客户id = \'" & e.Table.Current("客户id") & "\'" If DataTables("客户1").Find(filter) Is Nothing Then DataTables("客户1").AppendLoad(filter) End If Dim r As Integer r = Tables("客户1").FindRow(Filter) \'从 第一行开始查找 If r >= 0 Then \'如果找到的话 Tables("客户1").Position = r \'定位到找到的行。 End If End If |
-- 作者:swagger -- 发布时间:2019/12/30 13:28:00 -- 多选行excel打印出现固定一个地址问题,<"地址:" & [@客户1,地址]>,选择多行excel打印时,地址还是一个地址,不会变化,这个怎么弄呢 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() [此贴子已经被作者于2019/12/30 13:27:52编辑过]
|
-- 作者:有点蓝 -- 发布时间:2019/12/30 13:47:00 -- 直接引用本来就只能引用一行的。如果每一行数据对应不的地址 方法1.使用报表事件处理:http://www.foxtable.com/webhelp/topics/1955.htm 2、把客户和主表设置关联
|
-- 作者:swagger -- 发布时间:2019/12/30 15:40:00 -- 设置关联还是不行,干脆只能在主表引用客户表的地址信息,虽然这样数据库会重复数据,不过也暂时能解决问题了。 另外,请教蓝老师一个问题,就是excel批量打印,选择多行时,关联明细表没加载怎么打印关联表?譬如订单和订单明细,初始不加载数据,点击订单行,订单明细才加载。
If DataTables("订单明细").Find(filter) Is Nothing Then DataTables("订单明细").AppendLoad(filter) End If 如果选择多行时,没有点击的订单行,打印出来的订单明细表是空内容的。这个该怎么弄呢? |
-- 作者:有点蓝 -- 发布时间:2019/12/30 15:43:00 -- 1、如果不想重复保存数据可以使用表达式列。 2、直接从后台生成报表:http://www.foxtable.com/webhelp/topics/3233.htm
|