EAS客户端editUi常用代码

复制代码
SQLExecutorFactory.getRemoteInstance("/*dialect*/ ".intern() + sql.toString()).executeSQL();                //只查询不执行,返回的是结果集。
DbUtil.execute(ctx, sql1);           // 执行sql;
this.uiWindow.close();            // 关闭界面
actionExitCurrent_actionPerformed(e);   // 关闭界面.(调用右上角X按钮事件)
Distinct    sql查询时去重复         /*dialect*/ sql方言
fauditTime={ts'"+date+"'}" // BOS  KSQL日期格式
pkDateTo.setDatePattern("yyyy-MM-dd 23:59:59");
this.setUITitle("投保单");                           //设置界面标题(list、edit)
kdtEntrys_detailPanel.setTitle("费用明细");      // 设置分录标题
btnCreateICBill.setText("生成索赔单");      //设置按钮名字
if(getOprtState().equals("VIEW") && UIRuleUtil.isNotNull(getUIContext().get("this"))){
  oEdit = (OutInsuranceManageEditUI)getUIContext().get("this");
    }
this.setPreferredSize(new Dimension(1000,600));    //界面打开的大小
chkMenuItemSubmitAndAddNew.setSelected(false);  //设置提交后是否清空界面
ctx.put("CHECK_DATAPERMISSION", false);//不检查权限
BOSObjectType bosType = BOSUuid.read(sourceId).getType();
kdtEntrys_detailPanel.getAddNewLineButton().setVisible(false);  //设置分录按钮隐藏
MetaDataLoaderFactory.getRemoteMetaDataLoader().getEntity(info.getId().getType()).getTable(); //通过实体获取表名
String tableName = FMIsqlFacadeFactory.getLocalInstance(ctx).getTableNameByBosType(bosType);  //通过BOSType获取表名
kdtable.getRow(i).setChange(true);  //table空白行也保存
OrgSwitchFacadeFactory.getLocalInstance(ctx).orgSwitch(company.getId().toString());  //组织切换(app下代码处理)
this.kDTabbedPane1.setSelectedIndex(0); //指定显示第一个页签
this.prmtCompany.setEnabledMultiSelection(true);     //设置F7多选
prmtsupplier.setQueryInfo("com.kingdee.eas.rj.customersrv.basedata.app.SupplierNewQuery");  设置供应商格式
RjUtils.setSupplierNewF7(prmtsupplier);
UserInfo userInfo = SysContext.getSysContext().getCurrentUserInfo();   // 客户端获取当前登录人
UserInfo userInfo = ContextUtil.getCurrentUserInfo(ctx);    //服务端获取当前登录人
pluginCtx.getKDComboBox("").setSelectedIndex(1);  //DEP枚举默认值的设置
this.kdtEntrys.removeKDTMouseListener(this.kdtEntrys.getSortMange());//屏蔽分录双击排序功能 所有列
tblMain.getColumn(i).setSortable(false); //屏蔽分录双击排序功能 单个
KDTableHelper.autoFitColumnWidth(tblMain, i);  //列宽度自适应
txtNumber.requestFocusInWindow(); //获取鼠标焦点
复制代码
//获取编码规则
ICodingRuleManager ICodingRuleManager = CodingRuleManagerFactory.getLocalInstance(ctx);
String[] DLNumber= ICodingRuleManager.getBatchNumber(new DeviceLedgerInfo(), ContextUtil.getCurrentOrgUnit(ctx).getId().toString(), proInfo.getEntrys().size());
BosUtils.getTableName(ctx, billId)  //根据id获取表名
String requestUrl = UIRuleUtil.getString(ParamManager.getParamValue(ctx,new ObjectUuidPK("00000000-0000-0000-0000-000000000000CCE7AED4"), "requestUrl"));//获取系统参数参数
系统化菜单表:t_bas_sysmenuitem
客户化菜单表:t_pm_mainmenuitem
扩展报表存储表:T_BAS_definereport
复制代码
//分录汇总显示
@Override    
protected void setTableToSumField() {
  super.setTableToSumField(kdtProduction, new String[] {
    "originaValue@#,###.00", "netValue@#,###.00", "tolMonthDepreciable@#,###.00", "monthDepreciable@#,###.00" });
} //合并这两个EntityViewInfo EntityViewInfo view1
= new EntityViewInfo(); EntityViewInfo view2 = new EntityViewInfo(); view1.getFilter().mergeFilter(view2.getFilter(), "and"); //服务端获取当前登陆语言: String nameFld = "FName_" + ctx.getLocale().getLanguage() + " "; //服务端获取获取数据库链接: Connection con = EJBFactory.getConnection(ctx); Statement stmt = con.createStatement();
复制代码

