Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Параметры FastReport / 9 сообщений из 9, страница 1 из 1
07.11.2019, 13:20
    #39886185
koo3mee4
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Параметры FastReport
в FR есть SQL запрос FILIAL и есть DOCUMENT. В Document передается текущий :DocID. Document возвращает FILIAL. Надо при условии RadioButton1.checked=true в запрос FILIAL передавать параметр FILIAL=1, если RadioButton1.checked=false то <Document."FILIAL">.

пишу:
Код: pascal
1.
2.
3.
4.
5.
6.
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 не задан.
...
Рейтинг: 0 / 0
07.11.2019, 13:22
    #39886187
koo3mee4
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Параметры FastReport
Опечатался
Код: pascal
1.
2.
3.
4.
5.
6.
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
...
Рейтинг: 0 / 0
07.11.2019, 14:02
    #39886214
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Параметры FastReport
Прямо в параметре запроса прописать RadioButton1.Сhecked или что-нибудь посложнее IIF(CheckBox1.Checked,'1','0')
...
Рейтинг: 0 / 0
07.11.2019, 14:02
    #39886216
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Параметры FastReport
...
Рейтинг: 0 / 0
07.11.2019, 18:54
    #39886448
koo3mee4
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Параметры FastReport
DimaBr
Прямо в параметре запроса прописать RadioButton1.Сhecked или что-нибудь посложнее IIF(CheckBox1.Checked,'1','0')

У меня много CheckBox-ов получается, плюс условия ещё другие есть и тогда эта формула получится громадная. Поэтому лучше бы это все в коде как-то расписать
...
Рейтинг: 0 / 0
07.11.2019, 22:56
    #39886515
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Параметры FastReport
koo3mee4

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

Значит в коде фаста создаёте функцию (например GetParam1) в которой формируете свой результат в зависимости от множества чекетов, а в параметрах ставите соотношение, что первый параметр получает значение из вашей функции
...
Рейтинг: 0 / 0
08.11.2019, 06:13
    #39886553
koo3mee4
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Параметры FastReport
В итоге:
1 в коде прописал:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
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

Оказывается все просто было :)
...
Рейтинг: 0 / 0
08.11.2019, 08:00
    #39886568
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Параметры FastReport
не проще ли параметр прописать ?
Код: pascal
1.
IIF(RadioButton1.checked,'1','<DOCUMENT."FILIAL">')
...
Рейтинг: 0 / 0
11.11.2019, 06:16
    #39887283
koo3mee4
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Параметры FastReport
DimaBr
не проще ли параметр прописать ?
Код: pascal
1.
IIF(RadioButton1.checked,'1','<DOCUMENT."FILIAL">')


Если у меня 20 checkbox-ов и еще 20 доп условий, то не проще потому что iif будет громадный и замучаешься в нем потом разбираться
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Параметры FastReport / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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