以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 关于文件导出的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=194624) |
||||
-- 作者:刘效功天津 -- 发布时间:2024/12/30 9:01:00 -- 关于文件导出的问题 老师好,关于文件导出代码出现不了想要的结果,请老师看看代码问题出在哪儿,具体问题描述见压缩文件, 谢谢老师
|
||||
-- 作者:有点蓝 -- 发布时间:2024/12/30 9:18:00 -- Exporter仅只支持导出主表数据,不支持临时表。 |
||||
-- 作者:刘效功天津 -- 发布时间:2024/12/30 9:44:00 -- 老师好,也就是是说报表编程中的导出数据支持临时表导出数据吗? |
||||
-- 作者:有点蓝 -- 发布时间:2024/12/30 10:04:00 -- 支持临时表 |
||||
-- 作者:刘效功天津 -- 发布时间:2024/12/30 10:05:00 -- 谢谢老师,我试试 |
||||
-- 作者:刘效功天津 -- 发布时间:2024/12/30 14:05:00 -- 老师好,还是实现不了所需的目的,具体情况还是和上午提的一样,我把上午的问题(压缩文件)再发过去,下面是我写的导出数据代码,还是解决不了,请老师看看代码的问题 Dim LK As WinForm.CheckedListBox = e.Form.Controls("lbk") Dim bms() As String = {"全隐框玻璃幕墙单价分析表", "全明框玻璃幕墙单价分析表", "半明半隐框玻璃幕墙单价分析表"} For Each bm As String In bms Dim dlg As New SaveFileDialog dlg.filter = "Excel文件|*.xls|Access文件|*.mdb" dlg.OverwritePrompt = True \'弹出覆盖警告 If dlg.ShowDialog = DialogResult.OK Then Dim Book As New XLS.Book("dlg.filter") MessageBox.Show(1) \'定义工作表 Book.Sheets.Add("& bm &") \'增加一个工作表 Dim Sheet As XLS.Sheet = Book.Sheets("bm") MessageBox.Show(2) Dim nms() As String = {"序号", "项目构成", "单位", "用量", "单价", "合价", "备注"} If DataTables.Contains(bm) = False Then Dim cmd As New SQLCommand \'cmd.C If e.Form.Controls("导出理论数据").Checked = True Then cmd.CommandText = "s elect 序号,项目构成,单位,用量 as 理论用量 ,单价 as 理论单价,合价 as 理论合价,备注 from {" & bm & "}" \'该行代码不能加主键,否则出错 Else If e.Form.Controls("导出投标数据").Checked = True Then cmd.CommandText = "s elect 序号,项目构成,单位,报价调整1 as 投标用量,报价调整2 as 投标单价,报价调整3 as 投标合价 ,备注 from {" & bm & "}" \'该行代码不能加主键,否则出错
End If Dim dt As DataTable = cmd.ExecuteReader() MessageBox.Show(3) \' Dim Sheet As XLS.Sheet = Book.Sheets(0) \' Dim Style As Xls.Style = Book.NewStyle \' Style.BackColor = Color.Red For c As Integer = 0 To nms.Count - 1 Sheet(0, c).Value = nms(c) Next MessageBox.Show(4) For r As Integer = 0 To dt.DataRows.Count - 1 For c As Integer = 0 To nms.Count - 1 Sheet(r + 1, c).Value = dt.DataRows(r)(nms(c)) Next Next End If MessageBox.Show(5) \'打开工作簿 Book.Save("dlg.filter") Dim Proc As New Process Proc.File = "dlg.filter" Proc.Start() End If Next
|
||||
-- 作者:有点蓝 -- 发布时间:2024/12/30 14:19:00 -- 建议先花一周从头学一下编程基础。 |
||||
-- 作者:刘效功天津 -- 发布时间:2024/12/30 14:28:00 -- 老师好,在报表这块代码就是实现不了想要的功能,我有点迷惘,写不出来,老师说我重点再学一下基础的哪一部分,基础我也学了好多次,还是写出来的代码实现不了功能,请老师点拨一下,谢谢老师 |
||||
-- 作者:有点蓝 -- 发布时间:2024/12/30 14:51:00 -- Dim dlg As New SaveFileDialog dlg.filter = "Excel文件|*.xls" dlg.OverwritePrompt = True \'弹出覆盖警告 If dlg.ShowDialog = DialogResult.OK Then Dim bms() As String = {"全隐框玻璃幕墙单价分析表", "全明框玻璃幕墙单价分析表", "半明半隐框玻璃幕墙单价分析表"} Dim cmd As New SQLCommand Dim Book As New XLS.Book() Dim Sheet As XLS.Sheet Dim dt As DataTable For Each bm As String In bms Sheet = Book.Sheets.Add(bm) \'增加一个工作表 If e.Form.Controls("导出理论数据").Checked = True Then cmd.CommandText = "select 序号,项目构成,单位,用量 as 理论用量 ,单价 as 理论单价,合价 as 理论合价,备注 from {" & bm & "}" \'该行代码不能加主键,否则出错 Else If e.Form.Controls("导出投标数据").Checked = True Then cmd.CommandText = "select 序号,项目构成,单位,报价调整1 as 投标用量,报价调整2 as 投标单价,报价调整3 as 投标合价 ,备注 from {" & bm & "}" \'该行代码不能加主键,否则出错 End If dt = cmd.ExecuteReader() For c As Integer = 0 To dt.DataCols.Count - 1 Sheet(0, c).Value = dt.DataCols(c).Name Next For r As Integer = 0 To dt.DataRows.Count - 1 For c As Integer = 0 To dt.DataCols.Count - 1 Sheet(r + 1, c).Value = dt.DataRows(r)(dt.DataCols(c).Name) Next Next Next End If |
||||
-- 作者:刘效功天津 -- 发布时间:2024/12/30 14:56:00 -- 谢谢老师 |