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


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

主题:关于ListView的显示问题

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


加好友 发短信
等级:二尾狐 帖子:524 积分:3676 威望:0 精华:0 注册:2012/7/27 10:28:00
  发帖心情 Post By:2019/4/13 21:07:00 [只看该作者]

没有反应,还是像7楼图片一样


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


加好友 发短信
等级:二尾狐 帖子:524 积分:3676 威望:0 精华:0 注册:2012/7/27 10:28:00
  发帖心情 Post By:2019/4/13 22:48:00 [只看该作者]

 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("箱号") = 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  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
这样测试没问题了,请问如何按照ListView里的样式生成Excel报表呢?前提是还要加上一个““款号”+箱单”的表头
[此贴子已经被作者于2019/4/13 22:51:00编辑过]

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


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


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


加好友 发短信
等级:二尾狐 帖子:524 积分:3676 威望:0 精华:0 注册:2012/7/27 10:28:00
  发帖心情 Post By:2019/4/14 12:03:00 [只看该作者]

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

这个代码有错吗?


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


加好友 发短信
等级:二尾狐 帖子:524 积分:3676 威望:0 精华:0 注册:2012/7/27 10:28:00
  发帖心情 Post By:2019/4/14 12:08: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("临时箱单")


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | 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("临时箱单")


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


加好友 发短信
等级:一尾狐 帖子:437 积分:2943 威望:0 精华:0 注册:2011/3/15 12:49:00
  发帖心情 Post By:2019/4/14 20:46:00 [只看该作者]

我需要的是dtb.AddDef("规格_" & v , Gettype(Double))多表头

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | 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)


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


加好友 发短信
等级:二尾狐 帖子:524 积分:3676 威望:0 精华:0 注册:2012/7/27 10:28:00
  发帖心情 Post By:2019/4/15 15:32:00 [只看该作者]

Dim dt As Table = Tables("临时箱单")
Dim Book As New XLS.Book
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Dim Style As XLS.Style = Book.NewStyle() '定义新样式
Style.BorderTop = XLS.LineStyleEnum.Thin
Style.BorderBottom = XLS.LineStyleEnum.Thin
Style.BorderLeft = XLS.LineStyleEnum.Thin
Style.BorderRight = XLS.LineStyleEnum.Thin
Style.BorderColorTop = Color.Black
Style.BorderColorBottom = Color.Black
Style.BorderColorLeft = Color.Black
Style.BorderColorRight = Color.Black
Sheet.Rows(0).Height = 30 '设置第1行的行高
Style.AlignHorz = XLS.AlignHorzEnum.Center
Style.AlignVert = XLS.AlignVertEnum.Center
dt.CreateSheetHeader(Sheet,1,0,False)'生成表头
Sheet(0,0).Value = "产品销售统计"
Sheet(0,0).Style.Font = New Font("雅黑", 16, FontStyle.Bold)
For r As Integer = 0 To dt.Rows.Count - 1 '填入数据
    For c As Integer = 0 To dt.Cols.Count -1
Sheet.Cols(0).Width = 120
Sheet.Cols(1).Width = 120
Sheet.Cols(2).Width = 70
Sheet.Cols(3).Width = 120
For a As Integer = 4 To dt.Cols.Count -3
Sheet.Cols(a).Width = 30 '设置第1列的宽度
Next
For a As Integer = dt.Cols.Count -2 To dt.Cols.Count -1
Sheet.Cols(a).Width = 50 '设置第1列的宽度
Next
Sheet.MergeCell(0,0,1,c+1)
        Sheet(r +3 , c).Value = dt.rows(r)(c)
Sheet(r +3, c).Style = Style
Sheet(0,c).Style = Style
Sheet(1,c).Style = Style
Sheet(2,c).Style = Style
    Next
Next
Book.Save("c:\reports\test.xls")
Dim Proc As New Process
Proc.File = "c:\reports\test.xls"
Proc.Start()

红色这行怎么改


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  20楼 | 信息 | 搜索 | 邮箱 | 主页 | 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

 回到顶部
总数 43 上一页 1 2 3 4 5 下一页