经过前几次的简单的修改系统功能,对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. C++虚函数示例

    和Java不同,CDerive derive语句可以直接生成对象,不需要new关键字 重载虚函数才可以用父类引用调用子类对象,重载普通函数没有效果 #include<iostream> # ...

  2. Windows下利用py2exe生成静默运行的命令行程序

    py2exe是python的第三方库,可以利用它将你的python脚本编译成可执行文件(exe),而在实际的开发过程中生成的dos窗口很影响用户体验,建议按以下方式让exe静默运行. 首先将你的pyt ...

  3. vmware12用 unlocker206能不能解锁 OS X系统

    先下载UnLocker2061.zip 2. 选择虚拟机右键--> 属性 3.将下载的unlocker2061解压后文件放入VMware安装目录下  选择win-install.cmd文件  右 ...

  4. 网页闯关游戏(riddle webgame)--仿微信聊天的前端页面设计和难点

    前言: 之前编写了一个网页闯关游戏(类似Riddle Game), 除了希望大家能够体验一下我的游戏外. 也愿意分享编写这个网页游戏过程中, 学到的一些知识. 本文讲描述, 如何在网页端实现一个仿微信 ...

  5. 关于配置服务器(IIS7)(二)

    然 ,你以为这样就解决问题了? 图样 图森破(too yong too simply).......... HTTP 错误 500.21 - Internal Server Error 处理程序“Pa ...

  6. error :ld returned 1 exit status

    额,被调用函数的名称与调用函数的名称写的不一致啊: 所以会出现 ld returned 1 exist status 好了, 问题解决了.

  7. 51nod-1732 婚姻介绍所(后缀数组)

    题目大意:回答任意两个子串的最长公共前缀. 题目分析:后缀数组的模板题.但是输入输出都要外挂. 代码如下: # include<iostream> # include<cstdio& ...

  8. ppDelegate的相关介绍

    //  AppDelegate的相关介绍//  IOS笔记 //@interface AppDelegate : UIResponder <UIApplicationDelegate>// ...

  9. C#中get和set的写法

    class program{ private string name; public string XXXXXX{ get{return name;} set{name=value;} } } 在C# ...

  10. Durid(二): 数据集及存储

    druid有三种类型的数据结构: timestamp列,维度列,指标列. 时间撮和指标在底层都是int数组或long数组. 指标值是int或long,而时间撮为long. Segment文件的内部结构 ...