Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 В FastReport скрыть компонент memo!  [new]
Askat
Member

Откуда:
Сообщений: 477
Delphi XE7 есть встроенный FastReport, но почему то убрали возможность писать код внутри FastReport, думаю ладно, возможно есть внешнее воздействие. И вот нашел возможность, но почему то не работает, комопнент memo не скрывается?))) Не подскажете в чем причина, объявил переменную MyMemo : TfrxMemoView; и пишу: MyMemo := frxReport1.FindComponent('Memo681') as TfrxMemoView;
MyMemo.Visible := False;?

Вот полный код:
procedure TDocForm.PrintCheck;
var
  MyPage: TfrxPage;
  MyMemo : TfrxMemoView;
begin
  if not frxReport1.LoadFromFile(ExtractFilePath(Application.ExeName) + 'Reports\PrintChecks.fr3') then
  begin
    Application.MessageBox(PChar('Не найден файл отчета "' + ExtractFilePath(Application.ExeName) + 'Reports\PrintChecks.fr3' + '"!'), nil, MB_OK or MB_ICONERROR);
    Exit;
  end;
  try
    with frxReport1 do
    begin
      odsChecks.Close;
      odsChecks.SetVariable('NOMER', DocDS.FieldByName('doc_id').AsInteger);
      odsChecks.Open;
      Variables.Items[Variables.IndexOf('sum_string')].Value := '''' + SumToString(odsChecks.FieldByName('SUMMAF').AsFloat) + '''';
      Variables.Items[Variables.IndexOf('resident')].Value := FloatToStr(odsChecksRESIDENT.Value);
                      
      if odsChecksCOMMUNAL_SIGN.Value = 0 then
      begin
        MyMemo := frxReport1.FindComponent('Memo566') as TfrxMemoView;
        MyMemo := frxReport1.FindComponent('Memo567') as TfrxMemoView;
        MyMemo := frxReport1.FindComponent('Memo568') as TfrxMemoView;
        MyMemo := frxReport1.FindComponent('Memo569') as TfrxMemoView;
        MyMemo := frxReport1.FindComponent('Memo570') as TfrxMemoView;
        MyMemo := frxReport1.FindComponent('Memo571') as TfrxMemoView;
        MyMemo := frxReport1.FindComponent('Memo572') as TfrxMemoView;
        MyMemo := frxReport1.FindComponent('Memo573') as TfrxMemoView;
        MyMemo := frxReport1.FindComponent('Memo574') as TfrxMemoView;
        MyMemo := frxReport1.FindComponent('Memo575') as TfrxMemoView;
        MyMemo := frxReport1.FindComponent('Memo576') as TfrxMemoView;
        MyMemo := frxReport1.FindComponent('Memo577') as TfrxMemoView;
        MyMemo := frxReport1.FindComponent('Memo578') as TfrxMemoView;
        MyMemo := frxReport1.FindComponent('Memo579') as TfrxMemoView;
        MyMemo := frxReport1.FindComponent('Memo580') as TfrxMemoView;
        MyMemo := frxReport1.FindComponent('Memo581') as TfrxMemoView;
        MyMemo := frxReport1.FindComponent('Memo582') as TfrxMemoView;
        MyMemo := frxReport1.FindComponent('Memo679') as TfrxMemoView;
        MyMemo := frxReport1.FindComponent('Memo680') as TfrxMemoView;
        MyMemo := frxReport1.FindComponent('Memo681') as TfrxMemoView;
        MyMemo.Visible := True;
      end
      else
      begin     
        MyMemo := frxReport1.FindComponent('Memo566') as TfrxMemoView;
        MyMemo := frxReport1.FindComponent('Memo567') as TfrxMemoView;
        MyMemo := frxReport1.FindComponent('Memo568') as TfrxMemoView;
        MyMemo := frxReport1.FindComponent('Memo569') as TfrxMemoView;
        MyMemo := frxReport1.FindComponent('Memo570') as TfrxMemoView;
        MyMemo := frxReport1.FindComponent('Memo571') as TfrxMemoView;
        MyMemo := frxReport1.FindComponent('Memo572') as TfrxMemoView;
        MyMemo := frxReport1.FindComponent('Memo573') as TfrxMemoView;
        MyMemo := frxReport1.FindComponent('Memo574') as TfrxMemoView;
        MyMemo := frxReport1.FindComponent('Memo575') as TfrxMemoView;
        MyMemo := frxReport1.FindComponent('Memo576') as TfrxMemoView;
        MyMemo := frxReport1.FindComponent('Memo577') as TfrxMemoView;
        MyMemo := frxReport1.FindComponent('Memo578') as TfrxMemoView;
        MyMemo := frxReport1.FindComponent('Memo579') as TfrxMemoView;
        MyMemo := frxReport1.FindComponent('Memo580') as TfrxMemoView;
        MyMemo := frxReport1.FindComponent('Memo581') as TfrxMemoView;
        MyMemo := frxReport1.FindComponent('Memo582') as TfrxMemoView;
        MyMemo := frxReport1.FindComponent('Memo679') as TfrxMemoView;
        MyMemo := frxReport1.FindComponent('Memo680') as TfrxMemoView;
        MyMemo := frxReport1.FindComponent('Memo681') as TfrxMemoView;
        MyMemo.Visible := False;
      end;

   //
    end;
  finally

    if CHECK_ID = 1 then
    begin
      MyPage := frxReport1.FindComponent('Page11') as TfrxPage;
      MyPage.Visible := True;
      frxReport1.PrintOptions.ShowDialog := False;
      frxReport1.PrepareReport;
      frxReport1.Print;
    end
    else

      if CHECK_ID = 3 then
    begin
      MyPage := frxReport1.FindComponent('Page4') as TfrxPage;
      MyPage.Visible := True;
      frxReport1.PrintOptions.ShowDialog := False;
      frxReport1.PrepareReport;
      frxReport1.Print;
    end;

  end;
