以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  专业报表里怎么添加筛选信息  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=41785)

--  作者:jinzhengbe
--  发布时间:2013/10/27 19:45:00
--  专业报表里怎么添加筛选信息

 


此主题相关图片如下:??.png
按此在新窗口浏览图片

 

怎么在下面的信息里加上筛选条件(例如:筛选 接收单位为(ems)的数据

代码如下

 

 

DataTables("公斤数录入").deletefor("[公斤数] is Null")
DataTables("发货单号").deletefor("[客户名] is Null")
Dim doc As New PrintDoc
Dim rt As New prt.RenderTable()
e.Form.Page.PaperKind = 8
doc.PageSetting.Landscape = True \'横向打印
Doc.PageSetting.LeftMargin = 5 \'设置左边距
Doc.PageSetting.RightMargin = 5 \'设置右边距
Doc.PageSetting.TopMargin = 10 \'设置上边距
Doc.PageSetting.BottomMargin = 5 \'设置下边距
Doc.PrinterName = "HP Officejet 6500 E710n-z"

Dim rx As New prt.RenderTable
rx.Cells(0,0).Text = Date.Today
rx.Cells(0,1).Text = "T R J  list"
rx.Cells(0,2).Text = "第[PageNo]页,共[PageCount]页"
rx.Cols(0).Style.TextAlignHorz = prt.AlignHorzEnum.Left
rx.Cols(1).Style.TextAlignHorz = prt.AlignHorzEnum.Center
rx.Cols(2).Style.TextAlignHorz = prt.AlignHorzEnum.right
rx.Style.Borders.Bottom = New prt.LineDef \'设置底边框
rx.CellStyle.Spacing.Bottom = 0.5 \'底端内容缩进0.5毫米
rx.Style.FontSize = 15 \'字体大小为8磅
Doc.PageHeader = rx \'作为页眉使用


rt.Style.Font = New Font("宋体", 15 , FontStyle.Bold) \'设置文本对象的字体

rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'水平居中
rt.Style.TextAlignVert = prt.AlignVertEnum.Center \'垂直居中
 
rt.Style.Borders.All = New prt.Linedef(0, Color.Lavender) \'设置边框
    rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'水平居中
    rt.Style.TextAlignVert = prt.AlignVertEnum.Center \'垂直居中
   doc.Body.Children.Add(rt)
rt.Style.GridLines.All = New prt.Linedef


For i As Integer = Tables("发货单号1").TopPosition To Tables("发货单号1").BottomPosition
    Dim dr As DataRow  = Tables("发货单号1").Rows(i).DataRow
    Dim crs As List(of DataRow) = dr.GetChildRows("公斤数录入1")
      
If crs.count > 0 Then
        rt.Rows.Count = rt.Rows.count +1
        Dim st As Integer = rt.Rows.count - 1 \'起始行位置
        Dim nt As Integer = st \'当前行位置
        Dim cp As Integer = 4  \'当前列位置
           \'  rt.cells(st,0).text = dr("地区")
            \' rt.cells(st,1).text = dr("客户名")
             rt.cells(st,0).text = "地区"
             rt.cells(st,1).text = "客户名"
             rt.cells(st,2).text = "C/T"
             rt.cells(st,3).text = "Total"
             rt.cells(st,4).text = "重量1"
             rt.cells(st,5).text = "重量2"
             rt.cells(st,6).text = "重量3"
             rt.cells(st,7).text = "重量4"
             rt.cells(st,8).text = "重量5"
             rt.cells(st,9).text = "重量6"
             rt.cells(st,10).text = "重量7"
             rt.cells(st,11).text = "重量8"
             rt.cells(st,12).text = "重量9"
             rt.cells(st,13).text = "重量10"
             rt.cells(st,14).text = "电话1"
             rt.cells(st,15).text = "电话2"
             rt.cells(st,16).text = "发货地址"


            For n As Integer = 0 To crs.count - 1
            rt.cells(nt+1,cp).text = crs(n)("公斤数")
            rt.cells(nt+1,0).text =  dr("地区")
             rt.cells(nt+1,1).text =  dr("发货名")
             rt.cells(nt+1,2).text =  crs.count
             rt.cells(nt+1,14).text =  dr("联系方式1")            
             rt.cells(nt+1,15).text =  dr("联系方式2")
             rt.cells(nt+1,16).text =  dr("发货地址")

             rt.cells(nt+2,cp).text = crs(n)("饰品")
                \' rt.cells(st+3,0).text =dr("发货名")
             \'rt.cells(nt+3,1).text =dr("联系方式1")
             \'rt.cells(nt+3,2).text =dr("联系方式2")
             \'rt.cells(nt+3,3).text =dr("发货地址")
             \'rt.cells(st+1,7).text = crs.count
             \'rt.cells(nt+4,0).text ="  "
        
            cp = cp + 1
            If cp = 7 Then
                cp=2
                nt = nt + 2
            End If
     Next 
\'rt.Cells(nt+4,0).SpanCols = 8  
\'rt.Cells(nt+3,1).SpanCols = 2
\'rt.Cells(nt+3,3).SpanCols = 2
\'rt.Cells(nt+3,5).SpanCols = 3
\'rt.Cells(st+1,7).Spanrows = 2

rt.cells(nt+2,cp).Style.FontSize = 10 \'字体大小为8磅

rt.cells(st,0).Style.BackColor = Color.Lavender
rt.cells(st,1).Style.BackColor = Color.Lavender
rt.cells(st,2).Style.BackColor = Color.Lavender
rt.cells(st,3).Style.BackColor = Color.Lavender
rt.cells(st,4).Style.BackColor = Color.Lavender
rt.cells(st,5).Style.BackColor = Color.Lavender
rt.cells(st,6).Style.BackColor = Color.Lavender
rt.cells(st,7).Style.BackColor = Color.Lavender

    End If
Next
doc.Preview() \'预览报表
doc.SaveHtm("c:\\data\\sky.htm")


--  作者:有点甜
--  发布时间:2013/10/27 20:17:00
--  
 你直接在循环里面判断不就行了?类似

For n As Integer = 0 To crs.count - 1
    if crs(n)("接收单") = "ems" then
            rt.cells(nt+1,cp).text = crs(n)("公斤数")


    end if
next

--  作者:jinzhengbe
--  发布时间:2013/10/28 4:43:00
--  我对代码不是很感冒,能告知一下具体放在什么位置么
我对代码不是很感冒,能告知一下具体放在什么位置么?谢谢~~~~~
--  作者:Bin
--  发布时间:2013/10/28 8:22:00
--  
For i As Integer = Tables("发货单号1").TopPosition To Tables("发货单号1").BottomPosition
    Dim dr As DataRow  = Tables("发货单号1").Rows(i).DataRow
    Dim crs As List(of DataRow) = dr.GetChildRows("公斤数录入1")

整段代码唯一的一个循环,还用问啊.

判断一下dr("接收单")="EMS"  即可