Отформатировать дату в измерении
Не получается отформатировать дату в измерении или в фильтре при
создании среза.
Делаю так
AIndex := AddFieldTo('date_edit', 'Дата закрытия', rf_CapYAx);
CapYFields[AIndex].DisplayFormat.Kind:=fkDateTime;
CapYFields[AIndex].DisplayFormat.FormatStr:='dd.mm.yyyy';
или так
AIndex := AddFieldTo('day', 'Дата платежа', rf_Page, af_None, ''); // область фильтра
SliceFields[AIndex].CubeField.DisplayFormat.FormatStr := 'dd.mm.yy';
всё выходит в формате типа 0:00 07.02.2012
Если делать как в примерах поиском конкретных полей после запроса то смена формата работает.
Хотелось бы узнать как сразу в срезе надо делать.
создании среза.
Делаю так
AIndex := AddFieldTo('date_edit', 'Дата закрытия', rf_CapYAx);
CapYFields[AIndex].DisplayFormat.Kind:=fkDateTime;
CapYFields[AIndex].DisplayFormat.FormatStr:='dd.mm.yyyy';
или так
AIndex := AddFieldTo('day', 'Дата платежа', rf_Page, af_None, ''); // область фильтра
SliceFields[AIndex].CubeField.DisplayFormat.FormatStr := 'dd.mm.yy';
всё выходит в формате типа 0:00 07.02.2012
Если делать как в примерах поиском конкретных полей после запроса то смена формата работает.
Хотелось бы узнать как сразу в срезе надо делать.
Комментарии
Несколько моментов, касающихся формата вывода значения:
1. При создании поля куба (TfcCubeField) формат устанавливается в соответствии с типом. Свойства берутся из TfcCube.DefaultFormat.
2. При создании поля региона (TfcFieldOfRegion) формат устанавливается как в базовом поле куба (TfcCubeField).
3. При переносе поля между регионам происходит уничтожение поля региона и создание его в новом регионе.
4. Изменение формата в поле куба не меняет формат в созданных полях региона.
5. При выводе в осях используется формат из поля региона.
6. При выводе в списке фильтра используется формат из поля куба.
Самый правильный путь - присвоить нужный формат полю куба до формирования схемы.
Или одновременно изменить его и в поле куба и в поле региона.
А можно изначально изменить TfcCube.DefaultFormat.
Первый Ваш пример правильный. Должно работать для значений в осях.
Во втором примере ошибка.
Для обращения к полю куба надо писать:
CapPageFields[AIndex].SliceField.CubeField.DisplayFormat.FormatStr := 'dd.mm.yy';
С уважением,
Олег Прялков.
http://pravoslavnij.ru/molitvy/molitva-optinskix-starcev
У меня получилось только целиком на куб(когда у него Active=false) менять формат
например:
DM3.fcCube_ces.DefaultFormat.DateTimeFormat.FormatStr := 'dd.MM.yyyy';
Есть dataset, приходящий из MSSQLServer 2005 , в котором есть поле типа TdateTime. Мне в отчете и кубе ВООБЩЕ НЕ нужна инорфмация о времени, поэтому я средствами SQL избавляюсь от него, округляя значение даты. В Delphi у такого поля ставлю формат отображения "dd.mm.yyyy".
НО! в Кубе, который строится на основе данного набора данных формат отображения получается '0:00 21.06.2012' (то есть с временем, которое 0:00).
Вопрос: Как изменить формат отображения даты в кубе.