Foxtable(狐表)用户栏目专家坐堂 → [求助]能否用表事件编辑后台所有数据


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

主题:[求助]能否用表事件编辑后台所有数据

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


加好友 发短信
等级:幼狐 帖子:141 积分:904 威望:0 精华:0 注册:2016/8/4 10:50:00
[求助]能否用表事件编辑后台所有数据  发帖心情 Post By:2016/10/18 13:37:00 [显示全部帖子]

请问有办法在表事件上对后台所有数据进行编辑吗?例如我用的是分页加载,只加载20行数据,我在datacolchanged事件里面修改某列第一行的数据,在剩下所有行
(包括没有加载出来的行)的那列的值都与它相等,这可以实现吗?如果可以,把下面代码
Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "F4376"
        dr("F5312")=dr("F4376").Year
End Select
修改一下

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


加好友 发短信
等级:幼狐 帖子:141 积分:904 威望:0 精华:0 注册:2016/8/4 10:50:00
  发帖心情 Post By:2016/10/18 15:56:00 [显示全部帖子]

你改的代码可以把倒数第二行删除吗?倒数第二行好像是注释,前面有单引号。。。

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


加好友 发短信
等级:幼狐 帖子:141 积分:904 威望:0 精华:0 注册:2016/8/4 10:50:00
  发帖心情 Post By:2016/10/18 16:00:00 [显示全部帖子]

关键是把dr("F5312")=dr("F4376").Year
替换成 e.DataTable.SQLReplaceFor("F5312",dr("F4376").Year)
e.DataTable.ReplaceFor("F5312",dr("F4376").Year)
        'dr("F5312")=dr("F4376").Year
就可以了?

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


加好友 发短信
等级:幼狐 帖子:141 积分:904 威望:0 精华:0 注册:2016/8/4 10:50:00
  发帖心情 Post By:2016/10/19 18:53:00 [显示全部帖子]

beforesavedatarow事件
Dim dr As DataRow = DataTables("T246").AddNew
For Each dc As DataCol In DataTables("T246").DataCols
 
    dr("F4363") = e.DataRow("F391")
    dr("F4364") = e.DataRow("F392")
    dr("F4366") = e.DataRow("F394")
    dr("F4383") = e.DataRow("F395")
    dr("F4384") = e.DataRow("F396")
    dr("F4385") = e.DataRow("F397")
    dr("F4386") = e.DataRow("F398")
    dr("F4387") = e.DataRow("F399")
    dr("F4388") = e.DataRow("F400")
    dr("F4389") = e.DataRow("F401")
    dr("F4390") = e.DataRow("F402")
    dr("F4391") = e.DataRow("F403")
    dr("F4392") = e.DataRow("F404")
    dr("F4393") = e.DataRow("F405")
    dr("F4394") = e.DataRow("F406")
    dr("F4395") = e.DataRow("F407")
    dr("F4396") = e.DataRow("F408")
   ......
Next
怎么改这段代码,让它变成是编辑后台全部数据的代码?(ps:这是T28表的表事件)

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


加好友 发短信
等级:幼狐 帖子:141 积分:904 威望:0 精华:0 注册:2016/8/4 10:50:00
  发帖心情 Post By:2016/10/19 20:22:00 [显示全部帖子]

以下是引用qscwdvefb在2016/10/18 13:37:00的发言:
请问有办法在表事件上对后台所有数据进行编辑吗?例如我用的是分页加载,只加载20行数据,我在datacolchanged事件里面修改某列第一行的数据,在剩下所有行
(包括没有加载出来的行)的那列的值都与它相等,这可以实现吗?如果可以,把下面代码
Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "F4376"
        dr("F5312")=dr("F4376").Year
End Select
修改一下
如果是改为每行dr("F5312")等于各自行的dr("F4376").Year呢?



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


加好友 发短信
等级:幼狐 帖子:141 积分:904 威望:0 精华:0 注册:2016/8/4 10:50:00
  发帖心情 Post By:2016/10/20 10:20:00 [显示全部帖子]

以下是引用有点蓝在2016/10/19 20:56:00的发言:
回6楼,2个表的列没有说明对应关系,只能这样

你说的对应关系具体是指什么?


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


加好友 发短信
等级:幼狐 帖子:141 积分:904 威望:0 精华:0 注册:2016/8/4 10:50:00
  发帖心情 Post By:2016/10/20 10:36:00 [显示全部帖子]

以下是引用有点蓝在2016/10/19 20:56:00的发言:
回6楼,2个表的列没有说明对应关系,只能这样

回7楼,
Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "F4376"
        e.DataTable.SQLReplaceFor("F5312","convert( nvarchar(4),[F4376],120)","",True)
End Select


请问参数convert( nvarchar(4),[F4376],120)的含义是什么?


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


加好友 发短信
等级:幼狐 帖子:141 积分:904 威望:0 精华:0 注册:2016/8/4 10:50:00
  发帖心情 Post By:2016/10/20 11:16:00 [显示全部帖子]

怎么取的?可以详细说一下吗?为什么会有120?

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


加好友 发短信
等级:幼狐 帖子:141 积分:904 威望:0 精华:0 注册:2016/8/4 10:50:00
  发帖心情 Post By:2016/10/20 12:07:00 [显示全部帖子]

以下是引用有点蓝在2016/10/20 11:01:00的发言:
回9楼

dr("F4363") = e.DataRow("F391")
    dr("F4364") = e.DataRow("F392")

程序不知道为什么F391的值给F4363,F392的值给F4364,他们之间有没有什么规律?


就是通过用datacolchanged事件和afteredit事件修改或编辑T28表的“F391”的某行数据触发事件,然后点击保存按钮就发生beforesavedatarow事件,把T28数据有改动过的行都在T246表新建行,然后把数据复制过去T246表,即dr("F4363") = e.DataRow("F391")。
现在就是想把代码改成从后台检查T28表全部数据是否有改动,有改动就把有改动过的行全部在T246表新建行并复制过来。


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


加好友 发短信
等级:幼狐 帖子:141 积分:904 威望:0 精华:0 注册:2016/8/4 10:50:00
  发帖心情 Post By:2016/10/21 16:34:00 [显示全部帖子]

好奇怪,我用6楼的代码修改T28表任意一行的数据是可以新增保存那一行到T246表,但是我用
 e.DataTable.SQLReplaceFor("F5312",dr("F4376").Year)
e.DataTable.ReplaceFor("F5312",dr("F4376").Year)
修改某一行,只能把当前页(20行)的数据复制保存到T246表,而不是所有后台数据。



 回到顶部
总数 24 1 2 3 下一页