Можно ли воспользоваться SQL запросом для Fast Report?
Или передать значение переменных из скрипта в Select Query при вызове отчета?
Нравится
"Прищепа Владимир" написал:Или передать значение переменных из скрипта в Select Query при вызове отчета?
Конечно можно Передача параметра в отчет FastReport и фильтрация
Но мне не нужно передавать параметры в FastReport и фильтровать Dataset.
Мне нужно либо воспользоваться данными SQL запроса, либо построить запрос в Select Query.
"Прищепа Владимир" написал:Мне нужно либо воспользоваться данными SQL запроса, либо построить запрос в Select Query.
На событии fr_frDateOnPreview отчета FR, фильтруете данные, устанавливаете переменные в SQ
К SelectQuery датасета Dataset можно обратиться Dataset.SelectQuery
function fr_frDateOnPreview(ReportPreviewer) { var DatasetNameStr = "ds_frDate"; //датасет в котором мы хотим делать фильтр по дате (необходимо помнить о том, что у отчета может быть несколько датасетов) var str = ReportPreviewer.DatasetUSIList.CommaText; //в строчке ReportPreviewer.DatasetUSIList.CommaText передаются USI датасетов, через запятую var ReportDatasetUSI = str.substr(str.indexOf(DatasetNameStr), DatasetNameStr.length); var Dataset = ReportPreviewer.DatasetByUSI(ReportDatasetUSI); var val = GetAttribute(ReportPreviewer.Report,'TestDate'); ApplyDatasetFilter(Dataset, 'MyDate', val, true); }
Гм..
То есть, если я напишу так:
Dataset.SelectQuery.Моя переменная = 100, то в SelectQuery смогу использовать "Моя переменная" и она будет равна 100?
Или я могу использовать в SelectQuery переменную val из предыдущего примера?
Посмотрите на реализацию фукции ApplyDatasetFilter в scr_DB
SetParameterValue(Dataset.SelectQuery.Parameters, FilterName, ParamValue);
Что бы стало как вы хотите "Dataset.SelectQuery.Моя переменная = 100" :
SetParameterValue(Dataset.SelectQuery.Parameters, 'Моя переменная', 100);
это если "Моя переменная" - Integer (float)
Ф-ия SetParameterValue с scr_DB, т.е scr_DB должен быть подключен к скрипту