当前位置:编程学习 > JAVA >>

定制字段

例如 有张三和李四
张三进入到页面,想看到创建日期、商品名称、单价等字段(控件为框架的控件,如日期类型、文本类型、数值类型等)
李四进入到页面,不想看到这些,而是想看到发票号、创建人等字段
(这些字段都存在同一张表里)

有什么好的解决办法?

以前用的是JS,根据登录人的ID,拿到控件的ID,判断是否显示。
如:
   var s = $F('customer_select');   --客户ID
   if(s=='1004'){
         document.getElementById("command1").style.display= "";  --控件ID
         document.getElementById("command2").style.display= "";
            }
    if(s!='1004'){    
 document.getElementById("command1").style.display  ="none";  --控件ID
 document.getElementById("command2").style.display  ="none";
    } 

大家一看就知道缺点 无法扩展,如果有多个用户 ,就要写很多很多。

现在我的想法是写properties文件
如 用户ID_控件名称_类名=需要显示的控件名称

不知道这样的方法能否实现?还有各位大牛有没有更好的方法!先谢谢大家! --------------------编程问答-------------------- 为什么不设计角色和权限呢,需要什么配置什么也比较灵活 --------------------编程问答-------------------- 不好意思 我没说清楚 
是登录的人会选择客户,根据选择的客户,来动态的显示客户定制的字段! --------------------编程问答-------------------- 不好意思,刚才我说错了。
应该是登录人会选择客户,然后根据他选择的客户的ID,动态的显示客户定制的字段,看有没有合理的解决方法。 --------------------编程问答--------------------
引用 1 楼  的回复:
为什么不设计角色和权限呢,需要什么配置什么也比较灵活


不好意思,刚才我说错了。
应该是登录人会选择客户,然后根据他选择的客户的ID,动态的显示客户定制的字段,看有没有合理的解决方法。 --------------------编程问答-------------------- 把字段以参数形式传递进去  --------------------编程问答-------------------- 还是不太清楚你的问题在什么地方。

你现在都能知道“客户ID对应的定制字段”。页面只要呈现 定制字段 和内容就可以了啊 --------------------编程问答--------------------
引用 6 楼  的回复:
还是不太清楚你的问题在什么地方。

你现在都能知道“客户ID对应的定制字段”。页面只要呈现 定制字段 和内容就可以了啊


关键就是怎么动态显示 定制字段 和内容? --------------------编程问答-------------------- 那就做个配置,可以给每个客户分配字段权限,不难 --------------------编程问答-------------------- 你写一方法。
主要功能:1 根据客户ID 找到 定制字段.
          2 找到 定制字段 对应内容
  3 返回封装集合

在页面中显示集合就可以 --------------------编程问答-------------------- 这东西这后台处理比较合理,
维护好了人与字段的关系,
根据人来修改页面的数据集合,重新生成页面 --------------------编程问答--------------------
引用 9 楼  的回复:
你写一方法。
主要功能:1 根据客户ID 找到 定制字段.
  2 找到 定制字段 对应内容
  3 返回封装集合

在页面中显示集合就可以

我这么说吧 我们公司现在用的框架是要这样用的
1.先在类里定义控件:写法是 public Select command = new Select("command", "指令性质",false); --command即控件名称(客户定制字段)
还有一个 客户的控件 public Select customer = new Select("customer", "客户", false);// 客户
2.还要在htm里显示样式,即
 <td id="command1" width="120" align="right" valign="top"  style="   padding-top:3px; padding-botton:1px;  height:22px; padding-right:5px; background-color:#EFEFEF; border-bottom:1px dotted #CCCCCC;">$form.getField("command").label: </td>
    <td id="command2" width="250" valign="top"  style="padding-top:3px; padding-botton:1px;  height:22px; padding-left:5px; background-color:#ffffff; border-bottom:1px dotted #CCCCCC;">$form.getField("command") </td>
--command 为控件名称

以前的做法是 选择客户 调用JS的onChange方法(即我的上文写过JS的方法内容),根据选择的客ID显示定制字段。
这样扩展性和灵活性明显不行,所以有没有更好的方法实现,如配置文件等等。
补充:Java ,  Web 开发
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,