Параметры FastReport

koo3mee4
Дата: 07.11.2019 13:20:30
в FR есть SQL запрос FILIAL и есть DOCUMENT. В Document передается текущий :DocID. Document возвращает FILIAL. Надо при условии RadioButton1.checked=true в запрос FILIAL передавать параметр FILIAL=1, если RadioButton1.checked=false то <Document."FILIAL">.

пишу:
procedure Button1OnClick(Sender: TfrxComponent);
begin
	if RadioButton1.checked=true
        then FILIAL.Query.Params.ParamByName('filial').AsString:='1'
        else  FILIAL.ParamByName('filial').AsString:= <DOCUMENT."FILIAL">;
end


но что-то не хочет работать, ругается Params не задан.
koo3mee4
Дата: 07.11.2019 13:22:07
Опечатался
procedure Button1OnClick(Sender: TfrxComponent);
begin
	if RadioButton1.checked=true
        then FILIAL.Query.Params.ParamByName('filial').AsString:='1'
        else  FILIAL.Query.Params.ParamByName('filial').AsString:= <DOCUMENT."FILIAL">;
end
DimaBr
Дата: 07.11.2019 14:02:23
Прямо в параметре запроса прописать RadioButton1.Сhecked или что-нибудь посложнее IIF(CheckBox1.Checked,'1','0')
DimaBr
Дата: 07.11.2019 14:02:51
koo3mee4
Дата: 07.11.2019 18:54:39
DimaBr
Прямо в параметре запроса прописать RadioButton1.Сhecked или что-нибудь посложнее IIF(CheckBox1.Checked,'1','0')

У меня много CheckBox-ов получается, плюс условия ещё другие есть и тогда эта формула получится громадная. Поэтому лучше бы это все в коде как-то расписать
DimaBr
Дата: 07.11.2019 22:56:46
koo3mee4

У меня много CheckBox-ов получается, плюс условия ещё другие есть и тогда эта формула получится громадная. Поэтому лучше бы это все в коде как-то расписать

Значит в коде фаста создаёте функцию (например GetParam1) в которой формируете свой результат в зависимости от множества чекетов, а в параметрах ставите соотношение, что первый параметр получает значение из вашей функции
koo3mee4
Дата: 08.11.2019 06:13:51
В итоге:
1 в коде прописал:
var
FILIAL_ID:Integer;

procedure Button1OnClick(Sender: TfrxComponent);
begin
	if RadioButton1.checked=true
        then FILIAL_ID:='1'
        else  FILIAL_ID:= <DOCUMENT."FILIAL">;
end


2 в Params SQL запроса параметр FILIAL_ID

Оказывается все просто было :)
DimaBr
Дата: 08.11.2019 08:00:11
не проще ли параметр прописать ?
IIF(RadioButton1.checked,'1','<DOCUMENT."FILIAL">')
koo3mee4
Дата: 11.11.2019 06:16:56
DimaBr
не проще ли параметр прописать ?
IIF(RadioButton1.checked,'1','<DOCUMENT."FILIAL">')

Если у меня 20 checkbox-ов и еще 20 доп условий, то не проще потому что iif будет громадный и замучаешься в нем потом разбираться