Foxtable(狐表)用户栏目专家坐堂 → 分组


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

主题:分组

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


加好友 发短信
等级:一尾狐 帖子:401 积分:3639 威望:0 精华:0 注册:2016/11/12 18:42:00
分组  发帖心情 Post By:2018/11/15 8:52:00 [只看该作者]


此主题相关图片如下:tt截图未命名.bmp
按此在新窗口浏览图片
如上图:想实现当列“班级“”为同一年级(可能有多个年级)时将列 “四百米_男” 中的值为 √  时 “号码” 列按三组排列(每组均是从1班到6班)

1、七年级男子400米预赛(共三组)

第一组:7101   7203    7302   7402   7501    7601    

第二组:7103   7201    7303   7406   7506    7608   

第三组:7104   7206    7308   7405   7508    7609   

[此贴子已经被作者于2018/11/15 8:55:13编辑过]

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


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

比如代码,数据要弄到哪里显示?具体实例发上来测试

 

Dim drs  = DataTables("表A").Select("班级 like '七年级' and 四百米_男 = '√ '", "班级")
Dim ls1 As new List(of String)
Dim ls2 As new List(of String)
Dim ls3 As new List(of String)
For i As Integer = 0 To drs.count-1 Step 3
    ls1.add(drs(i)("号码"))
    ls2.add(drs(i+1)("号码"))
    ls2.add(drs(i+2)("号码"))
Next


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


加好友 发短信
等级:一尾狐 帖子:401 积分:3639 威望:0 精华:0 注册:2016/11/12 18:42:00
word输出  发帖心情 Post By:2018/11/17 14:06:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:运动会.rar
想把每年级按每个项目像下面的分组在word中输出!

1、七年级男子400米预赛(共三组)

第一组:7101   7203    7302   7402   7501    7601    

第二组:7103   7201    7303   7406   7506    7608   

第三组:7104   7206    7308   7405   7508    7609   

2、七年级女子400米预赛(共三组)

第一组:7101   7203    7302   7402   7501    7601    

第二组:7103   7201    7303   7406   7506    7608   

第三组:7104   7206    7308   7405   7508    7609   

3、七年级男子跳高预赛(共三组)

第一组:7101   7203    7302   7402   7501    7601    

第二组:7103   7201    7303   7406   7506    7608   

第三组:7104   7206    7308   7405   7508    7609  


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


加好友 发短信
等级:一尾狐 帖子:401 积分:3639 威望:0 精华:0 注册:2016/11/12 18:42:00
如何检查每个班级每一个项目只能限报三项  发帖心情 Post By:2018/11/17 15:21:00 [只看该作者]

如下图
如何检查每个班级的每一个项目只能限报三人,不足三个或超过三个能弹出提示你该项目有几人报名!


