以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 如何根据查询表得到的dt获取其他table? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=186285) |
-- 作者:happyft -- 发布时间:2023/4/19 13:42:00 -- 如何根据查询表得到的dt获取其他table? Dim cmd As New SQLCommand cmd.ConnectionName = Mydata cmd.CommandText = "Select * from dbo.ufn_rb_hgx10(\'" & pr("单据编号") & "\') order by 姓名" Dim dt As DataTable = cmd.ExecuteReader If dt.datarows.count > 0 Then \'如果有值 dim tb as table = tables(dt.name) \'设置明细表标题列--------------------------------- ---------2 rt.Rows(rt.Rows.Count).Height = 8 rt.Rows(rt.Rows.Count - 1).Style.TextAlignHorz = prt.AlignHorzEnum.Center \'文本水平居中 Dim ColNames As String() = cs1.split("|") Dim MergeCols As Integer = 1 \'指定要合并的列数 tb.Sort = "姓名,合计金额" \'根据合并列排序 For c As Integer = 0 To ColNames.Length - 1 rt.Cells(rt.Rows.Count - 1, c).Text = ColNames(c) Next rt.RowGroups(0, 1).Header = prt.TableHeaderEnum.Page \'指定表头行(注意如果只有一行表头设置多了会重复) For c As Integer = 0 To ColNames.Length - 1 \'逐列设置和填入内容 Dim lr As Integer \' 用于保存合并区域的起始行 rt.Cells(0, c).Text = ColNames(c) rt.Cells(0, c).Style.TextAlignHorz = prt.AlignHorzEnum.Center rt.Cols(c).Width = tb.Cols(ColNames(c)).PrintWidth \'列宽等于实际列宽 rt.Cols(c).Width = 50 \'列宽等于实际列宽 If tb.dataCols(ColNames(c)).IsNumeric OrElse tb.dataCols(ColNames(c)).IsDate Then \'如果是数值或日期列 rt.Cols(c).Style.TextAlignHorz = prt.AlignHorzEnum.Right End If ... Next 上面通用的打印功能都是要用到table的属性,如果打印的来源表是从查询得到的临时表dt,如果获取其table?上面红色不行 谢谢! |
-- 作者:有点蓝 -- 发布时间:2023/4/19 13:49:00 -- 临时表只有绑定窗口表控件才会有table。 代码里遍历使用DataTable即可,没有必要使用table |
-- 作者:HappyFt -- 发布时间:2023/4/19 13:54:00 -- 但datatable无法指定soft,下面这句代码会出错 tb.Sort = "姓名,合计金额" \'根据合并列排序 |
-- 作者:有点蓝 -- 发布时间:2023/4/19 13:55:00 -- http://www.foxtable.com/webhelp/topics/0400.htm |