简单叙述动态公式的工资系统的计算方式

简单叙述动态公式的工资系统的计算方式

 

问题:

简单叙述 Access 动态公式的工资系统的计算方式

 


回答:


以下方法显示了最简单的动态公式系统
如果用于实际,你还可以将公式分组,将人员分部门不同组对应不同部门的人员等等。
当然,还涉及到窗体界面编程的内容,也可以通过用代码更改控件的数据源来解决。
Private Sub UpdateFormula()
    'tbl_pay 表用于存放工资资料,有很多类似 FLD1 FLD2 FLD3 ... 这样的货币型字段
    'tbl_formula 表用于存放计算公式
    'tbl_formula 表有几个字段
    'FieldName 字段用于存放 tbl_pay 中有的字段名
    'formula 字段用于存放公式,类似  FLD1*FLD2+FLD3 这样的公式,前面不要放 "=" 符号
    'CanPrint 字段用于标识是否允许打印

    
    Dim strSql As String
    Dim Rs As New ADODB.Recordset
    Dim Conn As New ADODB.Connection
    Set Conn = CurrentProject.Connection
    Rs.Open "select * from tbl_formula where CanPrint=1 order by ID", Conn, adOpenDynamic, adLockBatchOptimistic
    Do Until Rs.EOF
        If IsNull(Rs("formula")) = False Then
            Conn.Execute "update tbl_pay set " & Rs("FieldName") & "=" & Rs("formula")
        End If
        Rs.MoveNext
    Loop
    Rs.Close
    Set Rs = Nothing
End Sub

 

http://www.access911.net 站长收藏
动态代理是一种在运行时创建代理对象的方式,它可以在不修改原始类的情况下,为其添加额外的功能。在Java中,有两种常见的动态代理实现方式:基于接口的动态代理和基于类的动态代理。 1. 基于接口的动态代理: - 实现方式:基于接口的动态代理是通过Java的`java.lang.reflect.Proxy`类实现的。该类提供了一个`newProxyInstance()`方法,通过传入目标类的接口、一个`InvocationHandler`对象和类加载器来创建代理对象。 - 实现原理:在运行时,当调用代理对象的方法时,实际上会被转发到`InvocationHandler`对象的`invoke()`方法中。在`invoke()`方法中,可以执行一些前置或后置操作,并最终调用目标对象的方法。 - 适用场景:基于接口的动态代理适用于目标对象实现了接口的情况。 2. 基于类的动态代理: - 实现方式:基于类的动态代理是通过使用第三方库(如CGLIB)来实现的。该库通过生成目标类的子类来创建代理对象。 - 实现原理:在运行时,当调用代理对象的方法时,实际上会被转发到子类中重写的方法中。在重写的方法中,可以执行一些前置或后置操作,并最终调用目标对象的方法。 - 适用场景:基于类的动态代理适用于目标对象没有实现接口的情况。 区别: - 基于接口的动态代理要求目标对象实现接口,而基于类的动态代理可以代理任何类,无论是否实现接口。 - 基于接口的动态代理是通过Java标准库实现的,而基于类的动态代理需要使用第三方库。 - 基于接口的动态代理创建的代理对象是一个实现了目标接口的实例,而基于类的动态代理创建的代理对象是目标类的子类。 - 基于接口的动态代理执行效率相对较高,而基于类的动态代理执行效率较低。 总体而言,基于接口的动态代理更加灵活,并且是Java官方支持的方式;而基于类的动态代理在某些场景下更加方便,尤其是对于没有实现接口的类。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值