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

Откуда:
Сообщений: 64
Есть MasterData1 с Query1 и DetailData1 c Query2.
На MasterData1.PrintIFDetailEmpty=true.
Но надо чтобы MasterData1.PrintIFDetailEmpty=true при условии что Query1.Check текущей записи равно 1.
Т.е. когда Query1.Check возвращает 0, то запись в MasterData1 должна отображаться если DetailData1 пуст;
а когда Query1.Check возвращает 1, то запись в MasterData1 не должна отображаться если DetailData1 пуст.
Подскажите как такое условие прописать?
14 ноя 21, 20:53    [22395965]     Ответить | Цитировать Сообщить модератору
 Re: FastReport PrintIFDetailEmpty  [new]
gpi
Member

Откуда: г. Волноваха, Украина
Сообщений: 725
procedure PageHeader1OnBeforePrint(Sender: TfrxComponent);
begin
  MasterData1.Dataset.Open;
  MasterData1.PrintIfDetailEmpty := <Query1."Check"> = 1; // надо чтобы MasterData1.PrintIFDetailEmpty=true при условии что Query1.Check текущей записи равно 1 
//а здесь обратное условие
//Т.е. когда Query1.Check возвращает 0, то запись в MasterData1 должна отображаться если DetailData1 пуст;
//а когда Query1.Check возвращает 1, то запись в MasterData1 не должна отображаться если DetailData1 пуст.
end;

procedure MasterData1OnAfterPrint(Sender: TfrxComponent);
begin
  MasterData1.PrintIfDetailEmpty := <Query1."Check"> = 1;  
end;
15 ноя 21, 12:19    [22396124]     Ответить | Цитировать Сообщить модератору
 Re: FastReport PrintIFDetailEmpty  [new]
koo3mee4
Member

Откуда:
Сообщений: 64
Прописал и так:
procedure PageHeader1OnBeforePrint(Sender: TfrxComponent);
begin
  MasterData1.Dataset.Open;
  MasterData1.PrintIfDetailEmpty := <Query1."Check"> = 1;
end;

procedure MasterData1OnAfterPrint(Sender: TfrxComponent);
begin
  MasterData1.PrintIfDetailEmpty := <Query1."Check"> = 1;  
end;

и так:
procedure PageHeader1OnBeforePrint(Sender: TfrxComponent);
begin
  MasterData1.Dataset.Open;
  MasterData1.PrintIfDetailEmpty := <Query1."Check"> = 0;
end;

procedure MasterData1OnAfterPrint(Sender: TfrxComponent);
begin
  MasterData1.PrintIfDetailEmpty := <Query1."Check"> = 0;  
end;

и так:
procedure PageHeader1OnBeforePrint(Sender: TfrxComponent);
begin
  MasterData1.Dataset.Open;
  MasterData1.PrintIfDetailEmpty := <Query1."Check"> = 1;
  MasterData1.PrintIfDetailEmpty := <Query1."Check"> = 0;
end;

procedure MasterData1OnAfterPrint(Sender: TfrxComponent);
begin
  MasterData1.PrintIfDetailEmpty := <Query1."Check"> = 1;  
end;

никак не работает. Реагирует только если принудительно включить/отключить "Печать, если Detail пуст" на самом бэнде.
15 ноя 21, 14:41    [22396211]     Ответить | Цитировать Сообщить модератору
 Re: FastReport PrintIFDetailEmpty  [new]
gpi
Member

Откуда: г. Волноваха, Украина
Сообщений: 725
procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
    MasterData1.Visible := <Query1."Check"> = 1;    
end;

begin
  MasterData1.PrintIfDetailEmpty := True;
end.
15 ноя 21, 15:41    [22396240]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить