近期我在开发一个工资计算系统,公司要求仿照金碟的格式,工资计算项目
是动态增加的,如上班工资,加班工资,津贴,管理费,伙食补助,社会保险,请假扣除…,
当增加了计算项目之后,需要设定这些计算项目哪些是每月固定计算项目,
哪些是变动的计算项目,当设定后工资计算界面就有员工基本数据和固定项目和选定的
变动项目。计算项目内容(界面)如下[2004年5月]
姓名  部门  底薪  上班工资  加班费  津贴  伙食补助  管理费...[2004年6月]
姓名  部门  底薪  上班工资  加班费  津贴  伙食补助  管理费  社会保险 请假扣除如在设计时建立员工基本数据表(姓名,部门,底薪…),计算项目表(上班工资,加班工资,
津贴,管理费,伙食补助,社会保险,请假扣除…),计算内容总表(姓名,部门,底薪,上班工资,加班费,津贴,伙食补助,管理费…)由于计算项目是通过选定形成的,那计算内容总表怎样设计才好,总不能固定其字段内容,且要求工资条报表和计算内容相似,希望大家帮忙一下,提供好的方法或建议!thanks!

解决方案 »

  1.   

    留下Email我发给你       
      

  2.   

    TABLE1
    姓名  部门 A1 A2 A3 A4 A5 TABLE2
    A1  底薪      +
    A2  上班工资  +
    A3  津贴      +?    社会保险 _
    ?    请假扣除 _
      

  3.   

    不知工资表你打算如何打印?
    如果项目太多的话一张纸的页宽绝对打印不了的。
    看看 Printer First Grid 控件的工资格式打印预览功能能否适用你的系统。
    lpsoft.itdrp.com 可下载完整的演示程序。
      

  4.   

    lpcsoft.itdrp.com   抱歉,刚少打了。
      

  5.   

    To csdnHelp(你好吗?): 
          我的email: [email protected]
    To wxyq2000(wxyq):
          如你所说,TABLE1的计算项目段还是固定的,当计算项目有变化时就不行了。
    To mylzw(俺是天空里地一片云):
          你提供的网站的报表工具看来效果很,但是要钱的呵,我是个刚毕业的穷光蛋,
          哪里有钱买呢,如果叫公司买是没有可能的,还是多谢你吧!
          给我提供解决方法是最实际的呵。
      

  6.   

    To csdnHelp(你好吗?): 
         
            ??????
      

  7.   

    难道CSDN的高手全都不见了,还是解决不了呢?
      

  8.   

    1、建立一个人员表TabEmp,例如字段有:EmpNo(编号),EmpName(姓名);
    2、建立一个工资字段表TabSalary,字段有:SalaNo(项目编号),SalaName(项目名称);
    3、程序动态添加员工和工资字段,你想要什么字段就什么字段,实现“增加”、“保存”、“删除”、“修改”等功能;
    4、每一个月生成一个工资表,如今个月工资表名为:Tab200406,生成前可动态选择字段,这样生成的表就符合你想要的要求了,如果没得选就去添加;
    5、对生成的工资表进行输入、统计,得到每个月的工资表。注意:每个月生成一个月工资表,这个表名你在程序一定要知道是这个月的,好让查询时可找得到。大概就是这样了,你做吧,因为动态的这能用动态的方法去做,我见过一些软件预留几个字段备用,这种做法不太合适和实用。
      

  9.   

    TO huangjianyou(小健) :
    我的操作系统是win2000 数据库Access2000 ,引用DAO3.51 和 ADO2.5
    我曾写过以下代码:
    dim db as DataBase
    set db=OpenDataBase(app.path &”\test.mdb”)

    但运行时错误提示:
    run-time: error ‘3343’
    unrecognized database format ‘D:\VBProject\test.mdb’可否给出动态生成表的代码?
      

  10.   

    呵,我不用DAO,只用ADO,打开数据库连接在这儿有:http://www.connectionstrings.com/
      

  11.   

    动态生成表用create table命令。
      

  12.   

    Sql = "CREATE TABLE #TempTable(" & _
            "EmpNo          Varchar(10)         NULL," & _
            "EmpName        Varchar(10)         NULL" & _
            ")"
        Cnn.Execute Sql
      

  13.   

    TO huangjianyou(小健):
         
         能給你的email我嗎?我想跟你學習一下!
         如你在廣州的話我想請你食飯喝茶啊!
      

  14.   

    使用动态交叉表方法,参考:
    http://community.csdn.net/Expert/topic/3086/3086575.xml?temp=.4024011
      

  15.   

    TO 楼上黄大哥:
        我用的不数据库不MSSQL,如SQL的话我可以解决,但我的数据库是ACCESS 2000,
        你有方法吗?
      

  16.   

    我的E-Mail:[email protected],代码还是你自己写好点,数据库思想就可提供。^_^
      

  17.   

    TO 小健哥 & 各位朋友:我写了如下的代码:
    dim conn as adodb.connection
    dim newstr as string
    dim editstr as stringwith conn
    if .State = adStateOpen Then .Close
    .ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=" &App.Path & "\test.mdb;Mode=ReadWrite;" & _
    "Persist Security Info=False"
    .Open
    end withset conn=new adodb.connection
    str=”create table book (bookno varchar(30) null, bookname nvarchar(50) null)”
    conn.execute newstreditstr=”alert table book add column price currency”
    conn.execute editstr但只能创建表增加表字段,提示conn.execute editstr错误。另:删除表和删除表字段的代码怎样实现呢?
      

  18.   

    Private Sub Command1_Click()
        Dim conn As New ADODB.Connection
        Dim newstr As String
        Dim editstr As String
        
        With conn
        If .State = adStateOpen Then .Close
            .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
                app.path & "\Text.mdb;Persist Security Info=False"
            .Open
        End With
        
        newstr = "create table book (bookno text(30) null, bookname text(50) null)"
        conn.Execute newstr
        
        editstr = "alter table book add column price currency"
        conn.Execute editstr
        
        editstr = "alter table book drop column price"
        conn.Execute editstr
        
        editstr = "drop table book"
        conn.Execute editstr
        
        conn.Close
        Set conn = Nothing
    End Sub1、定义写一次:Dim conn As New ADODB.Connection
    2、连接字符串写错没有,用adodc连一下拿出来就行了;
    3、MS SQL才用varchar,Access用Text;
    4、str变量没有,你可能写错了;
    5、引号不能用大写的“或”,要用小写的";
    6、修改字段用alter table,不是alert table;
    7、删除表用drop table;
    8、删除字段用alter table ... drop column ...;
    9、写程序要缩进;
    10、你自己要调试,你的程序我想你没调试,一放上代码就有红色。
      

  19.   

    在Access里有一个系统表MSysObjects,里面的Name记载表名,条件还有type=1,这你会了吧。
      

  20.   

    TO 小健哥 :因为我一直都开发B/S (asp+com+sql),所以对VB不是很熟。
    如下这样写可以嘛:Dim rs as adodb.recordset
    Dim strSQL as string
    strSQL="Select name from Msysobjects where type=1 and name=book"
    rs.open strSQL
    if not rs.eof then 
    msgbox ‘存在’
    else
    msgbox ‘不存在’
    ‘创建表的代码
    end if
      

  21.   

    你自已调试一下,你的程序都没调试就放上来,这样不好吧。不过我可以说,不行:1、Dim rs as new adodb.recordset
    2、strSQL="Select name from Msysobjects where type=1 and name='book'"
    3、rs.open strSQL,......(参数)
    4、记录集未关闭。
    5、不如你请我兼职做你的系统好过了。或者你挖我过去你公司,反正我想走。^_^
      

  22.   

    TO 小健哥:我公司的福利很差的,没你想象中好,我做了3年都系2K多点,现有朋友想帮我接些单来做,
    如果接到的我一定会找你,请放心!昨天的你提供的检验表的代码,我在计算机上编译时提示没有权限打开表,不知为什么?
    是否与这一句有关:"Select name from Msysobjects where type=1 and name='book'"还有一个问题啊,我设计了一个存放计算项目公式的表,如下:公式项目名称   子项目名称(或数据)   运算符   顺序
    ------------------------------------------------
    上班工资        底薪 /       1
    上班工资 22 *       2
    上班工资 上班时间         3通过取出记录形成公式: 上班工资 = 底薪 / 22(天) * 上班时间
    你看我设计的公式表是否有误,请指正!
      

  23.   

    http://community.csdn.net/Expert/topic/3121/3121732.xml?temp=.8178522像这个问题,肯定会有很多人答你的。不可能一条路走下去啊。