Как использовать временные переменные в деталях полос? - PullRequest
0 голосов
/ 17 апреля 2019

Я пытаюсь напечатать два набора данных в полосе детализации. В моем первом случае я пытаюсь сгенерировать страницу с двумя наборами данных с дополнительной печатью другого номера страницы, это работает. Теперь я хочу создать страницу с двумя наборами данных с одинаковым номером, но этот номер должен отображаться только в первом наборе данных.

Я попытался установить временную переменную, чтобы я мог сравнить текущее значение моего 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. Чтобы переопределить мое временное значение, я назначил текущее значение lsNr для lsNrOld после всех назначений в конце.

До этого, если (lsNr <> '') я пытался проверить, есть ли lsNr <> lsNrOld. Итак, для первого «цикла» оно должно пройти условие, потому что оно должно быть пустым. Но это не так. Я напечатал значение lsNrOld, и оно вернуло меня так же, как lsNr.

...