Копировать ссылку на страницу

Чтобы выполнить расчет показателя эффективности:

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

Расчет заносит данные по количеству обращений, поставленных на особый контроль в разрезе адресатов, во временную таблицу.

См. также

© 2016 Компания DIRECTUM Сообщество пользователей DIRECTUM