/// <summary> /// Производит форматирование ячейки таблицы /// </summary> /// <param name="profile">Профиль</param> /// <param name="data">Набор исходных данных для форматировщика</param> protected override void DoExecute(abstractformatterClass profile, ReportFormatterData data) { // если нет значения, ничего не делаем string sValue = data.CurrentValue as string; if (sValue == null || sValue == string.Empty) { return; } int nValue = 0; nValue = Convert.ToInt32(sValue); // типизированный профиль durationevaluatorClass durationEvaluatorProfile = (durationevaluatorClass)profile; MacroProcessor processor = new MacroProcessor(data, true); // получим формат отображения Format format = (Format)processInt(durationEvaluatorProfile.format, (int)Format.DaysHoursMinutes, processor); // установим текущее значение в зависимости от формата switch (format) { case Format.DaysHoursMinutes: // продолжительность рабочего дня в минутах // ВНИМАНИЕ!!! Если не задана, считаем, что 600 int workdayDuration = processInt(durationEvaluatorProfile.workdayDuration, 600, processor); data.CurrentValue = Utils.FormatTimeDuration(nValue, workdayDuration); break; case Format.Hours: data.CurrentValue = string.Format("{0:0.##}", nValue / 60.0); break; } }
/// <summary> /// Производит форматирование ячейки таблицы /// </summary> /// <param name="profile">Профиль</param> /// <param name="data">Набор исходных данных для форматировщика</param> protected override void DoExecute(abstractformatterClass profile, ReportFormatterData data) { // если нет значения, ничего не делаем if (null == data.CurrentValue) { return; } string sValue; data.CurrentValue = (sValue = "" + data.CurrentValue); if (sValue.Length == 0) { return; } // типизированный профиль //bigtextevaluatorClass durationEvaluatorProfile = (bigtextevaluatorClass) profile; data.CurrentValue = CustomITrackerReport._LongText(sValue); }