Foxtable(狐表)用户栏目专家坐堂 → 这样的表格,狐表里面要怎么弄?


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

主题:这样的表格,狐表里面要怎么弄?

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


加好友 发短信
等级:童狐 帖子:263 积分:2282 威望:0 精华:0 注册:2016/6/3 8:28:00
这样的表格,狐表里面要怎么弄?  发帖心情 Post By:2017/9/6 20:25:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:原.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:改.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:童狐 帖子:263 积分:2282 威望:0 精华:0 注册:2016/6/3 8:28:00
  发帖心情 Post By:2017/9/6 20:27:00 [只看该作者]

用合并模式   标准和自由都不行呢 ?还有什么其他方法吗?求解答

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


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

 只能用合并模式,你用合并模式有什么问题?

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


加好友 发短信
等级:童狐 帖子:263 积分:2282 威望:0 精华:0 注册:2016/6/3 8:28:00
  发帖心情 Post By:2017/9/6 20:51:00 [只看该作者]

用标准模式,合计不能合并,用自由模式,合计价格一样的话就合并起来,那就不对了

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


加好友 发短信
等级:童狐 帖子:263 积分:2282 威望:0 精华:0 注册:2016/6/3 8:28:00
  发帖心情 Post By:2017/9/6 20:57:00 [只看该作者]

还在?

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


加好友 发短信
等级:童狐 帖子:263 积分:2282 威望:0 精华:0 注册:2016/6/3 8:28:00
  发帖心情 Post By:2017/9/6 21:28:00 [只看该作者]

这样不管了?

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


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

mark 合并模式

 

Dim t As Table = Tables("表a")
Dim cs As String() = {"第一列", "第二列", "第五列"}

'取消合并
Dim ls As new List(of object)
For Each r As object In t.Grid.MergedRanges
        ls.add(r)
Next
For Each r As object In ls
    t.Grid.MergedRanges.Remove(r)
Next

'设置合并
For i As Integer = 0 To cs.length-1
    Dim top As Integer = 0
    For j As Integer = 1 To t.Rows.count-1
        Dim r1 As Row = t.Rows(j-1)
        Dim r2 As Row = t.Rows(j)
        Dim same As Boolean = True
        For k As Integer = 0 To i
            If r1(cs(k)) <> r2(cs(k)) Then
                same = False
                Exit For
            End If
        Next
       
        If same = False  Then
            t.Grid.AllowMerging = C1.Win.C1FlexGrid.AllowMergingEnum.Custom
            Dim rng As C1.Win.C1FlexGrid.CellRange = t.Grid.GetCellRange(top+t.HeaderRows, t.cols(cs(i)).Index+1, j+t.HeaderRows-1, t.cols(cs(i)).Index+1)
            t.Grid.MergedRanges.add(rng)
           
            Top = j
        ElseIf j = t.rows.count-1 Then
            Dim rng As C1.Win.C1FlexGrid.CellRange = t.Grid.GetCellRange(top+t.HeaderRows, t.cols(cs(i)).Index+1, j+t.HeaderRows, t.cols(cs(i)).Index+1)
            t.Grid.MergedRanges.add(rng)
        End If
    Next
   
Next

 


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


加好友 发短信
等级:小狐 帖子:335 积分:2674 威望:0 精华:0 注册:2018/11/22 9:19:00
  发帖心情 Post By:2019/1/14 10:52:00 [只看该作者]

贴的这代码就不知道啥意思
能否按发题者的表格写一段代码?

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


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

以下是引用nxhylczh在2019/1/14 10:52:00的发言:
贴的这代码就不知道啥意思
能否按发题者的表格写一段代码?

 

这里改成自己的表和列

 

Dim t As Table = Tables("表a")
Dim cs As String() = {"第一列", "第二列", "第五列"}


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


加好友 发短信
等级:六尾狐 帖子:1264 积分:7827 威望:0 精华:4 注册:2017/12/31 14:53:00
回复:(shyilin)这样的表格,狐表里面要怎么弄?  发帖心情 Post By:2019/1/14 11:47:00 [只看该作者]

这种一对多的关系,从数据库设计来说,应该是通过父子表的形式存储。然后导出Excel的时候,生成这种样式。这样将来维护才更方便。

不然现在你一个人下面有2个产品,如果将来陆续增加,你的合并单元格就要拼命排序和更改

 回到顶部