以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  Excel模板中怎么基于窗体表数据生成报表?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=173467)

--  作者:cnsjroom
--  发布时间:2021/12/1 3:06:00
--  Excel模板中怎么基于窗体表数据生成报表?

基于后台数据生成报表

Dim Book As New XLS.Book(ProjectPath & "Attachments\\台账.xls")
Dim
 fl As String = ProjectPath & "Reports\\台账.xls"
book
.AddDataTable("台账","测试","Sel ect * from {台账}")
Book
.Build()
Book
.Save(fl)
Dim
 Proc As New Process
Proc
.File = fl
Proc
.Start()

这个帮助怎么修改为基于当前窗体表 Tables("台账录入_table1")中显示的数据  生成对应的台账xls呢?

麻烦老师指导下!谢谢

--  作者:有点蓝
--  发布时间:2021/12/1 9:07:00
--  
参考:http://www.foxtable.com/webhelp/topics/2627.htm
--  作者:cnsjroom
--  发布时间:2021/12/1 10:19:00
--  回复:(有点蓝)参考:http://www.foxtable.com/webh...


全选代码:
For Each r As Row In Tables("台账录入_table1").Rows
    r.Checked = True
Next

生成excel代码:
Dim Book As New XLS.Book(ProjectPath & "Attachments\\台账.xls")
Dim fl As String = ProjectPath & "Reports\\台账.xls"
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Sheet(2,0).Value = "<台账录入_Table1,10>"  \'写入表名
Book.Build() \'生成细节区
\'Book.Sheets(0).Rows.RemoveAt(0) \'删除第一行,Excel报表的第一行通常是标记行
Book.Save(fl) \'保存工作簿
Dim Proc As New Process \'打开工作簿
Proc.File = fl
Proc.Start()

想实现先全选后,把当前窗体表的所有被选择行的数据打印出来。
当前实现全选了,但是打印的数据永远只有被鼠标选择的行,而不是多有行
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2021/12/1 10:31:00
--  
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=169635&skin=0
--  作者:cnsjroom
--  发布时间:2021/12/1 11:52:00
--  回复:(有点蓝)http://www.foxtable.com/bbs/dispbb...
不好意思啊  老师  貌似好像环境不适合  这次是sqltable类型的窗体表

以下内容是专门发给有点蓝浏览


还得麻烦老师继续指导下   谢谢!

--  作者:有点蓝
--  发布时间:2021/12/1 12:08:00
--  
一样的东西,窗口表也就名称不一样:http://www.foxtable.com/webhelp/topics/1907.htm
--  作者:cnsjroom
--  发布时间:2021/12/1 13:43:00
--  回复:(有点蓝)一样的东西,窗口表也就名称不一样:...
For Each r As Row In Tables("台账录入_table1").Rows
    r.Checked = True
Next


Dim lst As New List(of String)
For Each r As Row In Tables("台账录入_table1").GetCheckedRows
    lst.add(r("_Identify"))
Next
MessageBox.Show(lst.count)
If lst.count = 0 Then
    Return
Else
    Tables("台账录入_table1").filter = "_Identify in (" &string.join(",",lst.toarray)  & ")"
    MessageBox.Show("1")
    Dim Book As New XLS.Book(ProjectPath & "Attachments\\台账.xls")
    Dim fl As String = ProjectPath & "Reports\\台账.xls"
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    Sheet(2,0).Value = "<台账录入_Table1,10>"  \'写入表名
    Book.Build()
    Book.Save(fl)
    MessageBox.Show("2")
    Dim Proc As New Process \'打开工作簿
    Proc.File = fl
    Proc.Start()
End If

当前代码如上  运行如图:

图片点击可在新窗口打开查看此主题相关图片如下:1212.gif
图片点击可在新窗口打开查看


当前代码修正如上,还是没有实现实现所选择的行数据,只有一行

--  作者:有点蓝
--  发布时间:2021/12/1 13:54:00
--  
添加<End>标记:http://www.foxtable.com/webhelp/topics/0205.htm
--  作者:cnsjroom
--  发布时间:2021/12/1 14:01:00
--  回复:(有点蓝)添加<End>标记:http://www.fo...
谢谢老师的耐心指导  这个end细节忽视了 导致了弯路 再次感谢老师的辛苦