Определить текущий MasterData FastReport

koo3mee4
Дата: 11.11.2019 06:25:22
Подскажите как в коде FR "определить текущий MasterData"?
т.е. мне надо задать условие:
если текущий MasterData1, то вх. параметр для SQL запроса=1,
если текущий MasterData2, то вх. параметр для SQL запроса=2.
При этом оба MasterData находятся на 1 странице.
DimaBr
Дата: 11.11.2019 07:46:56
Повесьте ДВА запроса.
wadman
Дата: 11.11.2019 08:04:32
DimaBr
Повесьте ДВА запроса.

Либо два запроса, либо параметр, который меняется в событиях мастера (до/после печати).
koo3mee4
Дата: 11.11.2019 09:25:32
wadman
DimaBr
Повесьте ДВА запроса.

Либо два запроса, либо параметр, который меняется в событиях мастера (до/после печати).

Два запроса - сразу нет. Надо обойтись одним.
Прописываю события:
procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
 fil_id:=1;
end;

procedure MasterData2OnBeforePrint(Sender: TfrxComponent);
begin
  fil_id:=2;
end;

не работает
wadman
Дата: 11.11.2019 09:35:40
koo3mee4
не работает

Запрос остается открытым?
koo3mee4
Дата: 11.11.2019 09:51:19
wadman
koo3mee4
не работает

Запрос остается открытым?

т.е. а какой должен остаться?)
goldmi45
Дата: 11.11.2019 10:16:51
koo3mee4
wadman
пропущено...

Запрос остается открытым?

т.е. а какой должен остаться?)

Если вы меняете входной параметр у датасета, то запрос нужно переоткрыть. Вы переоткрываете запрос?
DimaBr
Дата: 11.11.2019 11:51:13
koo3mee4

Два запроса - сразу нет. Надо обойтись одним.

1. Самый простой вариант - два запроса. На каждый MasterData - собственный
2. Повесить после MasterData например ColumnFooter нулевой высотой и при его печати менять параметр запроса (работает если MasterData не вложенные)
3. Убрать из запроса Параметр и фильтровать в MasterData.Filter
koo3mee4
Дата: 13.11.2019 06:12:38
goldmi45
koo3mee4
пропущено...

т.е. а какой должен остаться?)

Если вы меняете входной параметр у датасета, то запрос нужно переоткрыть. Вы переоткрываете запрос?

Видимо нет) Написал как есть)
А как его переоткрывать?
DimaBr
Дата: 13.11.2019 09:20:24
koo3mee4
А как его переоткрывать?

Dataset.Close;
Dataset.SetNewParam;
Dataset.Open;