Пример вывода времени наработки в формате HH:mm:ss

Top  Previous  Next

Изменение формата вывода времени наработки можно выполнить в обработчике события 'Печать на странице'.

ШАГ 1. Откройте в редакторе отчетов требуемую отчетную форму (главном меню пункт Справочники -> Отчетные формы).

ШАГ 2. Откройте вкладку Скрипты и введите:

using System;

private void workTime_PrintOnPage(object sender, DevExpress.XtraReports.UI.PrintOnPageEventArgs e) 

{

 XRTableCell cell = (XRTableCell)sender;

 cell.Text =  FormatWorkTime(cell.Text, true);

}

 

// Преобразует время наработки в отформатированную строку.

// value - значение времени наработки в часах.

// includeSeconds - признак отображения секунд.

private string FormatWorkTime(object value, bool includeSeconds)

{

 if (value == null || value == DBNull.Value)

 {

         return null;

 }

 

 // Если преобразование невозможно, то выводим пустую строку

 double workTime = 0;

 if (!Double.TryParse(value.ToString(), out workTime))

 {

         return String.Empty;

 }

 

 // Если время наработки отрицательное или большое, то выводим его как есть.

 if (workTime < 0 || workTime > 1000000)

 {

         return String.Format("{0:n}", workTime);

 }

 

 // Выводим время наработки в формате HH:mm или HH:mm:ss в зависмости от значения includeSeconds

 TimeSpan ts = TimeSpan.FromHours(workTime);

 if (includeSeconds)

 {

         return String.Format("{0:d2}:{1:d2}:{2:d2}", (int)workTime, ts.Minutes, ts.Seconds);

 }

 else

 {

         return String.Format("{0:d2}:{1:d2}", (int)workTime, ts.Minutes);

 }

}

ШАГ 3. В секции Detail выделите ячейку, которая связана с полем WorkTime и очистите у нее формат вывода, если был задан.

ШАГ 4. В свойствах выделенной ячейки на вкладке Скрипты выберите обработчик Печать на странице.

 

ExampleWorkTimeFormat

 

ШАГ 5. В выпадающем списке скриптов выберите workTime_PrintOnPage созданный на Шаг 2.

ШАГ 6. В секции ReportFooter  в строке Итого выделите ячейку, которая связана с полем WorkTime и очистите у нее формат вывода, если был задан.

ШАГ 7. В свойствах выделенной ячейки на вкладке Скрипты выберите обработчик Печать на странице.

ШАГ 8. В выпадающем списке скриптов выберите workTime_PrintOnPage созданный на Шаг 2.

ШАГ 9. С помощью кнопки icon_save на панели инструментов редактора отчетов сохраните сделанные изменения.

Пример сформированного отчета:

ExampleWorkTimeFormat_Report

 

chapterup Наверх