Foxtable(狐表)用户栏目专家坐堂 → 如何将"课程表"中的科目根据"教师安排表"转化为相应科目班级老师的姓名?


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

主题:如何将"课程表"中的科目根据"教师安排表"转化为相应科目班级老师的姓名?

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2008/9/8 16:55:00 [显示全部帖子]

你的表结构是电子表格似的结构,所以导致系统非常不灵活。
各种统计都不容易实现,代码也复杂。
如果表结构合理,解决这类问题可以不用代码。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:科目名称与姓名转换统计表.table


[本帖被加为精华]
 回到顶部
帅哥哟,离线,有人找我吗?
lxl
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2008/9/8 16:58:00 [显示全部帖子]

忘记说了,我为了简化代码,把教师安排表 的列名用标题代替了。

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2008/9/9 6:52:00 [显示全部帖子]

这种结构无法做成复杂的系统,
参考下这种结构:

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:科目名称与姓名转换统计表.table

可以进行任何统计:
   比如每个教师 一周上几节课
   打印成各种形式的课程表(老师自己看的,还是学生看的)
   统计课程到底分布在哪写课时(一般重要的课都分在上午一 二节)



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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2008/9/9 6:54:00 [显示全部帖子]

以下是引用抽烟男人在2008-9-8 22:42:00的发言:
 下载信息  [文件大小:344.0 KB  下载次数:1]
图片点击可在新窗口打开查看点击浏览该文件:科目名称与姓名转换统计表.table

lxl兄,我在"课程表"增加了一个"老师"的表达式列
表达式想写成
IIF([星期一_1_科目] = "语",Parent.语文,IIF([星期一_1_科目]="数",parent.数学,[星期一_1_科目]))
中间我省略一些科目,
但老是显示   cannot interpret token '" at position 18
是怎么回事



表达式列用单引号 表示字符传
利用关联和表达式的思路是正确的,你看看楼上的文件.

[此贴子已经被作者于2008-9-9 6:58:10编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2008/9/9 8:00:00 [显示全部帖子]

以下是引用hnaysx在2008-9-9 7:57:00的发言:
LXL的表格统计方便 但是看起来不方便 这两种表各有优势

abcdzabcdz



加我 *****
[此贴子已经被作者于2008-9-9 7:58:08编辑过]

几行代码就能生成看起来方便的表或者报表
因为全是原始数据,你要什么结构,他就能像变形金刚一样给你变出来:)

[此贴子已经被狐狸爸爸于2008-9-9 8:32:42编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2008/9/9 8:35:00 [显示全部帖子]

以下是引用hnaysx在2008-9-9 8:09:00的发言:

Dim g As New CrossTableBuilder("统计表1", DataTables("教师安排表"))
g.HGroups.AddDef("班级")
g.VGroups.AddDef("科目")
g.Totals.AddDef("任课教师", “这里如何可以是任课教师的名字就好了”)
g.Build()
MainTable = Tables("统计表1")
[此贴子已经被作者于2008-9-9 8:10:49编辑过]

恩 ,我也开始也想用交叉统计表生成器,直接生成课程表.一看统计类型实现不了
只能自己写代码了.等会我忙完手里的实验,我试试.
我已经想到几个比较常用的表:

每个老师自己的课程表(老师自己看的,什么时候该去上课了)
每个班级自己的学生课程表(就是学生看该上什么课的课程表)
还有全部老师姓名课程表和全部课程表(管排课的人看的)


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2008/9/9 13:21:00 [显示全部帖子]

这里面东西比较多,不过都是教程上面讲过的
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目5.table


像其他统计 一周几节语文 几节数学、各个科目的课时分布图、各个老师一周有几节课等等等,都是一句非常简单的SQL语句就能查询出来的。

还能生成报表(和贴到墙上一样的格式),直接打印。


数据录入也不用担心,可以直观的录入。
课程表720行数据,我也不是一行一行添加的,是你1楼文件转换的。

[此贴子已经被作者于2008-9-9 13:23:37编辑过]

[本帖被加为精华]
 回到顶部
帅哥哟,离线,有人找我吗?
lxl
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2009/10/13 16:42:00 [显示全部帖子]

以下是引用xl在2009-10-13 15:45:00的发言:
lxl兄好久未上网了,请帮看一下19楼问题,谢谢!

呵呵,最近不太稳定。

你说的“列值为空”指的哪一列?


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2009/10/13 16:59:00 [显示全部帖子]

加一个判断,下面红字是新加的

Dim s As String = "语数英物化政历地体美"
Dim t As Table = Tables("教师安排表")

For Each r As Row In t.Rows
    Dim Filter As String = "[年级] = '" & r("班级") & "'"
    Dim dr As DataRow
    dr = DataTables("课程表").Find(Filter)
    If dr IsNot Nothing Then
        For Each dc As DataCol In DataTables("课程表").DataCols
            If dc.Name <> "年级" AndAlso Not dr.IsNull(dc.Name) AndAlso s.IndexOf(dr(dc.Name)) > -1 then
                dr(dc.Name ) = r(dr(dc.Name ))
            End If
        Next
    End If
Next

 回到顶部