金蝶EAS8.2,WAF2框架,分录中F7字段数据过滤

本文介绍了一种在分录的F7字段中添加过滤条件的方法。通过在对应的F7字段上触发获取焦点事件,可以设置特定的过滤条件。代码示例展示了如何使用JavaScript进行实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下代码示例演示了如何在分录中将F7字段添加过滤条件。

需要在分录对应F7字段添加获取焦点事件,然后添加过滤条件。

核心代码:waf("#entries_" + rowIndex + "_expenseTypeEx").wafPromptStandard("option", "filteritem", filteritem);

注意:expenseTypeEx为实体中属性。


/**************************提示:只允许修改开发区域,其他区域会被覆盖!********************************/
mod.definePage("extend/cp/bc/js/BizAccountOutBill_Edit001",function(waf){
    //@beginUseModule
    var bizCollBillBase = mod.useSync("cp/bc/js/bizCollBillBase");
    var promptExpenseType = mod.useSync("cp/bc/js/promptExpenseType");
    var BizAccountOutBill_Edit = mod.useSync("cp/bc/js/BizAccountOutBill_Edit");
    //@endUseModule
    var _public = {},_private = {},me=_self;
    //@beginPublic
    waf.extend(_public,{
        //控件事件描述:
        expenseTypeEx_onfocus:function(event){
             return _private.expenseTypeEx_onfocus(event);
        }
	    ,
        //控件事件描述:
        expenseTypeEx_onchange:function(event,value){
             return _private.expenseTypeEx_onchange(event,value);
        }
    });
    //@endPublic
    //@beginTemplateFunctions

    //@endTemplateFunctions

    /**************************开发区域开始**********************************************/
    //@beginPrivate
    waf.extend(_private,{

    	// 点击事件,添加过滤条件
    	expenseTypeEx_onfocus:function(event){

            var selectedIds = waf("#entries").dataGrid("getSelectedRows");
            if(selectedIds.length == 0){
                return;
            }
            var selectId = selectedIds[0];
            var filteritem = " number like '010%'"; //过滤条件
            var rowIndex = 1; //当前行号
            var ids = waf("#entries").dataGrid("getDataIDs");
            for (var i = 0; i < ids.length; i++) {
                if(selectId == ids[i]){
                    rowIndex = (i + 1); //比对并确认当前行号
                }
            }
            // 列名后缀取实体中属性
            waf("#entries_" + rowIndex + "_expenseTypeEx").wafPromptStandard("option", "filteritem", filteritem);

        },

        // 值改变事件,标准产品字段赋值
	expenseTypeEx_onchange:function(event,value){

	    var selectedIds = waf("#entries").dataGrid("getSelectedRows");
            if(selectedIds.length == 0){
                return;
            }
            var selectId = selectedIds[0];
            var rowIndex = 1; //当前行号
            var ids = waf("#entries").dataGrid("getDataIDs");
            for (var i = 0; i < ids.length; i++) {
                if(selectId == ids[i]){
                    rowIndex = (i + 1); //比对并确认当前行号
                }
            }
            var expenseType = waf("#entries_" + rowIndex + "_expenseTypeEx").wafPromptBox("getValue");
            if(expenseType && expenseType.id){
            	waf("#entries").dataGrid("setCell", selectId, "expenseType", expenseType); //标准产品赋值
            	waf("#entries").dataGrid("setCell", selectId, "operationType", expenseType.operationType); //标准产品赋值
            }

        }

    });//@endPrivate
    /**************************开发区域结束**********************************************/
    return _public;
});


