• maximo功能修改笔记


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

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

  • 相关阅读:
    Java 泛型
    arcpy删除非必须字段
    【C#】ProgressWindowsinFTools:一个简单的WPF进度窗口,使用Thread实现异步进度
    【NSIS】安装或卸载时使用nsProcess检查程序是否正在运行
    【PyQGIS】输出地图文档数据视图页面,实现屏幕截图效果
    关闭win10内存压缩的方法
    mybatis plus框架的@TableField注解不生效问题总结
    使用javassist运行时动态修改字节码对象
    分享我的一道电商需求分析的面试题!
    C# 字符编码简介
  • 原文地址:https://www.cnblogs.com/coderpan/p/4939308.html
Copyright © 2020-2023  润新知