Memo-объекты поверх кросс-таблицы

zhitonzhiton Светловодск
отредактировано 07:18 Раздел: FastReport 3.0
у меня проблема: необходимо построить отчёт, что-то похожее на расписание (загруженность кабинетов)
строится кросс-таблица:
________|___1.12___|___2.12__|___3.12__|___4.12___|
________ |1 _|2 _|3 _|1 _|2 _|3 _|1 _|2 _|3 _|1 _|2 _|3 _|
7:00 ____|___|__|___|___|__|___|__|__|___|___|__|___|
7:30 ____|___|__|___|___|__|___|__|__|___|___|__|___|
8:00 ____|___|__|___|___|__|___|__|__|___|___|__|___|
8:30 ____|___|__|___|___|__|___|__|__|___|___|__|___|
9:00 ____|___|__|___|___|__|___|__|__|___|___|__|___|
9:30 ____|___|__|___|___|__|___|__|__|___|___|__|___|


надо графически, разными цветами отображать загруженность кабинетов в зависимости от промежутков их занятости
у меня сейчас строится сначала кросс-таблица, а потом поверх таблицы рисуются с соответствующими координатами Memo-объекты
Проблема в том, что если временной период большой (кросс-таблица на нескольких страницах), то отрисовка Memo-объектов продолжает происходить на первой странице.
Определяю, когда на первой странице заканчивается место, но как указать FR,
что дальше Memo-объекты надо рисовать наследующей странице
Всё реализовано в коде дизайнера.
Очень нужна помощь!!!

Комментарии

  • отредактировано 07:18
    Смотрите "Руководство пользователя" -> "Управление кросс-таблицей из скрипта" http://www.fast-report.com/ru/documentatio...3user/index.htm
  • zhitonzhiton Светловодск
    отредактировано 07:18
    Вы хотите сказать, что можно было бы это рассписание строить заливкой в разный цвет определённых ячеек?
    Но мне надо потом эти ячейки объединить, чтобы была как одна (рабочий день разбит на 33 интервала(по полчаса), каждый сотрудник может работать с перерывами, в разных кабинетах и рабочие интервалы состоят из нескольких получасовых интервалов. Для отображения занятости кабинета ячейки придётся объединить и выводить ещё в этой объединённой ячейке фамилию работника)
    Вот так...
  • отредактировано 07:18
    Да.
    Вместо объединения можно в том же событии убирать часть рамки у ячейки, получится что-то вроде объединения.
    procedure Cross1OnPrintCell(Memo: TfrxMemoView; RowIndex, ColumnIndex, CellIndex: Integer; RowValues, ColumnValues, Value: Variant);
    begin
    if RowIndex = 2    then
    Memo.Frame.typ := ftleft + fttop;
    end;
    
  • zhitonzhiton Светловодск
    отредактировано 07:18
    Я всё так сначала и делала, в смысле просто ячейки заливала определённым цветом (убирать часть рамки у ячейки тоже думала ), но в этом варианте нет возможности выводить фамилию сотрудника - я вертикально делать могу, а как сделать, чтобы текст, который не влазит в Мемо-объект (Cell) выводился дальше на "территорию" других ячеек кросс-таблицы (рабочий интервал должен выделяться цветом и содержать фамилию сотрудника, который занимает определённый кабинет в определённое время)
  • отредактировано 07:18
    Сделать автоматическое разбиение текста не получится но, можно разбивать строку пополам, затем первую часть выводить в одну ячейку (убрав часть рамки) с выравниванием haRight,а вторую часть текста в следующию ячейку(тоже убрать часть рамки) с выравниванием haLeft.
  • zhitonzhiton Светловодск
    отредактировано 07:18
    Я вот думаю, разбивку делать даже не на две части, а по количеству букв в фамилии (высчитать сколько букв влазит в ячейку), а то может получится, мягко говоря, некрасиво

    Спасибо Вам БОЛЬШОЕ!!! ... за всё

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

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