公式---天大的难题(200分)(200分)

  • 主题发起人 主题发起人 tanzhouren
  • 开始时间 开始时间
我想要,谢了!
jiao_he@sina.com
 
看例子,很詳細的

首先:公式中的變量名好像隻能是指定的a,b,c....等
你必須把你公式中的field名換成a,b,c... 如:(a+b-c)*d/e
在需要計算時,取出計算公式,將各field對應賦給a,b,c...等,然後控件名.value
就是你需要的結果
 
想要的朋友可以到csdn或深度探險去找,parser10,都有的
 
谢谢:yidaoh


整批修改某字段的值可用你的方法(update)
可我主要是考虑到有一个输入表单,上面有二十个edit框,当用户在某一个框中输入值时,和此框
有联系的edit框就会自动根据公式显示出相应的值。如用户输入应发工资时,就应算出个人
所得税...我不知在程序中如何根据用户已改变的公式来自动调整语句。
 
1.使用TParser component,zeosdbo中带;
2.公式可以存贮在某个字符串字段中;
3.变量可以设计成代码,TParser带有iif函数,支持自定义函数(!!!)。
 
1。将TEdit换成TDBEdit,再输入框的onExit事件中调用计算
或者
2。采用其他富翁推荐的公式解析工具。
 
别用控件了
这是Delphi程序员的陋习
还是自己写吧
表达式解析可是程序员的基本功呦
看看数据结构的书吧
凡是讲堆栈的地方都有源码
 
其实我在三年前编过这样一东西完全满足你的条件
我用的是DEIPHI+F1_BOOK
要的话请EM—MAIL:cqsssco@21.com
 
谢谢各位大虾!
cqsssco给我一份。
tanzhouren@263.net
 
cqsssco请给我一份。zhouqing99@163.net

 
给我一份
ugvanxk@china.com
 
其实这个问题很简单啊!
没有必要去使用别的控件吧?
 
问题的实质是要有一个公式翻译器,这当然不能算是简单的事,“十万火急”的话是来不及
做的,楼上推荐的控件可以用(我也有这样的东西,但不能贡献出来,以后或许可以),不
过可以再给你推荐一个快捷方法,利用SQL的计算能力,公式按SQL的语法书写,计算的时
候作为SQL的一部分执行:
select 公式 from dual/tablenames
 
写一个公式编译器是不容易!
但就他想要解决的问题来说,倒是很容易!
比如
应发工资包括基本工资、浮动工资、工龄工资等。
这其实只是一个累加工式,我想也不会有什么变化。
同样应扣工资是各应扣部分的累加公式。
实发工资=应发工资-应扣工资。
YES OR NO?
其次是应扣部分。
就拿个人所得税来说,这个公式也是固定的。
应发工资小于800时,个人所得税为零
大于800小于5000(举个例子,我也不清楚究竟是多少,呵呵)时
个人所得税为(应发工资-800)X0.05
同理,大于5000而小于10000时,
个人所得税为(应发工资-5000)X0.1
也就是说,公式本身并没有变化,变化的只是其中的参数!
至于什么养老保险,住房公积金都是这样!
用户真正要修改的也只是其中的参数。
不对吗?
但如果用户要求能够自己添加工式,那就不怎么好办,但也并不是太复杂。
 
用sql,爆简单
 
告诉你一个绝对可行的方法,在http://www.hd-sc.com上下载《工资管理系统》,
它有两种定义公式的方法。自己去看!别忘记送分!!
 
在http://www.csdn.net/dev/Delphi/vcl/vcltools/parser10.zip下载 可以解决你的问题
 
多谢各位,我正在测试!欢迎高手发表意见!
 
给我也来一份,drroc@21cn.com
 
各位可能有些误解,请各位明看,我的公式表是这样的(access97表)
序号 项目 条件 计算式
01 加班工资 加班时数*3
02 包干药费 工龄<1 0
03 包干药费 工龄>=1.and.工龄<=5 20
04 包干药费 工龄>5.and.工龄<=1 30
05 包干药费 工龄>10.and.工龄<=20 40
06 包干药费 工龄>20.and.工龄<=30 50
07 包干药费 工龄>30 60
08 应发合计 档案工资+浮动工资+加班工资+主付食补贴+夜餐费+奖金+包干药费+冷饮费
21 代扣所得税 应发合计>800 (应发合计-800)*0.05
22 代扣所得税 应发合计>1300 (应发合计-800)*0.1-25
23 代扣所得税 应发合计>580 (应发合计-800)*0.2-375
23 代扣所得税 应发合计>2800 (应发合计-800)*0.15-125
25 代扣所得税 应发合计>20800 (应发合计-800)*0.25-1375
26 代扣所得税 应发合计>40800 (应发合计-800)*0.3-3375
27 代扣所得税 应发合计>60800 (应发合计-800)*0.35-6375
28 扣款合计 扣药费+代扣所得税+扣回借款+代扣房租费+代扣水电费
99 实发工资 应发合计 - 扣款合计

用户可以修改此表,当用户改动后,我在统计时,也应作改动,怎么用delphi语句实现
此功能?
 
后退
顶部