图片点击可在新窗口打开查看此主题相关图片如下:tt截图未命名.bmp
图片点击可在新窗口打开查看
[此贴子已经被作者于2018/11/17 15:21:14编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110584 积分:562816 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/11/17 15:28:00 [只看该作者]

Dim bu As new StringBuilder
Dim idx As Integer = 1
For Each c As Col In Tables("报名表").Cols
    If c.Name.Contains("男") OrElse c.Name.Contains("女")
        Dim drs As List(of DataRow) = DataTables("报名表").Select("班级 like '%七年级%' and " & c.Name & " = '√'", "班级")
        If drs.Count = 0 Then Continue For
        Dim ls1 As new List(of String)
        Dim ls2 As new List(of String)
        Dim ls3 As new List(of String)
        For i As Integer = 0 To drs.count-1 Step 3
            ls1.add(drs(i)("号码"))
            If i+1 < drs.count Then ls2.add(drs(i+1)("号码"))
            If i+2 < drs.count Then ls3.add(drs(i+2)("号码"))
        Next
        Dim arr() As String = c.Name.Split("_")
        If arr.Length = 2 Then
            bu.AppendLine("七年级" & arr(1) & "子" & arr(0) & "预赛(共三组)")
        Else
            bu.AppendLine("七年级" & c.Name & "预赛(共三组)")
        End If
         bu.AppendLine("第一组:" & String.Join("      ",ls1.ToArray))
         bu.AppendLine("第二组:" & String.Join("      ",ls2.ToArray))
         bu.AppendLine("第三组:" & String.Join("      ",ls3.ToArray))
    End If
Next

Output.Show(bu.ToString)

Dim tm As String  = ProjectPath & "Attachments\0101.docx" '指定模板文件
Dim fl As String = ProjectPath & "Reports\_0101.docx" '指定目标文件
Dim wrt As New WordReport(Tables("报名表"),tm,fl) '定义一个WordReport
wrt.ReplaceOne("[班级]",bu.ToString)
wrt.BuildOne(Tables("报名表").Current)
wrt.Show() '显示报表

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


加好友 发短信
等级:一尾狐 帖子:401 积分:3639 威望:0 精华:0 注册:2016/11/12 18:42:00
生成word报表  发帖心情 Post By:2018/11/17 18:14:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:_带队表.xls


如何根据所有班级的报名表生成如下的每班分开的表

八年级1班                     领队:班主任2

  8101     8102     8103     8104     8105     8106     8107     8108

  任          沙建伟   王永亮        田大龙   马诗洋   苏佳伏

        

  8109     8110     8111     8112     8113     8116     8117     8118

  郑          白文伏   刘佳琦   李成杰        马亮花     

   

  8120     8121     8122     8123     8124     8125     8126    8127       

  毛戎飞     洋   黄珂田        李晓霞   王梦琪  丁晓艳   单虎琴   

      

  8128       8124     8125     8126    8127     8128     8129                                              

   黄珂田         李晓霞   王梦琪  丁晓艳   单虎琴    张敏 

  九年级1班                     领队:班主任20
。。。。。。。。。。。。。。。。
想实现上面的样式:第一行为班级   领队   后面每行8个号码,下面对应的是姓名,不足8隔得空,多余的另起一行,号码从小到大排序。弄了好久不能达到上面的效果;

班级 领队
号码: 1101 1102 1103 1104 1105 1106 1107 1108
姓名: 非官方 非官方 非官方 非官方 非官方 非官方 非官方 非官方
号码: 1109 1110 1111 1112 1113 1116 1117 1118
姓名: 非官方 非官方 非官方 非官方 非官方 非官方 非官方 非官方
号码: 1119 1120 1121 1122 1123 1124 1125 1126
姓名: 非官方 非官方 非官方 非官方 非官方 非官方 非官方 非官方
号码: 1201 1202 1203 1204 1205 1206 1207 1208
姓名: 非官方 非官方 非官方 非官方 非官方 非官方 非官方 非官方
班级 领队
号码: 1209 1210 1211 1212 1213 1216 1217 1218
姓名: 非官方 非官方 非官方 非官方 非官方 非官方 非官方 非官方
号码: 1219 1220 1221 1222 1223 1224 1225 1301





班级之间不能分开?连在一起了




 

[此贴子已经被作者于2018/11/21 10:54:35编辑过]

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


加好友 发短信
等级:一尾狐 帖子:401 积分:3639 威望:0 精华:0 注册:2016/11/12 18:42:00
  发帖心情 Post By:2018/11/17 18:37:00 [只看该作者]

上面的是专业报表生成的,怎样用一般的报表来设计!感觉有点太难了!

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


加好友 发短信
等级:一尾狐 帖子:401 积分:3639 威望:0 精华:0 注册:2016/11/12 18:42:00
大师帮帮忙  发帖心情 Post By:2018/11/17 23:23:00 [只看该作者]

Dim bu As new StringBuilder
Dim idx As Integer = 1
For Each c As Col In Tables("报名表").Cols
    If c.Name.Contains("男") OrElse c.Name.Contains("女")
        Dim drs As List(of DataRow) = DataTables("报名表").Select("班级 like '%七年级%' and " & c.Name & " = '√'", "班级")
        If drs.Count = 0 Then Continue For
        Dim ls1 As new List(of String)
        Dim ls2 As new List(of String)
        Dim ls3 As new List(of String)
        For i As Integer = 0 To drs.count-1 Step 3
            ls1.add(drs(i)("号码"))
            If i+1 < drs.count Then ls2.add(drs(i+1)("号码"))
            If i+2 < drs.count Then ls3.add(drs(i+2)("号码"))
        Next
        Dim arr() As String = c.Name.Split("_")
        If arr.Length = 2 Then
            bu.AppendLine("七年级" & arr(1) & "子" & arr(0) & "预赛(共三组)")
        Else
            bu.AppendLine("七年级" & c.Name & "预赛(共三组)")
        End If
         bu.AppendLine("第一组:" & String.Join("      ",ls1.ToArray))
         bu.AppendLine("第二组:" & String.Join("      ",ls2.ToArray))
         bu.AppendLine("第三组:" & String.Join("      ",ls3.ToArray))
    End If
Next

Output.Show(bu.ToString)

Dim tm As String  = ProjectPath & "Attachments\0101.docx" '指定模板文件
Dim fl As String = ProjectPath & "Reports\_0101.docx" '指定目标文件
Dim wrt As New WordReport(Tables("报名表"),tm,fl) '定义一个WordReport
wrt.ReplaceOne("[班级]",bu.ToString)
wrt.BuildOne(Tables("报名表").Current)
wrt.Show() '显示报表
-------------------------------------------------------
这样只能一次解决一个年级的,如何修改可以按不同年级生成?
自己研究了好久也达不到效果,只解决了excel报表按班级生成。
拜求大师了,修改一下可以按不同年级生成?

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


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

以下是引用nxdx112在2018/11/17 18:14:00的发言:

如何根据所有班级的报名表生成如下的每班分开的表

八年级1班                     领队:班主任2

男生    18101     8102     8103     8104     8105     8106     8107     8108

        任          沙建伟   王永亮        田大龙   马诗洋   苏佳伏

        

        8109     8110     8111     8112     8113     

        郑          白文伏   刘佳琦   李成杰

        

女生    8116     8117     81188      119     8120     8121     8122     8123     

        施     马亮花        侯晶英   马晓花   刘思仪   毛戎飞     洋    

      

        8124     8125     8126    8127     8128     8129                                              

         黄珂田        李晓霞   王梦琪  丁晓艳   单虎琴     

  八年级2班                             领队:班主任5
。。。。。。。。。。。。。。。。
这种的能否不用专业报表,用一般的word或excel报表生成吗?
                  

 

[此贴子已经被作者于2018/11/17 18:35:12编辑过]

 

可以。模板设置成一个班级的数据。循环每一个班级,合成对应信息,替换模板内容。


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


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

Dim bu As new StringBuilder
Dim idx As Integer = 1
Dim s As String = ""
For Each nj As String In DataTables("报名表").GetValues("班级", "班级 is not null", "班级")
    nj = nj.Substring(0,1)
    If nj <> s Then
        s = nj
        For Each c As Col In Tables("报名表").Cols
            If c.Name.Contains("男") OrElse c.Name.Contains("女")
                Dim drs As List(of DataRow) = DataTables("报名表").Select("班级 like '%" & s & "年级%' and " & c.Name & " = '√'", "班级")
                If drs.Count = 0 Then Continue For
                Dim ls1 As new List(of String)
                Dim ls2 As new List(of String)
                Dim ls3 As new List(of String)
                For i As Integer = 0 To drs.count-1 Step 3
                    ls1.add(drs(i)("号码"))
                    If i+1 < drs.count Then ls2.add(drs(i+1)("号码"))
                    If i+2 < drs.count Then ls3.add(drs(i+2)("号码"))
                Next
                Dim arr() As String = c.Name.Split("_")
                If arr.Length = 2 Then
                    bu.AppendLine(s & "年级" & arr(1) & "子" & arr(0) & "预赛(共三组)")
                Else
                    bu.AppendLine(s & "年级" & c.Name & "预赛(共三组)")
                End If
                bu.AppendLine("第一组:" & String.Join("      ",ls1.ToArray))
                bu.AppendLine("第二组:" & String.Join("      ",ls2.ToArray))
                bu.AppendLine("第三组:" & String.Join("      ",ls3.ToArray))
            End If
        Next
    End If
Next

Output.Show(bu.ToString)


Dim tm As String  = ProjectPath & "Attachments\0101.docx" '指定模板文件
Dim fl As String = ProjectPath & "Reports\_0101.docx" '指定目标文件
Dim wrt As New WordReport(Tables("报名表"),tm,fl) '定义一个WordReport
wrt.ReplaceOne("[班级]",bu.ToString)
wrt.BuildOne(Tables("报名表").Current)
wrt.Show() '显示报表


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