`
liststyle
  • 浏览: 45836 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

eas KdTable 常用工具类

阅读更多
常用工具类
文章分类:Java编程
1、隐藏分录上面的新增行、插入行、删除行 3个按钮
2、快捷定位到ctrl shift Q
3、初始化F7
4、设置是否有千分位标识符
5、判断分录表中的某一列是否存在空值
6、检查某一列是否重复

package com.kingdee.eas.hicap.mmplan.client;

import java.awt.Component;
import java.util.Set;

import javax.swing.JPanel;

import com.kingdee.bos.BOSException;
import com.kingdee.bos.ctrl.extendcontrols.BizDataFormat;
import com.kingdee.bos.ctrl.extendcontrols.KDBizPromptBox;
import com.kingdee.bos.ctrl.kdf.table.KDTDefaultCellEditor;
import com.kingdee.bos.ctrl.kdf.table.KDTable;
import com.kingdee.bos.ctrl.kdf.util.render.ObjectValueRender;
import com.kingdee.bos.ctrl.swing.KDFormattedTextField;
import com.kingdee.bos.ctrl.swing.KDMenu;
import com.kingdee.bos.dao.IObjectCollection;
import com.kingdee.bos.dao.IObjectValue;
import com.kingdee.bos.framework.DynamicObjectFactory;
import com.kingdee.bos.metadata.IMetaDataLoader;
import com.kingdee.bos.metadata.MetaDataLoaderFactory;
import com.kingdee.bos.metadata.entity.EntityObjectInfo;
import com.kingdee.bos.metadata.entity.EntityViewInfo;
import com.kingdee.bos.metadata.entity.FilterInfo;
import com.kingdee.bos.metadata.entity.FilterItemInfo;
import com.kingdee.bos.metadata.query.util.CompareType;
import com.kingdee.bos.ui.face.CoreUIObject;
import com.kingdee.bos.ui.face.IUIFactory;
import com.kingdee.bos.ui.face.IUIWindow;
import com.kingdee.bos.ui.face.UIException;
import com.kingdee.bos.ui.face.UIFactory;
import com.kingdee.bos.util.BOSObjectType;
import com.kingdee.bos.util.BOSUuid;
import com.kingdee.eas.basedata.master.material.MaterialGroupInfo;
import com.kingdee.eas.basedata.master.material.client.F7MaterialTreeListUI;
import com.kingdee.eas.basedata.org.OrgType;
import com.kingdee.eas.common.client.SysContext;
import com.kingdee.eas.common.client.UIContext;
import com.kingdee.eas.common.client.UIFactoryName;
import com.kingdee.eas.fm.common.client.AbstractHidedMenuItem;
import com.kingdee.eas.framework.client.CoreUI;
import com.kingdee.eas.framework.client.multiDetail.DetailPanel;
import com.kingdee.eas.hicap.mmplan.HicapBillStatusEnum;
import com.kingdee.eas.scm.common.client.GeneralKDPromptSelectorAdaptor;
import com.kingdee.eas.util.SysUtil;
import com.kingdee.eas.util.client.ExceptionHandler;
import com.kingdee.eas.util.client.MsgBox;

public class HiCapClientUtil {
	
	/**
	 * 隐藏分录上面的新增行、插入行、删除行 3个按钮
	 * @param table
	 */
	public static void hideHMDEntryButtons(KDTable table) {
		if (table.getParent() == null || table.getParent().getParent() == null)
			return;
		// 隐藏按钮
		Component c = table.getParent().getParent();
		if (c instanceof DetailPanel) {
			JPanel panel = (JPanel) c;
			// 获取controlPanel
			Component[] components = panel.getComponents();
			for (int i = 0; i < components.length; i++) {
				Component component = components[i];
				if ("controlPanel".equals(component.getName())) {
					component.setVisible(false);
				}
			}
		}
	}

	public static void addSqlMenu(final CoreUIObject uiObject, final KDMenu menu) {
		menu.add(new AbstractHidedMenuItem("ctrl shift Q") {
			public void action_actionPerformed() {
				try {
					IUIFactory fy = UIFactory
							.createUIFactory(UIFactoryName.NEWTAB);
					UIContext uiContext = new UIContext(uiObject);
					IUIWindow wnd = fy.create(
							"com.kingdee.eas.fm.common.client.FMIsqlUI",
							uiContext);
					wnd.show();
				} catch (UIException e) {
					SysUtil.abort(e);
				}
			}
		});
	}

	public static void setCCF7(KDBizPromptBox f7) {
		f7.setQueryInfo("com.kingdee.eas.basedata.org.app.CostCenterItemQuery");		
		f7.setVisible(true);		
		f7.setEditable(true);		
		f7.setDisplayFormat("$name$");		
		f7.setEditFormat("$number$");		
		f7.setCommitFormat("$number$");		
		f7.setRequired(false);		
		f7.setEnabled(true);		
		f7.setForeground(new java.awt.Color(0,0,0));
	}
	
	public static void setWarehouseF7(KDBizPromptBox f7) {
		f7.setQueryInfo("com.kingdee.eas.basedata.scm.im.inv.app.F7AllWarehouseQuery");		
		f7.setVisible(true);		
		f7.setEditable(true);		
		f7.setDisplayFormat("$name$");		
		f7.setEditFormat("$number$");		
		f7.setCommitFormat("$number$");		
		f7.setRequired(false);		
		f7.setEnabled(true);		
		f7.setForeground(new java.awt.Color(0,0,0));
	}
    
	public static void setMaterialF7(CoreUIObject ui, KDBizPromptBox matFrom) {
		matFrom.setEditable(true);
		matFrom.setDisplayFormat("$number$");
		matFrom.setEditFormat("$number$");
		matFrom.setCommitFormat("$number$;$helpCode$");
		GeneralKDPromptSelectorAdaptor selectorLisenterMaterial = null;
		try {
			MaterialGroupInfo info = new MaterialGroupInfo();
			selectorLisenterMaterial = new GeneralKDPromptSelectorAdaptor(
					matFrom,
					new F7MaterialTreeListUI(),
					ui,
					info.getBOSType().toString(),
					"com.kingdee.eas.basedata.master.material.app.F7MaterialInventoryQuery",
					"materialGroup.id", false);
		} catch (Exception e) {
			ExceptionHandler.handle(e);
		}
		selectorLisenterMaterial.setIsMultiSelect(false);
		selectorLisenterMaterial.setQueryProperty("helpCode", "or");
		matFrom.setSelector(selectorLisenterMaterial);
		matFrom.addSelectorListener(selectorLisenterMaterial);
		matFrom
				.setQueryInfo("com.kingdee.eas.basedata.master.material.app.F7MaterialInventoryNoGroupQuery");
	}

	public static void setMaterialCellEditor(CoreUI ui, KDTable tblMain,
			String columnKey) {
		KDBizPromptBox kdtEntrys_material_PromptBox = HiCapClientUtil
				.getMaterialF7ForReportFilterUI(ui);
		KDTDefaultCellEditor kdtEntrys_material_CellEditor = new KDTDefaultCellEditor(
				kdtEntrys_material_PromptBox);
		tblMain.getColumn(columnKey).setEditor(kdtEntrys_material_CellEditor);
		ObjectValueRender kdtEntrys_material_OVR = new ObjectValueRender();
		kdtEntrys_material_OVR.setFormat(new BizDataFormat("$number$"));
		tblMain.getColumn(columnKey).setRenderer(kdtEntrys_material_OVR);
	}

	public static void setNumberCellEditor(CoreUI ui, KDTable tblMain,
			String columnKey) {
		KDFormattedTextField txtStandardPrice = new KDFormattedTextField();
		txtStandardPrice.setName(columnKey);
		txtStandardPrice.setVisible(true);
		txtStandardPrice.setEditable(true);
		txtStandardPrice.setHorizontalAlignment(2);
		txtStandardPrice.setDataType(1);
		txtStandardPrice.setPrecision(4);
		KDTDefaultCellEditor txtStandardPriceCellEditor = new KDTDefaultCellEditor(
				txtStandardPrice);
		tblMain.getColumn(columnKey).setEditor(txtStandardPriceCellEditor);
	}

	public static KDBizPromptBox getMaterialF7ForReportFilterUI(CoreUI ui) {
		KDBizPromptBox kDBizPromptBoxMaterial = new KDBizPromptBox();
		kDBizPromptBoxMaterial.setEditable(true);
		kDBizPromptBoxMaterial.setDisplayFormat("$number$");
		kDBizPromptBoxMaterial.setEditFormat("$number$");
		kDBizPromptBoxMaterial.setCommitFormat("$number$;$helpCode$");
		GeneralKDPromptSelectorAdaptor selectorLisenterMaterial = null;
		try {
			MaterialGroupInfo info = new MaterialGroupInfo();
			selectorLisenterMaterial = new GeneralKDPromptSelectorAdaptor(
					kDBizPromptBoxMaterial,
					new F7MaterialTreeListUI(),
					ui,
					info.getBOSType().toString(),
					"com.kingdee.eas.basedata.master.material.app.F7MaterialInventoryQuery",
					"materialGroup.id", false);
		} catch (Exception e) {
			ExceptionHandler.handle(e);
		}
		selectorLisenterMaterial.setIsMultiSelect(false);
		selectorLisenterMaterial.setQueryProperty("helpCode", "or");
		kDBizPromptBoxMaterial.setSelector(selectorLisenterMaterial);
		kDBizPromptBoxMaterial.addSelectorListener(selectorLisenterMaterial);
		kDBizPromptBoxMaterial
				.setQueryInfo("com.kingdee.eas.basedata.master.material.app.F7MaterialInventoryNoGroupQuery");
		return kDBizPromptBoxMaterial;
	}
	
	public static void viewMaterialReqPlan(CoreUI owner, String billid) throws Exception
	{
		int result = -999; 
		result = MsgBox.showConfirm2New(owner, "物料需求计划已经生成,现在是否需要查看?");
		if(result == 1 || result == 2 )
			return ;
		
		viewBill(owner,billid);
	}

	public static void viewBill(CoreUI owner, String billid)
			throws Exception {
		if (billid == null)
			throw new Exception("idList is null or empty!");
		IMetaDataLoader loader = MetaDataLoaderFactory
				.getRemoteMetaDataLoader();
		BOSObjectType bosType = BOSUuid.read(billid).getType();
		EntityObjectInfo entity = loader.getEntity(bosType);
		String popUi = null;
		UIContext uiContext = new UIContext(owner);
		uiContext.put(OrgType.CostCenter, SysContext.getSysContext()
				.getCurrentCostUnit());
		uiContext.put("ID", billid);
		popUi = entity.getExtendedProperty("editUI");
		UIFactory.createUIFactory(UIFactoryName.MODEL).create(popUi, uiContext,
				null, "VIEW").show();
	}
	
	public static void checkCreateTo(CoreUI ui, Set allSelected)
			throws Exception {
		BOSUuid bosid = BOSUuid.read((String) allSelected.toArray()[0]);

		EntityViewInfo evi = new EntityViewInfo();
		FilterInfo f = new FilterInfo();
		f.getFilterItems().add(new FilterItemInfo("id", allSelected, CompareType.INCLUDE));
		evi.setFilter(f);

		IObjectCollection voCol = DynamicObjectFactory.getRemoteInstance().getCollection(bosid.getType(), evi);
		for (int i = 0; i < voCol.size(); i++) {
			IObjectValue vo = voCol.getObject(i);
			Integer statusValue = (Integer) vo.get("status");
			HicapBillStatusEnum status = HicapBillStatusEnum.getEnum(statusValue.intValue());
			if (status != HicapBillStatusEnum.RAFIFY) {
				MsgBox.showWarning(ui, "没有批准的单据" + vo.getString("number")
						+ "不能关联生成下游单据");
				SysUtil.abort();
			}
		}

	}
	/**
	 * 设置是否有千分位标识符
	 * @author masb
	 * @param txtField
	 * @param falg
	 */
	public static void setGroupingUsed(KDFormattedTextField txtField , boolean falg)
		throws Exception {
		txtField.setGroupingUsed(falg);
	}
	
	/**
	 * 判断分录表中的某一列是否存在空值
     * @author masb
	 * @param kdtEntry
	 * @param colName
	 * @throws BOSException
	 */
	public static void checkTableColumnEmpty(com.kingdee.bos.ctrl.kdf.table.KDTable kdtEntry, String colName)
		throws BOSException {
		for(int i=0 ,n = kdtEntry.getRowCount() ; i<n ; i++){
			Object temp = kdtEntry.getRow(i).getCell(colName).getValue();
			if(temp == null || temp.toString().equals("")){
				MsgBox.showError("第" + (i + 1) + "行的"
                        + kdtEntry.getHeadRow(0).getCell(colName).getValue()
                        + "不能为空");
				SysUtil.abort();
			}
		}
	}
	
	 /**
     * 检查某一列是否重复
     * @param kdtEntry
     * @param colName
     * @throws BOSException
     */
    public static void checkTableColumnRepeat(com.kingdee.bos.ctrl.kdf.table.KDTable kdtEntry, String colName)
            throws BOSException {
        int i = 0;
        for (int n = kdtEntry.getRowCount(); i < n; i++) {
            Object temp = kdtEntry.getRow(i).getCell(colName).getValue();
            for (int j = i + 1; j < n; j++){
                if (temp.equals(kdtEntry.getRow(j).getCell(colName).getValue())){
                	MsgBox.showInfo(kdtEntry.getHeadRow(0).getCell(colName).getValue() + "不能重复,请重新选择!");
                	SysUtil.abort();
                }
            }
        }
    }

}



分享到:
评论

相关推荐

    金蝶EASBOS万能工具类

    金蝶EASBOS万能工具类,在工作空间项目中的构建路径添加即可使用

    EAS KDTable文档

    在金蝶EAS开发时 KDTable里面的设置及支持的范围

    EAS-BOS常用代码

    EAS-BOS常用代码、EAS-BOS常用代码客户端端常用代码

    bos万能工具类

    这是bos开发使用的工具类,大概一千多行代码,包括获取当前组织,用户,自定义编码规则等等等等实用的方法,这是一朋友给我的,我在做金蝶开发的时候,帮了我很多很多!感兴趣的可以下来看看,每个方法都有注释

    金蝶EAS的基本常用语句

    金蝶EAS的基本常用语句,

    EAS自动部署工具

    金蝶BOS开发过程中,会经常进行部署,如果项目部署频繁的话,手动部署会耗费大量精力,我开发的这个工具,只要实现设置好要部署的模块的代码目录及jar文件名,只要恩一个摁钮,就会自动打包,传送文件到服务器。...

    金蝶EAS BOS代码开发常用类.pdf

    金蝶EAS BOS代码开发常用类.pdf 记录了金蝶EAS产品BOS开发常见的一些类及使用方法等等

    EAS-BOS开发要点新版

    EAS BOS 开发要点 新版EAS BOS 开发要点 新版

    金蝶EAS-DEP常用脚本模板.docx

    金蝶EAS-DEP常用脚本模板

    金蝶EAS业务建模工具手册

    这是对eas BOS 的基本介绍 ,适合初学金蝶 二次开发的人员

    EAS服务器性能巡检

    1 EAS系统巡检工具简介 3 1.1 EAS系统巡检工具下载地址 3 1.2 EAS系统巡检工具支持系统说明 3 2 EAS系统巡检工具使用指南 3 2.1 EAS系统巡检工具使用整体流程 3 2.2 EAS系统巡检工具使用明细说明 5 2.2.1 部署 5 ...

    EAS生成数据字典工具

    可通过以上工具生成EAS系统对应的数据字典工具,操作简单方便

    金蝶EAS BOS V5.4客户端常用代码

    金蝶EAS BOS V5.4客户端常用代码

    EAS BOS开发服务端常用代码

    金碟EAS BOS开发服务端常用代码,有兴趣的下载吧。

    EAS控件帮助类

    java-kingdee开发,eas控件帮助类.

    EASBOS客户端常用代码

    1 列表界面常用代码 3 1.1 初始化用户自己定义的查询过滤框(系统默认为每个定义的列表生成了通用过滤框,如果采用系统通用过滤框则不需要实现下面的方法) 3 ...2.2 客户端环境工具类 11 2.3 获取公司行政组织 12

    金蝶EAS开发工具BOS开发参考资料.rar

    本人在从事金蝶二开三年半。现在去创业了。将金蝶开发的资料分享给金蝶的开发同事。希望同事门在这个行业走得越来越远。

    金蝶EAS数据字典爬取工具

    其实金蝶总部有人开发过一个根据meta信息自动爬取生成数据字典的工具.执行附件“索引更新.bat”,指定路径到客户端metas文件夹下就行了,就会自动更新表结构 如“E:\kingdee7.0\eas\client\metas”

    EASBOS服务端常用代码

    1、 提交控制 1 2、 权限检查 4 3、 凭证生成前的控制 6 4、 生成凭证 7 5、 审核操作 8 6、 编码规则 9 7、 如何在服务端执行一段带参数的sql? 10 8、 如何在服务端用带参数的sql取得结果集? 11 ...

    EAS测试许可全套license

    EAS测试许可全套license,免费使用啦,大家快来下载!

Global site tag (gtag.js) - Google Analytics