hur.cn - 华软网

 热门搜索

请问交叉表输入问题---工资输入

  作者:未知    来源:网络    更新时间:2019/10/7
比如输入人员的工资,工资项目能够用户自己定义,
然则输入的时候需要按照以下格式
      基本工资  考勤工资  GZ项目3  GZ项目3

张三    1000      200      10        30
李四     100       200     30        20
王五    20         50      20         30
请问像这类输入该怎么做?
提供思绪也能够。

------华软网友回答------
你的数据库结构?
------华软网友回复------
1.定义一个datastore ids_data,以检索工资数据
2.根据工资项目动态生成数据窗口dw_1,数据列有几多个项目就生成几多个,比以下面的例子:
string ls_sql="select top 0 cast(null as varchar(50)) as 品名 "
for i = 1 to 项目总数
ls_sql=ls_sql+",cast(null as int) as 项目_"+string(i)
next
ls_sql=ls_sql+" from 任意表名"
ls_syntax=sqlca.syntaxfromsql(ls_sql,"style(type=grid)",ls_ERRORS);
dw_1.create(ls_syntax,ls_ERRORS);
3.根据ids_data中检索出的数据插入&修改dw_1中.
4.在dw_1的itemchanged()事件中找到ids_data中响应数据做修改
5.保存时对ids_data举行保存
当然,在动态创建数据窗口后需要对数据窗口的显示格式做些调整,比如标签,比如宽度

------华软网友回复------
谢谢:renwanly(★★★★) 和cuixuf(A4〓小小小小刀〓(...---...)) 
我的数据结构是:
工资项目表:
ID    number      自增字段
Name  char(30)    项目名称

人员表:
ID      number       自增字段
Name    char(12)     人员名称

人职工资表
ID        number       自增字段
PersonID  number       人员ID
ProID     number       工资项目ID
Salary    number(6,2)  人职工资

renwanly(★★★★) 的方法与我想的一样,然则我想pb中有crossTab,能不能用CrossTab做?
   

------华软网友回复------
crosstab中你需要措置惩罚的事情会更多而不是更少
------华软网友回复------
谢谢;renwanly(★★★★) 
虽然:用crosstab更麻烦
请问如果用crosstab来做的话,思绪是怎样的?

关于这类工资输入的解决,我还找到了一篇文章(然则数据表的设计不一样):
文章地址为:http://db.rdxx.com/PowerBuilder/2006-7/11/174413834.shtml

------华软网友回复------
看到过国外有人做了crosstab作为录入的东西,臭臭的长长的,基本算是一个"系统"了.
如果是我做的话思绪大概是:在你输入的位置上,根据数据类型&格式放置一个输入控件,对于此控件的修改需要及时反映到crosstab中. 虽然说着简单,但对于一些细节的地方还需要措置惩罚(比如跳转,比如选择,比如增删行,比如输入校验...)
------华软网友回复------
上面"如果是我做的话"指的是"如果用crosstab来做"
------华软网友回复------
看了renwanly的回复,深有同感,最好不要用crosstab来做,究竟那是用来display的      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。