在控制器中获取查询

Get query in controller

我在我的控制器中有这两个版本的获取查询 class,

prePromptModifyContract 方法:

this.parmReportContract().parmQueryContracts().lookup(this.getFirstQueryContractKey())

this.getFirstQuery()

这里有一个奇怪的问题,我的查询作为属性添加到数据提供程序 class 以及临时 table。在 processReport 方法中执行查询,但范围仅在控制器中设置,所以...确切的流程是什么以及控制器如何使用上面突出显示的行获取对查询的引用?

还有一点,上述方法调用之间有什么区别?它们目前都可以工作,但有什么理由我应该使用一个而不是另一个吗?

第一个问题,除了一些错误测试,方法应该给出相同的结果,所以更喜欢getFirstQuery

怎么看?阅读代码:

protected final Query getFirstQuery()
{
    Query firstQuery;
    Map   queryContractsMap = this.getReportContract().parmQueryContracts();
    str   firstQueryKey = this.getFirstQueryContractKey();    
    if (queryContractsMap && firstQueryKey && queryContractsMap.exists(firstQueryKey))
        firstQuery = queryContractsMap.lookup(firstQueryKey);
    return firstQuery;
}

我不确定你第一个问题的意思,确切的流程。

但是,作为用户,您可以更改提示中的查询。 processReport中的查询应该是用户提供的查询。

prePromptModifyContract 中的查询是来自作业的最后一个 运行 的已保存查询(或者初始查询,如果从来没有 运行)。在用户看到查询之前,您可以选择更改某些范围或其他内容。