以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  专业报表取数与实际顺序不一致  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=81216)

--  作者:kaituozhe
--  发布时间:2016/2/21 16:57:00
--  专业报表取数与实际顺序不一致

Dim drs As List (of DataRow) = DataTables("账户明细").sqlselect(filter)
    For i As Integer = 0 To drs.Count-1
        rt.cells(i+1,0).text= drs(i)("账户户名")
        rt.cells(i+1,1).text= drs(i)("账户账号")
        rt.cells(i+1,2).text= drs(i)("账户卡号")
        rt.cells(i+1,3).text= drs(i)("开户行_简称")
        rt.Rows(i).Height = 10
    Next
    Doc.body.Children.Add(rt)

以上代码是专业报表中的一段代码,上述代码是想从账户明细中调取符合条件的账户并打印出来,但是上述代码打印出的顺序与账户明细中顺序不致,怎么修改能够让顺序一致呢?


--  作者:大红袍
--  发布时间:2016/2/21 17:00:00
--  

 

Dim drs As List (of DataRow) = DataTables("账户明细").sqlselect(filter, "_Sortkey")


--  作者:kaituozhe
--  发布时间:2016/2/21 17:04:00
--  

把代码改成这个,打印出表就只有标题行了,不显示数据了

 


--  作者:大红袍
--  发布时间:2016/2/21 17:05:00
--  

Dim drs As List (of DataRow) = DataTables("账户明细").sqlselect(filter, "排序列")


--  作者:kaituozhe
--  发布时间:2016/2/21 17:06:00
--  
Dim Filter As String
With e.Form.Controls("是否调取")
    If .Value IsNot Nothing Then
        Filter = "是否调取 = \'" & .Value & "\'"
    End If
End With
With e.Form.Controls("开户银行简称")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "开户银行_简称 = \'" & .Value & "\'"
    End If
End With
If Filter > "" Then
    Dim Doc As new PrintDoc()
    Dim rt As new prt.rendertable
    Dim rx As new prt.RenderText
    If e.Form.Controls("是否调取").text = "是" Then
        rx.style.Font = new font("宋体",16)
        rx.style.TextAlignHorz = prt.AlignHorzEnum.Center
        rx.Style.Spacing.Bottom = 3
        rx.text = "已调取的银行账户"
        Doc.body.Children.Add(rx)
    Else
        rx.style.Font = new font("宋体",16)
        rx.style.TextAlignHorz = prt.AlignHorzEnum.Center
        rx.Style.Spacing.Bottom = 3
        rx.text = "需要调取的银行账户"
        Doc.body.Children.Add(rx)
    End If
    doc.PageSetting.TopMargin = 15 \'上边距25毫米
    doc.PageSetting.leftMargin = 10 \'上边距25毫米
    rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'唯独第一列内容居中
    rt.style.TextAlignVert = prt.AlignVertEnum.Center
    rt.style.Font = new font("宋体",12)
    rt.style.GridLines.all = new prt.LineDef
    rt.Cols.Count = 4
    rt.Cols(0).Width = 40
    rt.Cols(1).Width = 80
    rt.Cols(2).Width = 80
    rt.Cols(3).Width = 40
    rt.cells(0,0).text="账户户名"
    rt.cells(0,1).text="银行账号"
    rt.cells(0,2).text="银行卡号"
    rt.cells(0,3).text="开户银行"
    rt.RowGroups(0,1).Header = prt.TableHeaderEnum.All  \'前四行作为表头
    Dim drs As List (of DataRow) = DataTables("账户明细").sqlselect(filter,"_Sortkey")
    For i As Integer = 0 To drs.Count-1
        rt.cells(i+1,0).text= drs(i)("账户户名")
        rt.cells(i+1,1).text= drs(i)("账户账号")
        rt.cells(i+1,2).text= drs(i)("账户卡号")
        rt.cells(i+1,3).text= drs(i)("开户行_简称")
        rt.Rows(i).Height = 10
    Next
    Doc.body.Children.Add(rt)
    rx = New prt.RenderText \'设置文本对象的内容
    rx.Text = "第[PageNo]页,共[PageCount]页" \'设置文本内容
    rx.Style.TextAlignHorz = prt.AlignHorzEnum.Right \'靠右对齐
    rx.Style.Borders.Bottom = New prt.LineDef(0.3, Color.Green) \'设置底边框
    rx.Style.Padding.Bottom = 0.5 \'底端内容缩进0.5毫米
    rx.Style.FontSize = 8 \'字体大小为8磅
    Doc.Pagefooter = rx \'作为页眉使用
   
    Doc.preview()
End If

--  作者:kaituozhe
--  发布时间:2016/2/21 17:06:00
--  
上述代码是这个报表的全部代码
--  作者:大红袍
--  发布时间:2016/2/21 17:07:00
--  
改成你自己的排序列啊,不然就写 _Identify
--  作者:kaituozhe
--  发布时间:2016/2/21 17:10:00
--  
还是不行呀,我的排序列是序号,按序号也是,除了标题以下什么都没有了
--  作者:大红袍
--  发布时间:2016/2/21 17:11:00
--  

哦,要这样写

 

Dim drs As List (of DataRow) = DataTables("账户明细").sqlselect(filter, "", "序号")

 


--  作者:kaituozhe
--  发布时间:2016/2/21 17:14:00
--  
还是不行呀