Cross+

отредактировано 00:15 Раздел: FastReport 2.xx VCL
Необходимо сделать отчет с переменным числом столбцов,
пусть это будут ученики с оценками по предметам (число предметов неизвестно).
Делаю это так:
запрос по справочнику предметов (ЗапросП),
запрос по ученикам (ЗапросУ),
запрос по результату (ЗапросР - параметры ЗапросП.id, ЗапросУ.id)
Располагаю бэнды:
MasterHeader
MasterData (datasource - ЗапросУ)
CrossData (datasources: MasterHeader - ЗапросП, MasterData - ЗапросР).

Результаты:
Математика Физика
Иванов 3
Петров 4
А хотелось бы
Математика Физика
Иванов 3 4
Петров 4 5

Помогите! Не знаю уже, что и думать...
P.S. Cross-tab object - не подходит

Комментарии

  • отредактировано 00:15
    adim написал:
    Необходимо сделать отчет с переменным числом столбцов,
    пусть это будут ученики с оценками по предметам (число предметов неизвестно).
    Делаю это так:
    запрос по справочнику предметов (ЗапросП),
    запрос по ученикам (ЗапросУ),
    запрос по результату (ЗапросР - параметры ЗапросП.id, ЗапросУ.id)
    Располагаю бэнды:
    MasterHeader
    MasterData (datasource - ЗапросУ)
    CrossData (datasources: MasterHeader - ЗапросП, MasterData - ЗапросР).

    Результаты:
    Математика Физика
    Иванов 3
    Петров 4
    А хотелось бы
    Математика Физика
    Иванов 3 4
    Петров 4 5

    Помогите! Не знаю уже, что и думать...
    P.S. Cross-tab object - не подходит
    попробуйте, использовать вместо запросов ЮзерДатаСеты: для учеников и для оценок, я так понимаю, в выборке для оценок есть коды предметов, связывайте эти коды с запросом по предметам и выводите наименование предмета ( в обработчике OnGetValue )в отдельной переменной, которая стоит на пересечении MasterHeader и CrossData.
    MasterData - UserDataSet(ученики)
    CrossData(datasources: MasterHeader - переменная наименования предмета
    MasterData - UserDataSet(оценки)
  • отредактировано 00:15
    Спасибо за ответ, Geraf!
    Но не мог ты объяснить, как это сделать с помощью запросов непосредственно в дизайнере FastReport (ADOQuery)?
    Требуется именно так, а не иначе...
  • отредактировано 00:15
    Sorry! Конечно, я хотел сказать "не могли БЫ Вы объяснить"
  • отредактировано 00:15
    )
    к сожалению с (ADOQuery) не работал((
  • отредактировано 00:15
    НЕУЖЕЛИ никто не знает как это делается? Поделитесь опытом!

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

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