Как отформатировать временное значение в ЧЧ: ММ: СС в datalabel - PullRequest
6 голосов
/ 03 октября 2011

Итак, у меня есть гистограмма в отчетах о кристаллах.На этом графике у меня есть метка данных, прикрепленная к каждому из графиков, которая отображает значение графика в секундах, которое выглядит примерно так: enter image description here Что я хотел бы сделать, это отформатировать эту метку данных в форматирование времени.Поэтому для каждой гистограммы на графике метка данных должна отображаться в следующем формате:

ЧЧ: ММ: СС.

Я могу настроить форматирование времени с помощьюследующая формула:

local NumberVar Sec;
local NumberVar ss;
local NumberVar mm;
local NumberVar hh;
local StringVar SSS;
local StringVar MMM;

Sec := Sum ({GetAlarmSummaryDataSet2Response/GetAlarmSummaryDataSet2Result/Items/AlarmSummaryItem2.StopTime}, {GetAlarmSummaryDataSet2Response/GetAlarmSummaryDataSet2Result/Items/AlarmSummaryItem2.Section}) ;
hh := Int (Sec/3600);
mm :=Int ((Sec/60)- (60* Int(Sec/3600 )));
If mm<10 then MMM := "0" & ToText (mm,0);
If mm>9 Then MMM := ToText(mm,0) ;

ss :=Sec-(3600 * hh ) - (60 * mm ) ;
If ss<10 then SSS := "0" & ToText (ss,0);
If ss>9 Then SSS := ToText(ss,0) ;

ToText ( hh,0) & ":" & MMM & ":" & SSS

Но я не уверен, как внедрить эту формулу в метку данных.

Любая помощь или предложения приветствуются.

Спасибо

1 Ответ

1 голос
/ 04 октября 2011

Можно выбрать отображение имени группы, а также отобразить и отформатировать итоговое значение, рассчитанное диаграммой, но вы не можете предоставить пользовательскую формулу.Просто невозможно использовать библиотеку диаграмм в CR XI.

Мой возможный обходной путь для этой проблемы:

  1. Измените формулу значения, чтобы исключить функцию агрегирования.(Это необходимо, потому что Crystal не разрешит агрегатную функцию в поле имени группы - см. # 2.)
  2. Для имени группы укажите формулу с текстом, который вы хотите отобразить в блоке расширения.Включите как метку, так и отформатированное значение, разделив их Chr(13) & Chr(10), чтобы разместить их на отдельных строках.
  3. Сконфигурируйте стояк для отображения метки, а не значения.

Для примененияДля решения этой проблемы вам необходимо внести следующие изменения:

  1. Устранить функцию агрегирования.Конечно, я не знаю, будет ли это возможно с вашей настройкой.Возможно, если вы используете СУБД, вы можете использовать команду SQL или хранимую процедуру для вычисления суммы до того, как данные достигнут Crystal.
  2. Распечатайте метку и значение вместе , либо наRiser или ось X.

Если этого недостаточно для вашего приложения, вы можете рассмотреть CRChart , коммерческую замену, которая пытается решить иногда ограничивающие ограничения Crystal's.библиотека графиков.(Я думал, что это слишком дорого.) Я думаю, что макрос @ APPEND_DATATEXT позволит вам разместить пользовательское значение на переходе, но вам все равно придется перенести сводку на сервер.

...