经过前几次的简单的修改系统功能,对maximo的bean开发已经有了一定了解,现在是耗时近两个礼拜来修改了一项系统功能,所用到的知识 Bean Fld,

下面我认真总结修改功能过程中的学到的知识:

目标效果一:

点击页面上新增的按钮,弹出一个dialog,然后在dialog里面可以进行多选,然后点击 “确定” 后,在当前的记录上新增已选中的记录,并把页面上的某个字段设置相应的值。

  解决步骤:

1.在应用程序设计器导出当前设计页面的xml文件,然后用工具打开xml文件,在xml文件里新增一个dialog。 dialog可以在导出来的xml文件里选择一个然后复制进行修改(在这里提醒下:建议新建一个xml文件用来复制原来xml文件里的dialog,最后将复制修改后的dialog复制到原来的xml文件中,做好备份工作),dialog可以理解成弹出的框,以下截图是dialog的xml文件信息:

这里最重要的是 id,id要做到不能重复,其次id为按钮属性上的事件值,中间的标签都是可以在应用程序设计器修改,只要有了dialog,就可以在应用程序设计器里进行应用程序的布局设计。做好了dialog就复制到

原来导出的xml文件中,然后再导入回去。

2. 导入回去之后,就可以在应用程序设计器中弹出dialog然后进行布局设计,截图如下:

点击图中的控件会弹出一个 编辑对话框,在对话框里就可以找到刚刚我们导入进来的dialog,然后双击我们导入进来的dialog的id会弹出已经解析成页面的dialog的xml文件,如下图所示:

弹出了dialog,接下来就是布局dialog了,这里的布局设计和以前的布局一样。

3. 在布局的过程中,里面的字段值虽然已经给定了,如果报红,或者在测试应用的时候后台报错,那么就要考虑关联问题了,如图:

这里的关联就是和设计时的字段的关联,然后这里的bean类,一般绑定bean类不在这里绑定,如果在这里绑定类可能会不执行class文件,一般在dialog文件中绑定,绑定类后就可以在类里面写相应的逻辑代码,如图:

3. 在界面上设计个按钮,点击按钮弹出dialog,按钮的事件填写dialog的id就可以了,如图:

 好了,以上就是弹出dialog 在maximo里面的做法,具体的逻辑代码还要在代码里面写要实现的效果,这里 一般写 execute()方法,因为 dialogok和dialogcancel事件会默认调用它。在这里的注意事项还是在写xml文件的时候id不要重复。

目标效果二:

在页面上做个多部分文本,用来显示父级的idnum和description。在这里需要用到域和关联。

总结我对域的理解

在对 对象新建属性的时候,我们提到了域就相当于给该字段添加了一个check约束:
1. ALN域:数字 字母组合域,由value和description构成,一般用来做状态显示;
2.表域:从指定的对象中查找符合条件的对象供选择;
3. 数字域:使用数字数据类型供选择,一般为一些简单值;
4. 数据范围域:其值通过制定范围来定义;
5. 交叉参考域:通过对Maximo编程,恢复要插入另一字段中的字段值。与其他域不同,此域不涉及值列表,而是取另有一个记录的独特的值(如果此值存在);
 
用于 放大镜和右方向 图标的域:
 lookups + 类
 lookups + 表域/交叉域
 固定值、数字域 valueList
 meus 拼接
 
我这里用的是表域,没有用到lookups+类,写好关联关系就好了,写类可以处理一些业务逻辑。下面说说写类:
   
   对字段的操作,一般是写Fld类,Fld类的一些方法:
    1.构造器:用来确定对象:
     setRelatonship("","")//指定要查找的对象
    String[] as = {getMboValue().getAttributeName()};//获取当前对象属性的名称
    String[] as2 = {"ponum"};//指定目标表/对象的属性
    setLookupKeyMapInOrder(as, as2);//映射
    2.validate(): 进行一些验证,一般是在action()方法执行前执行  

    public void validate() throws MXException,RemoteException{
      MboRemote mbo = getMboValue().getMbo();
      String personid = mbo.getUserInfo().getPersonId();
      if(!personid.equals("MAXADMIN")){
      throw new MXApplicationException("", "只有MAXADMIN用户可选择");
      }
      super.validate();
    }

    3. action(): 选中或者清除时设置相关的动作    

    public void action() throws MXException,RemoteException{
      System.out.println("-------------------------------");
      super.action();
      String currentValue = getMboValue().getCurrentValue().asString();
      if(!currentValue.equals("")){
      getMboValue("PONUMMAS").setValue("content");
      }else{
        getMboValue("PONUMMAS").setValueNull();
      }
    }

    4. getList(): 加入限制条件,设置所需结果集列表
            public MboSetRemote getList() throws MXException,RemoteException{
        MboSetRemote list = super.getList();
        list.setWhere("1=1");
        list.reset();
        return list;
    }

最后总结:

在当前页面需要新增但又要在列表里新增显示一条记录的情况,可以使用 :

得到当前的页面的mainMbo---通过mainMbo.getThisMboSet()的到mboSet---再通过mboSet.add()在当前mboSet里新增mbo