1. 分录汇总F7过滤

复制代码
final KDBizPromptBox kdtPaymentObject_supplier_PromptBox = new KDBizPromptBox();
        kdtPaymentObject_supplier_PromptBox.setQueryInfo("com.kingdee.eas.rj.customersrv.basedata.app.SupplierNewQuery");
        kdtPaymentObject_supplier_PromptBox.setVisible(true);
        kdtPaymentObject_supplier_PromptBox.setEditable(true);
        String suppIDS = "";
        for (int i = 0; i < kdtPaymentObject.getRowCount(); i++) {
            IRow row = kdtPaymentObject.getRow(i);
            SupplierInfo suppInfo = (SupplierInfo) row.getCell("supplier").getValue();
            if (UIRuleUtil.isNotNull(suppInfo)) {
                suppIDS += suppInfo.getId().toString() + ",";
            }
        }
        if (UIRuleUtil.isNotNull(suppIDS)) {
            suppIDS = suppIDS.substring(0, suppIDS.length() - 1);
        }
        EntityViewInfo ev = new EntityViewInfo();
        FilterInfo filter = new FilterInfo();
        filter.getFilterItems().add(new FilterItemInfo("id", suppIDS, CompareType.NOTINCLUDE));
        ev.setFilter(filter);
        kdtPaymentObject_supplier_PromptBox.setEntityViewInfo(ev);
        kdtPaymentObject_supplier_PromptBox.setDisplayFormat("$number$");
        kdtPaymentObject_supplier_PromptBox.setEditFormat("$number$");
        kdtPaymentObject_supplier_PromptBox.setCommitFormat("$number$");
        KDTDefaultCellEditor kdtPaymentObject_supplier_CellEditor = new KDTDefaultCellEditor(kdtPaymentObject_supplier_PromptBox);
        this.kdtPaymentObject.getColumn("supplier").setEditor(kdtPaymentObject_supplier_CellEditor);
        ObjectValueRender kdtPaymentObject_supplier_OVR = new ObjectValueRender();
        kdtPaymentObject_supplier_OVR.setFormat(new BizDataFormat("$name$"));
复制代码

 2.分录中一项变化带出另一项

复制代码
    @Override 
    protected void kdtEntrys_editStopped(KDTEditEvent e) throws Exception {
        super.kdtEntrys_editStopped(e);
        int rowIndex = kdtEntrys.getSelectManager().getActiveRowIndex();
        if(e.getColIndex()==kdtEntrys.getColumnIndex("expenseItem")){
            ExpenseItemDataInfo itemInfo = (ExpenseItemDataInfo) kdtEntrys.getCell(rowIndex,"expenseItem").getValue();
            kdtEntrys.getCell(rowIndex,"expenseType").setValue(com.kingdee.bos.ui.face.UIRuleUtil.getString(com.kingdee.bos.ui.face.UIRuleUtil.getProperty((com.kingdee.bos.dao.IObjectValue)kdtEntrys.getCell(rowIndex,"expenseItem").getValue(),"treeid.name")));
            //ExpenseItemDataTreeInfo treeInfo = ExpenseItemDataTreeFactory.getRemoteInstance().getExpenseItemDataTreeInfo("where id='"+itemInfo.getTreeid().getId().toString()+"'");
            //kdtEntrys.getCell(rowIndex,"expenseType").setValue(treeInfo.getName());}}
        }
    }
复制代码

3.分按钮监听

kdtPaymentObject_detailPanel.addRemoveListener(new IDetailPanelListener() {
            public void afterEvent(DetailPanelEvent paramDetailPanelEvent) throws Exception {
                claimantTotal();
            }

            public void beforeEvent(DetailPanelEvent paramDetailPanelEvent) throws Exception {
            }
        });

4.分录行统计

@Override 
    protected void setTableToSumField() {
        super.setTableToSumField();
        setTableToSumField(kdtEntrys, new String[] { "insuranceAmount", "**" });
    }

5.编辑界面刷新数据

复制代码
public void refreshSelf() {
        if (STATUS_ADDNEW.equals(this.oprtState)) {
            return;
        }
        try {
            ObjectUuidPK pk = new ObjectUuidPK(editData.getId());
            IObjectValue objValue = getValue(pk);
            setDataObject(objValue);
            loadFields();
            getUIContext().put(UIContext.ID, pk);
            getUIContext().put(UIContext.INIT_DATAOBJECT, objValue);
        } catch (Exception e) {
            handUIException(e);
        }
    }
