Foxtable(狐表)用户栏目专家坐堂 → 关于ListView的显示问题


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

主题:关于ListView的显示问题

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/9 15:37:00 [显示全部帖子]

参考代码

 

Dim cj As WinForm.ComboBox = e.Form.Controls("ComboBox1")
Dim dm As WinForm.ComboBox = e.Form.Controls("ComboBox2")
If cj.text <> Nothing AndAlso dm.text <> Nothing Then
    Dim dt As DataTable = DataTables("箱单数据")
    Dim drs = dt.Select("款号 = '" & dm.Text & "'and 合同号 like '%" & cj.Text & "%'", "_sortkey")
    Dim ggs = dt.GetValues("规格", "款号 = '" & dm.Text & "'and 合同号 like '%" & cj.Text & "%'", "_sortkey")
    Dim lvw As WinForm.ListView = e.Form.Controls("ListView1")
    lvw.StopRedraw() '暂停绘制
    lvw.Columns.Clear() '清除原来的列
    lvw.Rows.Clear() '清除原来的行
    lvw.View = ViewMode.Details '显示模式为详细信息
    lvw.GridLines = True '显示网格线
    Dim cls() As String = {"颜色","箱号"} '定义列名
    Dim wds() As String = {120,100} '定义列宽
    For i As Integer = 0 To  cls.Length - 1  '增加列
        Dim c As WinForm.ListViewColumn = lvw.Columns.Add()
        c.Text = cls(i) '指定列标题
        c.Name = cls(i) '指定列名
        c.Width = wds(i) '指定列宽
    Next
    For Each gg As String In ggs
        Dim c As WinForm.ListViewColumn = lvw.Columns.Add()
        c.Text = gg
        c.Name = gg
        c.Width = 20
    Next
    cls = new String() {"箱数","数量"} '定义列名
    wds = new String()  {40,40} '定义列宽
    For i As Integer = 0 To  cls.Length - 1  '增加列
        Dim c As WinForm.ListViewColumn = lvw.Columns.Add()
        c.Text = cls(i) '指定列标题
        c.Name = cls(i) '指定列名
        c.Width = wds(i) '指定列宽
    Next
   
    Dim pdr As DataRow = Nothing
    Dim xs As Double = 0
    Dim xhs As String = ""
    Dim sl As Double = 0
    Dim pr As object = Nothing
    For Each dr As DataRow In drs
        If pdr Is Nothing OrElse pdr("规格") <> dr("规格") OrElse pdr("颜色") <> dr("颜色") Then
            If pr IsNot Nothing Then
                pr("箱号") = xhs.trim(",")
                pr(pdr("规格")) = "√"
                pr("箱数") = xs
                pr("数量") = sl
            End If
            Dim r As  WinForm.ListViewRow =  lvw.Rows.Add() '增加一行
            r("颜色") = dr("颜色")
            xhs = dr("箱号")
            xs = 1
            sl = dr("数量")
            pr = r
        Else
            xhs &= "," & dr("箱号")
            xs += 1
            sl += dr("数量")
        End If
        pdr = dr
    Next
    If pr IsNot Nothing Then
        pr("箱号") = xhs.trim(",")
        pr(pdr("规格")) = "√"
        pr("箱数") = xs
        pr("数量") = sl
    End If
    lvw.ResumeRedraw
End If


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/9 18:11:00 [显示全部帖子]

请看懂代码,理解代码以后,自己修改。示例代码已经写出来给你。自己改动一下。

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/14 10:54:00 [显示全部帖子]


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/14 12:34:00 [显示全部帖子]

