0

在我的回答中,有 2 行与“。”不同。并将因此打印出来,并应增加“myCounter”。
但是在 myCounter 中的两个打印输出中 1 都没有增加......

function R_G_cnFormatTrigger return boolean is
myCounter number :=0;
begin
  -- Automatically Generated from Reports Builder.
  if (mod(myCounter,2) = 0)
  then
    srw.set_foreground_fill_color('gray8');
    srw.set_fill_pattern('solid');
  else
    srw.set_foreground_fill_color('');
    srw.set_fill_pattern('transparant');
  end if;
 if(:CP_WAYBILL_NO <> '.')
    then
        myCounter:=(myCounter+1);
        srw.message(123,'myCounter:'||myCounter);
        return true;
    else
        return false;
 end if;
end;
4

1 回答 1

1

当你打印myCounter它时,它总是等于1,对吧?这是因为你return true;在结尾if(:CP_WAYBILL_NO <> '.')

当您return在函数中使用时,它会中断执行。myCounter是一个局部变量,所以它的值不会被记住。

myCounter您可以尝试使用全局变量创建包或myCounter从/向临时表读取/写入。

于 2013-01-03T13:21:47.013 回答