【问题标题】:ADF: how to remove values set to the view criteriaADF:如何删除设置为视图标准的值
【发布时间】:2019-02-25 10:44:05
【问题描述】:

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

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

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

现在我需要重置查看条件并将新值设置为姓名或年龄。

我使用以下代码重置查看条件:

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


    【解决方案1】:

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

    在您的用例中,由于您在 vo.applyViewCriteria(vc, true);

    中传递的布尔值,不会删除以前的视图标准

    第二个参数设置为布尔值,允许您保留或删除之前设置的查看条件。

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

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

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

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

    更多信息,请参考文档或以下教程:https://cedricleruth.com/how-to-apply-a-viewcriteria-programmatically-in-adf/

    【讨论】:

    • 我尝试了代码,但仍然遇到同样的问题。为查看条件设置的值如果之前已设置,则仍然存在。
    • 这不应该,你确定你没有再次设置值吗?
    • 似乎 applyViewCriteria(vc, false) 清除了现有的已应用视图标准列表并仅应用当前的,而在我的情况下只有一个视图标准,我只想清除以前的项目查看标准。
    • 您能否在您的问题中添加您查看标准的屏幕截图?您是否使用绑定变量来设置值?如果是这样,我会写另一个关于如何清除视图标准的先前值的答案。
    • 我在问题中添加了如何更新查看标准的详细信息。请审查。
    【解决方案2】:

    试试这个:

    vo.setApplyViewCriteriaName(null);
    vo.executeQuery();
    

    然后设置您的新标准并绑定变量。过去一直为我工作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-04
      • 1970-01-01
      • 2015-01-24
      相关资源
      最近更新 更多