以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 审核按钮报错 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=121429) |
-- 作者:whx007 -- 发布时间:2018/7/6 4:06:00 -- 审核按钮报错 窗口有一个审核按钮,当“待审核订单_Table1”表中只剩下一行,点审核按钮后报错: .NET Framework 版本:2.0.50727.8762
审核按钮代码如下: If User.Group = "经理" Then
请问问题出在哪里,谢谢!
|
-- 作者:有点甜 -- 发布时间:2018/7/6 9:06:00 -- 1、这段代码没问题。
2、看看你datacolchanged事件、currentChanged事件,应该有问题。加上msgbox调试一下。 |
-- 作者:whx007 -- 发布时间:2018/7/7 4:24:00 -- “待审核订单_Table1”绑定的是销售订单,在窗口中“待审核订单_Table1”的currentChanged事件加了msgbox显示正常,在销售订单表中的datacolchanged事件和currentChanged事件没有触发。
“待审核订单_Table1”窗口currentChanged事件代码: If Tables("待审核订单_Table1").Rows.Count > 0 Then
销售订单datacolchanged事件代码: Select Case e.DataCol.Name
销售订单currentChanged事件代码: If e.Table.Current IsNot Nothing Then |
-- 作者:有点蓝 -- 发布时间:2018/7/7 9:01:00 -- 1、如果窗口表是副本,主表要做联动:http://www.foxtable.com/webhelp/scr/2631.htm 2、窗口表是什么类型?SqlTable? "总金额","折扣","已付款" -- 这些有没有表达式列
|
-- 作者:whx007 -- 发布时间:2018/7/7 15:08:00 -- 窗口表是Normal类型,总金额和已付款是表达式列 |
-- 作者:有点蓝 -- 发布时间:2018/7/7 15:37:00 -- 是不是副本? 表达式列不会触发事件的:http://www.foxtable.com/webhelp/scr/2381.htm
|
-- 作者:whx007 -- 发布时间:2018/7/7 20:26:00 -- 待审核订单_Table1,是副本表。 我在销售明细表中有针对”总金额“写触发代码:
If e.DataCol.Name = "数量" OrElse e.DataCol.Name = "销售单价" OrElse e.DataCol.Name = "产品型号" Then
在付款明细表有针对”已付款“写触发代码: If e.DataCol.Name = "付款金额" Then
|
-- 作者:有点蓝 -- 发布时间:2018/7/9 9:07:00 -- 看4楼呀,表达式列无法触发的 DataTables("销售订单").DataCols("总金额 - 这里不能是表达式列").RaiseDataColChanged(pr)
|
-- 作者:whx007 -- 发布时间:2018/7/9 22:30:00 -- 通过子表触发父表事件 还有一个特殊情况,表达式列并非由本表的列计算得出,而是由子表数据计算得出。 例如假定订单表有个数量列,是表达式列,用于累计订单明细表的数量,其表达式为: Sum(Child.数量)。 再假定订单表的DataColChanged事件设置了如下代码: If e.DataCol.name = "数量" Then If e.DataCol.name = "数量" Then 这样在订单明细表输入数量,就会在订单表针对该订单的数量列触发DataColChanged事件。
例子中订单表的数量列也是表达式列啊 |
-- 作者:有点蓝 -- 发布时间:2018/7/9 22:42:00 -- 嗯,这个看错了。 做个例子过来看看
|