EAS:通过代码手动添加界面按纽原创
金蝶云社区-HN_刘敏
HN_刘敏
53人赞赏了该文章 167次浏览 未经作者许可,禁止转载编辑于2024年12月02日 09:28:45
summary-icon摘要由AI智能服务提供

本文在CreditLimitEditUICTEx类中实现了一个名为btnViewBgItem的界面按钮,通过jbInit方法初始化按钮动作类ActionViewBgItem并注册到动作管理器,为按钮设置动作代理实现交互。按钮具备图标、菜单位置和显示文本的初始化,点击按钮会根据操作状态执行不同的预算查看逻辑。

首编于:2024年12月2日

关键字:EAS、代码编写、添加界面按纽


前言:


这段代码主要实现了在 CreditLimitEditUICTEx 类中添加一个名为 btnViewBgItem 的界面按钮。首先在类的构造函数中调用 jbInit 方法进行初始化操作。在 jbInit 方法里,创建了对应的按钮动作类 ActionViewBgItem,并将其注册到动作管理器中,同时为按钮设置了动作代理,使按钮与动作关联起来。之后,通过重写相关方法来完成按钮图标的初始化、在菜单中的位置设定以及按钮显示文本的设置等功能,从而使该按钮在界面中能够完整地呈现并具备相应的交互功能。


代码实现方式:

package com.kingdee.eas.fm.fin.client;

import java.awt.Component;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.util.Hashtable;

import com.kingdee.bos.appframework.client.servicebinding.ActionProxyFactory;
import com.kingdee.bos.ctrl.extendcontrols.KDBizPromptBox;
import com.kingdee.bos.ctrl.kdf.table.KDTable;
import com.kingdee.bos.ctrl.swing.KDWorkButton;
import com.kingdee.bos.ui.face.IItemAction;
import com.kingdee.bos.ui.face.IUIObject;
import com.kingdee.bos.ui.face.IUIWindow;
import com.kingdee.bos.ui.face.ItemAction;
import com.kingdee.bos.ui.face.UIFactory;
import com.kingdee.eas.common.client.OprtState;
import com.kingdee.eas.common.client.UIContext;
import com.kingdee.eas.fm.common.client.FMClientHelper;
import com.kingdee.eas.util.client.EASResource;
import com.kingdee.eas.util.client.MsgBox;

public class CreditLimitEditUICTEx extends CreditLimitEditUI {

 /**
  * 显示预算余额 
  */
 protected KDWorkButton btnViewBgItem = null;
 protected ActionViewBgItem actionViewBgItem = null;
 
 public CreditLimitEditUICTEx() throws Exception {
  super();
  // TODO Auto-generated constructor stub
  jbInit();
 }
 
 /**
  * 初始化控件  
  * @throws Exception
  */
 protected void jbInit() throws Exception{
 
  /**
   * 显示预算余额
   */
  this.actionViewBgItem = new ActionViewBgItem(this);
  getActionManager().registerAction("actionViewBgItem", actionViewBgItem);
  this.actionViewBgItem.addService(new com.kingdee.eas.framework.client.service.PermissionService());
 
  this.btnViewBgItem = new KDWorkButton();
  this.btnViewBgItem.setName("btnViewBgItem");
  this.btnViewBgItem.setAction((IItemAction) ActionProxyFactory.getProxy(actionViewBgItem, new Class[] { IItemAction.class }, getServiceContext()));
 }
 
 /**
  * 初始化按钮图标  
  */
 @Override
 protected void initWorkButton() {
  // TODO Auto-generated method stub
  super.initWorkButton();
  //显示预算余额信息图标
  this.btnViewBgItem.setIcon(EASResource.getIcon("imgTbtn_downbill"));
 }

 /**
  * 初始化按钮在菜单的位置  
  */
 @Override
 public void initUIToolBarLayout() {
  // TODO Auto-generated method stub
  super.initUIToolBarLayout();
  this.toolBar.add(btnViewBgItem, 9);
 }

 /**
  * 初始化控件显示信息 
  */
 @Override
 public void onShow() throws Exception {
  // TODO Auto-generated method stub
  super.onShow();
  this.btnViewBgItem.setText("预算查看");
 }

 /**
     * 显示预算余额
     * @author  
     *  
     */
    protected class ActionViewBgItem extends ItemAction{

  @Override
  public void actionPerformed(ActionEvent e) {
   // TODO Auto-generated method stub
   getUIContext().put("ORG.PK", getOrgPK(this));
   innerActionPerformed("eas", CreditLimitEditUICTEx.this, "ActionViewBgItem", "actionViewBgItem_actionPerformed", e);
  }
     
  public ActionViewBgItem(){
   this(null);
  }

  public ActionViewBgItem(IUIObject uiObject) {
   // TODO Auto-generated constructor stub
   super(uiObject);
   String _temStr = "";
   putValue("ShortDescription", _temStr);
   putValue("LongDescription", _temStr);
   putValue("Name", _temStr);
  }
    }
   
    /**
     * 预算查看
     * @param e
     * @throws Exception
     */
    public void actionViewBgItem_actionPerformed(ActionEvent e) throws Exception{
 //新增状态下查看预算
     if (OprtState.ADDNEW.equals(getOprtState())) {
      storeFields();
            CreditLimitInfo clInfo = editData;
            FMClientHelper.viewBgBalance(this, "com.kingdee.eas.fm.fin.app.CreditLimit", null, clInfo);
  }else {//其他单据状态下实现查看预算
   FMClientHelper.viewBgBaoListlance(this, editData.getId().toString());
  }
    }
   
}

总结:


整体代码围绕在特定界面中添加 “预算查看” 按钮展开,从按钮的创建、与动作的绑定,到在界面布局中的设置以及不同操作状态下点击按钮后的功能实现均进行了处理。在点击按钮时,根据当前操作状态(新增状态或其他单据状态),分别执行不同的预算查看逻辑,新增状态下会先存储字段信息然后查看特定的预算余额信息,其他状态则直接查看预算列表余额信息,通过这些步骤实现了一个具有特定业务功能且与界面紧密结合的按钮功能模块,增强了该界面在预算查看相关业务操作上的交互性与功能性。


附:BOS二开案例及常见问题的解决方合集:https://vip.kingdee.com/link/s/lnEvP

图标赞 53
53人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!