以文本方式查看主题

-  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