Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
injectIntoPage
#1
Задача: У нас есть стандартный отчет по работе оборудования, он нас устраивает, но при формировании этого отчета необходимо указывать дату и выбирать наш цех. Мы хотим приложение, в котором отчет будет открываться сразу за сегодняшнее число, за наш цех, и показывал всегда актуальную информацию, мы его повесим на телевизор в цеху и трогать не будем.
Решение:
Создаем пустое приложение из шаблона, или просто пустое приложение.
Добавляем пустой контейнер. Для удобства прописываем в поле данные еще один контейнер:

Код:
<div width = '100%' height = '100%' id = fullscreen></div>

Теперь посмотрим на отчет, который мы хотим видеть в приложении:
   
Посмотрим год непосредственно самого отчета и увидим откуда он берется
   

Для того чтобы вставить в приложение готовый отчет используется функция baseUtils.injectIntoPage, 

ƒ injectIntoPage(
url – берем из параметра injectedurl на том элементе, который хотим повторить, я взял отчет по загрузке и меняю в нем параметры, а так же дату
, injectId – куда будем вставлять результат
, checkAuth – нужно ли быть авторизованным для получения результата (если поставить false, то функция будет работать только там, где не требуется авторизация, в нашем случае используются данные из приложения, а у него есть пользователи)
 
, callBack – далее все как обычно
, callBackError)

Теперь рассмотрим атрибут  injected_url, в нем написан адрес запроса, его же мы и будем использовать как параметр url.
/Winnum/views/pages/app/agw.jsp?rpc=winnum.views.pages.app.cnc.reports.calendar.TagPriorityWorkReport
&men=streamWorkReportsTable
&appid=winnum.org.app.WNApplicationInstance:8
&oid=winnum.org.domain.WNAdministrativeDomain%3A1
&oid_id=__ref_inputoid&oid_type=text_reference&oid_value2=
&date=03.05.2024
&date_id=__text_date_inputdate
&date_type=text-date
&date_value2=
&formid=report_settings_form
&count=2
&mode=yes
Очевидно, что его можно исправить в таких аргументах как date,  oid,  appid.
oid и appid нас устраивает, осталось только сделать сегодняшний день и запустить отчет в цикле, обновляя его каждые пять минут. Значит создаем событие loop (проигрывание в цикле) и пишем:

Код:
//get today
    var today = new Date();
    var dd = today.getDate();
    if (dd < 10){dd = '0' + dd}
    var mm = today.getMonth() + 1;
    if (mm < 10){mm = '0' + mm}
    var yyyy = today.getFullYear();
    var thisday = dd + '.' + mm + '.' + yyyy;
   
    var appid = 'winnum.org.app.WNApplicationInstance:8';
    var oid = 'winnum.org.domain.WNAdministrativeDomain%3A1';
    var containerId = fullscreen.id;
   
    baseUtils.injectIntoPage('/Winnum/views/pages/app/agw.jsp?rpc=winnum.views.pages.app.cnc.reports.calendar.TagPriorityWorkReport&men=streamWorkReportsTable&appid=' + appid + '&oid=' + oid + '&oid_id=__ref_inputoid&oid_type=text_reference&oid_value2=&date=' + thisday + '&date_id=__text_date_inputdate&date_type=text-date&date_value2=&formid=report_settings_form&count=2&mode=yes', containerId, true);

Теперь сделаем все на весь экран: 
Создаем событие "изменен размер"

Код:
//page id:7CB5B62C-0810-4735-8936-E43D6BDA422F
//element id:FA74BB0F-2A80-4EDB-8E86-5CF88D21D7AC
//ON_RESIZE
$(window).resize(function(event){
    $('#FA74BB0F-2A80-4EDB-8E86-5CF88D21D7AC').css({
        width: $(window).width()  + 'px',
        height: 85 + 'px',
        left: $(window).width()*0 + 'px',
        top: $(window).height()*0 + 'px',
        overflow: 'visible',
       
    });
    $('#882AEF86-12F4-4383-977F-DAC9FC53FEC7').css({overflow: 'visible'}); // слой
    $('#7CB5B62C-0810-4735-8936-E43D6BDA422F').css({overflow: 'visible'}); // страница
    $('#63EC5ED4-9C93-4EA2-9EDF-36573CB1EEFC').css({width: $(window).width()  + 'px'}); // верхнее меню
   
   
});
В данном случае нужно прописать id нашего контейнера, центрального слоя и верхнего меню, для того чтобы все было "резиновым" и на своих местах. Еще в самом начале поменять id контейнера на window.

В результате получится приложение, которое открывает отчет по нагрузке за весь домен и обновляет его каждые 300 секунд, данные берутся из приложения 8. Чтобы получить свой цех - нужно поменять oid на соответствующую ему папку.

Во вложении самообновляемый отчет, который позволяет выбрать участок или весь цех, а так же выбрать приложение для построения графика из выпадающего списка

Hello World!:

- Сообщений не найдено.


Файлы вложений
.zip   export (1).zip (Размер: 94.17 KB / Загрузок: 15)
Ответ


Перейти к сообществу:


Пользователи, просматривающие эту тему: 1 Гость(ей)