EAS 常用代码2

来源:互联网 发布:美国ip代理软件 编辑:程序博客网 时间:2024/06/02 02:11
2.1 单据新增代码   如:新增一行付款单   //构造一条付款单信息(构造值对象)   PaymentBillInfo payInfo = new PaymentBillInfo();   payInfo.setNumber(“1001”);   //关联用户   UserInfo userInfo = new UserInfo();   userInfo.setId(BOSUuid.read("867d5df6-00f8-1000-e000-0009c0a81089sysu")); //通过BOSUuid建立实体对象   userInfo.setName(“John”);   userInfo.setNumber(“2000”);   BigDecimal ex = new BigDecimal("343434.445");//建立属性   BigDecimal ex2 = new BigDecimal(12345678901234567.8);//错误   payInfo.setExchangeRate(ex);   payInfo.setCreator(userInfo);   payInfo.setAuditDate(new Date(System.currentTimeMillis()));//时间属性   Timestamp createdate = new Timestamp(System.currentTimeMillis());   payInfo.setCreateDate(createdate);   payInfo.setBizState(BillBizState.create);//枚据属性   payInfo.setSave(true);//Boolean 属性   PaymentBillItemInfo itemInfo = new PaymentBillItemInfo();//建立分录   itemInfo.setLineNo(34);   itemInfo.setAmounts(ex2);    payInfo.getEntries().add(itemInfo);//添加分录   payInfo.getEntries().add(new ErrandTaskItemInfo());//添加分录    调用新增方法进行保存   IPaymentBill iPayBill = PaymentBillFactory.getRemoteInstance();//获取实体   IObjectPK pk = iPayBill.addnew(payInfo);//保存值对象,返回逻辑键,可以通过逻辑键获取值对象(如下)    2.2 单据修改代码   修改一条付款单信息   IPaymentBill iPayBill = PaymentBillFactory.getRemoteInstance();   String id="8b35b903-00f8-1000-e000-0008c0a81089errt";   ObjectUuidPK pk = new ObjectUuidPK(BOSUuid.read(id));//建立逻辑键   PaymentBillInfo payInfo = iPayBill.getValue(pk);//获取值对象;   System.out.println("this:"+ payInfo.getExchangeRate());//获取属性   payInfo.setExchangeRate(ex);//修改属性属性   iPayBill.update(pk, payInfo);//更新数据    2.3 单据删除代码   iPayBill.remove(pk);//通过逻辑键删除单据内容获取集合    2.4 获取集合   CurrencyInfo cur = new CurrencyInfo();   ICurrency c = CurrencyFactory.getRemoteInstance();//建立实体对象   EntityViewInfo evi = new EntityViewInfo();//建立视图信息    FilterInfo i = new FilterInfo();//建立过滤条件   i.getFilterItems().add(new FilterItemInfo("number", "ddff", CompareType.EQUELS));   i.getFilterItems().add(new FilterItemInfo("id", "ddff", CompareType.EQUELS));   i. setMaskString(" (#0 and #1)");   evi.setFilter(i);//添加过滤条件   evi.getSelector().add(new SelectorItemInfo("id"));//添加获取属性   evi.getSelector().add(new SelectorItemInfo("*"));   evi.getSelector().add(new SelectorItemInfo("company.id"));   evi.getSelector().add(new SelectorItemInfo("company.name"));   //三种获取集合方法   1. 获取所有数据:   CurrencyCollection co = c. getCurrencyCollection ();//获取集合   2. 获取满足上述条件的所有数据   CurrencyCollection co = c.getCurrencyCollection(evi);//获取集合   3. 获取满足oql所写的条件的所有数据   CurrencyCollection co = c. getCurrencyCollection (evi);//获取集合    2.5 获取值对象   CurrencyInfo cur = new CurrencyInfo();   ICurrency c = CurrencyFactory.getRemoteInstance();//建立实体对象   String id="8b35b903-00f8-1000-e000-0008c0a81089errt";   ObjectUuidPK pk = new ObjectUuidPK(BOSUuid.read(id));//建立逻辑键   c.getValue(pk); 或 : c.getCurrencyInfo(pk);    2.6 界面之间传递参数   1. 收集父界面要传递给子界面的参数集 HashMap map = new HashMap();   map.put("Owner", this); //必须。被启动UI的父UI对象   map.put("EASMode", new Integer(this.EASMode));   map.put("table", this.accountTablePrompBox.getData());   map.put("cu", currentCtrlUnit);   map.put("auxAccount", this.asstAccountPromptBox.getData());   IUIFactory uiFactory = null;   uiFactory = UIFactory.createUIFactory("com.kingdee.eas.base.uiframe.client.UIModelDialogFactory"); //以模态对话框方式启动   IUIWindow uiWindow = uiFactorycreate("com.kingdee.eas.basedata.master.auxacct.client.AccountSelectUI", /* 被启动对象的类名称 */   map);   uiWindow.show();   2. 在子界面获取传递下来的数据   private void loadContext()   {   int mode = ((Integer)this.getUIContext().get("EASMode")).intValue();   AccountTableInfo accountTableInfo = (AccountTableInfo) this.getUIContext().get("table");   CtrlUnitInfo cuInfo = (CtrlUnitInfo) this.getUIContext().get("cu");   AsstAccountInfo asstAccountInfo = (AsstAccountInfo) this.getUIContext().get("auxAccount");   AuxAccountEditUI ui = (AuxAccountEditUI) this.getUIContext().get("Owner");   }    2.7 给Query传过滤条件   EntityViewInfo evi = new EntityViewInfo();   FilterInfo filterInfo = new FilterInfo(); //建立过滤条件   filterInfo.getFilterItems().add(   new FilterItemInfo("typelink.id", info.getId(),   CompareType.EQUALS));   filterInfo.getFilterItems().add(   new FilterItemInfo("currencyCompany.id", companyID,   CompareType.EQUALS));   filterInfo.setMaskString("#0 and #1 ");   evi.setFilter(filterInfo);   if (mainQuery == null) {   mainQuery = new EntityViewInfo();   }   mainQuery.setFilter(filterInfo); //添加过滤条件   this.execQuery();    2.8 接口方法的访问方式   3. 客户端访问   CurrencyInfo cur = new CurrencyInfo();   ICurrency c = CurrencyFactory.getRemoteInstance();//建立实体对象   c. getCurrencyCollection();   4. 服务端访问   CurrencyInfo cur = new CurrencyInfo();   ICurrency c = CurrencyFactory. getLocalInstance (ctx);//建立实体对象   c. getCurrencyCollection();    2.9 控件的初始化   1.使用枚举给ComboBox控件赋值   public void setReceiveType()   {   this.kDComboBox2.removeAllItems();   List list = new List();   Iterator it = ReceiveType.iterator();   while (it.hasNext())   {   list.add(ReceiveType.getEnum(it.toString()).toString());   }   }   2.使用值对象集合给ComboBox控件赋值   // 获取结算方式列表   IAsstActTypeDefault iAsstActType = AsstActTypeDefaultFactory.getRemoteInstance();   AsstActTypeDefaultCollectioni asstActTypeColl = iAsstActType   .getAsstActTypeDefaultCollection(" where isAccountCussent = 1");   AsstActTypeDefaultInfo defaultVal = null;   int count = asstActTypeColl.size();    Object[] typeValue = new Object[count];   for (int i = 0; i < count; i++)   {   AsstActTypeDefaultInfo value = (AsstActTypeDefaultInfo) asstActTypeColl.get(i);   if (value.isIsDefaultAccountPayable())   {   defaultVal = value;   }   ObjectUuidPK pk = new ObjectUuidPK(BOSUuid.read(value.getAsstActType().getString("id")));   AsstActTypeInfo asstInfo = AsstActTypeFactory.getRemoteInstance().getAsstActTypeInfo(pk);   //cbi[i] = new ComBoxInfo(asstInfo, asstInfo.getName(), true);   String typeName = asstInfo.getName();   String typeId = asstInfo.getId().toString();   String typeQueryName = asstInfo.getDefaultQueryName();   String typeTableName = asstInfo.getRealtionDataObject();   int csType = 0; //asstActTypeInfo.getCsType().getValue();   asstActType = new AsstActTypeUtils(typeName, typeId, typeTableName, typeQueryName, csType);   typeValue[i] = (Object) asstActType;   }   ///String strQueryName = "F7SupplierQuery";   this.kDComAccountCussentType.removeAllItems();   this.kDComAccountCussentType.addItems(typeValue);   this.kDComAccountCussentType.setSelectedIndex(0);    2.10 F7赋值   ObjectUuidPK pk = new ObjectUuidPK(id);   IObjectValue objVal = DynamicObjectFactory.getRemoteInstance().getValue(pk.getObjectTypei(), pk);   bizPrompt.setData(objVal);    private void setCompanyF7()   {   //公司的F7的设置   OrgType[] CompanyType = { OrgType.Company };   //首先定义需要显示那些树,这里只显示财务树   //为F7控件指定PromptBox    this.bizPromptCompany.setEditFormat("$number$");   this.bizPromptCompany.setDisplayFormat("$name$");   this.bizPromptCompany.setEditable(true);   this.bizPromptCompany.setCommitFormat("$number$");   OrgUnitTreePromptBox boxCompany = new OrgUnitTreePromptBox(this, CompanyType, null,   OrgSelect.OnlySelectCompanyEntity, false, false, false);   bizPromptCompany.setSelector(boxCompany);   bizPromptCompany.setData(currentCompany);   bizPromptCompany.setEnabled(false);   }   //设置币别   private void setCurrency() throws EASBizException, BOSException   {   ICurrency iCurrency = null;   CurrencyCollection con = null;   try   {   iCurrency = CurrencyFactory.getRemoteInstance();   con = iCurrency.getCurrencyCollection(true);   }   catch (Exception e)   {   // TODO 自动生成 catch 块   MsgBox.showError(this, EASResource.getString(resClassName, "currencyFail"));   SysUtil.abort();   }   if (con != null)   {   Object[] typeValue = new Object[con.size()];   int j = 0;   for (int i = 0; i < con.size(); i++)   {   CurrencyInfo currencyInfo = (CurrencyInfo) con.get(i);   String typeName = currencyInfo.getName();   String typeId = currencyInfo.getId().toString();   String typeQueryName = currencyInfo.getNumber();   asstActType = new AsstActTypeUtils(typeName, typeId, typeQueryName);   if (asstActType != null)   {   typeValue[i] = (Object) asstActType;   if(typeId.equalsIgnoreCase(((CurrencyInfo)currentCompany.getBaseCurrency()).getId().toString()    ))   {   j = i;   }   }   }   this.bizPromptcurrency.removeAllItems();   this.bizPromptcurrency.addItems(typeValue);   //默认值为当前公司的本位币   this.bizPromptcurrency.setSelectedIndex(j);   }   else   {   MsgBox.showError(this, EASResource.getString(resClassName, "currencyFail"));   SysUtil.abort();   }   }    2.11 设置单据分录单元格格式   // 设置单据分录格式   getDetailTable().getColumn(TB_RELABILL).setWidth(100);   getDetailTable().getColumn(TB_ORGUNIT).setWidth(180);   getDetailTable().getColumn(TB_BIZMAN).setWidth(100);   getDetailTable().getColumn(TB_PAYAMOUNT).setEditor(number_CellEditor); getDetailTable().getColumn(TB_PAYAMOUNT).getStyleAttributes().setNumberFormat("%r-[=]{#.00}f"); getDetailTable().getColumn(TB_PAYAMOUNT).getStyleAttributes().setHorizontalAlign(HorizontalAlignment.RIGHT);    2.12 设置单元格可编辑   for (int i = 0; i < kdtEntrys.getRowCount(); i++)   {   kdtEntrys.getRow(i).getCell("orgUnit").getStyleAttributes().setLocked(false);   kdtEntrys.getRow(i).getCell("bizMan").getStyleAttributes().setLocked(false);   }    //如果折扣金额为null则初始化为0   if (kdtEntrys.getRow(i).getCell("discountAmount").getValue() == null)   {   kdtEntrys.getRow(i).getCell("discountAmount").setValue(new BigDecimal("0.0"));   }   //汇总分录行金额   BigDecimal amount = new BigDecimal("0");   for (int i = 0, n = kdtEntrys.getRowCount(); i < n; i++)   {   amount = amount.add(UIRuleUtil.getBigDecimal(UIRuleUtil.getBigDecimalValue   (kdtEntrys.getCell(i,TB_PAYAMOUNT).getValue())));   }   this.txtTotalAmounts.setText(null);   this.txtTotalAmounts.setEnable(false);   this.txtTotalAmounts.setText(amount);   //和零比较   if (amount.compareTo(new BigDecimal("0.00")) == 0)    2.13 删除行   public void actionDeleteLine_actionPerformed(ActionEvent e)throws Exception {   IRow row = getSelectedRow();   if (row != null) {   kDTable1.removeRow(row.getRowIndex());   }   }    2.14 F7专用选择界面的设置   public void setF7Selector() throws Exception   {   KDBizPromptBox bizPromptBox = new KDBizPromptBox();// 要绑定的F7控件   CoreUIObject ui = null;// 父界面对象   CompanyOrgUnitInfo companyInfo = null; // 当前财务组织   // 客户    bizPromptBox.setSelector(new GeneralKDPromptSelectorAdaptor(bizPromptBox, new F7CustomerTreeDetailListUI(), ui));   // 供应商   bizPromptBox.setSelector(new GeneralKDPromptSelectorAdaptor(bizPromptBox, new F7SupplierTreeDetailListUI(), ui));   // 物料   bizPromptBox.setSelector(new GeneralKDPromptSelectorAdaptor(bizPromptBox, new F7MaterialTreeListUI(), ui));   // 职员   HashMap map = new HashMap();   map.put(PersonF7UI.ALL_ADMIN, "YES");   bizPromptBox.setSelector(new PersonPromptBox(ui, map));   // 公司   CompanyF7 org = new CompanyF7(ui);   org.setRootUnitID("");   bizPromptBox.setSelector(new CompanyF7(ui));   // 成本中心   bizPromptBox.setSelector(new CostCenterF7(ui));   // 行政组织   bizPromptBox.setSelector(new AdminF7(ui));   // 采购组织   bizPromptBox.setSelector(new PurchaseF7(ui));   // 库存组织   bizPromptBox.setSelector(new StorageF7(ui));   // 销售组织   bizPromptBox.setSelector(new SaleF7(ui));   // 利润中心组织   bizPromptBox.setSelector(new ProfitCenterF7(ui));   // 利润中心组织   bizPromptBox.setSelector(new ProfitCenterF7(ui));   // 科目   bizPromptBox.setSelector(new AccountPromptBox(ui, companyInfo, new FilterInfo()));     }    2.15 获取各模块系统状态信息   public void getSystemStatue() throws EASBizException, BOSException   {   CompanyOrgUnitInfo companyInfo = null; // 当前财务组织   // SystemStatusCtrolUtils 工具类可获取各模块系统状态信息,如当前会计期间,系统是否启用或关闭等信息   SystemStatusCtrolUtils.getCurrentPeriod(null/* 上下文信息,如在客户端使用可为null */, SystemEnum.ACCOUNTSPAYABLE, companyInfo/**/);   }    2.16 获取当前登陆信息   public void getSystemInfo()   {   // SysContext工具类可获取当前登陆用户的信息,可根据需要进行调用。   // 举两例如下:   SysContext.getSysContext().getCurrentUserInfo();// 获取当前登陆用户信息   SysContext.getSysContext().getCurrentFIUnit();// 获取当前财务组织   }    2.17 获取参数平台参数设置的示例代码   public void getParam() throws EASBizException, BOSException   {   CompanyOrgUnitInfo companyInfo = null; // 当前财务组织   ObjectUuidPK orgPk = new ObjectUuidPK(companyInfo.getId());   // ParamManager工具类提供了不同的方法获取参数俱,可根据自己的需要进行调用,   // 示例如下:   ParamManager.getParamValue(null/* 上下文信息,客户端调用可以为null */, orgPk, "AR_INIT_CHECK_TYPE");  }     2.18 网络互斥功能示手工控制   public void doMutexService()   {   IMutexServiceControl mutex = MutexServiceControlFactory.getRemoteInstance();   UserInfo user = null; // 请求锁有用户   String billId = null; // 要锁定/解锁的单据Id   // 请求锁定   mutex.requestObjIDForUpdate(billId, user.getString("id"));   // 解除锁   mutex.releaseObjIDForUpdate(billId);   }   Tree:TreeBase(增加parentid级次)   Data:DataBase、BillBase(增加关联关系,对Tree的引用)    2.19 Tree- List实现方法1   protected ITreeBase getTreeInterface() throws Exception   {   return com.kingdee.eas.custom.TreeGroupTestTreeFactory.getRemoteInstance();   }    2.20 Tree-List点击树上结点时形成过滤条件时的字段   如:protected String getQueryFieldName()   {   return "treeid.id";   }    2.21 Tree-树形控件的初始化级次 [optional]   protected int getTreeInitialLevel()    {   return TreeBuilderFactory.DEFAULT_INITIAL_LEVEL;   }    2.22 Tree-树形空间的默认展开级次 [optional]   protected int getTreeExpandLevel()   {   return TreeBuilderFactory.DEFAULT_EXPAND_LEVEL;   }    2.23 Tree-返回树形控件的根名称   protected String getRootName()   {   return "TreeGroupTest";   }    2.24 Tree-数据过滤(重载实现对树的过滤)   getDefaultFilterForTree()方法,是默认的cu过滤条件    2.25 Tree-控件基本使用    2.25.1 初始化树形控件   //treeMain控件名   protected void initTree() throws Exception   {    TreeSelectionListener[] listeners = treeMain.getTreeSelectionListeners();   TreeSelectionListener treeSelectionListener = listeners[0];   treeMain.removeTreeSelectionListener(treeSelectionListener);   ITreeBuilder treeBuilder   = TreeBuilderFactory.createTreeBuilder(getLNTreeNodeCtrl(),getTreeInitialLevel() , getTreeExpandLevel(),getDefaultFilterForTree());   if (getRootName() != null)   {   KDTreeNode rootNode = new KDTreeNode(getRootObject());   ( (DefaultTreeModel) treeMain.getModel()).setRoot(rootNode);   }   else   {   ( (DefaultTreeModel) treeMain.getModel()).setRoot(null);   }   //将数据填入控件中   treeBuilder.buildTree(treeMain);   //增加选择事件   treeMain.addTreeSelectionListener(treeSelectionListener);   }    2.25.2 返回选中的树结点   public KDTreeNode getSelectedTreeNode()   {   return (KDTreeNode) treeMain.getLastSelectedPathComponent();   }     2.25.3 返回树结点的值   return (TreeBaseInfo) ((KDTreeNode)   treeMain.getLastSelectedPathComponent()).getUserObject();    2.25.4 删除类别时刷新当前结点的父结点,并定位到当前结点的父结点。   KDTreeNode treeNode = (KDTreeNode) treeMain   .getLastSelectedPathComponent();   if (treeNode != null && treeNode.getParent() != null)   {   TreePath parentPath = treeMain.getSelectionPath().getParentPath();   KDTreeNode parentNode = (KDTreeNode) treeNode.getParent();   parentNode.remove(treeNode);   treeMain.updateUI();   treeMain.setSelectionPath(parentPath);   treeBuilder.refreshTreeNode(treeMain , parentNode ,this.getDefaultFilterForTree());   treeMain.expandPath(parentPath);   }   //刷新Query数据   CacheServiceFactory.getInstance().discardQuery(this.mainQueryPK);    2.25.5 设置选中根结点    treeMain.setSelectionRow(0);     2.25.6 类别新增与修改时,刷新当前选中结点   KDTreeNode treeNode = (KDTreeNode) treeMain   .getLastSelectedPathComponent();   if (treeNode != null && treeNode.getParent() == null)   {   TreePath oldPath = treeMain.getSelectionPath();   treeBuilder.refreshTreeNode(treeMain , treeNode,this.getDefaultFilterForTree());   treeMain.setSelectionPath(oldPath);   treeMain.expandPath(oldPath);   }      2.25.7 修改类别时刷新当前结点的父结点,并定位到当前结点   KDTreeNode treeNode = (KDTreeNode) treeMain.getLastSelectedPathComponent();   if (treeNode != null && treeNode.getParent() != null)   {   TreePath oldPath = treeMain.getSelectionPath();   TreePath parentPath = treeMain.getSelectionPath().getParentPath();   KDTreeNode parentNode = (KDTreeNode) treeNode.getParent();   treeBuilder.refreshTreeNode(treeMain , parentNode ,this.getDefaultFilterForTree());   treeMain.setSelectionPath(TreePathUtil.getNewTreePath(treeMain ,   treeMain.getModel() , oldPath));   }  

原创粉丝点击