怎麼算法可以得到如下運行公式的值 [(A1+A2)/A4*(A6+A8)](100分)

  • 主题发起人 主题发起人 FLYINGFDK11
  • 开始时间 开始时间
F

FLYINGFDK11

Unregistered / Unconfirmed
GUEST, unregistred user!
大家好,小弟目前在做一个工资模块程序,其中工资输入和输出项目是动态的,如下
A1 代表岗位津贴
A2 代表职务津贴
A4 每月应上班的天数
A9 代表实际上班天数
B1 津贴合计
注;
A*代表输入项目 B*代表输出项目,B*是计算出来的
B1= [(A1+A2)/A4]*A9
请问有什么算法可以在输入了A*的项目后,算出B*的值
 
可以用计算字段
 
用trigger也可以呀
 
To ericimex01
你指的Trigger 是什么,是指MS_Sql的触发器吗?那个好象做不了,因为运算公式也是用户输
的,并不是我指定的.
To dx_zhang1978
用计算字段,你指是用TQuery的计算字段吗?我现在要的是根据这个用户设的计算公式,然后
去把他换算成实际的值,就是怎么写代码实现先括号,后乘除,再加减.

 
那要看你的公式是怎么输的?
 
公式是用户输入的,而且会有许多项.比如
B2 =B1+10
B3 = B1*20/5
B4 =B2+B3+B1
所以不可能用Trigger做的,一定要在外面算好后,然后写入表中
 
"数据结构"课本里有完整的表达式算法,队列和堆栈
 
相当于其它语言中的 eval 函数。
 
Delphi中有相同的函数吗
 
我有对此种类型的表达式分析算法的单元文件。
 
select 13242*21-123+5*(321-132) into avalue from dual
任何复杂的表达式都可以计算出来
 
在数据库 SQL Server ORacle里直接加自定义函数就可以搞掂了!
 
若A* 都是 表 table1 的列,用
select ((A1+A2)/A4)*A9 as B1 from table1
若A*分布于不同的表,但表与表有关连,也一样如
select ((A1+A2)/A4)*A9 as B1 from table1 A inner join table2 B on a.nid=b.pnid
 
To qingkang_luo
你能把此单元文件给我一份吗,先谢谢了,我的信箱是hailei@totals2.com
To hpretty
在数据库 SQL Server ORacle里直接加自定义函数,这个以前没看过,
我去看看,如果你有范例给我那更好.
 
后退
顶部