Foxtable(狐表)用户栏目专家坐堂 → 流水账新思考


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

主题:流水账新思考

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


加好友 发短信
等级:狐神 帖子:6887 积分:43621 威望:0 精华:0 注册:2009/3/2 14:07:00
流水账新思考  发帖心情 Post By:2009/11/9 12:20:00 [只看该作者]

更多的时候,流水账是区分产品的,例如下图的库存表:

此类流水账的设计方法和之前是一样,只需在条件表达式中,加入产品比较即可:

Select Case e.DataCol.Name
    Case
"日期","产品","入库",
"出库"
       
If e.DataRow.IsNull("日期") = False Then
           
Dim drs As List(of DataRow)
            drs = e.
DataTable.Select("[日期] >= #" & e.DataRow("日期") & "# And [产品] = '" & e.DataRow("产品") & "'","日期")
            For
Each dr As DataRow In
drs
                Dim
Filter As String
                Filter =
"[日期] < #" & dr("日期") & "# Or ([日期] = #" & dr("日期") & "# And [_Identify] <= " & dr("_Identify") &
")"
                Filter =
"(" & Filter & ") And [产品] = '" & dr("产品") & "'"
               
Dim Val1 As Double = e.DataTable.Compute("Sum(入库)",Filter)
                Dim
Val2 As Double = e.DataTable.Compute("Sum(出库)"
,Filter)
                dr(
"库存") = Val1 - Val2
            Next
       
End If
End
Select

流水账表格中如果有入库 出库1 出库2,如何求库存?注:出库1 出库2是变量。

如何求附件中表“明细账”中窗口“明细账”的“可用款余额”?
 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:管理项目1.table

[此贴子已经被作者于2009-11-9 12:25:40编辑过]

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/11/9 13:17:00 [只看该作者]

没看明白。
你的文件中并没有可支配款项,不知要怎么求余额?

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


加好友 发短信
等级:狐神 帖子:6887 积分:43621 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2009/11/9 13:30:00 [只看该作者]

单击“明细账”表的“明细账”窗口的“查询”按钮可以看见的。

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/11/9 13:37:00 [只看该作者]

工程款就是可支配的款项吗?


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


加好友 发短信
等级:狐神 帖子:6887 积分:43621 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2009/11/9 13:39:00 [只看该作者]

是的。

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


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/11/9 14:48:00 [只看该作者]

明细表的查询按钮代码:改成下面的代码

DataTables("明细账").DeleteFor("")
dim f As New Filler
if vars("起始日期") is nothing or vars("截止日期") is nothing  or vars("工程编号") is nothing then
   messagebox.show("起始日期或截止日期为空或工程编号为空")
else
   for each dr as datarow in datatables("单据明细").datarows
     for each dc as datacol in datatables("明细账").datacols
        if dr("科目名称")=dc.name and dr("日期")>=vars("起始日期") and dr("日期")<=vars("截止日期") and dr("工程编号")=vars("工程编号") then
            dim drr as row=tables("明细账").addnew()
            drr(dc.name)=dr("金额")
            drr("日期")=dr("日期")
            drr("摘要")=dr("摘要")
            drr("单据编号")=dr("单据编号")
            drr("科目类别")=dr("科目类别")
     drr("可用款余额")=DataTables("明细账").Compute("Sum(工程款)")-DataTables("明细账").Compute("Sum(工资)")-DataTables("明细账").Compute("Sum(税金)")

        end if
     next
   next
end if


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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/11/9 20:16:00 [只看该作者]

流水账的话估计要这样才行。

DataTables("明细账").DataRows.Clear()
if vars("起始日期") is nothing or vars("截止日期") is nothing  or vars("工程编号") is nothing then
    messagebox.show("起始日期或截止日期为空或工程编号为空")
else
    for each dr as datarow in datatables("单据明细").datarows
        for each dc as datacol in datatables("明细账").datacols
            if dr("科目名称")=dc.name and dr("日期")>=vars("起始日期") and dr("日期")<=vars("截止日期") and dr("工程编号")=vars("工程编号") then
                dim drr as row=tables("明细账").addnew()
                drr(dc.name)=dr("金额")
                drr("日期")=dr("日期")
                drr("摘要")=dr("摘要")
                drr("单据编号")=dr("单据编号")
                drr("科目类别")=dr("科目类别")
            end if
        next
    next
end if

Dim dt As DataTable = DataTables("明细账")
Dim sum,sum1,sum2 As Double
For Each dr As DataRow In dt.DataRows
    sum = dt.Compute("Sum(工程款)","[单据编号] = '" & dr("单据编号") & "' And [日期] <= #" & dr("日期") & "#")
    sum1 = dt.Compute("Sum(工资)","[单据编号] = '" & dr("单据编号") & "' And [日期] <= #" & dr("日期") & "#")
    sum2 = dt.Compute("Sum(税金)","[单据编号] = '" & dr("单据编号") & "' And [日期] <= #" & dr("日期") & "#")
    dr("可用款余额") = sum - sum1 - sum2
Next


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


加好友 发短信
等级:一尾狐 帖子:400 积分:3961 威望:0 精华:0 注册:2009/4/28 7:39:00
  发帖心情 Post By:2009/11/9 20:34:00 [只看该作者]

若6楼或7楼给个“结构设计图”就方便学习了!!

现在论坛很多程序设计得很好,即使看得懂的程序,也总感觉“思路不清晰”,模糊一片,稍一搬家就无法再次设计了。


 回到顶部