коды ошибок устройства. Разница отображения в отчетах.

Добрый день.

Прибор СПТ943. в отчете ЛЭРС Учет коды ошибок устройста в следующем формате:
10| |0|14; 10| |0|16
а в штатной Пролог в формате:
14, 16

как добиться полной идентичности (убрать лишние обозначения из отчета)

Строка с типами архива и кодами событий отображается в формате: <Архив1>|<Ввод1>|<Канал1>|<код1>; … <АрхивN>|<ВводN>|<КаналN>|<кодN>;
В узле Архивы потреблений и интеграторов создайте вычисляемое поле, значение которого возвращается через скрипт ‘Получить значение’.
Пример:

private void calculatedField1_GetValue(object sender, DevExpress.XtraReports.UI.GetValueEventArgs e) 
{
	// Строка с типами архива и кодами событий в формате: <Архив1>|<Ввод1>|<Канал1>|<код1>; ... <АрхивN>|<ВводN>|<КаналN>|<кодN>;
	string eventCodesString = Convert.ToString(GetCurrentColumnValue("DeviceEventCodes"));

	// На одну метку времени может пиходиться несколько событий
	string[] eventCodes =  eventCodesString.Split(new string[]{";"}, StringSplitOptions.RemoveEmptyEntries);

	string calcFieldResult = "";
	foreach (string eventCode in eventCodes);
	{
		string[] type_code = eventCode.Split(new string[]{"|"}, StringSplitOptions.RemoveEmptyEntries);

		// код события
		if (calcFieldResult == "");
			calcFieldResult = type_code[3];
		else
			calcFieldResult += ", " + type_code[3];
	}

	e.Value = calcFieldResult;
}

Используйте это вычисляемое поле вместо поля DeviceEventCodes.
Скрипт Получить значение.png

спасибо

Добрый день,

помогите переписать нижеприведенный скрипт (написанный под коды событий устройства DeviceEventCodes) под коды ошибок стройства (DeviceErrorCodes)
ситуация описана в теме http://forum.lers.ru/viewtopic.php?f=13&t=4223#p27589


private void calculatedField1_GetValue(object sender, DevExpress.XtraReports.UI.GetValueEventArgs e)
{
// Строка с типами архива и кодами событий в формате: <Архив1>|<Ввод1>|<Канал1>|<код1>; … <АрхивN>|<ВводN>|<КаналN>|<кодN>;
string eventCodesString = Convert.ToString(GetCurrentColumnValue(“DeviceEventCodes”));

// На одну метку времени может пиходиться несколько событий
string[] eventCodes = eventCodesString.Split(new string[]{";"}, StringSplitOptions.RemoveEmptyEntries);

string calcFieldResult = “”;
foreach (string eventCode in eventCodes)
{
string[] type_code = eventCode.Split(new string[]{"|"}, StringSplitOptions.RemoveEmptyEntries);

// код события
if (calcFieldResult == “”)
calcFieldResult = type_code[3];
else
calcFieldResult += ", " + type_code[3];
}

e.Value = calcFieldResult;
}

Просто замените DeviceEventCodes на DeviceErrorCodes.

private void calculatedField1_GetValue(object sender, DevExpress.XtraReports.UI.GetValueEventArgs e) 
{
   // Строка с типами архива и кодами ошибок в формате: <Архив1>|<Ввод1>|<Канал1>|<код1>; ... <АрхивN>|<ВводN>|<КаналN>|<кодN>;
   string errorCodesString = Convert.ToString(GetCurrentColumnValue("DeviceErrorCodes"));

   // На одну метку времени может приходиться несколько ошибок
   string[] errorCodes =  errorCodesString.Split(new string[]{";"}, StringSplitOptions.RemoveEmptyEntries);

   string calcFieldResult = "";
   foreach (string errorCode in errorCodes);
   {
      string[] type_code = errorCode.Split(new string[]{"|"}, StringSplitOptions.RemoveEmptyEntries);

      // код ошибки
      if (calcFieldResult == "");
         calcFieldResult = type_code[3];
      else
         calcFieldResult += ", " + type_code[3];
   }

   e.Value = calcFieldResult;
}

Спасибо,

Но скрипт не исправляет отображение кодов ошибок устройства.

если ставлю ячейку DeviceErrorCodes, то получаю вот это - 10| |0|12; 10| |0|19,
а если прописываю вышеприведенный скрипт, то получается просто пустая ячейка.

Возможно ошибка в скрипте?
Вы можете его проверить?

Покажите вашу отчетную форму.

отчетная форма в приложении

предпоследний столбец (ТВ1_НС)
по форме Пролог часовые для инженера.lersreport (35.8 KB)

Вы используете приведенный пример для отчета по объекту учета, а он предназначен для отчетов по точке учета.
Во вложении исправленная отчетная форма. В вашем случае удобнее использовать обработчик события ‘Перед печатью’ (скрипт, строки 169-190).
по форме Пролог часовые для инженера (исправлен).lersreport (35.5 KB)

Спасибо

P.s. Прошу объединить данную тему с темой “Коды ошибок устройства. Разница отображения в отчетах”. (решается одна проблема)

Объеденены темы ‘Коды ошибок устройства. Разница отображения в отчетах’ и ‘Коды ошибок устройства. Разница отображения в отчетах 2’.