Чтобы выполнить расчет показателя эффективности:
1. | В карточке показателя на вкладке Главная в группе Расчет нажмите на кнопку Текст расчета. Откроется окно редактора ISBL-текстов. |
2. | Введите расчет показателя с помощью ISBL-вычислений. |
3. | Сохраните расчет и карточку показателя. |
Расчет для показателя «Незакрытые обращения высокой важности»:
PARAM_DOES_NOT_EXIST = -1
Today = DateToStr(Today(); dftDate; cltInternal) /* Считать переменную окружения с кодом показателя, переменная означивается в сценарии «Запуск вычислений показателя эффективности» и ИО Вычисление значений показателя.*/ Environment = Object.Environment if Environment.IndexOfName('IndicatorCode') <> PARAM_DOES_NOT_EXIST IndicatorCode = Environment.PopVar('IndicatorCode') endif // Запросить период перерасчета. Period = GetCalculatedPeriod(IndicatorCode; ; FALSE) if Period <<>> '' if VarIsEmpty(Period) CalculationDate = Today else CalculationDate = Period endif /* Если пересчитать на сегодняшний день и время не указали, то берем текущее время.*/ if DateDiff('D'; CalculationDate; Today) = 0 and FormatDate('H:N:S'; CalculationDate) == '00:00:00' CalculationDate = Format('%s %s'; ArrayOf(FormatDate('D.M.YY'; CalculationDate); Time())) endif /* Если пересчитать за прошлую дату и время не указали, то берем конец дня.*/ if DateDiff('D'; CalculationDate; Today) > 0 and FormatDate('H:N:S'; CalculationDate) == '00:00:00' CalculationDate = Format("%s 23:59:59"; FormatDate('D.M.YY'; CalculationDate)) endif // Получить имена таблиц и полей. CitizensAndOrganizationsClaims = CreateReference('CitizensAndOrganizationsClaims';; FALSE) CitizensAndOrganizationsClaimsTableName = CitizensAndOrganizationsClaims.SQLTableName CitizensAndOrganizationsClaimsIDFieldName = CitizensAndOrganizationsClaims.Requisites(SYSREQ_ID).SQLFieldName CitizensAndOrganizationsClaimsEmployeeFieldName = CitizensAndOrganizationsClaims.Requisites('Работник3').SQLFieldName CitizensAndOrganizationsClaimsDateFieldName = CitizensAndOrganizationsClaims.Requisites('ДатаВремя').SQLFieldName CitizensAndOrganizationsClaimsCloseDateFieldName = CitizensAndOrganizationsClaims.Requisites('ДатЗакр').SQLFieldName CitizensAndOrganizationsClaimsControlFieldName = CitizensAndOrganizationsClaims.Requisites('ДаНет5').SQLFieldName
Employee = CreateReference('РАБ';; FALSE) EmployeeTableName = Employee.SQLTableName EmployeeDepartmentFieldName = Employee.Requisites('Подразделение').SQLFieldName
TableName = CreateTableForFactValueIndicators() // Вставить во временную таблицу данные. SQL(Format(" EXECUTE sp_executesql N'insert into %0:s (Cutset1, Cutset2, Cutset3, Value, BeginPeriod, EndPeriod) select emp.%11:s, claims.%4:s, claims.%10:s, count(*), ''%1:s'', ''%1:s'' from dbo.%2:s claims left join dbo.%9:s emp on emp.%10:s = claims.%6:s where claims.Vid = %3:s // Дата закрытия не указана или больше даты расчета. and (claims.%7:s is null or claims.%7:s > ''%1:s'') // Дата регистрации обращения меньше или равна дате расчета. and claims.%5:s <= ''%1:s'' // С высокой важностью. and claims.%8:s = ''Д'' // Адресат указан. and claims.%6:s is not null and emp.%11:s is not null group by emp.%11:s, claims.%6:s, claims.%10:s'"; ArrayOf(TableName; CalculationDate; CitizensAndOrganizationsClaimsTableName; CitizensAndOrganizationsClaims.ComponentID; CitizensAndOrganizationsClaimsEmployeeFieldName; CitizensAndOrganizationsClaimsDateFieldName; CitizensAndOrganizationsClaimsEmployeeFieldName; CitizensAndOrganizationsClaimsCloseDateFieldName; CitizensAndOrganizationsClaimsControlFieldName; EmployeeTableName; CitizensAndOrganizationsClaimsIDFieldName; EmployeeDepartmentFieldName))) endif Расчет заносит данные по количеству обращений, имеющих высокую важность, в разрезе адресатов во временную таблицу. |
© Компания DIRECTUM, 2018 | Сообщество пользователей DIRECTUM |