Foxtable(狐表)用户栏目专家坐堂 → 求助:流水账与重置列


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

主题:求助:流水账与重置列

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


加好友 发短信
等级:三尾狐 帖子:721 积分:6887 威望:0 精华:0 注册:2012/3/1 7:20:00
求助:流水账与重置列  发帖心情 Post By:2013/11/23 8:01:00 [只看该作者]

在帮助文件中“流水账与重置列”里例子存在这样个缺点,如果流水账采用动态加载技术只加载部份数据,而一旦按例子中程序代码运行,是从每个产品第一行开始计算,这样计算结果与实际正确值可能会有出入。而我的假设是也采用动态加载技术加载部份数据,假设第一行库存数据已经核对无误(无需再参与重置列计算),如果我们重置列程序代码能够作到从每个产品第二行(动态加载数据后)开始计算,就有可能保证后面数据计算与实际值相符(上传附件中数据假定是采用动态加载技术后的结果),这个程序代码怎么写?兄弟我调试三天还没结果,请各位大师赐教?

 

帮助中原程序代码:

Dim nms As New List(Of String)
Dim
drs As New List(of DataRow)
With DataTables(
"例子二")
    nms
= .GetValues("产品")
    For Each
nm As String In nms '找出每个产品的第一行数据, 添加到集合drs中
       
drs.Add(.Find("产品 = '" & nm & "'", "[_SortKey]"))
    Next
    For Each
dr As DataRow In drs
        .
DataCols("入库").RaiseDataColChanged(dr)
    Next
End With


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


加好友 发短信
等级:三尾狐 帖子:721 积分:6887 威望:0 精华:0 注册:2012/3/1 7:20:00
  发帖心情 Post By:2013/11/23 8:04:00 [只看该作者]

不好意思,例子没上传成功,现在上传下。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:流水账.zip


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/11/23 9:15:00 [只看该作者]

呵呵,这里有现成的例子可供参考


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


加好友 发短信
等级:三尾狐 帖子:721 积分:6887 威望:0 精华:0 注册:2012/3/1 7:20:00
  发帖心情 Post By:2013/11/23 10:03:00 [只看该作者]

多谢大师指点,惭愧原来论坛上已有答案,我还在瞎操心。

 


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


加好友 发短信
等级:三尾狐 帖子:721 积分:6887 威望:0 精华:0 注册:2012/3/1 7:20:00
  发帖心情 Post By:2013/11/27 15:20:00 [只看该作者]

在流水账与重置列中如入代码:

Dim nms As New List(Of String)
Dim drs As New List(of DataRow)
With DataTables("采购付款表")
    nms = .GetValues("客户简称")
    For Each nm As String In nms '找出每个产品的第一行数据, 添加到集合drs中
        drs.Add(.Find("客户简称 = '" & nm & "'", "[_SortKey]"))
    Next
    For Each dr As DataRow In drs
        .DataCols("进仓金额").RaiseDataColChanged(dr)
    Next
End With

程序运行时提示错误:

System.NullReferenceExceptioon:未将对象引用设置到对象的实例。在FOXtable.datatable.0000000000I0000(DATACOL 01,datarow 01)

在FOXTABLE.DATACOL.RAISEDATACOLCHANGED(DATAROW 01)在USERCODE.CLICK-96F2A240(controleventargs e)


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/11/27 15:22:00 [只看该作者]

引用了空值
建议您用这个方法:
http://www.foxtable.com/help/topics/1485.htm

先找出是哪一行出错,然后分析原因

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


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

For Each nm As String In nms '找出每个产品的第一行数据, 添加到集合drs中
        drs.Add(.Find("客户简称 = '" & nm & "'", "[_SortKey]")) 
Next

 

改一下:

 

For Each nm As String In nms '找出每个产品的第一行数据, 添加到集合drs中
        Dim rr AS datarow  = .Find("客户简称 = '" & nm & "'", "[_SortKey]")

        if rr Isnot Nothing then

             drs.Add(rr)

        End If

Next

原因:不是任何时候,你都能找到符合条件的行的。


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


加好友 发短信
等级:三尾狐 帖子:721 积分:6887 威望:0 精华:0 注册:2012/3/1 7:20:00
  发帖心情 Post By:2013/11/27 18:31:00 [只看该作者]

多谢两位大师指点。狐爸就是高手,帮我解开这段代码疑惑。

 


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


加好友 发短信
等级:三尾狐 帖子:721 积分:6887 威望:0 精华:0 注册:2012/3/1 7:20:00
  发帖心情 Post By:2013/12/2 16:15:00 [只看该作者]

为何我增加重置列按钮进行流水账重置列,而之前sqlcommand数据为何没有参与计算?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:流水账.zip


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/12/2 16:24:00 [只看该作者]

你需要先执行SQL获得前面的数据.

 回到顶部