<think>嗯,用户现在问的是关于金蝶EAS WEB WAF2分录新增方法。首先,我需要确认用户提到的“WAF2”具体指的是什么,因为在金蝶EAS的常见术语中,可能没有直接对应的模块或功能。可能是用户拼写错误,或者是指某个特定的功能模块,比如Web Application Framework的某个版本,或者是其他扩展模块的简称。 接下来,用户提到的“分录新增”应该是指在财务或业务单据中添加新的分录行,比如凭证分录、单据明细等。金蝶EAS作为ERP系统,不同模块的分录新增操作可能有所不同,但通常会有一些通用的步骤和方法。 首先,我需要回忆金蝶EAS的标准操作流程。通常,在Web端,用户进入相应的单据界面,比如会计凭证录入,点击新增按钮创建新单据,然后在分录区域点击“新增分录”或类似的按钮来添加行。用户可能需要填写科目、金额等信息。但用户提到的是“WAF2”,这可能涉及到二次开发或特定配置,因此需要考虑到可能的自定义开发部分。 然后,用户可能是在开发或自定义金蝶EAS的某个功能时遇到了问题,想知道如何在WAF2框架下实现分录的新增方法。如果是开发相关的问题,可能需要参考金蝶EAS的二次开发文档,了解如何在Web界面上通过脚本或API调用新增分录。 此外,用户之前的问题是关于Web端调试事件监听,现在转向金蝶EAS的具体功能,可能用户是开发人员,正在尝试调试或开发金蝶EAS的自定义模块,特别是在处理分录新增时的前端或后端方法。需要确定用户是作为最终用户寻找操作指导,还是作为开发人员需要技术实现方法。 由于“WAF2”不明确,可能需要进一步询问用户具体的上下文,但作为回答,应该涵盖通用情况下的分录新增方法,包括标准操作和可能的开发相关步骤。同时,提醒用户如果涉及二次开发,建议参考官方文档或联系技术支持,因为金蝶系统的自定义部分可能需要特定的知识和权限。 最后,确保回答清晰分步骤,涵盖常见的操作流程和可能的开发方法,同时指出需要进一步澄清的地方,以便用户可以根据具体情况调整。</think>在金蝶EAS的Web端(基于WAF2框架)中,**分录新增**通常是指在财务或业务单据(如凭证、单据等)中新增一行或多行明细记录(分录)。以下是通用的操作方法和可能的实现逻辑: --- ### **一、标准功能操作步骤**(适用于用户界面) 1. **进入目标单据界面** - 例如:财务模块的 **会计凭证录入**,或供应链模块的 **采购订单**。 2. **新增单据** - 点击工具栏的 **新增** 按钮,创建一个空白单据。 3. **新增分录** - 在分录区域(表格行)中,通常有以下方式新增分录: - **点击“增行”按钮**:直接添加空行。 - **按快捷键**:如 `Insert` 键或 `Ctrl+N`(不同单据可能不同)。 - **自动带出分录**:通过选单或引用上游单据自动填充分录。 4. **填写分录信息** - 输入科目、金额、辅助核算等字段,保存单据。 --- ### **二、开发角度:分录新增的实现方法** 若需通过**二次开发**实现分录新增(例如扩展自定义单据),需基于金蝶EASWAF2框架进行编码,步骤如下: #### **1. 前端(Web UI)逻辑** - **按钮绑定事件** 在页面XML或JS中,为“新增分录”按钮绑定事件(如`onclick`),触发新增行操作。 ```javascript // 示例代码(伪代码) function addEntry() { // 获取分录表格对象 var grid = eas.getControl("entryGrid"); // 新增一行 grid.addRow(); } ``` - **动态渲染分录行** 通过WAF2的UI组件(如`BillEditGrid`)动态生成分录行,并绑定数据字段。 #### **2. 后端(Java)逻辑** - **分录实体操作** 分录通常对应一个子实体(如`VoucherEntry`),需在单据保存时处理分录的增删改。 ```java // 示例代码(伪代码) public class MyBill extends AbstractBill { // 获取分录列表 List<VoucherEntry> entries = getEntries(); // 新增分录 VoucherEntry newEntry = new VoucherEntry(); newEntry.setAccount("1001"); // 设置科目 entries.add(newEntry); } ``` - **校验与保存** 在保存单据前,校验分录数据的合法性(如借贷平衡)。 --- ### **三、常见问题与注意事项** 1. **分录字段绑定** - 确保前端分录表格的字段与后端实体属性一一对应。 2. **动态计算** - 若分录金额需自动计算(如单价×数量),需在前端或后端添加计算逻辑。 3. **权限控制** - 检查用户是否有“新增分录”的操作权限(通过EAS权限配置)。 4. **框架限制** - WAF2对UI组件的操作有严格规范,需参考金蝶官方开发文档,避免直接操作DOM。 --- ### **四、调试与排查** - **前端调试**:按 `F12` 打开浏览器控制台,查看新增分录按钮的事件监听及网络请求。 - **后端日志**:通过EAS管理控制台查看服务端日志,定位分录保存时的异常。 --- 如果需要具体的代码示例或针对某类单据(如凭证、出入库单)的详细实现,建议结合 **金蝶EAS二次开发手册** 或联系系统实施顾问获取支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值