Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / В FastReport скрыть компонент memo! / 8 сообщений из 8, страница 1 из 1
11.01.2018, 12:00:22
    #39582385
Askat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В FastReport скрыть компонент memo!
Delphi XE7 есть встроенный FastReport, но почему то убрали возможность писать код внутри FastReport, думаю ладно, возможно есть внешнее воздействие. И вот нашел возможность, но почему то не работает, комопнент memo не скрывается?))) Не подскажете в чем причина, объявил переменную MyMemo : TfrxMemoView; и пишу: MyMemo := frxReport1.FindComponent('Memo681') as TfrxMemoView;
MyMemo.Visible := False;?

Вот полный код:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
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;
...
Рейтинг: 0 / 0
11.01.2018, 12:02:29
    #39582388
Askat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В FastReport скрыть компонент memo!
кстати листы скрываются, а в от мемо нет!
Код: pascal
1.
2.
3.
4.
5.
6.
var
  MyPage: TfrxPage;
begin
      MyPage := frxReport1.FindComponent('Page11') as TfrxPage;
      MyPage.Visible := False;
end;
...
Рейтинг: 0 / 0
11.01.2018, 12:06:42
    #39582393
Amiri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В FastReport скрыть компонент memo!
Askat,

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

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

if <Таблица1."ЗначениеПоля4">=0 then
Child4.Visible:=false;
...
Рейтинг: 0 / 0
11.01.2018, 12:14:33
    #39582404
Bali
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В FastReport скрыть компонент memo!
Askatкстати листы скрываются, а в от мемо нет!
Так ты их и не скрываешь, поставь MyMemo.Visible := False; после каждого MyMemo := frxReport1.FindComponent('Memo***') as TfrxMemoView;
...
Рейтинг: 0 / 0
11.01.2018, 12:15:13
    #39582406
Askat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В FastReport скрыть компонент memo!
[quote Amiri]Askat,

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

что за child, где это посмотреть?
...
Рейтинг: 0 / 0
11.01.2018, 12:33:15
    #39582433
Askat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В FastReport скрыть компонент memo!
BaliAskatкстати листы скрываются, а в от мемо нет!
Так ты их и не скрываешь, поставь MyMemo.Visible := False; после каждого MyMemo := frxReport1.FindComponent('Memo***') as TfrxMemoView;

Супер! Сработал. Спс!!!
...
Рейтинг: 0 / 0
11.01.2018, 15:32:08
    #39582593
white_nigger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В FastReport скрыть компонент memo!
BaliТак ты их и не скрываешь, поставь MyMemo.Visible := False; после каждого MyMemo := frxReport1.FindComponent('Memo***') as TfrxMemoView;Ну почему же? ТС честно скрывал последнее найденное, практически решил задачу "комопнент memo не скрывается" :))
...
Рейтинг: 0 / 0
11.01.2018, 21:07:08
    #39582828
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В FastReport скрыть компонент memo!
Ужас !!!
Почему бы не написать так ?
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
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);
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / В FastReport скрыть компонент memo! / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]