0

是否有可能使用 OR 条件(使用FILTERGROUP(-1))进行过滤在页面级别不起作用?如果是这样,为什么它不起作用?

我是 MS-Navision 的新手,我试图了解它的下划线编程。在 MS-Navision Cronus-AG DB 中,我基于客户表创建了一个页面。在客户表中,我添加了两个字段(Datefield DateCodeField整数)。创建的页面应仅显示DatefieldOR codefield为空的客户。我使用了两个空变量,称为

date Date 
codefield Code

我尝试在 -Trigger 中使用以下代码OnOpenPage

 CLEAR(date);
 CLEAR(c20);
 
 FILTERGROUP(-1);
 SETFILTER(DateField, '%1', date);
 SETFILTER(CodeField20Old, '%1', c20);
 FILTERGROUP(0); // tried to remove this line, still not working

但是没有设置过滤器,尤其是在 OR-Filter 条件下。但是,如果我使用在 Codeunit 中剪切的相同代码,它的工作方式是正确的。如果我更改FILTERGROUP(-1)FILTERGROUP(2)设置过滤器(使用 AND 条件)。

任何人都可以向我解释这种行为吗?

4

1 回答 1

0

虽然这可能不是您问题的直接答案,但要让您的过滤记录显示在您的页面中,您需要标记每一行,然后只显示标记的行:

FILTERGROUP(-1);
SETFILTER(DateField, '%1', date);
SETFILTER(CodeField20Old, '%1', c20);

IF FindSet() then
  repeat
    Mark(true);
  until Next() = 0;

FILTERGROUP(0);
MarkedOnly(true);
于 2021-06-09T11:42:49.687 回答