Foxtable(狐表)用户栏目专家坐堂 → [求助] 同表不同列的数据如何引用呢?


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

主题:[求助] 同表不同列的数据如何引用呢?

美女呀,离线,留言给我吧!
rophy0952
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:581 积分:4989 威望:0 精华:0 注册:2014/6/12 14:55:00
[求助] 同表不同列的数据如何引用呢?  发帖心情 Post By:2014/8/23 16:41:00 [只看该作者]

如图:当“客户代号”变化时,“上月结余金额”等于上个月该客户“累计应付金额”,这个代码应如何写合适呢?

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20140823162657.jpg
图片点击可在新窗口打开查看


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


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


 回到顶部
美女呀,离线,留言给我吧!
rophy0952
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:581 积分:4989 威望:0 精华:0 注册:2014/6/12 14:55:00
  发帖心情 Post By:2014/8/23 17:04:00 [只看该作者]

@Bin:感谢您的回复!
那两个链接的内容我有了解过,系统中其它地方也有运用的。只是我现在在时间条件那里不太会写。也就是当前月的上个月,该如何表达呢?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/24 14:45:00 [只看该作者]

上个月的条件,参考

 

"日期 < #" & new Date(Date.Today.Year, Date.Today.Month, 1) & "#"

 

http://www.foxtable.com/help/topics/2720.htm

 

[此贴子已经被作者于2014-8-24 14:44:55编辑过]

 回到顶部
美女呀,离线,留言给我吧!
rophy0952
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:581 积分:4989 威望:0 精华:0 注册:2014/6/12 14:55:00
  发帖心情 Post By:2014/8/25 14:13:00 [只看该作者]

有点甜:

 

这两个表格间我想实现以下:

 

1. “应收账款主表中的本月已收金额“  “收款主表中当前月已入账为false的 “收款金额”合计;符合条件的已入账列= true;

2. 应收账款主表中的“上月结余金额“ =  应收账款主表中该客户上个月的“累计结余金额”。

我的代码是:

If e.DataCol.name = "客户代号" Then

    Dim dr As DataRow = e.DataRow

    Dim filter As String = "客户代号 = '" & e.DataRow("客户代号") & "' And 收款日期 <= #" & Date.Today & "# and 已入账 = False "

    Dim dr1 As DataRow = DataTables("应收账款主表").LoadFilter = "客户代号 = '" & e.DataRow("客户代号") & "' And 制单日期 < #" & new Date(Date.Today.Year, Date.Today.Month, 1) & "#"

    DataTables("应收账款主表").Load

    dr("本月已收金额") = DataTables("收款主表").Compute("sum(收款金额)",filter)

    dr("上月结余金额") = dr1("累计应收金额")

    For Each pr As DataRow In DataTables("收款主表").dataRows

        pr = DataTables("收款主表").find(filter)

        pr("已入账") = True

    Next

End If


执行后出现错误提示:如图

此主题相关图片如下:qq截图20140825141143.jpg
按此在新窗口浏览图片

此主题相关图片如下:qq截图20140825134116.jpg
按此在新窗口浏览图片

例子如下:
 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:问题.foxdb



 回到顶部
美女呀,离线,留言给我吧!
rophy0952
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:581 积分:4989 威望:0 精华:0 注册:2014/6/12 14:55:00
  发帖心情 Post By:2014/8/25 14:19:00 [只看该作者]

DataTables("应收账款主表").Load 这段代码是漏删的,不过刚才删掉以后结果还是会出现错误提示!请指教,谢谢!

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/25 14:29:00 [只看该作者]

If e.DataCol.name = "客户代号" Then
    Dim dr As DataRow = e.DataRow
    Dim filter As String = "客户代号 = '" & e.DataRow("客户代号") & "' And 收款日期 <= #" & e.DataRow("制单日期") & "# and 已入账 = False "
    Dim filter2 As String = "客户代号 = '" & e.DataRow("客户代号") & "' And 收款日期 < #" & new Date(e.DataRow("制单日期").Year, e.DataRow("制单日期").Month, 1) & "#"
    dr("本月已收金额") = DataTables("收款主表").Compute("sum(收款金额)",filter)
    dr("上月结余金额") = DataTables("收款主表").Compute("sum(收款金额)",filter2)
   
    DataTables("收款主表").ReplaceFor("已入账", True, filter)
End If

 回到顶部
美女呀,离线,留言给我吧!
rophy0952
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:581 积分:4989 威望:0 精华:0 注册:2014/6/12 14:55:00
  发帖心情 Post By:2014/8/25 14:48:00 [只看该作者]

现按照上面的代码试了一下,提示“无制单日期列”,然后将代码修改了一下,本月的“上月结余金额”未变,反而上月的“累计结余金额”项变为零了。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/25 14:55:00 [只看该作者]

 不明白你什么意思,你输入日期、输入客户名,之后就能统计结果了的。

 

 我测试没有问题。


 回到顶部
美女呀,离线,留言给我吧!
rophy0952
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:581 积分:4989 威望:0 精华:0 注册:2014/6/12 14:55:00
  发帖心情 Post By:2014/8/25 15:13:00 [只看该作者]

应收账款主表中的“上月结余金额“ =  应收账款主表中该客户上个月的“累计结余金额”。而不是“收款主表”中的“收款金额”

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