以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 自动计算 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=113546) |
||||
-- 作者:kaituozhe -- 发布时间:2018/1/18 7:48:00 -- 自动计算 以下代码是铖实现自动计算,为什么实现不了呢?黄色代码怎么修改?因为项目列合计行前面会一些空格。 Dim filter As String = " 年度 = \'" & e.DataRow("年度") & "\' And 期间 = \'" & e.DataRow("期间") & "\'And 公司名称 = \'" & e.DataRow("公司名称") & "\'And 部门编号 = \'" & e.DataRow("部门编号") & "\'"
|
||||
-- 作者:有点甜 -- 发布时间:2018/1/18 9:20:00 -- Dim filter As String = " 年度 = \'" & e.DataRow("年度") & "\' And 期间 = \'" & e.DataRow("期间") & "\'And 公司名称 = \'" & e.DataRow("公司名称") & "\'And 部门编号 = \'" & e.DataRow("部门编号") & "\'" Select Case e.DataCol.name Case "数量","单价" e.DataRow("金额") = e.DataRow("数量") * e.DataRow("单价") Case "年度","期间" Dim drgh As DataRow = e.DataTable.find(filter & " And 项目 = \'挂号收入\'and 收入明细 like \'%合计%\'") If drgh IsNot Nothing Then drgh("单价") = e.DataTable.Compute("sum(单价)",filter & " And 项目 = \'挂号收入\'and (收入明细 not like \'%合计%\' or 收入明细 is null)") drgh("数量") = e.DataTable.Compute("sum(数量)",filter & " And 项目 = \'挂号收入\'and (收入明细 not like \'%合计%\' or 收入明细 is null)") drgh("金额") = e.DataTable.Compute("sum(金额)",filter & " And 项目 = \'挂号收入\'and (收入明细 not like \'%合计%\' or 收入明细 is null)") End If End Select Select Case e.DataCol.name Case "数量","单价","金额" If e.DataRow("收入明细") <> "合计" Then e.DataTable.DataCols("年度").RaiseDataColChanged(filter & " and 收入明细 like \'%合计%\'" ) End If End Select |
||||
-- 作者:kaituozhe -- 发布时间:2018/1/18 18:43:00 -- 以下代码是统计代码,能否按部门增加小列,然后再合计 Forms("查询").open
|
||||
-- 作者:有点甜 -- 发布时间:2018/1/18 19:57:00 -- Forms("查询").open Dim sql As String = "Select 项目,金额,期间,收入明细,部门编号 FROM {门诊收入预算} where (收入明细 not like \'总计\' or 收入明细 is null) and (收入明细 not like \'%合计%\' or 收入明细 is null) and 项目 is not null union all Select 项目,金额,\'小计\',收入明细,部门编号 FROM {门诊收入预算} where (收入明细 not like \'总计\' or 收入明细 is null) and (收入明细 not like \'%合计%\' or 收入明细 is null) and 项目 is not null " Dim b As New CrossTableBuilder("统计表1",sql) b.HGroups.AddDef("项目") b.vGroups.AddDef("部门编号") b.VGroups.AddDef("期间","{0}月") b.Totals.AddDef("金额") b.HorizontalTotal = True b.VerticalTotal = True b.Build() Forms("查询").controls("table1").Table.DataSource = DataTables("统计表1") |
||||
-- 作者:kaituozhe -- 发布时间:2018/1/20 13:18:00 -- 4楼代码计算出来的合计不等于各部门的合计数,而是等于该行的合计数,该怎么修改? |
||||
-- 作者:有点蓝 -- 发布时间:2018/1/20 14:28:00 -- Forms("查询").open Dim sql As String = "Select 项目,金额,期间,收入明细,部门编号 FROM {门诊收入预算} where (收入明细 not like \'总计\' or 收入明细 is null) and (收入明细 not like \'%合计%\' or 收入明细 is null) and 项目 is not null union all Select 项目,金额,\'小计\',收入明细,部门编号 FROM {门诊收入预算} where (收入明细 not like \'总计\' or 收入明细 is null) and (收入明细 not like \'%合计%\' or 收入明细 is null) and 项目 is not null " Dim b As New CrossTableBuilder("统计表1",sql) b.HGroups.AddDef("项目") b.vGroups.AddDef("部门编号") b.VGroups.AddDef("期间","{0}月") b.Totals.AddDef("金额") b.HorizontalTotal = True b.VerticalTotal = True b.Build() For Each dr As DataRow In DataTables("统计表1").DataRows Dim sum As Double = 0 For Each c As DataCol In DataTables("统计表1").DataCols If c.Caption Like "*小计*" Then sum += dr(c.Name) Next dr("合计") = sum Next Forms("查询").controls("table1").Table.DataSource = DataTables("统计表1")
|