Что я не так делаю? Memo.OnBeforePrint
Здравствуйте, уважаемые, вот решился переползать с 2.54 на 3.x
и навскидку не понял что я не так делаю:
скачал демо-сборку FR3 (3.17.6), установил (Delphi7)
открываю Demo - BasicReport - Simple List.
зову дизайнер, щёлкаю, например, по Memo10 (это [Customers."Contact"]) и пишу ему обработчик OnBeforePrint
procedure Memo10OnBeforePrint(Sender: TfrxComponent);
begin
if Copy(Memo10.Text, 1, 1) = 'M' then
Memo10.Color := clRed
else
Memo10.Color := clNone;
end;
ну смысл его очевиден - сделать красный фон для полей, начинающихся с указанной буквы...
на выходе имеем изменённый фон у первого встреченного поля (правильно), и потом у СЛЕДУЮЩИХ за правильными записями (гон).
то есть ощущение такое, что скрипт работает как AfterPrint а не Before...
перенёс скрипт один в один на OnBeforePrint бэнда мастердата - полностью аналогичный эффект.
что не так?
и навскидку не понял что я не так делаю:
скачал демо-сборку FR3 (3.17.6), установил (Delphi7)
открываю Demo - BasicReport - Simple List.
зову дизайнер, щёлкаю, например, по Memo10 (это [Customers."Contact"]) и пишу ему обработчик OnBeforePrint
procedure Memo10OnBeforePrint(Sender: TfrxComponent);
begin
if Copy(Memo10.Text, 1, 1) = 'M' then
Memo10.Color := clRed
else
Memo10.Color := clNone;
end;
ну смысл его очевиден - сделать красный фон для полей, начинающихся с указанной буквы...
на выходе имеем изменённый фон у первого встреченного поля (правильно), и потом у СЛЕДУЮЩИХ за правильными записями (гон).
то есть ощущение такое, что скрипт работает как AfterPrint а не Before...
перенёс скрипт один в один на OnBeforePrint бэнда мастердата - полностью аналогичный эффект.
что не так?
Комментарии
procedure Memo10OnBeforePrint(Sender: TfrxComponent);
begin
if Copy(<Customers."Contact">, 1, 1) = 'M' then
Memo10.Color := clRed
else
Memo10.Color := clNone;
end;
так - работает правильно. действительно, откуда там Text-у взяться в OnBefore...
Вместо Memo10.Text используйте поле Customers."Contact".
Вариант 2:
Для Memo10 в дизайнере установите следующие свойства:
HighLight.Condition=Copy(<Customers."Contact">, 1, 1) = 'M'
HighLight.Color=clRed