end;
11 янв 18, 12:00    [21096436]     Ответить | Цитировать Сообщить модератору
 Re: В FastReport скрыть компонент memo!  [new]
Askat
Member

Откуда:
Сообщений: 477
кстати листы скрываются, а в от мемо нет!
var
  MyPage: TfrxPage;
begin
      MyPage := frxReport1.FindComponent('Page11') as TfrxPage;
      MyPage.Visible := False;
end;
11 янв 18, 12:02    [21096445]     Ответить | Цитировать Сообщить модератору
 Re: В FastReport скрыть компонент memo!  [new]
Amiri
Member

Откуда: Pakistan
Сообщений: 716
Askat,

воткнть на каждое поле по Child и скрывать Child, а не Memo (у каждого Child нужно поставить PrintChildifInvisible в True) :

if <Таблица1."ЗначениеПоля2">=0 then
Child2.Visible:=false;

if <Таблица1."ЗначениеПоля4">=0 then
Child4.Visible:=false;
11 янв 18, 12:06    [21096469]     Ответить | Цитировать Сообщить модератору
 Re: В FastReport скрыть компонент memo!  [new]
Bali
Member

Откуда:
Сообщений: 50
Askat
кстати листы скрываются, а в от мемо нет!

Так ты их и не скрываешь, поставь MyMemo.Visible := False; после каждого MyMemo := frxReport1.FindComponent('Memo***') as TfrxMemoView;
11 янв 18, 12:14    [21096523]     Ответить | Цитировать Сообщить модератору
 Re: В FastReport скрыть компонент memo!  [new]
Askat
Member

Откуда:
Сообщений: 477
[quote Amiri]Askat,

воткнть на каждое поле по Child и скрывать Child, а не Memo (у каждого Child нужно поставить PrintChildifInvisible в True) :

что за child, где это посмотреть?
11 янв 18, 12:15    [21096525]     Ответить | Цитировать Сообщить модератору
 Re: В FastReport скрыть компонент memo!  [new]
Askat
Member

Откуда:
Сообщений: 477
Bali
Askat
кстати листы скрываются, а в от мемо нет!

Так ты их и не скрываешь, поставь MyMemo.Visible := False; после каждого MyMemo := frxReport1.FindComponent('Memo***') as TfrxMemoView;


Супер! Сработал. Спс!!!
11 янв 18, 12:33    [21096605]     Ответить | Цитировать Сообщить модератору
 Re: В FastReport скрыть компонент memo!  [new]
white_nigger
Member

Откуда: Тула
Сообщений: 1882
Bali
Так ты их и не скрываешь, поставь MyMemo.Visible := False; после каждого MyMemo := frxReport1.FindComponent('Memo***') as TfrxMemoView;
Ну почему же? ТС честно скрывал последнее найденное, практически решил задачу "комопнент memo не скрывается" :))
11 янв 18, 15:32    [21097917]     Ответить | Цитировать Сообщить модератору
 Re: В FastReport скрыть компонент memo!  [new]
DimaBr
Member

Откуда:
Сообщений: 10651
Ужас !!!
Почему бы не написать так ?
procedure ShowMemos(Arr: array of string; V: boolean);
var i: integer;
     M: TfrxMemoView;
begin
  for i := 0 to High(Arr) do begin
     M := frxReport1.FindComponent(Arr[i]) as TfrxMemoView;
     if Assigned(M) then M.Visible := V;
  end;
end;


.........

ShowMemos(['Memo566','Memo567','Memo568',.....],odsChecksCOMMUNAL_SIGN.Value = 0);
11 янв 18, 21:07    [21099034]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить