以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]按规则分摊费用 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=173534) |
-- 作者:lgj716330 -- 发布时间:2021/12/3 20:53:00 -- [求助]按规则分摊费用 分摊标准较为复杂,有点晕,还请帮忙解决,谢谢 |
-- 作者:有点蓝 -- 发布时间:2021/12/4 9:42:00 -- 完全没看懂。到底要计算什么东西? |
-- 作者:lgj716330 -- 发布时间:2021/12/4 10:43:00 -- 根据档案表得到分摊表的结果,分摊规则如下 要求总费用按24个月分摊 月分摊金额=总费用/分摊月数 正常情况下,如果分摊表中未显示关店(即关店年月为空),则分摊表中每个核算月份的分摊金额为档案表中的月分摊金额,直到总费用摊完为止 如果在24个月内关店的,则在关店月份把未分摊完的费用一次性分摊 如果在24个月内重新装修的(可能在几年内发生多次重新装修),则在重新装修月份把未分摊完的费用一次性分摊,同时按正常分摊重新装修产生的费用 如果在24个月后重新装修的(可能在几年内发生多次重新装修),则重新装修的费用按正常开始分摊,直到触发关店或再次重新装修 |
-- 作者:有点蓝 -- 发布时间:2021/12/4 10:53:00 -- 看不懂。举例说明一下,表格里的数据每一行的结果是怎么计算出来的,单元格的数据是怎么用的 |
-- 作者:lgj716330 -- 发布时间:2021/12/4 14:02:00 -- 嗯 ,自己解决了,加了几列辅助列处理 |
-- 作者:lgj716330 -- 发布时间:2021/12/4 15:08:00 -- Select Case e.DataCol.Name Case "部门编号" Dim gdn As Integer = CInt(e.DataRow("关店年份")) Dim gdy As Integer = e.DataRow("关店月份") Dim nf As Integer = CInt(e.DataRow("年份")) Dim yf As Integer = e.DataRow("月份") Dim zjn As Integer = CInt(e.DataRow("最近装修年份")) Dim zjy As Integer = e.DataRow("最近装修月份") Dim scn As Integer = CInt(e.DataRow("上次装修年份")) Dim scy As Integer = e.DataRow("上次装修月份") Dim nfzj As Integer = (nf-zjn)*12+(yf-zjy)+1 Dim nfgd As Integer = (nf-gdn)*12+(yf-gdy)+1 Dim zjsc As Integer = (zjn-scn)*12+(zjy-scy)+1 Dim zjgd As Integer = (zjn-gdn)*12+(zjy-gdy)+1 End Select 总提示错误 .NET Framework 版本:4.0.30319.42000 Foxtable 版本:2021.12.4.11 错误所在事件:表,店铺装修摊销标准,DataColChanged 详细错误信息: 调用的目标发生了异常。 从字符串“”到类型“Integer”的转换无效。 输入字符串的格式不正确。 [此贴子已经被作者于2021/12/4 15:09:00编辑过]
|
-- 作者:有点蓝 -- 发布时间:2021/12/4 16:32:00 -- 判断一下单元格有没有值 Dim gdn As Integer if e.DataRow.isnull("关店年份") = false then gdn =CInt(e.DataRow("关店年份")) endif |