在Cuba Platform控制器中打开带有过滤器的窗口

马蒂亚斯·哈曼(Matthias Hamann)

我的仪表板上有一些链接,它们链接到myCustomers或allCostomerThatRegisteredYesterday。我已经使用了应用程序文件夹。为了提高可用性,仪表板具有更好的快速链接。

如何使用过滤器调用openWindow(“ screen-id”,WindowType,filterMap?)?

马克西姆·戈本科夫(Maxim Gorbunkov)

您在这里有两个选择:

  1. 您可以使用查询过滤器(请参阅https://doc.cuba-platform.com/manual-6.1/manual.html#datasource_query_filter)。因此,您的数据源定义将如下所示:
    <collectionDatasource id="booksDs"
                          class="com.company.opentest.entity.Book"
                          view="_local">
        <query>
            <![CDATA[select e from opentest$Book e]]>
            <filter>
                <and>
                    <c>e.author.id = :param$bookAuthor</c>
                </and>
            </filter>
        </query>
    </collectionDatasource>

在这种情况下,如果bookAuthor在方法的params参数中传递参数,openWindow则将应用此查询过滤器。

    Map<String, Object> params = new HashMap<>();
    params.put("bookAuthor", author);
    openWindow("opentest$Book.browse", WindowManager.OpenType.NEW_TAB, params);
  1. 如果要使用通用过滤器组件并将预定义的过滤器实体设置为该组件,则它会稍微复杂一些。您必须分析传递给screeninit()方法的参数映射,如果那里有一个特殊参数,则可以sec$Filter通过JPQL查询找到所需的过滤器实体()。然后将此实体设置为过滤器组件(Filter#setFilterEntity(...)),指定过滤器参数(Filter#setParamValue(...))并应用过滤器(Filter#apply())。

setParamValue()方法javadoc和过滤器组件文档中描述了如何获取过滤器参数名称(author84104)

public class BookBrowse extends AbstractLookup {

    @Inject
    private Filter filter;

    @Inject
    private DataManager dataManager;

    private Author bookAuthorParam;

    @Override
    public void init(Map<String, Object> params) {
        super.init(params);
        bookAuthorParam = (Author) params.get("bookAuthor");
    }

    @Override
    public void ready() {
        super.ready();
        if (bookAuthorParam != null) {
            setAuthorFilter(bookAuthorParam);
        }
    }

    private void setAuthorFilter(Author bookAuthor) {
        FilterEntity filterEntity = findFilterEntity();
        if (filterEntity != null) {
            filter.setFilterEntity(filterEntity);
            filter.setParamValue("author84104", bookAuthor);
            filter.apply(false);
        }
    }

    private FilterEntity findFilterEntity() {
        LoadContext<FilterEntity> ctx = new LoadContext<>(FilterEntity.class)
                .setView("app");
        ctx.setQueryString("select f from sec$Filter f where f.componentId = :componentId and f.name = :name")
                .setParameter("componentId", "[opentest$Book.browse].filter")
                .setParameter("name", "By author");
        return dataManager.load(ctx);
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Cuba Platform控制器中打开带有过滤器的窗口

来自分类Dev

CUBA:编辑操作无法打开预期的屏幕

来自分类Dev

CUBA:编辑操作无法打开预期的屏幕

来自分类Dev

CUBA屏幕设计器出现布局问题

来自分类Dev

在Cuba Framework中对嵌套的collectionDatasource进行排序

来自分类Dev

将标签固定在Cuba Platform应用中或防止关闭

来自分类Dev

将标签固定在Cuba Platform应用中或防止关闭

来自分类Dev

CUBA:在框架中动态注入数据源

来自分类Dev

在Ruby的Cuba框架中链接样式表

来自分类Dev

CUBA 平台在 Polymer UI 中获取用户名

来自分类Dev

CUBA平台:编辑器的无效窗口高度从表格动作中以对话框形式打开

来自分类Dev

将带有umlauts(äöü)的值发布到Cuba Portal App Spring MVC Controller

来自分类Dev

如何在CUBA应用程序中轻松更改整体主题?

来自分类Dev

如何在Ubuntu 14中通过localhost:9292绑定Docker容器和cuba进程

来自分类Dev

CUBA:实体继承

来自分类Dev

带有过滤器的GetPivotData

来自分类Dev

带有过滤器的mdChips

来自分类Dev

CUBA:多对多关联的属性

来自分类Dev

ElasticSearch-带有过滤器的自定义分析器-未应用过滤器

来自分类Dev

AngularJS中的控制器和过滤器模块

来自分类Dev

在AngularJS控制器中应用过滤器

来自分类Dev

尝试在所有控制器中应用授权过滤器,但未使用IAuthorizationHandler

来自分类Dev

Rails控制器过滤器在Ruby中具有什么语言功能?

来自分类Dev

CUBA平台如何动态更改字段颜色

来自分类Dev

带有过滤器的Spring数据ElastiSearch聚合

来自分类Dev

带有过滤器Elasticsearch的功能评分

来自分类Dev

雄辩的带有过滤器的复杂查询

来自分类Dev

Python Web抓取带有过滤器的表

来自分类Dev

带有过滤器的Django rest框架API

Related 相关文章

  1. 1

    在Cuba Platform控制器中打开带有过滤器的窗口

  2. 2

    CUBA:编辑操作无法打开预期的屏幕

  3. 3

    CUBA:编辑操作无法打开预期的屏幕

  4. 4

    CUBA屏幕设计器出现布局问题

  5. 5

    在Cuba Framework中对嵌套的collectionDatasource进行排序

  6. 6

    将标签固定在Cuba Platform应用中或防止关闭

  7. 7

    将标签固定在Cuba Platform应用中或防止关闭

  8. 8

    CUBA:在框架中动态注入数据源

  9. 9

    在Ruby的Cuba框架中链接样式表

  10. 10

    CUBA 平台在 Polymer UI 中获取用户名

  11. 11

    CUBA平台:编辑器的无效窗口高度从表格动作中以对话框形式打开

  12. 12

    将带有umlauts(äöü)的值发布到Cuba Portal App Spring MVC Controller

  13. 13

    如何在CUBA应用程序中轻松更改整体主题?

  14. 14

    如何在Ubuntu 14中通过localhost:9292绑定Docker容器和cuba进程

  15. 15

    CUBA:实体继承

  16. 16

    带有过滤器的GetPivotData

  17. 17

    带有过滤器的mdChips

  18. 18

    CUBA:多对多关联的属性

  19. 19

    ElasticSearch-带有过滤器的自定义分析器-未应用过滤器

  20. 20

    AngularJS中的控制器和过滤器模块

  21. 21

    在AngularJS控制器中应用过滤器

  22. 22

    尝试在所有控制器中应用授权过滤器,但未使用IAuthorizationHandler

  23. 23

    Rails控制器过滤器在Ruby中具有什么语言功能?

  24. 24

    CUBA平台如何动态更改字段颜色

  25. 25

    带有过滤器的Spring数据ElastiSearch聚合

  26. 26

    带有过滤器Elasticsearch的功能评分

  27. 27

    雄辩的带有过滤器的复杂查询

  28. 28

    Python Web抓取带有过滤器的表

  29. 29

    带有过滤器的Django rest框架API

热门标签

归档