日期:2014-05-18  浏览次数:20678 次

困扰两天,一直没有好的办法?求救!!!!!!!!!!!!!!!
做了一个工资管理系统,字段之间的计算以及在表格中的显示问题?

需求如下:
建一个表A里面,预留100个字段,20个文本型(txt1,txt2....txt20),其他为数值型(Num1,Num2......Num80),用于装载用户的工资表.

表B是项目表(根据用户添加的工资项目以及工资的运算),在添加时,系统判断用户选择是文本型还是数值型以及添加顺序,系统自动获取表A的字段名.用户可以自定义公式.

项目表例:
显示顺序   字段名   项目名称       方式             公式
1                 txt1       姓名               输入             无
2                 txt2       部门               输入             无
3                 Num1       基本工资       输入             无
4                 Num2       工龄工资       输入             无
5                 Num3       迟到早退       输入             无
6                 Num4       工资合计       计算             Round(Isnull(Num1,0)+Isnull(Num2,0)-Isnull(Num3,0),2)
7                 Num5       应交税金       计算             所得税公式
8                 Num6       实发工资       计算             Round(Isnull(Num4,0)-Isnull(Num5,0),2)


输入项,表示手工输入
计算项:表示由系统的SQL计算(由于所税公式较长,所以没写出)

怎样让它们能在表格(未存入数据库之前)计算呢?
如:用DataGridView来显示.
姓名   部门   基本工资   工龄工资   迟到早退   工资合计   应交税金   实发工资
张三   车间   1600           410             10               2000               20             1980

求一个思路.怎样让输入基本工资\工龄工资等输入项(数值型)时,计算项(工资合计等),能按照公式计算出来.
注:顺序是由用户自定的,而公式我是将它转为SQL来验证,并且插入数据库时是根据公式进行的(更新入库没有什么问题),求的是怎样在表格中能动态地计算?

即:   表格动态地计算?

------解决方案--------------------
先将输入的几个数据出入数据库中,然后再将对应的计算公式转换成sql语句进行,再插入到表中。

------解决方案--------------------
A. 采用JS前台计算 ,计算结果通过innerHTML更新界面。

B,使用ajax通过httprequest发送数据到后台并取回结果,然后在更新界面。
------解决方案--------------------
up
------解决方案--------------------
如果是winform,使用DataGridView的数据源DataTable的列值改变事件,直接去计算相关列就可以
如果是webform,用js自已算不就可以了
这样的问题还能困扰两天,昏迷中
------解决方案--------------------
后台数据库使用一个存储过程计算并插入数据。

前台采集并且使用后台存储过程插入数据
------解决方案--------------------
如果要插入数据库之前,先让用户看到结果,两个办法

1、还不错的办法:直接前台JS计算后输出;
2、有点耗资源的办法:将数据送到后台一个存储过程计算后输入结果

结论:前台JS不需要占用服务器资源,无视带宽,推荐使用。
------解决方案--------------------
如果没有理解错误的话,楼主是想在DATAGRIDVIEW中显示这样的结果:
姓名 部门 基本工资 工龄工资 迟到早退 工资合计 应交税金 实发工资
---------------------------
然后依次上面的字段输入: