以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助] 同表不同列的数据如何引用呢? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=55808) |
-- 作者:rophy0952 -- 发布时间:2014/8/23 16:41:00 -- [求助] 同表不同列的数据如何引用呢? 如图:当“客户代号”变化时,“上月结余金额”等于上个月该客户“累计应付金额”,这个代码应如何写合适呢? |
-- 作者:Bin -- 发布时间:2014/8/23 16:46:00 -- http://www.foxtable.com/help/topics/1472.htm |
-- 作者:rophy0952 -- 发布时间:2014/8/23 17:04:00 -- @Bin:感谢您的回复! 那两个链接的内容我有了解过,系统中其它地方也有运用的。只是我现在在时间条件那里不太会写。也就是当前月的上个月,该如何表达呢?
|
-- 作者:有点甜 -- 发布时间: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 -- 发布时间: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 执行后出现错误提示:如图 例子如下:
|
-- 作者:rophy0952 -- 发布时间:2014/8/25 14:19:00 -- DataTables("应收账款主表").Load 这段代码是漏删的,不过刚才删掉以后结果还是会出现错误提示!请指教,谢谢! |
-- 作者:有点甜 -- 发布时间: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 -- 发布时间:2014/8/25 14:48:00 -- 现按照上面的代码试了一下,提示“无制单日期列”,然后将代码修改了一下,本月的“上月结余金额”未变,反而上月的“累计结余金额”项变为零了。 |
-- 作者:有点甜 -- 发布时间:2014/8/25 14:55:00 -- 不明白你什么意思,你输入日期、输入客户名,之后就能统计结果了的。
我测试没有问题。 |
-- 作者:rophy0952 -- 发布时间:2014/8/25 15:13:00 -- “应收账款主表”中的“上月结余金额“ = “应收账款主表”中该客户上个月的“累计结余金额”。而不是“收款主表”中的“收款金额” |