经过前几次的简单的修改系统功能,对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. python模块之time

    Python中的时间模块. 1.在Python中,通常有这几种方式来表示时间:1)时间戳 2)格式化的时间字符串 3)元组(struct_time)共九个元素. 2.UTC(Coordinated U ...

  2. LoadRunner常见问题

    1.Error -27257: Pending web_reg_save_param/reg_find/create_html_param[_ex] request(s) detected and r ...

  3. python学习笔记 ——python写的猜数字游戏 002

    from sys import exit import random def Arrfor(str): #CONTST = CONTST + 1 artificial = input("请输 ...

  4. UVa 10129单词(欧拉回路)

    https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  5. Mysql外键约束设置使用方法

    如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表.外键是用来实现参照完整性的,不同的外键约束方式将可以使两张表紧密的结合起来,特别是修改或者删除的级联操作将使得日常 ...

  6. UVa 156 (映射 map)

    https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  7. GDB中文手册

    用GDB调试程序GDB概述 2使用GDB 5GDB中运行UNIX的shell程序 8在GDB中运行程序 8调试已运行的程序 两种方法: 9暂停 / 恢复程序运行 9一.设置断点(BreakPoint) ...

  8. phpstorm内网远程debug

    家里用的是广电的网络,接了无线路由,在192.168.1.1里面配置了端口转发,将9001转发到192.168.1.101 ,然后在php.ini中相应的配置了xdebug, phpstorm 启动监 ...

  9. JS特殊函数(Function()构造函数、函数直接量)区别介绍

    函数定义 函数是由这样的方式进行声明的:关键字 function.函数名.一组参数,以及置于括号中的待执行代码. 函数的构造语法有这三种: 1.function functionName(arg0, ...

  10. JSTL中的scope属性

    前两天接到老大一个任务:要验证一下<c:import>能否动态地引入不同的文件.当时很兴奋,要知道在对日外包里面,这个也得算技术活了.呵呵! 说干就干,写了两个jsp文件:m.jsp  t ...