以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  报表问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=158699)

--  作者:透明人生
--  发布时间:2020/11/29 20:29:00
--  报表问题
这个导出报表代码错在哪儿,老是提示“统考学生成绩表(道科信).xls”已打开。如果九个科目全在的话,提示两次,
如果少语数英,就提示一次,再少了音乐体育美术,就不提示。
If DataTables.Contains("统考水平表") Then
For Each c As Col In Tables("统考水平表").cols
 \'   output.show(c.name & " " & c.caption)
If c.name = "语文" Or c.name = "数学" Or c.name = "英语" Then
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()
Else
If c.name = "音乐" Or c.name = "美术" Or c.name = "体育" Then
Dim Books As New XLS.Book(ProjectPath & "Attachments\\统考学生成绩表(音体美).xls")
Dim fls As String = ProjectPath & "Reports\\统考学生成绩表(音体美).xls"
Books.Build() 
Books.Save(fls)
Dim Procs As New Process
Procs.File = fls
Procs.Start()
Else
If c.name = "道德与法治" Or c.name = "科学" Or c.name = "信息技术" Then
Dim Booka As New XLS.Book(ProjectPath & "Attachments\\统考学生成绩表(道科信).xls")
Dim fla As String = ProjectPath & "Reports\\统考学生成绩表(道科信).xls"
Booka.Build() 
Booka.Save(fla)
Dim Proca As New Process
Proca.File = fla
Proca.Start()
End If
End If
End If
Next
Else
Messagebox.show("请生成_统考水平表!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If

--  作者:有点蓝
--  发布时间:2020/11/29 20:35:00
--  
没看懂这个代码到底想干嘛?for循环去掉,完全多余
--  作者:透明人生
--  发布时间:2020/11/29 20:47:00
--  
从统考水平表中导出成绩到三个报表中。当统考水平表列中有语文、数学、英语时,导出“统考学生成绩表.xls”;
当水平表列中有音乐、体育、美术时,导出“统考学生成绩表(音体美).xls”,当列中有道德与法治、科学、信息技术时,
导出“统考学生成绩表(道科信).xls"。


--  作者:有点蓝
--  发布时间:2020/11/29 21:25:00
--  
是否包含列这样判断:http://www.foxtable.com/webhelp/topics/0561.htm,不需要循环