电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

单据开发-业务单据Edit界面代码上篇(GUI端)

来源:金蝶云社区作者:金蝶2024-09-165

单据开发-业务单据Edit界面代码上篇(GUI端)

关注公众号获取更多金蝶EAS开发方面的内容

公众号.webp

因论坛版权要求,部分图片无法显示,可以直接方位微信公众号链接

 https://mp.weixin.qq.com/s/t91LiENYO0XmdV9lFhOJ0w

本篇文档介绍业务单据Editt界面的一些常用样式开发


图片

01


新增单据设置默认值



    /**     * 新增单据     */   
  protected com.kingdee.bos.dao.IObjectValue createNewData()
   {
   
       com.kingdee.eas.custom.cost.ExpenseBillInfo objectValue = new com.kingdee.eas.custom.cost.ExpenseBillInfo();
       
       objectValue.setCreator((com.kingdee.eas.base.permission.UserInfo)(com.kingdee.eas.common.client.SysContext.getSysContext().getCurrentUser()));
       //设置空控件默认值   
       
       objectValue.setBizDate(new Date());//设置默认业务日期
       
       objectValue.setBillState(billStateEnum.SAVE);//设置单据状态
       
       UserInfo userInfo = (UserInfo) (SysContext.getSysContext().getCurrentUser());
       objectValue.setApplier(userInfo.getPerson());   //设置报销人        
       return objectValue;
   
  }

说明:

    标准自带的createNewData方法,对objectValue设置相应的属性值即可,该方法只会在单据新增时调用



02


新增分录设置默认值


    /**     * 新增分录行     */    
    protected IObjectValue createNewDetailData(KDTable table)    {
            ExpenseBillEntryInfo info = new ExpenseBillEntryInfo(); // 创建一个分录实体对象        
            info.setAmount(BigDecimal.ZERO);  // 金额默认为0        
            return info;    
    }


说明:

    标准自带的createNewDetailData方法,新增一个分录对象,对象设置属性值,返回对象就可以了,在分录每次新增行时会调用该方法


03


初始化单据按钮


    /**     * 初始化按钮     */    
    protected void initWorkButton() {
          super.initWorkButton();
          btnAudit.setEnabled(true);  //审核按钮可用      
          btnUnAudit.setEnabled(true); //反审核按钮可用      
          chkMenuItemSubmitAndAddNew.setSelected(false); //取消连续新增      
          menuSubmitOption.setVisible(false);//取消连续新增      
          btnCopy.setVisible(false); //隐藏赋值      
          actionCopy.setEnabled(false); //禁用赋值action      
          actionCopy.setVisible(false);     
     }


说明:

    重写标准自带的initWorkButton方法,需要先执行完毕父类的逻辑再执行自己开发的逻辑,所以需要在super加入自定义代码,在界面每次打开时会调用该方法

图片


04


样式设置

    /**     *页面打开     */    
    public void onShow() throws Exception {
            super.onShow();        
            initHeadStyle(); //新增表头样式方法        
            initTableStyle();//新增分录表头样式方法    
     }

说明:

    重写标准自带的onShow方法,需要先执行完毕父类的逻辑再执行自己开发的逻辑,所以需要在super加入自定义代码,在界面每次打开时会调用该方法



05


页面表头样式设置

    /**     * 设置表头样式     */    
    private void initHeadStyle() {      
            //txtnumber 字段可以不用设置,父类中已经对该控件进行了控制,例如启用编码规则后不可修改等      
            pkBizDate.setRequired(true);//设置必填      
            prmtapplier.setRequired(true);//设置必填      
            prmtcompany.setRequired(true);//设置必填      
            prmtdept.setRequired(true); //设置必填      
            txtamount.setRequired(true);//设置必填      
            billState.setEnabled(false); //设置不可修改       
            //设置默认过滤
            // EntityViewInfo view = new EntityViewInfo();  //创建view 用来过滤
            // FilterInfo expenseFilter = new FilterInfo();  //创建filter //用来过滤
            // expenseFilter.getFilterItems().add(new FilterItemInfo("isEnabled",true)); 
            //设置过滤条件 只在展示启用状态的数据
            //        view.setFilter(expenseFilter);// 将filter 放进view
            //        SorterItemCollection sic = new SorterItemCollection(); 
            //设置排序
            //        SorterItemInfo sicItme = new SorterItemInfo("number");
            //设置按照编码排序
            //        sicItme.setSortType(SortType.ASCEND); 
            //设置排序方式
            //    sic.add(sicItme);  
            //    view.setSorter(sic); 
            //排序赋值给 view
            //    prmtcompany.setEntityViewInfo(view);
            // 给公司字段设置过滤    
            }

说明:

    新增initHeadStyle方法,在onShow方法的super后调用,一般用来设置固定的有些属性,例如必填,是否显示,是否必填,以及一些F7的固定过滤

注:

    1、设置的必填只是把单元格的背景色设置为了黄色,单据在保存和提交时不会主动去验证,验证方法需要自己添加。

    2、一些动态的过滤,例如选择了公司之后,过滤部门F7只能选择该公司的下属部门,会在下篇文章中讲解。


06



页面分录样式设置


    
/**
    * 设置分录样式
    */
   
private void  initTableStyle() {
     kdtEntrys.checkParsed(); //解析分录      
     kdtEntrys.getColumn("amount").setRequired(true); //设置必填
     
     kdtEntrys.getColumn("taxRate").setRequired(true); //设置税率必填
     
     kdtEntrys.getColumn("expenseType").setRequired(true); //设置必填
     
     kdtEntrys.getColumn("tax").getStyleAttributes().setLocked(true);  //锁定列 不允许编辑
     
     kdtEntrys.getColumn("id").getStyleAttributes().setHided(true); //隐藏列
     
     String numberFormat = "%r-[=]{#,##0.00}n";
      
      kdtEntrys.getColumn("amount").getStyleAttributes().setNumberFormat(numberFormat);  //分录设置金额字段展示样式
     
     kdtEntrys.getColumn("taxRate").getStyleAttributes().setNumberFormat(numberFormat);//分录设置税率字段展示样式
     
     kdtEntrys.getColumn("tax").getStyleAttributes().setNumberFormat(numberFormat);//分录设置税额字段展示样式
     
     kdtEntrys.getColumn("purpose").getStyleAttributes().setWrapText(true);  //设置自动换行
     
     kdtEntrys.getColumn("purpose").setWidth(200); // 设置列宽
     
     kdtEntrys.getHeadRow(0).getCell("purpose").setValue("费用说明1"); //设置表头显示名字,因存在多表头getHeadRow 需要获取修改第几行表头
   
   
   //动态给分录F7 设置属性以及过滤
   
    kdtEntrys.addKDTEditListener(new KDTEditAdapter() {
     // 跟F7添加监听事件
           
           public void editStarted(KDTEditEvent e) {  
             
             int rowIndex=e.getRowIndex();
           
            int colIndex = e.getColIndex();
             
 

单据开发-业务单据Edit界面代码上篇(GUI端)

关注公众号获取更多金蝶EAS开发方面的内容因论坛版权要求,部分图片无法显示,可以直接方位微信公众号链接 https://mp.weixin.qq.com/s/t91...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信