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


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

主题:分组

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


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

 

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


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


 回到顶部