Как ограничить запрос?

отредактировано October 2011 Раздел: FastReport 4.0
Ограничить запрос?
Ситуация следующая использую FR4 + delphi 2007. Создал отчет в дизайнере. см рис
FYjTCdsC.jpg

Использую два запроса. 1 выбирает информацию для всего отчета (то что обведено зеленым)
2 выбирает информацию список приборов (обведено красным) каким образом можно показать 2 му запросу что необходмио брать информацию только для id 2 (обведено зеленым)

Куда над вписать where datamaster1.id1 = damaster2.id1 непосредственно в FS (в запросе уже есть связь)

Необходимо отображать список приборов для 2 и список приборов для 4.

select id1,namepole,data,fio from proverka
select id2,id1,namepribor from spisok_pribrov where proverka.id1 = spisok_pribrov.id1
ps это примерные запросы

На данным момент отображается для 2 и для 4 одно и тоже(

сорри если не ясно выразился(((

Комментарии

  • отредактировано 16:48
    В sql-запросе детайла прописать where spisok_pribrov.id1 = :id1
    и в свойсте Master выбрать датасет соответствующий proverka
  • отредактировано 16:48
    Спасибо, за быстрый ответ!! будем пытаться решить вопрос!
  • отредактировано October 2011
    Надо было упомянуть, что соединение с базой (mysql) делается с помощью компонента zeosdbo, а сами запросы непосредственно на форме delphi (не в FR). В FR есть потоки данных frxdbdataset1 (инфа для всего отчета) и frxdbdataset2 (для списка приборов). В принципе проблема то понятная, но как решить ее пока не ясно. Во втором запросе, необходимо, поставить параметр where spisok_pribrov.id1 = :id1 , где :id1 это параметр берущейся из первого запроса т.е. id1=2, тогда все будет работать.
    У меня пока одна идея это сделать хранящуюся процедуру в mysql (хотя их ни разу не делал). Будем думать...
    Вроде ж просто, подскажите, пожалуйста, другой вариант решения. Если он конечно есть.

    PS надо было начинать изучать ADO...
  • отредактировано 16:48
    nepodarok написал: »
    Надо было упомянуть, что соединение с базой (mysql) делается с помощью компонента zeosdbo, а сами запросы непосредственно на форме delphi (не в FR). В FR есть потоки данных frxdbdataset1 (инфа для всего отчета) и frxdbdataset2 (для списка приборов). В принципе проблема то понятная, но как решить ее пока не ясно. Во втором запросе, необходимо, поставить параметр where spisok_pribrov.id1 = :id1 , где :id1 это параметр берущейся из первого запроса т.е. id1=2, тогда все будет работать.
    У меня пока одна идея это сделать хранящуюся процедуру в mysql (хотя их ни разу не делал). Будем думать...
    Вроде ж просто, подскажите, пожалуйста, другой вариант решения. Если он конечно есть.

    PS надо было начинать изучать ADO...
    В Делфи эти датасеты завязываются через компоненту TDataSource, тогда в фасте ничего прописывать не надо
  • отредактировано October 2011
    Решение проблемы было как всегда намного проще чем казалось. Ну первое это конечно спасиб LadySahck, что направила в нужное русло, ну и конечно не обошлось без прочтение хелпа (не даром говорят что изучение необходимо начинать именно с хелпа --- "отчет с двумя уровнями данными"). Там все ясно расписанно единственное, что могу подметить это делалось не для table2 а для query2, т.е. для запроса (в моем случии второго). Необходимо было установить для query2 параметр mastersource=query1, а так же залинковать linkedfields=proverka.id1, masterfields=spisok_pribrov.id1.

    Можно закрывать))

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

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