复制代码

6.关闭窗口

    @Override
    public boolean destroyWindow() {
        return super.destroyWindow();
    }

7.分录上添加按钮

复制代码
// 调用方法
    public void onLoad() throws Exception {
        super.onLoad();
        addButtonToHMDEntry(getDetailTable(), btnAudit);
    }
    
    /**    
     * 在KDTable添加button     
     * @param table     
     * @param button     
     */    
    public static void addButtonToHMDEntry(KDTable table, KDWorkButton button) {
        if (table.getParent() == null || table.getParent().getParent() == null)
            return;
        // 隐藏按钮
        Component c = table.getParent().getParent();
        if (c instanceof DetailPanel) {
            JPanel panel = (JPanel) c;
            JPanel controlPanel = null;
            // 获取controlPanel
            Component[] components = panel.getComponents();
            for (int i = 0; i < components.length; i++) {
                Component component = components[i];
                if ("controlPanel".equals(component.getName())) {
                    controlPanel = (KDPanel) component;
                }
            }
            // 添加btn
            if (controlPanel != null) {
                controlPanel.add(button, new com.kingdee.bos.ctrl.swing.KDLayout.Constraints(table.getWidth() - 140, 5, button.getWidth(), 19, 9));
                // 9=1+8上右固定,左边缩放
            }
        }
    }
复制代码

8.关闭eas页面时校验是否修改的提示 

    @Override
    public boolean checkBeforeWindowClosing() {
        return true;
    }

9.获取EAS产品网络网络互斥锁

    public void test(Context ctx) {
        IMutexServiceControl mutexServiceControlDao = MutexServiceControlFactory.getLocalInstance(ctx);
        boolean request = mutexServiceControlDao.requestObjIDForUpdate(saleOrderId);
        // EAS产品互斥锁
        if (!request) {
            throw new ZBException(ZBException.CUSTOM, new Object[] { "数据占用中不允许操作!" });
        }
    }

 

复制代码
private void writeBackSaleBill(Context ctx, String saleBillId, Timestamp timestamp, VerifyCapitalEnum verifyCapitalEnum, String companyId) throws BOSException, EASBizException {
        Connection con = null;
        Statement stm = null;
        BOSUuid uuid = BOSUuid.read(saleBillId);
        BOSObjectType objectType = uuid.getType();
        StringBuffer updSql = new StringBuffer();
        try {
            con = this.getConnection(ctx);
            stm = con.createStatement();
            EntityObjectInfo entity = MetaDataLoaderFactory.getMetaDataLoader(ctx).getEntity(objectType);
            String tableName = entity.getTable().getName();
            updSql.append(" /*dialect*/ ");
            updSql.append(" UPDATE " + tableName + " SET ");
            updSql.append(" FCompanyOrgUnitID = '" + companyId + "', ");
            updSql.append(" FVerifyCapital  = " + verifyCapitalEnum.getValue() + ", ");
            updSql.append(" FLastUpdateTime = SYSDATE  ");
            updSql.append(" WHERE FID ='" + saleBillId + "' ");
            updSql.append(" AND FLastUpdateTime = TO_TIMESTAMP('" + timestamp + "', 'yyyy-mm-dd hh24:mi:ss.ff6')");
            int result = stm.executeUpdate(updSql.toString());
            if (result != 1) {
                throw new ZBException(ZBException.CUSTOM, new Object[] { "更新数据异常,数据已经发生修改!!" });
            }
        } catch (SQLException exc) {
            logger.error(exc);
            exc.printStackTrace();
            throw new ZBException(ZBException.CUSTOM, new Object[] { exc.getMessage() });
        } finally {
            SQLUtils.cleanup(stm, con);
        }
    }
复制代码

10.根据单据id找到单据的相关信息(实体,表,ui等)

 private void writeBackSaleBill(Context ctx, String billid) throws BOSException, EASBizException {
        BOSUuid id = BOSUuid.read(billId);
        BOSObjectType type = id.getType();
        IMetaDataLoader loader = MetaDataLoaderFactory.getRemoteMetaDataLoader();
        EntityObjectInfo vo = loader.getEntity(type);
        String editUi = vo.getExtendedProperty("editUI");

    }

 

posted @   凉了记忆  阅读(133)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示