最近公司有一项目要求达到的目的是:系统的不用用户看到的数据各不一样,打个比方,就拿一个酒店的进货(杯子A)来说,数据表(TABLET)记录了关于A的所有信息,比如:名称,单价,数量,总价,购买人....等等,然后就到了经理(B)审批环节,这里经理需要看的是关于A的全部信息(包括:名称,单价,数量,总价,购买人....等等),经理通过后就流转到财务部(C)审批环,这里打个比方,C需要的信息只要:总价和单价的信息,财务通过后就到了入库(D)环节了,这里D需要的只是:物品名称和数量而已,通过后然后入库.
    当然我这里物品A和数据表TABLET以及审批环节B,C,D用户对象都只是一个比喻而已,比喻不恰当还请各位不要介意,这里的要求是物品A和环节BCD...等等环节(不是只我这里的环节,这里只是一个比方),都是动态的设置的,B,C,D..的环节不是程序定的,也是由某个具有定义权限的用户或者是管理员做定义的,而且不同环节的不同对象看的数据内容不一样(就像B显示所有信息,C显示总价和单价..),确切的说是看到的字段不一样,这也是由具有定义权限的人定义的,不是由程序定义死的.
   各位有什么好的设计方法方案,包括数据表(可以记录所有类型的物品)的定义,显示数据对象的定义(即给不同对象显示不同数据的数据模板),审批人的环节的定义.
   我现在考虑的有两中方法(审批方面略):
    1:一个是用户对象表,二是数据对象模板主表(一个用户对象对应一个数据对象),二是数据模板细 表(保存对应主表的数据);
    2:采用结合xml的方法,就是生成一个审批用户对象时,就把与这个对象相关的数据全部写进一个xml文件里面,有多个用户对象就写多个xml文件,以后就直接读这写xml文件即可;   各位说应该采用哪中方法呢???????
    我们的数据量很大的,一天就可能有几百条记录产生.有什么更好的想法吗?什么解决方法好点呢 ?而且要支持可以直接打印的.
 
   最后一个问题:就是关于报表打印问题,要求是,给定一个DATASETT,打印的格式由打印用户自动随意的拖动位置,打印的数据也是由用户从DATASETT里面的数据随便拖,这里就有数据和格式由用户随意定义问题,我想这个问题难点,谁知道怎么解决?
   如果分不够可以重新开帖给分酬谢!

解决方案 »

  1.   

    我说一下我的想的数据库设计吧:
    商品表如下,
    ID 批次ID  商品ID 商品数量 审批角色ID 库管ID  然后在让他和其他的表(如用户表,商品表)相关联,
    你要显示的数据,SQL查询中实现就可以了.
      

  2.   

    关于打印,我想到的解决办法:
    (1)可以定义一些条件,让用户选择,在按照用户的选择,显示在出来;
    (2)可以把数据导入到客户端的Excel中,让用户在其上编辑\打印,
    其他的还没想到,呵呵
      

  3.   

    搞个XML的配置文件啊
    里面设置不同权限,显示不同字段信息 
      

  4.   

    如猫抱狗跳所说
    权限设到字段,根据字段把相应的控件设为可见隐藏或读写.不过对应多表的还真是比较难弄.我原来做的是根据用户用FrontPage做的表单,自动生成一个对应的表,权限什么的按上面设的.这样功能比较弱.如果又想对表分析又想出报表的话,还得一个一个做了.不可能做一个通用的完美的东东.
      

  5.   


    我做了一个东西,可以根据字段设置权限的,你也许可以参考一下。地址:  http://www.xpgrid.com/test 
      

  6.   

    http://www.xpgrid.com/test  打不开
      

  7.   

    zxilu(江湖) \
       你这里是免费的?
      

  8.   

    那是 由用户自定义的...不是系统定义死的..汗~权限的分配是当然是由用户自定义了。为什么要系统定死呢?你第二个问题得写C\S模式的系统。首先读取字段名,动态生成可移动标记,由用户自己拖位置,你要把位置都记住了(记在哪里随便你),生成报表的时候就由此位置生成数据。用B/S的,我是这样处理的:
    首先客户自己画一个格式页面,在页面里按照我预定义的格式手工写入标记:例如[username]。写完之后,上传到服务器分析,将所有标记都替换成数据,返回到客户端用网页打印。
      

  9.   

    回复人: qwerttyy(猫猫抱抱狗狗跳跳) :
        是否可以把bs的例子发给我看看/?