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