Foxtable(狐表)用户栏目专家坐堂 → 条件重置列


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

主题:条件重置列

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19396 威望:0 精华:1 注册:2008/9/12 9:19:00
条件重置列  发帖心情 Post By:2010/12/28 23:10:00 [只看该作者]

表A窗口中,修改主表单价,电击[重置产品ID列]按钮,我只想变更关联表当前报价单号(可见记录)的单价,其它单价不变。按钮代码如何?

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目14.table


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/12/29 0:03:00 [只看该作者]

有点看不懂你的问题···  一个报价单号有多个产品ID,是要都更改其单价,还是只改变报价单号和产品ID相同的关联表的单价?

 

[此贴子已经被作者于2010-12-29 0:04:47编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/12/29 0:13:00 [只看该作者]

再说你的这两个If:

If e.DataCol.Name = "报价单号" Then 


If e.DataCol.Name = "产品ID" Then 

 

就得先把光标移到“报价单号”或“产品ID”所在的列后,再重置才行的···


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/12/29 0:16:00 [只看该作者]

哦没注意你按钮有代码,这样可以了:

Tables("表B").focus
DataTables("表B").DataCols("产品ID").RaiseDataColChanged()

 

二楼没有明确还是不行的···

[此贴子已经被作者于2010-12-29 0:23:31编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19396 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2010/12/29 8:26:00 [只看该作者]

1楼可能表述不明白,我只想变更关联表当前报价单号(可见记录)的单价,其它单价不变。举个例子:选择003号报价单,修改“单价”点击按钮更新,关联表中“产品ID”=345的单价更新了,再选择002单,关联表中“产品ID”=345的单价并不需要更新,除非再按一次按钮。重新上传例表

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目16.table

[此贴子已经被作者于2010-12-29 16:39:11编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19396 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2010/12/29 16:40:00 [只看该作者]

再次请教

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/12/29 16:54:00 [只看该作者]

看不懂,不过RaiseDataColChanged既可以针对整列,也可以设置条件,只针对符合条件的行,还可以针对某个指定的行,请参考:
 
http://help.foxtable.com/topics/1468.htm


你想针对哪一行,或者针对某个某个条件的行,将其作为参数传递给RaiseDataColChanged即可。

 

你可以看看下面的例子,里头的RaiseDataColChanged既有使用条件表达式的,也有单独针对某一行的:

 

http://help.foxtable.com/topics/1453.htm

 

[此贴子已经被作者于2010-12-29 16:54:54编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19396 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2010/12/29 17:28:00 [只看该作者]

试了一下,没做出来。我再描述一下问题:

在窗口表C(下表)更改单价,通过按钮对表A.表B(中间)可见产品进行“产品ID”重置(不是整个表B的产品ID)从而更新当前报价单号的单价。


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/12/29 18:01:00 [只看该作者]

可以这样:

 

Dim Filter As String = "报价单号 = '" & Tables("表A").Current("表A") & "'"
DataTables("表B").DataCols("产品ID").RaiseDataColChanged(Filter)

 

还可以这样:

 

For Each r As Row In Tables("表A.表B").Rows
    DataTables("表B").DataCols("产品ID").RaiseDataColChanged(r.DataRow)
Next

 

请仔细体会,务必要理解。

 


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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19396 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2010/12/29 18:30:00 [只看该作者]

谢谢,第2段代码满足要求。第1段有点问题

 回到顶部
总数 14 1 2 下一页