代码添加控件
package com.kingdee.eas.base.permission.client;
import java.awt.Dimension;
import java.awt.Rectangle;
import javax.swing.SwingConstants;
import com.kingdee.bos.ctrl.swing.KDFilterTextField;
import com.kingdee.bos.ctrl.swing.KDFormattedTextField;
import com.kingdee.bos.ctrl.swing.KDLabelContainer;
import com.kingdee.bos.ctrl.swing.KDTextField;
import com.kingdee.eas.framework.client.EditUI;
public class UserEditUICTEx extends UserEditUI {
KDTextField txtSapName;
KDLabelContainer userNumberContainer;
public UserEditUICTEx() throws Exception {
super();
}
public void initUIContentLayout()
{
super.initUIContentLayout();
userNumberContainer = new KDLabelContainer();
userNumberContainer.setName("userNumberContainer");
userNumberContainer.setBoundLabelText("SAP用户名");//设置显示文字
userNumberContainer.setBoundLabelLength(140);//设置文字长度
userNumberContainer.setBoundLabelUnderline(true);
userNumberContainer.setBounds(new Rectangle(200, 230, 460, 19));// x轴 y轴 宽度 高度
add(userNumberContainer, null);
txtSapName = new KDTextField();
txtSapName.setName("sapName");
txtSapName.setVisible(true);
txtSapName.setRequired(false);
txtSapName.setEnabled(true);
txtSapName.setBoundLabelLength(30);
userNumberContainer.setBoundEditor(txtSapName);
//如果是查看界面,设置输入框不可用
if(getOprtState().equals(OprtState.VIEW)){
txtSapName.setEnabled(false);
}
}
//组件有值 赋值 给 实体
@Override
public void prepareLoadFields() {
super.prepareLoadFields();
txtSapName.setText(this.userInfo.getString("sapName"));
}
//实体有值 赋值给组件
@Override
public void prepareStoreFields() {
super.prepareStoreFields();
this.userInfo.put("sapName",txtSapName.getText());
}
}
代码添加按钮并绑定方法
package com.kingdee.eas.scm.im.inv.client;
import com.kingdee.bos.BOSException;
import com.kingdee.bos.Context;
import com.kingdee.bos.ctrl.kdf.table.IRow;
import com.kingdee.bos.ctrl.swing.KDWorkButton;
import com.kingdee.bos.dao.IObjectValue;
import com.kingdee.bos.metadata.bot.BOTRelationFactory;
import com.kingdee.bos.metadata.bot.BOTRelationInfo;
import com.kingdee.bos.ui.face.IUIWindow;
import com.kingdee.bos.ui.face.UIException;
import com.kingdee.bos.ui.face.UIFactory;
import com.kingdee.eas.common.EASBizException;
import com.kingdee.eas.common.client.UIFactoryName;
import com.kingdee.eas.common.client.OprtState;
import com.kingdee.eas.common.client.UIContext;
import com.kingdee.eas.custom.wg.ledmaterialsplit.LedMaterialSplitInfo;
import com.kingdee.eas.custom.wg.ledmaterialsplit.client.LedMaterialSplitEditUI;
import com.kingdee.eas.scm.im.inv.MaterialReqBillEntryFactory;
import com.kingdee.eas.scm.im.inv.MaterialReqBillEntryInfo;
import com.kingdee.eas.scm.im.inv.MaterialReqBillFactory;
import com.kingdee.eas.scm.im.inv.MaterialReqBillInfo;
import com.kingdee.eas.util.client.MsgBox;
import com.kingdee.util.NumericExceptionSubItem;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import org.apache.log4j.Logger;
public class MaterialReqBillListUICTEx extends MaterialReqBillListUI {
protected KDWorkButton butledMaterialSplit; //初始化的单据拆分按钮
private static Logger logger =
Logger.getLogger("com.kingdee.eas.scm.im.inv.client.MaterialReqBillListUICTEx");
public MaterialReqBillListUICTEx() throws Exception {
super();
}
/**
* 页面加载添加 单据拆分 按钮
*/
@Override
public void onLoad() throws Exception {
super.onLoad();
setButledMaterialSplit();
this.toolBar.add(butledMaterialSplit, 17);
}
/**
* 跳转到单据拆分界面
* @throws EASBizException
*/
public void jumpSplit(){
String uiClass = LedMaterialSplitEditUI.class.getName();
UIContext context = new UIContext(this);
Map entryData = getEntryData();
context.put("data", entryData.get("data"));
IUIWindow uiwindow;
try {
uiwindow = UIFactory.createUIFactory(UIFactoryName.MODEL).create(uiClass, context, null, OprtState.ADDNEW);
uiwindow.show();
storeFields();
} catch (UIException e) {
logger.error("页面打开错误");
e.printStackTrace();
}
}
/**
* 单据拆分按钮设置
*/
public void setButledMaterialSplit(){
butledMaterialSplit = new KDWorkButton();
butledMaterialSplit.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
jumpSplit();
}
});
butledMaterialSplit.setText("单据拆分");
}
/**
* 获取列表界面分录数据
* @throws EASBizException
*/
public Map getEntryData() {
ArrayList data = new ArrayList();
HashMap map = new HashMap();
int row = tblMain.getRowCount();
for(int i=0;i<row;i++){
IRow rows = tblMain.getRow(i);
String id = rows.getCell("entry.id").getValue().toString();
try {
MaterialReqBillEntryInfo entryInfo = MaterialReqBillEntryFactory.getRemoteInstance().getMaterialReqBillEntryInfo("where id = '"+id+"'");
String isSplited = entryInfo.get("isSplited").toString();
if("true".equals(isSplited)){//筛选是否拆分过
}else{
data.add(entryInfo);
}
// data.add(entryInfo);
} catch (EASBizException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (BOSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(data.size()==0){
int choice = MsgBox.showConfirm2(this,"该界面数据都已经拆分过,不可再拆分");
}
map.put("data", data);
return map;
}
}
添加权限
//界面上的按钮增加权限控制。
butledMaterialSplit.setEnabled(false);
if(SysContext.getSysContext().getCurrentStorageUnit() != null)
{
IPermission iPermission = null;
IObjectPK userPk = new ObjectUuidPK(SysContext.getSysContext().getCurrentUserInfo().getId());
IObjectPK orgPk = new ObjectUuidPK(SysContext.getSysContext().getCurrentStorageUnit().getId());
boolean isHavePermiss = false;
try {
isHavePermiss = PermissionFactory.getRemoteInstance().hasFunctionPermission(userPk, orgPk, "ImmunityPlanBatchExeUI_excue");//第三个参数为权限项编码
} catch (EASBizException e1) {
e1.printStackTrace();
} catch (BOSException e1) {
e1.printStackTrace();
}
if(isHavePermiss == true)
{
butledMaterialSplit.setEnabled(true);
}
}
EAS 权限
效果---有权限:按钮可用,没权限:按钮不可用1、动态扩展添加权限
1、动态扩展新建权限
如果在分配权限时,没有找到权限目录,权限项。则修改组织类型(财务组织,行政组织。。。根据公司组织类型需要来)
2、后台代码
/**
* 页面加载添加 单据拆分 按钮
* 效果---有权限:按钮可用,没权限:按钮不可用
*/
@Override
public void onLoad() throws Exception {
super.onLoad();
setButledMaterialSplit();
this.toolBar.add(butledMaterialSplit, 17);//给界面添加按钮
//界面上的按钮增加权限控制。
butledMaterialSplit.setEnabled(false);//设置按钮为不可用
if(SysContext.getSysContext().getCurrentStorageUnit() != null)
{
IPermission iPermission = null;
IObjectPK userPk = new ObjectUuidPK(SysContext.getSysContext().getCurrentUserInfo().getId());
IObjectPK orgPk = new ObjectUuidPK(SysContext.getSysContext().getCurrentStorageUnit().getId());
boolean isHavePermiss = false;
try {
// PermissionFactory.getRemoteInstance().checkFunctionPermission(userPk, orgPk, "ImmunityPlanBatchExeUI_excue");//第三个参数为权限项编码
isHavePermiss = PermissionFactory.getRemoteInstance().hasFunctionPermission(userPk, orgPk, "MaterialReqBillList_SplitButton");//第三个参数为权限项编码
} catch (EASBizException e1) {
e1.printStackTrace();
} catch (BOSException e1) {
e1.printStackTrace();
}
if(isHavePermiss == true)
{
butledMaterialSplit.setEnabled(true);//设置按钮可用
}
}
}
3、给用户添加权限 用 administrator管理员登录