0

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

prePromptModifyContract 方法:

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

this.getFirstQuery()

这里有一个奇怪的混合,我的查询作为属性添加到 Data Provider 类和临时表中。在 processReport 方法中,查询被执行,但范围仅在控制器中设置,所以......确切的流程是什么以及控制器如何使用上面突出显示的行获取对查询的引用?

还有一件事,上述方法调用之间有什么区别?它们目前都可以使用,但是我有什么理由应该使用其中一个吗?

4

1 回答 1

1

第二个问题,方法应该给出相同的结果,除了一些错误测试,所以更喜欢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是上次运行作业时保存的查询(或初始查询,如果从未运行)。在用户看到查询之前,您可以选择更改某些范围或其他内容。

于 2016-01-04T08:50:20.723 回答