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


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

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

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


加好友 发短信
等级:超级版主 帖子:107718 积分:547917 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/20 11:01:00 [只看该作者]

回9楼

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

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

回10楼,就是取得日期的年
[此贴子已经被作者于2016/10/20 11:02:18编辑过]

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


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

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

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


加好友 发短信
等级:超级版主 帖子:107718 积分:547917 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/20 11:46:00 [只看该作者]

http://www.w3school.com.cn/sql/func_convert.asp

 回到顶部
帅哥哟,离线,有人找我吗?
qscwdvefb
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | 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表新建行并复制过来。


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


加好友 发短信
等级:超级版主 帖子:107718 积分:547917 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/20 14:19:00 [只看该作者]

你6楼的代码就是的

或者参考这里面的用法:http://www.foxtable.com/webhelp/scr/1533.htm

Dim Cols1() As String = {"来源列一","来源列二","来源列三"}
Dim 
Cols2() As String = {"接收列一","接收列二","接收列三"}
For Each 
dr1 As DataRow In DataTables("表A").Select("[金额] > 100")
    Dim 
dr2 As DataRow = DataTables("表B").AddNew()
    For 
i As Integer = 0 To Cols1.Length -1
        
dr2(Cols2(i)) = dr1(Cols1(i
))
    Next
Next

 回到顶部
帅哥哟,离线,有人找我吗?
qscwdvefb
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | 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表,而不是所有后台数据。



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


加好友 发短信
等级:超级版主 帖子:107718 积分:547917 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/21 16:51:00 [只看该作者]

SQLReplaceFor就是更新后台数据的,前台需要重新加载才看得到

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


加好友 发短信
等级:幼狐 帖子:141 积分:904 威望:0 精华:0 注册:2016/8/4 10:50:00
  发帖心情 Post By:2016/10/21 16:57:00 [只看该作者]

那要怎么做才能把全部后台数据复制保存到T246表?而不是只是这20行数据?

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


加好友 发短信
等级:幼狐 帖子:141 积分:904 威望:0 精华:0 注册:2016/8/4 10:50:00
  发帖心情 Post By:2016/10/22 13:26:00 [只看该作者]

以下是引用有点蓝在2016/10/19 20:56:00的发言:


回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


如果是把Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "F4376"
        dr("F5312")=dr("F4376").Year
End Select
换成

Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "F4376"
             For Each dr1 As Row In Tables("T28").Rows
                  dr1("F403")=dr1("F400")*dr1("F401") 
              next
End Select
呢?我想从后台修改数据


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


加好友 发短信
等级:超级版主 帖子:107718 积分:547917 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/22 14:42:00 [只看该作者]

e.DataTable.SQLReplaceFor("F403","F400 * F401","",True)


 回到顶部
总数 37 上一页 1 2 3 4 下一页