注:纯为了自己的复习的同时帮助需要了解这方面的哥们的学习,如果有问题请告诉我,我一定在第一时间修改!

maximo功能修改笔记的更多相关文章

  1. maximo功能修改(初步理解)

    已接触IBM公司的MAXIMO近三个月,在这时间里自己对maximo也有所了解,今天将自己总结写在这里,方便自己的温习和大家的参考,不足之处还望指出,我一定在第一时间内修改. 今天在公司所做的就是完善 ...

  2. CentOS7环境下SSH端口修改笔记

    CentOS7环境下SSH端口修改笔记 说明: CentOS7服务器环境,默认SSH端口为22,考虑到安全方面问题,欲修改端口为62231(机器内网IP为192.168.1.31) ssh配置文件和i ...

  3. linux下rm命令修改,增加回收站功能【笔记】

    一个脚本,linux的用户根目录下.bashrc最后加入如下代码,可以修改rm命令,让人们rm时候不再会全部删除,而是会加入到回收站里,以下是根据别人的资料参考修改的,不是原创 加入后,需要sourc ...

  4. Apache运维中常用功能配置笔记梳理

    Apache 是一款使用量排名第一的 web 服务器,LAMP 中的 A 指的就是它.由于其开源.稳定.安全等特性而被广泛使用.下边记录了使用 Apache 以来经常用到的功能,做此梳理,作为日常运维 ...

  5. 02 - Unit07:显示笔记下拉菜单、笔记的分享功能、笔记的删除功能

    显示笔记下拉菜单 笔记的分享功能 发送Ajax请求 绑定事件:绑定分享按钮单击事件 参数获取:笔记ID 发送请求:/share/add.do 服务器处理 ShareController ShareSe ...

  6. 关于3DSMAX中opensubdiv细分功能的笔记

    说到建模和细分,估计用过3dsmax的同学就会心有余悸,每次添加"涡轮平滑"或者"网格平滑"之前,都会下意识的进行保存,没有为啥,就是因为太容易使软件挂掉了. ...

  7. MMS搜索功能修改

    高通平台的MMS源码中提供了搜索功能,但要先选择分类(名字,号码,信息内容,彩信主题),再输入字符,根据分类进行搜索. 而在Contacts中却不需要分类,直接根据输入字符搜索任意匹配字段.相比之下, ...

  8. VIM编辑器常用功能整理笔记

    vim编辑器 vi : visual Inertface 可视化接口 vim : vi improved 扩展版 语法着色 模式化编辑器: 编辑模式(命令模式): 默认模式 输入模式: 末行模式: 等 ...

  9. mac 功能修改。。。。

    个人表示 Mac 下的 Spotlight 搜索功能确实是个鸡肋,安装 QuickSilver 才是王道!所以我个人就把 Spotlight 关闭掉了.方法很简单,还是要用到 “终端” 工具. 在 “ ...

随机推荐

  1. 动手实现自己的 STL 容器《2》---- list

    1. 序: 本文参考了侯捷的 <STL 源码分析>一书,出于兴趣,自行实现了简单的 list 容器. 学习了 STL 的 list 容器的源代码,确实能够提高写链表代码的能力.其中的 so ...

  2. 浏览器兼容 copyToClipboard("拷贝内容")

    function copyToClipboard(txt) { if (window.clipboardData) { window.clipboardData.clearData(); clipbo ...

  3. Caffe 源碼閱讀(二) SyncedMemory.hpp

    1. to_cpu 數據由現存同步到內存 2. to_gpu 數據由內存同步到顯存 3. cpu_str_ 內存指針 4. gpu_str_ 顯存指針 5. size_ 數據大小 6. own_cpu ...

  4. Myeclipse+Axis2+Tomcat开发webService

    1.  下载文件: 需要在axis2官网下载两种类型的axis2文件,bin版和war版(下载地址:http://axis.apache.org/axis2/java/core/download.cg ...

  5. Hibernate注解映射sequence时出现无序增长问题+hibernate 映射 oracle ID自动增长:

    Hibernate注解映射sequence时出现无序增长问题+hibernate 映射 oracle ID自动增长: 通过Hibernate注解的方式映射oracel数据库的sequence主键生成器 ...

  6. TCP发送接口的返回值

    原文链接: http://blog.csdn.net/ordeder/article/details/17240221 1. TCP发送接口:send() TCP发送数据的接口有send,write, ...

  7. document的一点点

    var str = "hello world" document.write(str.length)输出字符串长度   12 给string 添加样式 <p>Big: ...

  8. CSS超出部分显示省略号…代码

    让DIV,LI等元素超出部分文字用省略号…显示. 示例: 兼容IE/Firefox/Chrome 代码: display:block;white-space:nowrap; overflow:hidd ...

  9. unresolved refrence 'execfile'……

    unresolved refrence 'execfile'-- 字面意思是execfile这个东东没有被解析 难道是没有import相应的lib? python docs 3.x: Removes ...

  10. SpringMVC——form标签的使用

    ----------------------------------------------------------------------------------- <%@page impor ...