Часть 2. Продолжение

 

Работа с PHP

Работа с веб-приложениями требует наличие настроенного веб-сервера c поддержкой PHP и СУБД - Apache+PHP+MySQL на ОС Linux или IIS+MS SQL Server на Windows. В нашей компании используется первый вариант, потому вопрос о выборе веб-сервера передо мной не стоял. 

Применение PHP нам нужно для осуществления связи между веб-таблицей и базой данных, потому как коннектор (Jason) в ExtJs не умеет соединяться с БД напрямую. Подробнее о настройке коннекторов можно прочитать в статье [].

Настало время добавить редактируемые поля в файлы (которые являются связывающим звеном между MS SQL Server и ExtJs) data.ph) и data_upd.php и применить перекодировку для корректного отображения русских символов в БД и таблице. Для поля Status00 создадим дополнительную проверку, чтобы сделать более наглядное отображение в таблице за счёт изменения цвета состояния принтера. Для примера в листинге выведу только несколько полей.

 Добавление полей в data.php.

while ($row = mssql_fetch_assoc($result)) {

          //применяем перекодировку

$row[Description] = iconv('CP1251','UTF8',$row[Description]);

         //устанавливаем статус и окрашиваем в красный цвет

        if(strcmp($row[Status00],"Error")==0) {

              $row[Status00]="Ошибка";

       $row[Status00]="".$row[Status00]."";}  

// устанавливаем статус и окрашиваем в жёлтый цвет

if(strcmp($row[Status00],"Degraded")==0){

              $row[Status00]="Оффлайн";

              $row[Status00]="".$row[Status00]."";}

// устанавливаем статус и окрашиваем в зелёный цвет

if(strcmp($row[Status00],"Unknown")==0){

              $row[Status00]="Готов";

              $row[Status00]="".$row[Status00]."";}  

$output[]=$row;}

 

 Добавление полей в data_upd.php.

//присвоение переменным новых значений

$Inv_Nom=$params['Inv Nom'];

$Description=iconv('UTF8','CP1251',$params['Description']);

//запись значений поля в БД

$sql="Update dbo.printer_device_data SET

[Inv Nom]='".$Inv_Nom."',

[Description]=N'".$Description."'

Where [Name00]='".$Name00."' ";

 

Работа с таблицей

Все подготовительные действия завершены, осталось собранную и обработанную информацию отобразить в удобном виде. Для этого будет задействована таблица Grid with Live Search Capability фрэймворка ExtJs, доработанная в статье []. Она уже позволяет выделять строку при наведении мыши, редактировать нужные поля по щелчку мыши, искать данные по любому совпадению символов и выделять их жёлтым цветом, экспортировать список в MS Excel, печатать всё содержимое таблицы, обновлять БД.  

В дополнение к имеющемуся функционалу таблицы сделаем содержимое поля PortName00 в виде ссылок. Это будет полезно для перехода из таблицы сразу на веб-интерфейс принтера для его конфигурирования или проверки настроек, минуя действия по копированию/вставке (или набора вручную) IP-адреса устройства в браузер. Для этого нужно в месте, где происходит создание колонки с IP-адресом (в файле Table.js), дописать функцию [http://erum.ru/53.htm], состоящую из 2х строк:

renderer: function(val)

  {     return ''+val+'';   }

где переменная val принимает значения поля PortName00 и нигде её заранее объявлять не нужно.

На этом основные действия завершены. При желании можно уделить немного времени дизайнерской части главной страницы (файл index.html): вставить соответствующие картинки (например,

  ), создать [http://cufon.shoqolate.com/generate/] и подключить нестандартный шрифт для заголовка с помощью преобразователя Cufon, сделать фон плавно перетекающим, задействовав CSS и продукты по работе с графикой. В результате получается небольшая программа с табличным и наглядным веб-отображением сетевых печатающих устройств (см. рис. 3), которую можно подключить к основной программе автоматической инвентаризации.

 

Рисунок 3. Таблица учёта сетевых принтеров.

 

Достоинства: автоматический сбор информации, дружелюбный веб-интерфейс, кроссбраузерность.

Недостатки: отсутствует перечень MAC-адресов, Microsoft не предоставляет информацию об объектах базы данных SCCM, а, следовательно, трата времени на её поиск, наличие знаний языка программирования, применение описанной связки продуктов актуально только в крупных компаниях. 

 

Вывод

Проделанные шаги по настройке нескольких продуктов и написанию небольшого программного кода дают нам удобство по автоматическому опросу сервера печати, удобному отображению полученной информации, а также её редактированию. Теперь мы можем видеть в браузере наглядный список всех сетевых принтеров и их месторасположение, сортировать их по IP-адресу, названию, отделу, номеру кабинета, переходить на веб-интерфейс устройства, экспортировать и выводить на печать. Несмотря на имеющиеся недостатки, это ещё один большой шаг по облегчению труда ИТ-специалиста, сокращению времени на инвентаризацию активов предприятия, исключение человеческого фактора. В результате список сетевой печатающей техники попадает в руки материально ответственных лиц за считанные секунды.