Шаг 4. Немного программирования

Для отображения полной информации проделанных шагов недостаточно, так как система учета ИТ-имущества на дан­ном этапе мало чем отличается от штатных средств (отчетов) SCCM. Некоторые данные все равно приходится вводить вручную, такие как инвентарный и серийный номера ПК, мо­дель монитора и принтера с их номерами, название филиала и отдела, ФИО, дата, гарантия, номер кабинета и телефона и прочее. Теперь связку SQLServer + РНР + ExtJS необходи­мо настроить для редактирования данных. Для этого табли­ца Grid with Live Search Capability была расширена и усовер­шенствована: добавлены дополнительные редактируемые поля, подключены плагины печати и экспорта данных.

Сделать дополнительные поля редактируемыми неслож­но. Необходимо только подключить плагин редактирова­ния, а выглядит он как выделенная строка с двумя кнопка­ми Update/Cancel. Не нужно дополнительно создавать окно с множеством текстовых полей и меток, выпадающих спи­сков и кнопок, а также писать код для изменения данных в та­блице. В качестве примера [12] в листингах отображу только поля Inv Nom PC, Garantiya, так как подключение остальных дополнительных полей происходит аналогичным способом. В результате получаем возможность изменять данные, клик­нув два раза мышью по выделенной строке.

Визуально информация может корректироваться, но дан­ные в БД еще не попадают, поэтому изменения мы пока не увидим. Для этого формируем средствами РНР шаблон запроса для обновления данных, в котором описываем до­полнительные поля. Файл php_upd.php (см. листинг 4) со­единяю с новым запросом dbo.v_inventory_hard_edit в БД, который отвечает за обновление (редактирование) данных.

Листинг 4. РHР-код для обновления данных <? php mb_internal_encoding('UTF-8'); header("Content-Type: text/html; charset=utf-8"); function parseRequest()
{
$params = (isset($_REQUEST[’data'])) ? json_decode
($_REQUEST('data ']) : null; if (isset($_REQUEST['data']))
{
$params = json_decode($_REQUEST[’data’], true);
} else
{
$raw = '';
$httpContent = fopen('php://input', 'r'); while ($kb = fread($httpContent, 1024))
{
$raw .= $kb;
}
$params = json_decode($raw, true);
} return $params;
}
$params = parseRequest();
$params = $params['data'];
$aa = array();
// Connect to MSSQL
$link = mssql_connect( );
//connect to database mssql_select_db (....) ;
$Inv_nom_pc=$params['Inv Nom PC'];
$Garantiya=$params['Garantiya'];
$ResourceID =$params['ResourcelD'];
$sql="Update dbo.v_inventory_hard_edit SET [Inv Nom PC]=N'".$Inv_nom_pc."',
Garantiya=N'”.$Garantiya."'
Where ResourcelD =' ".$ResourceID." ’ ";
$result = mssql_query($sql); echo $result;
?>
После этого БД «CM_INV» знает обо всех изменениях, но наша система учета ИТ-имущества их еще не отображает. Чтобы эта информация стала доступна, дополнительные редактируемые поля необходимо добавить в SQL-запрос на выборку dbo. v_inventory_hardware (см. листинг 1). Только теперь данные об инвентаризации готовы к просмотру и правке.

Forpost — компьютерный интернет-магазин в Туле