Foxtable(狐表)用户栏目专家坐堂 → 【求助】关于动态加载后出现的问题


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

主题:【求助】关于动态加载后出现的问题

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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/4 15:48:00 [只看该作者]

如果有这句,compute的代码又无法执行出错

 

这是什么意思?


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


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2013/3/4 16:03:00 [只看该作者]

用户已被锁定

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


加好友 发短信
等级:幼狐 帖子:186 积分:1294 威望:0 精华:0 注册:2011/8/17 17:29:00
  发帖心情 Post By:2013/3/4 16:28:00 [只看该作者]

以下是引用狐狸爸爸在2013-3-4 15:48:00的发言:

如果有这句,compute的代码又无法执行出错

 

这是什么意思?

因为load后,前台数据同时被刷新,系统提示此行已经被移除。。。


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


加好友 发短信
等级:幼狐 帖子:186 积分:1294 威望:0 精华:0 注册:2011/8/17 17:29:00
  发帖心情 Post By:2013/3/4 17:09:00 [只看该作者]

以下是引用muhua在2013-3-4 16:03:00的发言:

For Each pr As DataRow In DataTables("销售出库单子表").Select("客户订单编号 = '" & e.DataRow("客户订单编号") & "' And 料号 ='" & e.DataRow("料号") & "'")
    pr("数量_累交数") = v
    pr("数量_未交数") = e.DataRow("数量_订单数")-v
Next

 

 

改为这样:

 

 

Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.Connection Name = "User"
cmd.CommandText = "update {销售出库单子表} set [数量_累交数] = '" & v & "', 数量_未交数 = '" & e.DataRow("数量_订单数")-v & "' where 客户订单编号 = '" & e.DataRow("客户订单编号") & "' And 料号 ='" & e.DataRow("料号") & "'"
cmd.ExecuteNonQuery

 

 

[此贴子已经被作者于2013-3-4 16:03:31编辑过]

老大,你这写法有问题,举个简单的例子

客户订单数50个,在后台数据里已经有一张此张订单的销售出库单,交了30个,所以在后台的V值(累交数)是30个,未交数是20个

新增一行,数量_本次交 填10个,

Dim dt As DataTable
    cmd.C
    cmd.CommandText = "SELECT * From {销售出库单子表} where 客户订单编号 = '" & e.DataRow("客户订单编号") & "'And 料号 ='" & e.DataRow("料号") & "'"
    dt = cmd.ExecuteReader()
    Dim v As Integer = dt.Compute("sum(数量_本次交)")  

用上述代码取V值,这个V值是后台的V值,就是30个,[数量_累交数] = '" & v & "',应该是 '" & e.NewValue + v & "  [e.NewValue]是数量_本次交的值

如果我没有保存的情况下改变了这个值呢? 假设e.Oldvalue=10这个时候[数量_累交数]的值在后台已经改变了,变成了40,假设e.NewValue是12,后台的V值就变成了52个,数据不对,如果用  '" & e.NewValue-e.oldvalue + v & "  = 12-10+40 =42个

===========

问题1:在 update {销售出库单子表} set [数量_累交数] = '" & e.NewValue-e.oldvalue + v & "', 数量_未交数 = '" & e.DataRow("数量_订单数")-v & "'

V的值是根据e.Newvalue随时变化的,set列有顺序之分吗?如果是同时的话,数量_未交数 显示不正确,刚才测试了下,好像真是同时发生的,数据依然不对...

 


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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/4 17:11:00 [只看该作者]

我无法理解的问题,我不明白为什么要这样设计。

 

做个简单的例子,将问题的关键点提炼出来。


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


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2013/3/4 17:22:00 [只看该作者]

用户已被锁定

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


加好友 发短信
等级:幼狐 帖子:186 积分:1294 威望:0 精华:0 注册:2011/8/17 17:29:00
  发帖心情 Post By:2013/3/4 17:23:00 [只看该作者]

以下是引用狐狸爸爸在2013-3-4 17:11:00的发言:

我无法理解的问题,我不明白为什么要这样设计。

 

做个简单的例子,将问题的关键点提炼出来。

狐爸,第一页我已经上传了例子啊,这种情况在业务流程中很常见啊,我在填写出库单的时候要知道这张订单已经交了多少,还没有交多少,累交了多少,以及在导入出库单的时候把已经交完的客户订单筛选掉

在例子的出库单这张表里我已经写好了在全部加载的情况下的语句,你改变下本次交数量的值就明白了

我在实际项目中是用SQL动态加载的数据,就会出现一张订单分多次交,比如一张订单分了2次交,第二次新增出库单的时候第一次的出库单又没有加载到前台来

其实如果可以COMMAND出来的dt可以直接保存数据最简单,现在不行的情况,我只能想到现在这种笨办法,但是逻辑太复杂了。。我直接晕了


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


加好友 发短信
等级:幼狐 帖子:186 积分:1294 威望:0 精华:0 注册:2011/8/17 17:29:00
  发帖心情 Post By:2013/3/4 17:26:00 [只看该作者]

以下是引用muhua在2013-3-4 17:22:00的发言:

我也不清楚楼主的意思了,楼主看下这个吧:http://www.foxtable.com/help/topics/2136.htm

 

 

这个是针对已经加载到FOXTABLE的数据才有用啊,我要实现的效果是同时要对没有加载到FOXTABLE里的数据同时更新啊

我再做个更简单直接的例子吧。。


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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/4 17:27:00 [只看该作者]

还是不懂,那就等下次更新了。

Command生成的表,可以更新和保存了, 不过你得等下次更新,现在还用不了下面的代码:

 

 

示例五

 

ExecuteReader有一个可选参数,如果设置为True,那么生成的DataTable不仅可以修改,还可以保存。
新建一个文件,在命令窗口测试下面的代码,会在A的第一行的第一列写入123:

 

Dim cmd As new SQLCommand
Dim
dt As DataTable
cmd
.CommandText = "select * From {A}"
dt = cmd.ExecuteReader(
True) '记得将参数设置为True
dt
.DataRows(0)("第一列") = 123
dt.Save()

DataTables(
"A").Load() '重新加载表A,看看值是否已经变化

 

 

[此贴子已经被作者于2013-3-4 17:26:55编辑过]

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


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By:2013/3/4 17:40:00 [只看该作者]

该方法可以替代update了?呃,多表联动查询赋值一定用得上,期待中......

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