起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 203|回复: 6

选用什么样的数据集问题**

[复制链接]
发表于 2008-2-25 14:01:08 | 显示全部楼层 |阅读模式
我要实现如下图所示的经费预算表的填写功能,但是下图所示中“科目名称”全是定义死的,用户只需填写金额即可!我定义了项目经费预算表,表中字段:
项目标识、上级目录、本级目录、金额、申请资助、自筹、备注等,请问我这样定义表结构合适吗?我在定义数据集时是不是应该使用透视数据集?你们有没有一个好的设计思路可以让我参考一下吗?

需求表格.jpg

58.4 KB, 下载次数: 143

回复

使用道具 举报

发表于 2008-2-25 14:39:19 | 显示全部楼层
1、请问这个表是这次填写完了,下次填写的时候默认前面填写的数据显示出来吗?还是空?如果是空,怎么区分是显示前面某次填写的还是新建的,就是填写的周期是怎样的?
2、项目标识、上级目录、本级目录 这三个字段的内容是啥,是分别表示  科目  下面的 一、1和(1)这三种吗?

如果是不管何时填写,默认显示前面已经修改的,且项目标识、上级目录、本级目录这三个字段表示的就是科目的话,那么我觉得,项目标识、上级目录、本级目录 这三个可以用一个字段科目来表示,然后加上、金额、申请资助、自筹、备注等就可以了,且不需要用透视数据集,直接用普通的标准数据集就可以了。如果是根据某年或者某月,那么就需要增加年和月的字段出来,并需要有个表来表示当前打开的年和月数据是否有,如果没有,就增加这些科目,如果有,就把仅仅这个年月的数据显示出来。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-2-25 14:54:32 | 显示全部楼层
一、一个项目对应一个这样的表,所有的项目“科目”这一列是一样的,不同的项目只要填金额等后面的字段就可以!
二、项目标识就是把项目和经费预算表关联起来,是主从表的关系。
  科目不是分(一)、1和(1)吗,本级目录和上级目录就是为了标识他们的
三、不涉及日期
回复 支持 反对

使用道具 举报

发表于 2008-2-25 15:36:55 | 显示全部楼层
那这些科目怎么根据某个项目生成这些记录呢?用个基本表来维护,当增加一个项目,那么就在该表中增加这些科目明细的记录,对吧。
那你就根据1楼说的创建,然后用标准数据集展现就可以了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-2-26 18:17:22 | 显示全部楼层
为了解决这个问题,我新建了
1、《项目经费预算表》,存放(一)这一级的预算。
2、《项目经费预算一级子表》,存放1.这一级的预算
3、《项目经费预算二级子表》,存放(1)这一级的预算
每个表中又设了“排序”这个字段。
我新建了一个“项目经费预算合计数据集”标准数据集,用如下sql语句
SELECT a.*, XMJFYSB.XMBS
  FROM (select XMJFYSB.XMBS, XMJFYSB.PX, XMJFYSB.KMBS || XMJFYSB.KM as "科目", XMJFYSB.JE as "金额", XMJFYSB.SQZZ as "申请资助", XMJFYSB.ZC as "自筹", XMJFYSB.BZ as "备注" from XMJFYSB union select XMJFYSYJZB.XMBS, XMJFYSYJZB.PX, XMJFYSYJZB.YJZKMBS || XMJFYSYJZB.KM as "科目", XMJFYSYJZB.JE as "金额", XMJFYSYJZB.SQZZ as "申请资助", XMJFYSYJZB.ZC as "自筹", XMJFYSYJZB.BZ as "备注" from XMJFYSYJZB, XMJFYSB where XMJFYSYJZB.KMBS = XMJFYSB.KMBS union select XMJFYSEJZB.XMBS, XMJFYSEJZB.PX, XMJFYSEJZB.EJZKMBS || XMJFYSEJZB.KM as "科目", XMJFYSEJZB.JE as "金额", XMJFYSEJZB.SQZZ as "申请资助", XMJFYSEJZB.ZC as "自筹", XMJFYSEJZB.BZ as "备注" from XMJFYSEJZB, XMJFYSYJZB where XMJFYSEJZB.YJZKMBS = XMJFYSYJZB.YJZKMBS) a, XMJFYSB
  where a.XMBS=XMJFYSB.XMBS
  ORDER BY a.PX asc
数据集的测试结果和第一层的图示一样,但是出现了一个问题,我想通过新增项目的时候系统默认往这三个表中添加“项目标示、科目标示、一级科目标示、二级科目标示、科目名称、排序”信息,至于金额等由用户填写,这个功能我觉得要用存储过程来做,但我的后台oracle数据库我又不会用,请问有什么办法可以让我直接在平台中来实现这个功能阿?
回复 支持 反对

使用道具 举报

发表于 2008-2-27 09:32:53 | 显示全部楼层
1、我觉得你没有必要用三张表来存放(一)、1和(1)这些科目,用一个标识字段来分别标识(一)还是1和还是(1)就可以了。当然你这样做是可以的,只是从设计上感觉不好。
2、你说1楼的数据不涉及日期,那么在数据库上仅仅存放一份,对吗?如果是,那就不要用那么多的表来存放了,放到一个表不是更简单。不需要用存储过程,或者其他的方法,直接用一个表,产生一个数据集,然后对这个数据集进行增、删、改。
回复 支持 反对

使用道具 举报

发表于 2008-2-27 10:02:01 | 显示全部楼层
这样做出的数据集无法编辑,
如果这张报表只是录入和简单查询的话,建议做成一张表吧。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-7 11:04 , Processed in 0.048554 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表