OnBeforePrint - не понял

отредактировано 16:34 Раздел: FastReport 3.0
Есть мноого полей, в которых надо -1 заменить на х
Почему это работает
procedure Memo61OnBeforePrint(Sender: TfrxComponent);
begin
  if value='-1' then
    Memo61.text:='x';
end;

А это нет
procedure Memo61OnBeforePrint(Sender: TfrxComponent);
begin
  if value='-1' then
    TfrxMemoView(Sender).text:='x';
end;
Неужели надо писать для каждого поля отдельно!?

Комментарии

  • dron-sdron-s Россия
    отредактировано October 2005
    pasko
    можно попробывать через перебор компонентов
    for i:=0 to ComponentCount-1 do
     if Components[i] is TfrxMemoView then
        begin
          (Components[i] as TfrxMemoView).lines.add('dfd');
        end;
    но как это реализовать в скрипте фаста не т пока представлений ;)
  • отредактировано 16:34
    Попробуйте использовать событие
    procedure Memo61OnAfterData(Sender: TfrxComponent);
    begin
    SetXValue(  TfrxMemoView (Sender ));
    end;
    
    procedure SetXValue( m : TfrxMemoView );
    begin
    if m.Value = '-1' then
      m.Text := 'x';
    end;
  • отредактировано 16:34
    написал:
    Почему это работает

    CODE 
    procedure Memo61OnBeforePrint(Sender: TfrxComponent);
    begin
    if value='-1' then
      Memo61.text:='x';
    end;


    Вообще то, по утверждениям разработчиков (
    http://www.fast-report.com/en/forum/?p=/discussion/2259
    ), мемка Memo61 в рантайме в скрипте недоступна и такая запись должна где-то чего-то портить
  • отредактировано 16:34
    2vlad_galaxy
    Спасибо! Работает.

Оставить комментарий