求物业管理系统自定义收费公式的设计思路

cobi 2007-06-22 05:39:40
如题,物业管理系统中的收费模块需要允许用户自定义收费公式

简单的+-*/四则运算已可以解决

现在麻烦的是如何把自变量代入到公式中,例如

管理费 = 面积 × 单价,面积来自于各住户的面积数

在计算时如何将各住户的面积取出,然后代入公式呢?

请有经验的朋友介绍一下思路,包括数据库设计和程序设计的思路
...全文
506 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
step_123 2008-06-17
  • 打赏
  • 举报
回复
管理费 = 面积 × 单价,面积来自于各住户的面积数

在计算时如何将各住户的面积取出,然后代入公式呢?
========================================================
住户的ID知道了,就可以得到房屋的各项数据
而住户的ID是根据界面查询或者选择的。
huayufei 2007-07-04
  • 打赏
  • 举报
回复
收藏,学习一下,
300分的问题呀!
cobi 2007-07-02
  • 打赏
  • 举报
回复
自己先提一下
需求我想再考虑详细一点
QuinsonYue 2007-06-28
  • 打赏
  • 举报
回复
都是牛~~
jinjazz 2007-06-23
  • 打赏
  • 举报
回复
拼成计算字符串,然后调用js对象运算
brightyang 2007-06-23
  • 打赏
  • 举报
回复
通用性是个问题
其它都还好解决
dovelee 2007-06-23
  • 打赏
  • 举报
回复
都很牛啊!!!
liangpei2008 2007-06-23
  • 打赏
  • 举报
回复
自定义公式以前我是这样做的:
1.数据库结构
做一个公式表,每次进行运算时遍历公式表即可
公式表:
ID Result Formula FormulaDesc A B C D E F
而在字段A中存放相应数据的字段名,即通过A来映射到其相应的数据表的字段中,取出数据后即可运算,公式表起到了中介作用!
2.设置公式
通过使用户输入诸如A+B等等式存之于公式表中(当然,在列表中写明A与B的映射基础表中基础字段的关系),不受运算限制!
3.公式中稍有复杂的中公式的分级(我做自定义公式时一个等式最长的大约有20个运算项,很复杂),故用公式分级来实现

表达能力不好:)
jiju 2007-06-22
  • 打赏
  • 举报
回复
怎么做都可以,主要看你的实现要求。

这个东西的设计要看你的需求了,就你的题目来看,如果限定只是一个公式的话,
那可以考虑缩小设计的范围,也就是说不用考虑使用自定义或其他脚本语言来支持,(也就是说程序不用考虑,循环,分支等语句)

对于公式而言,若考虑,只有一个结果,和4则运算, 那你现在的问题是变量,
实际上,变量可以考虑为两种,一种是,我把它称为公式环境变量,另一种是,用户自定义变量,
所谓,公式环境变量,实际上是你把用户能操作的最基本的元素定义下来,以一个由你命名的环境变量来定义这个元素.

比如:
管理费 = 面积 × 单价

那这个东西的环境变量(注意我 这里说的是从某个角度看,而从你实际的工程来说,也许有些不同)就有 管理费,面积,单价,而对于你来说,你自己知道 管理费和 面积 单价 都是一个矢量(若每一户都有不同的面积,单价)

所以,你要把用户需要操作的最基本的元素定义下来,而用户生成的公式所用到的变量都是由你给出的.


在程序设计中,你一开始,就把公式转化成一棵树, 而每个叶节点你都可以在词法分析的时候知道这个是否是一个变量, 这个变量实际在程序中是哪个东西. 所以运算的时候,很轻易的就可以取到值了.

对于用户自定义变量来说, 那是考虑有公式上下文的情况下使用的,如有这样的情况
单价= 123-(当前年份-注册年份)*0.0013
管理费 = 面积 × 单价

那单价就可以作为一个用户自定义变量。


当然最后你还可能考虑显示的问题, 对于显示来说,考虑一个变量对应多个显示,与显示的风格,如果你不需要搞显示,那就省去了一块麻烦的事情。

细节的东西还有很多,比如自定义变量可以考虑所有的都是一个矢量,就如同matlab上面的变量一样,使得用户不用考虑是否还是数组之类的问题。


最后,作这种东西,出来越简单方便越好,能固定的就固定。


以前我做的时候,是做一套脚本(这个脚本不是用户用的,自己用的)来解释这个东西,然后在脚本上再抽出公式变量出来, 该的时候只要该脚本就可以了,
程序中所有的数据都要经过一个 数据处理层 ,由该层在转发到各个类对象,所以我的数据所有的都可以在这一层上得到。

还有一点,我看来这个东西与数据库毫无联系,如果你在程序中把这个东西和数据库紧密相连,那么改动数据库的时候,你的这个东西接着就要该,这我觉得不是一个好的方案。

很难得写这么长的东西,而且时间也过了很久了,所以描述杂乱,希望不难理解,然后再和自己的工程结合起来,当然并不一定适合你的工程,因为你的需求也不明。
cobi 2007-06-22
  • 打赏
  • 举报
回复
1楼的朋友想得简单了一点

举个例子吧,假设有100户住户计算管理费

那么按照公式应该是取出100户住户的住房面积,然后代入公式进行计算

由于公式是用户定义的,系统中应是用脚本的形式进行处理

也就是首先从公式中提取数据源,然后按数据源取得有关数据再进行计算

现在就是这个过程没有想到好的方法实现
blueplusplus 2007-06-22
  • 打赏
  • 举报
回复
取数,是输入的就用个Edit,已有的就用数据表中的值就行了啊,,,
没这方面的经验,帮你顶一下,也学习学习

16,747

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