RowIndex

> [HTML Version](trowindex.html)

**Синтаксис**

````
function RowIndex: Integer;

````
**Описание**

Возвращает индекс последней выделенной строки таблицы без привязки к клиенту. Возвращает "-1", если ни одна строка не выделена. Например, имеется три клиента, сначала на первом клиенте пользователь выделил первую строку, затем на втором выделили вторую, на третьем третью строку - в этом случае RowIndex вернет третью строку, т.к. она была выделена последней. Рекомендуется использовать функцию RowIndex по событию OnClick, тогда в скрипте гарантированно будет производиться работа с выделенной на текущем клиенте строкой.   

**Важно\! Данная функция работает только в скриптах, к вызову которых приводят действия пользователя выполненные через клиент скады (или web-клиент). К ним относятся скрипты назначенные на следующие события: **

- OnClick (пользователь кликнул объект), 

- OnDblClick (пользователь дважды кликнул объект), 

- OnMouseUp (пользователь отпустил ЛКМ), 

- OnDoneInput (пользователь завершил ввод в поле), 

- OnCellClick (пользователь кликнул ячейку таблицы), 

- OnEnter (пользователь перешел на страницу), 

- OnLeave (пользователь покинул страницу), 

- OnSubpageEnter (пользователь перешел на подстраницу), 

- OnSubpageLeave (пользователь покинул подстраницу), 

- OnShow (окно было открыто на клиенте), 

- OnClose (окно было закрыто на клиенте);

В таких скриптах точно известно, какой клиент их вызвал, поэтому в них функция RowIndex работает, возвращая индекс выделенной строки на этом клиенте. В других скриптах, которые выполняются сервером скады независимо от клиентов, она работать не будет. Например, в скриптах на события OnDataChange, OnDataChangeEx, OnDoneSQL, "Запуск проекта", "Остановка проекта", "Выполнен SQL-запрос", "Таймер", "Начало часа", "Отчет построен" и т.д. Для примера рассмотрим скрипт с типом события "[Таймер](second-passed.md)". Такой скрипт выполняется сервером Simple-Scada через заданный в парамерах скрипта интервал, даже когда к проекту не подключен ни один клиент. Вызов RowIndex в этом скрипте будет всегда возвращать -1, т.к. сервер не знает, для какого именно клиента нужно вернуть имя (ведь клиентов может быть много и у каждого клиента может быть задано уникальное имя).

**Пример кода**

````
var  
  aIndex: Integer;  
begin  
  // получить индекс выделенной строки в таблице "Table1"  
  aIndex := Table1.RowIndex;  
end.
````