ADF:如何删除设置为视图条件的值

问题描述 投票:1回答:2

我正在使用Jdev 11g进行开发。

现在问题是:每次我有新值时,我都无法更新视图条件的值。

例如,有一个视图标准VC,其中包含2个标准名称和年龄。我已设置name的值并执行SQL以获取结果。

现在我需要重置视图条件并将新值设置为name或age。

我使用以下代码重置视图条件:

vo.removeViewCriteria(viewCriteriaName);
ViewCriteria vc= vo.getViewCriteria(viewCriteriaName);
vc.reset();

//update the view criteria
ViewCriteriaRow vcr = (ViewCriteriaRow)vc.first();
ViewCriteriaItem vci = vcRow.getCriteriaItem(attributeName);
vcItem.setOperator(SearchServiceConstants.IN);

//get the values here
vci.setValues(values);
vcr.setConjunction(vcRow.VC_CONJ_AND);

vo.applyViewCriteria(vc, true);
vo.executeQuery();

但是视图标准中仍然存在一个影响SQL结果的绑定变量。

我想要的是一个干净的视图标准,它没有任何绑定数据。

有人能帮忙吗?谢谢!

java oracle-adf
2个回答
0
投票

如果我正确理解了这个问题,那么您正在询问如何在删除所有先前设置的视图条件值时将视图条件应用于视图对象。

在您的用例中,由于您在vo.applyViewCriteria(vc,true)中传递的布尔值,因此不会删除先前的视图条件;

第二个参数布尔值设置为允许您保留或删除以前设置的View标准。

见:https://docs.oracle.com/cd/E23943_01/apirefs.1111/e10653/oracle/jbo/ViewObject.html#applyViewCriteria(oracle.jbo.ViewCriteria,%20boolean)

将视图条件应用于此视图对象。如果bAppend为true,则视图标准将附加到已应用的视图条件列表中。如果bAppend为false,则在应用传递的视图条件之前,将清除应用的视图条件列表。参数:criteria - 要应用的视图条件bAppend - 用于指示在应用视图条件之前是否需要清除应用的视图条件列表的标志。

在您的情况下,您只需要java函数中的以下两行:

vo.applyViewCriteria(vc, false);
vo.executeQuery();

有关更多信息,请参阅以下教程的dock:qazxsw poi


0
投票

试试这个:

https://cedricleruth.com/how-to-apply-a-viewcriteria-programmatically-in-adf/

然后设置新条件并绑定变量。过去总是为我工作

© www.soinside.com 2019 - 2024. All rights reserved.