1 / 4
EAS 序时簿支持快速过滤开发指南
- 在序时簿的Query 中增加快速过滤的字段的扩展属性,该字段出现在快速输入框的下拉条件中(也
可有DEP 中进行修改支持此过滤条件);目前只支持字符串类型,比较类型只支持LIKE。 - 如果需要设置日期条件,需要在Query 主信息上增加扩展属性,名称是bizDateField。增加后序时
簿界面会出现”最近的单据“项,及快速输入框中的日期选择范围,主界面见下图。如果不设置该字段,
则不会出现日期的过滤。
④内部公开 请勿外传
2 / 4 - 序时簿覆盖方法getQuickFilteringSupport,表示支持快速过滤功能。
QuickFilteringSupportItems qfsi = new QuickFilteringSupportItems(true, true);
protected QuickFilteringSupportItems getQuickFilteringSupport(){
return qfsi;
} - 最近的单据或快速过滤的方式下,默认为用户全部有权限的组织范围。如果要支持一个组织,则需
要如下设置。
return qfsi.supportSingleMainOrg();
supportSingleMainOrg()无参数时,系统会自动按默认规则取默认组织。也可以传递一个组织Info,
作为默认组织。 - 增加默认方案的过滤条件。
因为默认方案和通用过滤对话框有区别,即没有”条件“页签的过滤条件,需要在初始化时加入。如供
应链单据示例。
qfsi.getSystemSolutionItem().getDefaultFilter()
//默认主业务组织
.add(“companyOrgUnit.id”, CompareType.EQUALS, BizOrgEnum.DEFAULTMAINORG)
④内部公开 请勿外传
3 / 4
//默认最近一个月日期范围
.add(“bizDate”, CompareType.IS, DateEnum.RECENTONEMONTH);
在不使用枚举的情况下,可以增加任意过滤条件,用法和FilterItemInfo 一样。在没有默认过滤条
件时,选择默认方案时会比较慢。 - 增加日期下拉框的选择项目
FixedPopupItem allItem = new FixedPopupItem(“所有”, null);//第一个是标题,第二个日期的过滤条件
(这里可以是空的)
this.getQuickFilteringSupportManager().getDateRangePopupModel().addLast(allItem);
7.通过自定义来控制快速过滤日期范围下拉框的当前选择项
选择第三个项目,在序时簿的事件处理中调用,
this.getQuickFilteringSupportManager().getDateRangePopupManager().updateSelectedDateRang
eItem(2);
8.不支持主业务组织,此时不会增加有权限主业务组织的过滤条件
QuickFilteringSupportItems qfsi = new QuickFilteringSupportItems(true, true);
protected QuickFilteringSupportItems getQuickFilteringSupport(){
return qfsi.notSupportMainOrgUnitFilter();
}
9.快速过滤子类扩展重新布局,如客商等需要增加额外的面板。
增加快速过滤重新布局调整处理器接口,子类可以自己调整快速过滤的布局
public interface IQuickFilterReLayoutHandler {
/**
- 描述:在调整主面板前加入自己的控件布局调整
- @param bounds 在布局调整后修改bounds 参数用于调整主面板
- 创建时间:2013-3-25
/
public void beforeReLayoutMainPanel(Rectangle bounds);
/* - 描述:如果需要自己处理主面板的布局调整,返回true,否则返回false,由框架处理
- @param mainComponent
- @param bounds
- @return
- 创建时间:2013-3-25
4 / 4
*/
public boolean reLayoutMainPanel(Component mainComponent, Rectangle bounds);
}
子类在需要时实现该接口,实现方法beforeReLayoutMainPanel
实现后需要设置QuickFilteringSupportItems. setQuickFilterReLayoutHandler(…)
10. 首次必须查询(不管是否有下次进入方案及本周方案),需要设置下面的接口
QuickFilteringSupportItems.setMustQueryAtFirst(true);
11.没有任何快速过滤条件时,回车仍执行查询
设置方式,下面的方法supportExecutionWithoutFilters,
private QuickFilteringSupportItems qfsi = new QuickFilteringSupportItems(true, true);
protected QuickFilteringSupportItems getQuickFilteringSupport()
{
return qfsi.supportExecutionWithoutFilters();
}