以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 求助。。。根据条件求和 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=2873) |
||||
-- 作者:卟离卟弃 -- 发布时间:2009/5/21 10:32:00 -- 求助。。。根据条件求和
在表A中根据[计算类别]列与[物品编号]列自动求和。 计算类别列中内容是自动求和的行,就根据代码自动求和,其它的就用人工输入。。都要根据物品编号进行求和。。 Dim dt1 As DataTable Dim a As String ="自动求和" dt1 = DataTables("表B") Dim dr As DataRow = e.DataRow if e.DataCol.Name = "物品编号" OrElse e.DataCol.Name = "计算类别" Then if dr.IsNull("物品编号")= False AndAlso dr.IsNull("计算类别") = false Then if dr.("计算类别")= a then dr("求和数量") = dt1.Compute("Sum(发出数量)","[物品编号] = \'" & dr("物品编号") & "\'") end if End if End If |
||||
-- 作者:八婺 -- 发布时间:2009/5/21 12:03:00 -- 将表B发出数量列改成数值型。 将上面代码中的if dr.("计算类别")= a then改成 if dr("计算类别")= a then |
||||
-- 作者:卟离卟弃 -- 发布时间:2009/5/21 13:46:00 -- 我想当B表中一有变动,A表马上也做出变动。 应该怎么改代码 |
||||
-- 作者:八婺 -- 发布时间:2009/5/21 13:56:00 -- 在表B设置重置表A的代码即可。 |
||||
-- 作者:八婺 -- 发布时间:2009/5/21 14:03:00 -- 以下是引用卟离卟弃在2009-5-21 13:46:00的发言:
我想当B表中一有变动,A表马上也做出变动。 应该怎么改代码
[此贴子已经被作者于2009-5-21 14:03:29编辑过]
|
||||
-- 作者:卟离卟弃 -- 发布时间:2009/5/21 20:48:00 -- 不用表达式列。。。。 如果不用表达式列就一定要按重置???? |
||||
-- 作者:八婺 -- 发布时间:2009/5/21 21:34:00 -- 可以设置代码用RaiseDataColChanged进行重置。 |
||||
-- 作者:卟离卟弃 -- 发布时间:2009/5/22 10:54:00 -- 我在表事件和项目事件中都没找到。。。。。。。。 在那儿 |
||||
-- 作者:yangming -- 发布时间:2009/5/22 11:07:00 -- RaiseDataColChanged不是事件,请看下面,它是重置DataCol的一个方法 手工针对该列触发DataColChanged事件。 语法 RaiseDataColChanged DataRow:可选参数,针对此行触发DataColChanged事件,如果省略此参数,则针对所有行触发。 例如年龄列由出生日期计算得出,我们将DataColChanged事件设为: If e.DataCol.Name = "出生日期" ThenIf e.DataRow.IsNull("出生日期") Then \'如果没有输入出生日期 e.DataRow("年龄") = Nothing \'则清空年龄 Else \'否则计算年龄 e.DataRow("年龄") = Date.Today.Year - e.DataRow("出生日期").Year End If End If 如果到了明年,需要重新计算年龄列,但是除非你重新输入出上日期,否则上面的代码是不会重算年龄的。 DataTables( "员工").DataCols("出生日期").RaiseDataColChanged()其实我们并不需要编码去完成这样的任务,首选选择出生日期列,然后在“数据表”功能区“设置列”功能组,单击下面的“重置”按钮,即可针对出生日期列触发DataColChanged事件,计算出最新的年龄: |
||||
-- 作者:狐狸爸爸 -- 发布时间:2009/5/22 11:08:00 -- RaiseDataColChanged是一个方法,不是事件。 你看看帮助文件中“用事件进行计算”,全部看一次,就明白RaiseDataColChanged是个什么玩艺了。 |