Fastreport и хранимые процедуры

отредактировано 08:46 Раздел: FastReport 4.0
Начинаю работать с FastReport, до этого работала плотно с Crystal. Нужно срочно сделать отчет. Проблема такова. На сервере есть хранимая процедура, которая возвращает набор данных по параметрам. Компоненты для доступа к данным третьих лиц. Не могу сообразить как подцепить эту процедуру в отчете и передать параметры на входе выполнения отчета. Если из процедуры сохраняю набор данных в таблицу, а потом делаю отдельно запрос и его кладу в dataSet отчета, все работает. Но не нравится делать лишнюю таблицу, т.к. одновременно разные клиенты могут запускать отчет со своими параметрами.

Комментарии

  • отредактировано 08:46
    Сервер баз данных какой?
  • отредактировано 08:46
    MS SQL Server 2008
  • отредактировано 08:46
    Тогда юзайте TfrxADOComponents. На вкладке Data (Данные) размещаете все необходимое (см. скриншот внизу сообщения). В своем приложении, перед отображением отчета, присваиваете параметрам запроса значения через frxADOComponents1.FindComponent. Примерно так:
    TfrxADOQuery(frxADOComponents1.FindComponent('ADOQuery1')).Params[0] := 1;
    TfrxADOQuery(frxADOComponents1.FindComponent('ADOQuery1')).Params[1] := 124;
    

    Не забудьте проверить на пустышку полученный TfrxADOQuery :)

    Либо пишите свои компоненты доступа к данным для ФастРепорта :)

  • отредактировано 08:46
    спасибо, буду пробовать
  • gpigpi
    отредактировано 08:46
    Для запуска ХП используйте ADOQuery1.ExecSQL

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.