Dim cj As WinForm.ComboBox = e.Form.Controls("ComboBox1")
Dim dm As WinForm.ComboBox = e.Form.Controls("ComboBox2")
Dim dt As DataTable = DataTables("箱单数据")
Dim drs = dt.Select("款号 = '" & dm.Text & "'and 合同号 like '%" & cj.Text & "%'", "_sortkey")
Dim ggs = dt.GetValues("规格", "款号 = '" & dm.Text & "'and 合同号 like '%" & cj.Text & "%'", "_sortkey")
Dim dtb As New DataTableBuilder("临时箱单")
dtb.AddDef("合同号",Gettype(String),10)
dtb.AddDef("款号",Gettype(String),10)
dtb.AddDef("箱号",Gettype(String),10)
dtb.AddDef("颜色",Gettype(String),10)
For Each v As String In ggs
    dtb.AddDef(v , Gettype(Double))
Next
dtb.AddDef("箱数",Gettype(String),10)
dtb.AddDef("数量",Gettype(String),10)
dtb.Build()

Dim pdr As DataRow = Nothing
Dim xs As Double = 0
Dim xhs As String = ""
Dim sl As Double = 0
Dim pr As object = Nothing
For Each dr As DataRow In drs
    If pdr Is Nothing OrElse pdr("规格") <> dr("规格") OrElse pdr("颜色") <> dr("颜色") OrElse pdr("数量") <> dr("数量")Then
        If pr IsNot Nothing Then
            pr("合同号") = cj.Text
            pr("款号") = dm.Text
            pr("箱号") = xhs.trim("-")
            pr(pdr("规格")) = pdr("数量")
            pr("箱数") = xs
            pr("数量") = sl
            Dim arr() As String = pr("箱号").split("-")
            If arr.length > 2
                pr("箱号") = arr(0) & "-" & arr(arr.length - 1)
            End If
        End If
        Dim r As  DataRow = DataTables("临时箱单").AddNew()
        r("颜色") = dr("颜色")
        xhs = dr("箱号")
        xs = 1
        sl = dr("数量")
        pr = r
    Else
       
        xhs &= "-" & dr("箱号")
        xs += 1
        sl += dr("数量")
    End If
    pdr = dr
Next
If drs.count > 0
    Dim dr = drs(drs.count - 1)
    If pr IsNot Nothing Then
        pr("合同号") = cj.Text
        pr("款号") = dm.Text
        pr("箱号") = xhs.trim("-")
        pr(pdr("规格")) = dr("数量")
        pr("箱数") = xs
        pr("数量") = sl
    End If
End If

MainTable = Tables("临时箱单")


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/14 22:03:00 [显示全部帖子]

改成

 

dtb.AddDef(v , Gettype(Double), "", "规格_" & v)


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/15 15:42:00 [显示全部帖子]

Dim Style1 As XLS.Style = Book.NewStyle() '定义新样式
styel1.font = New Font("雅黑", 16, FontStyle.Bold)
Sheet(0,0).Style = style1

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/16 9:18:00 [显示全部帖子]

只有这些属性

 

AlignHorz
AlignVert
BackColor
BorderBottom
BorderColorBottom
BorderLeft
BorderColorLeft
BorderTop
BorderColorTop
BorderRight
BorderColorRight
Diagonal
DiagonalColor
DiagonalStyle
Font
FontName
FontSize
FontBold
FontItalic
FontStrikeout
FontUnderline
ForeColor
Format
Locked
Rotation
WordWrap

Dim Book As New XLS.Book
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Dim Style As XLS.Style = Book.NewStyle() '定义新样式
For Each o As object In style.Gettype.getproperties
    output.show(o.name)
Next

 

如果你要设置额外的属性,请用vba处理,才行的

 

http://www.foxtable.com/webhelp/scr/2121.htm

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/16 10:27:00 [显示全部帖子]

改成


Dim ggs = dt.GetValues("规格", "款号 = '" & dm.Text & "'and 合同号 like '%" & cj.Text & "%'","_sortkey desc")


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/16 17:13:00 [显示全部帖子]

那你改成

 

Dim ggs = {"XXS","XS","S","M","L","XL","XXL"}

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/16 17:48:00 [显示全部帖子]

改一下

 

Dim ggs() As String = {"XXS","XS","S","M","L","XL","XXL"}


 回到顶部
总数 12 1 2 下一页