Не форматируется дата

отредактировано 21:04 Раздел: FastReport 4.0
Есть поле БД типа date, как сделать чтоб печаталось прописью - 21 октября 2009 года, а не 21 Октябрь 2009

Комментарии

  • dron-sdron-s Россия
    отредактировано 21:04
    в фасте используются системные форматы даты...
    для того чтобы было как вас нужно, можно использовать пользовательские функции
  • dron-sdron-s Россия
    отредактировано 21:04
    если необходимо, могу сделать пример
  • dron-sdron-s Россия
    отредактировано 21:04
    вот пример:
    есть сама функция, которая преобразовывает дату в нужный нам вид
    function MonthToString(AMonth:TDate):string;
    var
      den, mes, god:word;
      mess:string;
    begin
      DecodeDate(now,god,mes,den);
    
      case mes of
      1: mess:='Января';
      2: mess:='Февраля';
      3: mess:='Марта';
      4: mess:='Апреля';
      5: mess:='Мая';
      6: mess:='Июня';
      7: mess:='Июля';
      8: mess:='Августа';
      9: mess:='Сентября';
      10: mess:='Октября';
      11: mess:='Ноября';
      12: mess:='Декабря';
      end;
    
      Result := IntToStr(den) + ' ' + mess + ' ' +IntToStr(god) + ' года';
    end;
    
    далее эту функцию надо зарегистрировать в FR для того чтобы можно было использовать из скрипта
    делается следующим образом
    первоначально нам надо зарегистрировать нашу функцию:
    написал:
    frxReport1.AddFunction('function MonthToString(AMonth:TDate):string');
    делай на событии формы OnCreate
    затем необходимо зарегистрировать к какой категории относится...
    для этого создадим обработчик метода UserFunction у frxReport
    function TForm1.frxReport1UserFunction(const MethodName: String;
      var Params: Variant): Variant;
    begin
    if MethodName = 'MONTHTOSTRING' then
        Result:= MonthToString(Params[0]);
    end;
    
    ну вот и всё, теперь можно использовать нашу функцию в скрипте
    к примеру: размести мемку и в скрипте напиши
    memo1.text := 'Текущая дата: ' + MonthToString(now);
    
    ну и запусти отчёт на просмотр
    на батоне в событии OnClick
    frxReport1.ShowReport();
    
    надеюсь что понятно написал...
    да и в мануле для программера всё это описано...
    удачи..
  • отредактировано 21:04
    :) :) Спасибо за совет, а я уже сам расковырял это, получилось почти тоже что у тебя, только я запихнул свои функции в исходники фаста и перекомпилил их и беру функции прямо в дизайнере
  • dron-sdron-s Россия
    отредактировано 21:04
    Andrei написал: »
    :) :) Спасибо за совет, а я уже сам расковырял это, получилось почти тоже что у тебя, только я запихнул свои функции в исходники фаста и перекомпилил их и беру функции прямо в дизайнере
    я про это даже статью писал
    она так и называется FastReport: работа с пользовательскими функциями
    p.s. молоток что сам разобрался! :)

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

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