`
忘忧鸟
  • 浏览: 144742 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

F7控件设置过滤条件

    博客分类:
  • BOS
阅读更多

在bos开发中要对f7控件进行甚至过滤条件,有以下几种情况:表头F7控件、分录F7控件(界面纯表格)、分录F7控件(调用基础资料LISTUI,左树右表)

 

 1.表头F7控件

EntityViewInfo entityViewInfo = new EntityViewInfo();
FilterInfo filterInfo = new FilterInfo(); // 建立过滤条件
filterInfo.getFilterItems().add(new FilterItemInfo("deletedStatus", 1, CompareType.GREATER_EQUALS));
entityViewInfo.setFilter(filterInfo);
prmtF7.setEntityViewInfo(entityViewInfo);

 

2. 分录F7控件(界面纯表格)

    与表头F7控件差不多,先获取单元格编辑控件,再进行相应的设置

Object obj = kdtEntrys.getColumn("supplier").getEditor().getComponent();
if(obj instanceof KDBizPromptBox){
	KDBizPromptBox prmtF7 = (KDBizPromptBox)obj;
	EntityViewInfo entityViewInfo = new EntityViewInfo();
	FilterInfo filterInfo = new FilterInfo();
	filterInfo.getFilterItems().add(new FilterItemInfo("deletedStatus",1, CompareType.EQUALS));
	entityViewInfo.setFilter(filterInfo);
prmtF7.setEntityViewInfo(entityViewInfo);
}
 

 3.分录F7控件(调用基础资料LISTUI,左树右表)

   这种情况比较复杂,先查看抽象类生产的代码:

        kdtEntrys_supplier_PromptBox.addSelectorListener(new SelectorListener() {
	com.kingdee.eas.ors.basedata.master.client.ViewPointListUI kdtEntrys_supplier_PromptBox_F7ListUI = null;
	public void willShow(SelectorEvent e) {
if (kdtEntrys_supplier_PromptBox_F7ListUI == null) {
	try {
kdtEntrys_supplier_PromptBox_F7ListUI = new com.kingdee.eas.ors.basedata.master.client.ViewPointListUI();
	} catch (Exception e1) {
e1.printStackTrace();
	}
	HashMap ctx = new HashMap();
	ctx.put("bizUIOwner",javax.swing.SwingUtilities.getWindowAncestor(kdtEntrys_supplier_PromptBox_F7ListUI));
	kdtEntrys_supplier_PromptBox_F7ListUI.setF7Use(true,ctx);
	kdtEntrys_supplier_PromptBox.setSelector(kdtEntrys_supplier_PromptBox_F7ListUI);
}
	}
});

 查看代码发现,左树右表基础资料调用的是基础资料ListUI界面,

kdtEntrys_supplier_PromptBox_F7ListUI.setF7Use(true,ctx);

ctx为Map类型,可以传递各种类型数据,其中可以把过滤条件加入此处,通过查阅 setF7Use方法代码有如下代码:

f7Delegate = new com.kingdee.eas.framework.client.F7Render(this, ctx);

通过反编译可以看到F7Render类为封装类,代码如下:

 public void init()
        throws Exception
    {
        if(ctx != null)
        {
            isF7Use = true;
            f7Filter = (EntityViewInfo)ctx.get("EntityViewInfo");
            if(ctx.get("HasCUDefaultFilter") != null)
            ……

  弄清原由了,可以进行相应的设置.

 

根据业务需求,在F7控件调用时过滤的已禁用的基础资料,而在基础资料列表中又需全部显示以便维护?

经上分析,可以清楚F7控件过滤条件传递过程,现在用另外一方式实现:

假设:基础资料为BaseListUI.ui--->BaseListUI.java BaseEditUI.java

第一步:基础资料BaseListUI.java覆盖抽象类AbstractBaseListUI.java中的setF7Use(true,ctx)方法:

public void setF7Use(boolean isF7Use, HashMap ctx) {
	isF7ListUI = true;//标记是F7控件调用还是基础资料List
	super.setF7Use(isF7Use, ctx);
}

 第二步:过滤ListUI数据,覆盖getDefaultEntityViewInfo()方法:

protected EntityViewInfo getDefaultEntityViewInfo() {
	if(isF7ListUI){
		EntityViewInfo ewinfo = new EntityViewInfo();
		FilterInfo vwFilter = new FilterInfo();
		vwFilter.getFilterItems().add(new FilterItemInfo("deletedStatus",1, CompareType.EQUALS));
		ewinfo.setFilter(vwFilter);
		return ewinfo;
	}else{
		return super.getDefaultEntityViewInfo();
	}
}

 

顺利完成!

通过debug分析,执行类顺序: setF7Use-->getDefaultEntityViewInfo-->onload

分享到:
评论

相关推荐

    BOS V6.2开发指南_控件web

    接下来,文档详细说明了如何通过`<kd:promptBox>`的属性来定义查询、窗口尺寸、多选模式、过滤条件等。 - `queryInfo`定义查询,可以指定查询类。 - `commitFormat`定义提交的格式。 - `popWidth`和`popHeight`定义...

    金蝶eas-dep脚本参考.docx

    4. F7 设置过滤条件:使用JavaImporter()方法导入必要的包,然后使用FilterInfo()方法创建一个过滤器,最后使用pluginCtx.getKDBizPromptBox()方法获取控件并设置过滤条件。 5. 控件(复选框)添加监听器:使用...

    datagrid控件

    - 功能扩展:利用第三方库或自定义控件,增加如过滤、搜索、导出等功能。 总之,datagrid控件是开发中不可或缺的工具,它的强大功能使得数据的展示和管理变得简单易行。无论是在Windows Forms还是ASP.NET平台,都...

    EAS_BOS_开发问题集锦

    14. **F7控件过滤条件**:可以设置F7控件的过滤条件,以限制用户在选择基础资料时看到的选项。 15. **获取实体对象**:通过IObjectPK接口可以获取特定主键值的实体对象,它是BOS中访问数据的关键。 16. **通过id...

    eas供应链dep案例集

    1) 在仓库编辑界面的onLoad()方法中添加后置脚本来重新设置仓管员的F7范围 0.5 单据操作控制修改 EASSCMA1P0073 付款单选择往来户带出业务员 在做付款单时,选择往来户无法带出对应的业务员出来。财务手动添加工作...

    BOS V6.2开发指南_通用过滤

    1. 基本原理...................................................................................5.3 如何设置通用查询中 F7 过滤条件? ..................................................................... 25

    金蝶EAS的基本常用语句

    6. **F7控件数据过滤**:F7控件常用于下拉选择,可以通过编写过滤逻辑来控制显示的内容。例如,根据当前输入值动态筛选出匹配的选项。 7. **赋值操作**:在EAS客户端代码中,赋值是非常常见的操作,例如`字段名 = ...

    云苍穹开发一些实例代码

    //获取其他字段值,重新拼接基础资料过滤条件 ListShowParameter showParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter(); //对于基础资料 直接用.QFilter qFilter = new QFilter(); //.....

    金蝶bos开发问题集

    1. **自定义过滤条件:** 通过BOS开发平台的自定义功能,设置与K3老单据相同的过滤条件对话框。 ##### 如何再次添加新插件 **问题描述:** 用户想知道如何在已有插件的基础上添加新的插件。 **解决方案:** 1. **...

    BOS代码二次开发FAQ

    1.2设置列表界面的默认过滤条件 1.3设置是否在调入列表界面之前先出过滤框 1.4客户端对审核的操作 1.5关联生成 1.6动态调用UI界面,并在UI之间传递变量 1.7关于编码规则 1.8如何得到当前选中行的id 1.9关于数字精度...

    File-CSV-DataSource_4qajs.rar

    1. "feed3dfcac30544d7eb2f7cd494c46ad.txt":可能是一个日志文件或配置文件,记录了程序运行时的信息或者设置。 2. "fileinfo.txt":可能包含了关于项目或文件的详细信息,比如作者、版本、版权信息等。 3. "File_...

    DataGrid增删改查(EasyUI)示例源码

    在IT行业中,DataGrid是一种常见的数据展示控件,尤其在Web开发中,它被广泛用于显示和操作大量的结构化数据。EasyUI是一个基于jQuery的UI库,提供了丰富的组件,其中包括DataGrid,使得开发者能够轻松实现数据的增...

    金蝶 k3 BOS开发百问百答.docx

    7. 填充分录行在 Bos 单据可以使用 F7 查询供应商信息,按 F9 查询采购价格管理信息。 三、多级审核篇 1. 批量审核可以设置为一级审核的 Bos 单据反审核后不能修改。 2. 设置为一级审核的 Bos 单据可以使 ...

    SecrchLineEdit

    提供的文件`ec689f7f00c344948e767c483c9bd828`可能包含了示例代码或资源,用于演示如何创建这样的自定义搜索框。通过阅读和学习这些文件,你可以更好地理解如何在Qt项目中集成自定义搜索框。 总之,自定义搜索框在...

    Sigma Grid

    2.提供单元格直接编辑功能,可以自定义编辑器,为单元格设置数学计算公式,自定义单元格表现方式。 3.提供灵活的表头控制功能比如:锁定表头,排序,拖动调整列宽。 4.支持分页,数据过滤,根据数据生成柱状图,饼状...

    酒店网站源码20130114

    从【压缩包子文件的文件名称列表】:MountainsTops_33092723-51f7-4f95-9f99-47d9f56d6e19来看,虽然具体的文件内容无法直接解析,但通常一个完整的源码包会包含数据库配置文件、页面模板、样式表(CSS)、脚本文件...

    excel常用快捷键大全

    80. **Shift+F6**:在工作表、缩放控件、任务窗格和功能区之间切换。 81. **Shift+Tab**:移动到前一个未锁定的单元格。 82. **Shift+F3**:调出插入函数对话框。 83. **Tab**:移动到下一个单元格。 84. **Ctrl+...

    vs 2005常用快捷键

    在当前文档中进行渐进式搜索,随着输入自动过滤结果。 - `Ctrl+Shift+I`: 反向渐进式搜索。反向搜索,从文档末尾开始匹配。 - `Ctrl+F`: 查找。打开查找对话框,搜索文本。 - `Ctrl+Shift+F`: 在文件中查找。在...

Global site tag (gtag.js) - Google Analytics