工资系统中的的自定义公式怎么实现啊,找了二天了,没有实际的收获啊,我是用的delphi sql,那个有源码提供下就好了,
好像不会的人很多。

解决方案 »

  1.   

    有说用F1BOOK的,有说自编一个解释器的,找了半天头没有源码可参考,
      

  2.   

    要实现的功能大概是:全勤奖 = 基本工资表.基本工资 * IF(考勤表.迟到>=2 || (考勤表.请假.type=="事假" && 考勤表.请假.times==1) , 0 , IF(考勤表.迟到==1 || (考勤表.请假.type=="事假" && 考勤表.请假.times==0.5) , 0.5 , 1))
      

  3.   

    为这个功能自己写一个解析器实在没有必要,自动生成SQL吧,这样简单一些,直接利用SQL的语法和计算功能。
      

  4.   

    工资系统总的自定义公式我也在学习。我看了部分商业软件,这里提出讨论一下,其中有一个方法。他们分3部分1是结果部分,即影响那个表那个字段2是条件部分,即满足什么条件。例如  
                 中文:如果   全勤 =  1 
                 英文: if quanqin = 1
    3是表达式部分,即给结果赋值  
    然后将上面的结果编译成英文,可以转换成sql语句,也可以转换成编程语句。然后出来你的工资表就可以了。