以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 垂直表转换问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=86437) |
||||
-- 作者:douglas738888 -- 发布时间:2016/6/17 12:10:00 -- 垂直表转换问题 请教老师,以下代码能执行转换了,但是要转换的是根据主表关联的子表行,不知道怎么设定了 Dim dtb As New DataTableBuilder("表AA") dtb.AddDef("日期", Gettype(String),100) dtb.AddDef("星期", Gettype(String),100) dtb.AddDef("工作类别", Gettype(String),500) dtb.AddDef("工作内容", Gettype(String),500) dtb.AddDef("任务接受时间", Gettype(String),100) dtb.AddDef("计划完成时间", Gettype(String),100) dtb.AddDef("实际完成时间", Gettype(String),100) dtb.AddDef("质量自评(0-10)", Gettype(String),100) dtb.AddDef("效率自评(0-10)", Gettype(String),100) dtb.AddDef("备注", Gettype(String),500) dtb.AddDef("员工编号", Gettype(String),100) dtb.AddDef("员工姓名", Gettype(String),100) dtb.AddDef("索引号", Gettype(String),100) \'dtb.AddDef("分数", Gettype(Double)) dtb.Build() Dim kms() As String = {"图纸设计明细","方案和说明书","概算/预算/结算","技术协议签订","投标文件制作","设计技术交底","设计资料存档","电子资料存档","出差天数","加班天数","杂项工作"} Dim r As Row = Tables("工作日志主表.工作日志副表1").Current For Each dr1 As DataRow In r \'DataTables("工作日志主表.工作日志副表1").DataRows For Each km As String In kms Dim dr2 As DataRow = DataTables("表AA").AddNew() dr2("日期") = dr1("日期") dr2("星期") = dr1("星期") dr2("任务接受时间") = dr1("任务接受时间") dr2("计划完成时间") = dr1("计划完成时间") dr2("实际完成时间") = dr1("实际完成时间") dr2("质量自评(0-10)") = dr1("质量自评(0-10)") dr2("效率自评(0-10)") = dr1("效率自评(0-10)") dr2("备注") = dr1("备注") dr2("员工编号") = dr1("员工编号") dr2("员工姓名") = dr1("员工姓名") dr2("索引号") = dr1("索引号") dr2("工作类别") = km dr2("工作内容") = dr1(km) Next Next MainTable = Tables("表AA") [此贴子已经被作者于2016/6/17 12:10:22编辑过]
|
||||
-- 作者:大红袍 -- 发布时间:2016/6/17 12:12:00 -- 这个意思?
Dim dtb As New DataTableBuilder("表AA") |
||||
-- 作者:douglas738888 -- 发布时间:2016/6/17 12:21:00 -- 是的是的,我原来也设了Rows,但是没有弄清楚DataTables("工作日志副表1").DataRows 和Tables("工作日志主表.工作日志副表1").Rows的概念了 |
||||
-- 作者:douglas738888 -- 发布时间:2016/6/17 14:04:00 -- 另外,再请教老师,这个是窗口按钮的代码,把 临时表AA 的内容在正式表 工作日志副表2 中添加内容,这个功能已经能实现了 问题是:在 工作日志副表2 的DataColChanged 中写了自动编号的代码,不能生成索引编号,只有修改日期列内容才能生成索引编号,非关联的 工作日志月报副 表 也才自动增加行,好像是从 临时表AA 增加到 工作日志副表2 的内容,系统不认为是增加行 再请老师帮忙看看这个例子,谢谢!
|
||||
-- 作者:大红袍 -- 发布时间:2016/6/17 14:17:00 -- 把首尾的代码去掉
\'SystemReady = False |
||||
-- 作者:大红袍 -- 发布时间:2016/6/17 14:18:00 -- 或者是这样
SystemReady = False SystemReady = True SystemReady = False |
||||
-- 作者:douglas738888 -- 发布时间:2016/6/17 16:35:00 -- 老师,还有个问题,用以下代码在工作日志副表2的DataColChanged 写入,工作日志副表2 增加行后,部分数据不能同步到 工作日志月报副表 只有日期、月报索引 能同步数据,其他列为空白不能同步数据
Select Case e.DataCol.name Case "月报索引" Dim dr As DataRow = DataTables("工作日志月报副表").Find("月报索引 = \'" & e.OldValue & "\'") If dr Is Nothing Then dr = DataTables("工作日志月报副表").AddNew() dr("月报索引") = e.DataRow("月报索引") dr("日期") = e.DataRow("日期") dr("员工编号") = e.DataRow("员工编号") dr("员工姓名") = e.DataRow("员工姓名") dr("工作类别") = e.DataRow("工作类别") dr("工作内容") = e.DataRow("工作内容") Else dr("月报索引") = e.DataRow("月报索引") End If Case "日期","员工编号","员工姓名","工作类别","工作内容" Dim dr As DataRow = DataTables("工作日志月报副表").Find("月报索引 = \'" & e.DataRow("月报索引") & "\'") If dr IsNot Nothing Then dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name) End If End Select |
||||
-- 作者:douglas738888 -- 发布时间:2016/6/17 16:39:00 -- 经过几次测试,老师指导的第一种方式可行, 第二种方式,不能有效同步数据。 |
||||
-- 作者:大红袍 -- 发布时间:2016/6/17 17:39:00 -- 以下是引用douglas738888在2016/6/17 16:39:00的发言:
经过几次测试,老师指导的第一种方式可行, 第二种方式,不能有效同步数据。
不同同步数据是正常的,因为不触发datacolchanged事件了。
看看 http://www.foxtable.com/help/topics/2218.htm
|