以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 报表标记为什么不能这样用? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=26483) |
-- 作者:布莱克朱 -- 发布时间:2012/12/5 21:35:00 -- 报表标记为什么不能这样用? \'选择全表 Tables("窗口1_Table1").Select(0, 0, Tables("窗口1_Table1").Rows.Count - 1, Tables("窗口1_Table1").Cols.Count - 1) Dim Book As New XLS.Book(ProjectPath & "Attachments\\月费用明细.xls") Book.Marks.Add("_UserName",_UserName) Dim Customers As List(Of String) Customers = Tables("窗口1_Table1").DataTable.GetUniqueValues("", "业务编号") Dim dr As DataRow For Each Customer As String In Customers dr = DataTables("业务总账").Find("业务编号=\'" & Customer & "\'") If dr IsNot Nothing Then Book.Marks.Add("经营单位",dr("经营单位")) Book.Marks.Add("业务编号",dr("业务编号")) Book.Marks.Add("提单号",dr("提单号")) Book.Marks.Add("报关单号",dr("报关单号")) End If Next Book.Build() Book.Save(ProjectPath & "Reports\\月费用明细.xls") Dim Proc As New Process Proc.File = ProjectPath & "Reports\\月费用明细.xls" Proc.Start()
|
-- 作者:e-png -- 发布时间:2012/12/5 21:54:00 -- 到底那个标记不能“这样”用? 恐怕你得提供一个实例,不然非经常且熟练掌握标记的人,很难看的出什么。 |
-- 作者:zerov -- 发布时间:2012/12/5 22:01:00 -- 刚入门,还有点云里雾里 |
-- 作者:狐狸爸爸 -- 发布时间:2012/12/6 8:32:00 -- 下面的代码有问题:
For Each Customer As String In Customers
dr = DataTables("业务总账").Find("业务编号=\'" & Customer & "\'") If dr IsNot Nothing Then Book.Marks.Add("经营单位",dr("经营单位")) Book.Marks.Add("业务编号",dr("业务编号")) Book.Marks.Add("提单号",dr("提单号")) Book.Marks.Add("报关单号",dr("报关单号")) End If Next 要么不错,即使不出错,标记也只是最后一个业务编号的内容。
应该结合事件使用,可以看看这里的示例一:
|
-- 作者:blackzhu -- 发布时间:2012/12/6 10:27:00 -- 老大 是的,后来明白了.后来我用了生成临时表的方式处理打印的,这样就没有问题了. 只是你的http://www.foxtable.com/help/topics/1955.htm 这个做法 ,我不太明白引用是 这样做的? 按照道理,应该在生成报表之前事件先写入一个标记 .然后在生成细节区事件再写入引用代码. 但是关键我就不明白生成报表之前事件的这个写入标记应该怎么写? 昨日我是这样做的: 在BeforeBuild事件中,将这两个标签插入到Marks集合: Select Case e.Book.TempLate 在BuildDetail事件中加入下面的代码: Select Case e.Book.TempLateCase "月费用明细.xls"
End Select 我是这样写的,但是没有引用成功.应该咋改? |
-- 作者:lin_hailun -- 发布时间:2012/12/6 10:33:00 -- 模板名字不需要加.xls后缀名; BuildDetail每处理一行数据,就会触发一次; 对于"",填入的是你想替换这个标记为什么内容。与 Book.Marks("xxx") = "" 等效 |
-- 作者:blackzhu -- 发布时间:2012/12/6 10:44:00 -- 林女侠不对吧? Book.Marks("业务类型") = dr("业务类型")) 是这样写入的. 难道
e.Book.Marks.Add("业务类型","") 直接 e.Book.Marks.Add("业务类型",dr("业务类型")) 不行吧! |
-- 作者:lin_hailun -- 发布时间:2012/12/6 10:53:00 -- marks.add(标记名称, 默认值) 个人感觉直接用 marks("") = "" 比较方便 |
-- 作者:blackzhu -- 发布时间:2012/12/6 11:05:00 -- 原来这样也能用的. |