Как задать Custom - сортировку в Cross-tab?

отредактировано 01:40 Раздел: FastReport 4.0
Подскажите, как задать в cross-tab сортировку по названиями месяцев не по алфавите, а в порядке следования: Январь, Февраль, Март...

Спасибо.

Добавить поле с номером в источник данных нельзя. :)

Комментарии

  • отредактировано 01:40
    Получилось: в TfrxDBCrossView добавил еще один столбец, в качестве выражения указываем
    GetM(<Набор_данных."Название_месяца">)
    где GetM - функция в скрипте, вроде этой:
    function GetM(aVal : String) : Integer;
    begin
      case Trim(VarToStr(aVal)) of
        'Январь' : Result := 1;
        'Февраль' : Result := 2;
        'Март' : Result := 3;
        'Апрель' : Result := 4;
        'Май' : Result := 5;
        'Июнь' : Result := 6;
        'Июль' : Result := 7;
        'Август' : Result := 8;
        'Сентябрь' : Result := 9;
        'Октябрь' : Result := 10;
        'Ноябрь' : Result := 11;
        'Декабрь' : Result := 12;
        end;
    end;
    
    Включаем сортировку по этому столбцу (и отключаем сортировку по столбцу <Набор_данных."Название_месяца">). Получаем то, что видим на кртинке.

    Вопрос: а как бы сделать, чтобы в заголовке не печатались "служебная строка", по которой теперь выполняется сортировка столбцов (сформированная выражением GetM(<Набор_данных."Название_месяца">))?

    Спасибо.
  • отредактировано 01:40
    В общем, сделал так: оставил только столбец GetM(<Набор_данных."Название_месяца">)) (т.е. номера месяцев), теперь все сортируется правильно, а чтобы месяцы отображались в виде названий, в OnBeforePrint данной ячейки заголовка подменяю TfrxMemoView(Sender).Memo.Text обратно с циферок на названия месяцев.

    Вопрос: может быть, есть менее геморный метод для задания кастом- сортировки в кросс-табах?
    Ну, или пусть как есть, но, к примеру, задать для такой ячейки свойство невидимости, что ли...

    Наверняка же многие сталкивались: отображение названий дней недели, месяцев, должностей...
    А?
  • отредактировано 01:40
    Отличный здесь форум!

    :)

    Никто не мешает разговору с самим собой.
  • BvoBvo
    отредактировано 01:40
    vlad написал: »
    Отличный здесь форум!
    :)
    Никто не мешает разговору с самим собой.
    Тихое место, где ничто не мешает побыть наедине с самим собой...
    :)
  • отредактировано 01:40
    Лично я для таких целей в базе всегда имею поле не название месяца а ДАТЕ и храню там дату 1.01.2000,1.02.2000 и т.д. а при печати выбираю формат этого поля по шаблону -"ММММ" и все и сортируется как надо январь 1999 раньше чем январь 2000 и т.д. Т.ч. просто оперируйте полем "Дате"

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

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