如何在明细栏中使用临时变量?

时间:2019-04-17 16:52:46

标签: performance report pascalscript fastreport

我正在尝试在明细栏中打印两个数据集。在我的第一种情况下,我尝试生成一个包含两个数据集的页面,并另外打印不同的页码,这可行。现在,我想生成一个页面,其中包含两个具有相同页码的数据集,但是该数字只能显示在第一个数据集上。

我试图设置一个临时变量,以便可以将frx_rep'xy'的当前值与该变量中保存的旧值进行比较。但是在打印出结果之后,我知道我的临时变量没有设置我想要的值。


procedure bdLieferscheineOnBeforePrint(Sender: TfrxComponent);
var lnr, lsNr, lsDt: String;                                            
begin
  if (Debug) then ShowMessage(Sender.Name);
  with bdLieferscheine, Engine do
  begin
    lsNr := <frx_rep58."MASKENKEY">;
    lnr  := trim(LB_Lieferscheinnummer.text);                        
    lsDt := '';
    if (<frx_rep58."LIEFDATUM"> > 0) then
      lsDt := trim(FORMATDATETIME('dd.mm.yyyy', <frx_rep58."LIEFDATUM">))
    else IF (<frx_rep04."LLTERMIN"> > 0) THEN
      lsDt := trim(FORMATDATETIME('dd.mm.yyyy', <frx_rep04."LLTERMIN">)); 


    if (lsNr <> '') then
    begin
      sLieferscheinnummern := sLieferscheinnummern + lnr + ' ' + lsNr;

      IF (lsDt <> '') THEN
        sLieferscheinnummern := sLieferscheinnummern + ' vom ' + lsDt + CRLF
      else  
        sLieferscheinnummern := sLieferscheinnummern + CRLF;
    end;
  end;                      
end;

那是我的实际代码。我在名为lsNrOld的过程之外声明了一个temp var。为了覆盖我的温度值,我在所有分配结束后将当前的lsNr值分配给了lsNrOld。

在(lsNr <>'')之前,我尝试检查lsNr <> lsNrOld。 因此,对于第一个“循环”,它必须通过条件,因为它应该为空。但事实并非如此。我打印了lsNrOld的值,它和lsNr的返回值相同。

0 个答案:

没有答案