Foxtable(狐表)用户栏目专家坐堂 → [求助]控件写入数据问题


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

主题:[求助]控件写入数据问题

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


加好友 发短信
等级:小狐 帖子:371 积分:3120 威望:0 精华:0 注册:2013/7/13 15:49:00
[求助]控件写入数据问题  发帖心情 Post By:2016/10/14 23:19:00 [只看该作者]

做了一个类似简单的利润计算

Dim ddbh As String = e.DataRow("订单编号")
Select Case e.DataCol.Name
    Case "收入","支出"
        Dim sr As Double
        Dim zc As Double
        Dim ye As Double
        sr = e.DataTable.Compute("sum(收入)","[订单编号] = '" & ddbh & "'")
        zc = e.DataTable.Compute("sum(支出)","[订单编号] = '" & ddbh & "'")
        ye = sr - zc
        MessageBox.Show(ddbh)
        MessageBox.Show(sr)
        MessageBox.Show(zc)
        MessageBox.Show(ye)
        Dim ddlr As DataRow = DataTables("订单").Find("[订单编号] = '" & ddbh & "'")
        ddlr("利润") = ye
End Select

代码应该没什么问题,直接在表中修改收入和支出,运算没有问题,但是做了个窗口,控件TextBox绑定到收入或者支出列,在TextBox控件中写数值,代码执行计算有问题,好像是当前的值不参与计算,只是计算保存之前的数值,怎么解决?为什么会这个样子?

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

控件要离开焦点,输入的内容才会更新到表格

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


加好友 发短信
等级:小狐 帖子:371 积分:3120 威望:0 精华:0 注册:2013/7/13 15:49:00
  发帖心情 Post By:2016/10/15 14:22:00 [只看该作者]

即使是离开控件后更新到表格,最终的到ddlr("利润") = ye这个结果也应该是正确的啊?
实际得到的结果是,新修改的这个数值没有参与计算
代码写到了:DataColChanged 里面
[此贴子已经被作者于2016/10/15 14:23:15编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

上传例子测试

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


加好友 发短信
等级:小狐 帖子:371 积分:3120 威望:0 精华:0 注册:2013/7/13 15:49:00
  发帖心情 Post By:2016/10/15 14:56:00 [只看该作者]

做了个例子,没有问题,不上传了,
但是项目中的问题还是不行,和项目的sql环境有关系?
sql
订单[_Identify] Is Null
订单明细[_Identify] Is Null
有关系吗?
已经同步加载了订单表和子表的订单明细表的数据了
感觉问题不是出在这里,直接订单明细表中修改  计算正确
在窗口中修改数据          计算错误(不计算本行数值)
[此贴子已经被作者于2016/10/15 14:59:55编辑过]

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


加好友 发短信
等级:小狐 帖子:371 积分:3120 威望:0 精华:0 注册:2013/7/13 15:49:00
  发帖心情 Post By:2016/10/15 15:02:00 [只看该作者]

订单表中AfterLoad

e.DataTable.LoadChildren("订单明细")

这个问题?

[此贴子已经被作者于2016/10/15 15:02:34编辑过]

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


加好友 发短信
等级:小狐 帖子:371 积分:3120 威望:0 精华:0 注册:2013/7/13 15:49:00
  发帖心情 Post By:2016/10/15 15:24:00 [只看该作者]

好像是窗口加载问题,
如果目前打开的窗口只加载了当前一行,和这个有影响吗?
打开窗口修改数值,只计算当前行的数值

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

窗口表是什么类型,怎么加载的?

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


加好友 发短信
等级:小狐 帖子:371 积分:3120 威望:0 精华:0 注册:2013/7/13 15:49:00
  发帖心情 Post By:2016/10/15 15:45:00 [只看该作者]

模式窗口,
If Forms("收款").Opened Then
    Tables("订单明细").Cols("收付款负责").Caption = "收款_负责"
    Tables("订单明细").Cols("收付款日期").Caption = "收款_日期"
    Tables("订单明细").BuildHeader()
    DataTables("订单明细").LoadOrder = "[摘要日期]"
    DataTables("订单明细").LoadFilter = "[公司编码] = '" & _UserGsbm & "' and [收付款负责] is null and [收支方式] = '现金收入' or [公司编码] = '" & _UserGsbm & "' and [收付款负责] is null and [收支方式] =  '汇款收入'"
    DataTables("订单明细").Load
End If
这个窗口打开时,估计只加载了这一行数据

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


加好友 发短信
等级:小狐 帖子:371 积分:3120 威望:0 精华:0 注册:2013/7/13 15:49:00
  发帖心情 Post By:2016/10/15 15:46:00 [只看该作者]

所以只计算这一行?

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