Вывод значения из другого набора данных по условию

отредактировано 00:41 Раздел: FastReport 3.0
Здравствуйте!

Помогите, пожалуйста – как реализовать следующую задачу:

Есть два динамически формируемых набора данных (TClientDataSet)
ClientDataSet1:
ID
NAME

ClientDataSer2:
ID
FID
AttrName
Value
В первом наборе данных хранится ID и название какого-то объекта. Второй набора данных – это набор атрибутов объекта из первого набора данных, т.е. ID – ID атрибута, FID – ID объекта, AttrName – название атрибута, Value – значение атрибута. Количество атрибутов может быть разное, включая не одного.

Пример (условно):
ClientDataSet1:
700	Яблоко
800	Огурец
900	Вода

ClientDataSet2:
001	700	Цвет  Красный
002	700	Количество	3
003	800	Цвет  Зеленый
004	800	Количество	5
Как мне в отчете сделать вывод всех строк первого набора данных, со значениями полей из второго набора данных:
Название объекта       Атрибут1       Атрибут2

Пример:
Название       Цвет          Количество
Яблоко          Красный    3
Огурец          Зеленый    5
Вода

Т.е., как бы если в событии Memo, отвечающего за вывод колонки «Цвет», onBeforePrint стоял скрипт:
(условно)
SELECT VALUE FROM ClientDataSet2 WHERE (FID = ClientDataSet1.ID) AND (AttrName = ‘Цвет’)
Спасибо!

Комментарии

  • отредактировано April 2006
    Я так понимаю это обычная мастер-детаил связь? И какие тут проблемы?
    В main демо есть примеры.
  • отредактировано 00:41
    Да, в принципе, это мастер-детаил, но мне нужно выводить не все детаил-записи, а лишь некоторые, удовлетворяющие какому-то условию. И выводить эти данные нужно на бэнде, где выводятся мастер-записи.
  • gpigpi
    отредактировано 00:41
    Попробуйте расположить на MasterData1 SubReport, на котором расположите MasterData2. MasterData2 свяжите с Detail-датасетом. Бэнд MasterData1 должен быть растягиваемым, а SubReport - печататься на бэнде.
    Но всё-таки лучше использовать один набор данных, в котором с помощью JOIN объединить данные обеих таблиц
  • отредактировано 00:41
    Надо попробовать…
    Использовать один набора данных не предоставляется возможным, так как заранее не известно количество подчиненных записей.
    В первом сообщении немного в упрощенной форме я отобразил модель описания объекта и его атрибутов, где есть набор данных - объекты и набор данных - атрибуты этих объектов.
    В отчете же я хочу оставить возможность пользователю выбирать, в каком столбце какой атрибут будет выводиться.

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

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