Foxtable(狐表)用户栏目专家坐堂 → 如何根据查询表得到的dt获取其他table?


  共有3752人关注过本帖树形打印复制链接

主题:如何根据查询表得到的dt获取其他table?

帅哥哟,离线,有人找我吗?
happyft
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17570 威望:0 精华:0 注册:2014/7/29 19:09:00
如何根据查询表得到的dt获取其他table?  发帖心情 Post By:2023/4/19 13:42:00 [只看该作者]

   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?上面红色不行
谢谢!


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110750 积分:563676 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/4/19 13:49:00 [只看该作者]

临时表只有绑定窗口表控件才会有table。

代码里遍历使用DataTable即可,没有必要使用table

 回到顶部
帅哥哟,离线,有人找我吗?
HappyFt
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17570 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2023/4/19 13:54:00 [只看该作者]

但datatable无法指定soft,下面这句代码会出错
tb.Sort = "姓名,合计金额" '根据合并列排序



 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110750 积分:563676 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/4/19 13:55:00 [只看该作者]


 回到顶部