RSGridControl

Материал из RSB-Doc
Перейти к: навигация, поиск

Содержание

Общие сведения

RSGridControl — это визуальный ActiveX элемент, предназначеный для отображения данных в табличном виде. RSGridControl может использоваться как с источником данных RSCOMObjectCtrl (RSCOMObject), так и независимо от него.

Настройка списка

В простейшем случае для настройки GridControl’а необходимо связать его с источником данных:

GridSettings.JPG

Представления

Многие настройки списка могут изменяться пользователем во время работы и сохраняться между сеансами работы с формой. Настройки сохраняются в специальном объекте «Представление». При связывании списка с источником данных (обычно при загрузке формы) происходит считывание настроек из объекта. Сохранение настроек происходит при разрушении объекта списка (при закрытии формы).

Отвязанный режим работы

Список может работать в отвязанном от источника данных режиме. В таком режиме заполнение списка происходит вручную.

Общие настройки

Панель управления

В списке ниже команды указаны в порядке, изображенном на рисунке: GridSettingsControlPanel.jpg

Открыть

Открыть сохраненное представление. Необходимо выбрать файл, в который ранее было сохранено представление грида.

Сохранить

Сохранить текущее представление в файл.

Выбрать все

Добавить в представление все колонки

Удалить все

Удалить из представления все колонки

Переместить вверх

Переместить текущую колонку на позицию вверх

Переместить вниз

Переместить текущую колонку на позицию вниз

Добавить

Добавить колонку

Удалить

Удалить колонку

Источник данных

Колонки

Формат

Формат данных. Для строковых полей могут использоваться следующие символы:

Для числовых полей могут использоваться следующие команды через двоеточие (:) формата <команда>:<символ>:

Итоги

Агрегированное значение, которое будет отображаться внизу грида. Возможные типы:

Все функции кроме Количества определены только для числовых типов данных.

Кнопка расширения

Работает только для полей-классификаторов при редактировании и по умолчанию включена. Соответствует свойству ExtendedChoice для RSFieldControl. При редактировании ячейки колонки выводится дополнительная кнопка:

GridExtendedChoice1.PNG

При нажатии на кнопку открывается соответствующий полю справочник:

GridExtendedChoice2.PNG

Кнопка опций

Работает только для полей-классификаторов при редактировании и по умолчанию выключена. Соответствует свойству ExtendedOption для RSFieldControl. При редактировании ячейки колонки выводится дополнительная кнопка:

GridExtendedOption.PNG

Выпадающий список

Работает только для полей-классификаторов при редактировании. Соответствует свойству TypeClassifer для RSFieldControl.

Общие

Вертикальный текст заголовков

Соответствует свойству VertCaptionText

Растягивать строки

Соответствует свойству StretchRows

Многострочность

Соответствует свойству MultiLine

Подсветка

Соответствует свойству LightingMode

Копирование

Соответствует свойству CopyingType

Цвет подсветки

Соответствует свойству LightingColor

Цвет полосок

Соответствует свойству StriationColor

Автообновление

Автоматическое обновление данных грида

Включено

Соответствует свойству AutoRefresh

Период (в секундах)

Соответствует свойству AutoRefreshTimeOut

Только при изменениях

Соответствует свойству AutoRefreshChange

Общие (только для RS-Designer)

Поиск

Соответствует свойству AllowFind.

Представление

Дополнительно

Контекстное меню

Дерево

Доступно только в режиме TreeGrid

Развернуть всё

Развернуть все элементы

Свернуть всё

Развернуть все элементы

Свойства

Управление внешним видом

Enabled

Признак доступности окна. Если данное свойство установленно в FALSE, то окно блокируется

FixedFont

Шрифт текста в заголовке

NormalFont

Шрифт текста в ячейках. Сохраняется в представлении.

Flat

Возможность изменить стиль списка на «плоский»

FlatGrid.jpg

LineType

Тип линии:

Сохраняется в представлении.

SelectionMode

Тип выделения:

LightingMode

Тип подсветки:

Сохраняется в представлении.

LightingMode.PNG

OutResult

Признак вывода результирующей строки. Итоговая строка можно заполнить в обработчике события SetRowResult или установив стандартные итоги:

RowResultGrid.jpg

MultiLine

Признак отображения строковых значений в ячейках в несколько строк

VertCaptionText

Вертикальное отображение текста заголовков. По умолчанию равен FALSE. Если настройка установлена в TRUE, то можно также изменять высоту строки заголовка, которая будет сохранена в представлении.

BorderStyle

Стиль бордюра. Возможные значения:

Настройка цвета

FillColor

Цвет фона. Сохраняется в представлении.

BackColor

Цвет фона ячейки. Сохраняется в представлении.

TextColor

Цвет текста. Сохраняется в представлении.

LineColor

Цвет линии. Сохраняется в представлении.

LightingColor

Цвет подсветки. Сохраняется в представлении.

StriationColor

Цвет полосок. Сохраняется в представлении.

Размеры колонок и строк

CellWidth(Column)

Ширина видимой колонки с номером Column. Задается в пикселах. Колонки нумеруются слева начиная с единицы. Сохраняется в представлении.

CellHeight(Row)

Высота определенной строки с номером Row. Задается в пикселах. Свойство не работает. Сохраняется в представлении.

DefaultCellWidth

Ширина колонок по умолчанию. Задается в пикселах. Изменение свойства приводит к изменению ширины всех колонок. Сохраняется в представлении.

DefaultCellHeight

Высота строк по умолчанию. Задается в пикселах. Изменение свойства приводит к изменению высоты всех строк. Сохраняется в представлении.

StretchCols

Признак растягивания колонок. По умолчанию установлен в TRUE. Сохраняется в представлении.

StretchRows

Признак растягивания строк. По умолчанию установлен в FALSE. Работает при условии MultiLine == TRUE. Сохраняется в представлении.

ResizeCols

Признак разрешения изменения ширины колонок. Сохраняется в представлении.

ResizeRows

Признак разрешения изменения высоты строк. Сохраняется в представлении.

DefaultColAlign

Выравнивание текста в ячейках по умолчанию:

Не влияет на существующие колонки, только на новые.

CaptionType

Настройка заголовков:

После установки свойства необходимо обновить список. Сохраняется в представлении.

Колонки и строки

Cols

Число колонок в списке.

Rows

Число строк в списке.

Col

Номер текущей колонки списка.

Row

Номер текущей строки списка. Нельзя использовать для списка, привязанного к источнику данных.

Columns

Доступ к настройкам колонок списка.

Свойства колонок

CellTop

Вовращает в пикселах отступ текущей ячейки от вершины списка. Свойство не работает.

CellLeft

Вовращает в пикселах отступ текущей ячейки от левой части списка. Свойство не работает.

Режимы редактирования

EditMode

Режим редактирования: 0 — редактирование недоступно 1 — встроенное (прямо в списке) 2 — запрос (происходит только вызов обработчиков)

EditByShift

Признак режима выбора записей. В таком режиме редактирование происходит по нажатию клавиши Shift+Enter. По нажатию Enter происходит выделение записей.

AllowAddNew

Признак разрешения добавления записей.

AllowUpdate

Признак разрешения редактирования записей.

AllowDelete

Признак разрешения удаления записей.

AllowSort

Признак разрешения настройки сортировки.

AllowFilter

Признак разрешения вызова диалога задания фильтра.

AllowFind

Признак разрешения поиска

Работа с данными

RSObject

Ссылка на источник данных. См. особенности.

RSObjectKey

Ключ текущей записи в списке. См. особенности

RSTreeObject

Возможность построить список, используя объект RSComProvider.RSMultiTreeCtrl. Использовать свойство запрещено, так как раньше в этом практически не было необходимости.

Cell(Row, Column)

Доступ к содержимому ячейки. Row — номер строки, Column — номер колонки. Нумерация начинается с единицы.

IdRow(Row)

Идентификатор экземпляра объекта, отображенного в строке с индексом Row.

Count

Количество записей в источнике данных грида. Свойство аналогично RSObject.Run("GetCount"), но не требует нового запроса к базе данных, так как гриду уже известно количество записей

Разное

SaveState

Признак сохранения текущей позиции списка между сеансами работы с формой. Значение сохраняется в Application Data. См. особенности

Filter

Пользовательский фильтр, наложенный на источник данных.

GridMenu

Доступ к контекстному меню списка. Следует использовать класс TGridMenu.

SelectionRows

Возвращает массив выделенныхзаписей. См. свойство SelectionMode.

RowsMarked

Возвращает массив выбранных записей. См. метод MarkRow

VirtualTree

Признак работы в режиме «TreeGrid». Если установить TRUE, то объект будет отображаться в виде дерева. В объекте должно присутствовать поле «Родитель».

FindBoxPosHeight, FindBoxPosWidth

Позиция диалога поиска. Является неявной и задается перемещением диалога поиска.

AllowBookmark

Разрешить/запретить использование закладок

CopyingType

Тип копирования. Возможные значения:

LayoutName

Наименование представления

UserLayoutName

Дополнительное наименование представления

Свойства колонок

Свойства колонок доступны через свойство Columns.

TotalType

Числовое значение итогов.

Position

Позиция колонки.

ExtendedChoice

Соответствует кнопке расширения

ExtendedOption

Соответствует кнопке опций

TypeClassifer

Соответствует выпадающему списку

Index

Индекс колонки. Начинается с нуля. Это свойство следует использовать для получения текущей позиции колонки в гриде

Автообновление

AutoRefresh

Автозаполнение включено

AutoRefreshTimeOut

Период, через который выполняется обновление

AutoRefreshChange

Обновление грида выполняется только если есть изменения в данных. Через каждый период времени сначала выполняется проверка, а затем, если обнаружены изменения в данных, то выполняется их обновление

Методы

Работа с данными

InsertRow (Row, CallHandler)

Инициирует добавление записи в список. Через параметр Row передается позиция, в которую следует вставить запись (для списка, привязанного к источнику данных, следует передавать −1). Параметр CallHandler указывает, следует ли вызывать обработчик событий.

InsertRowEx (Row, CallHandler, Child)

Аналогично методу InsertRow. Добавлен дополнительный параметр Child — возможность добавить дочернюю запись.

EditRow (CallHandler)

Инициирует редактирование записи. Параметр CallHandler указывает, следует ли вызывать обработчик событий.

UpdateRowEx (Id)

Обновление записи. Параметр Id указывает на идентификатор обновляемой записи

DeleteRow (Row, CallHandler)

Инициирует удаление записи из списка. Через параметр Row передается позиция, в которую следует вставить запись (для списка, привязанного к источнику данных, следует передавать −1 для удаления текущей записи). Параметр CallHandler указывает, следует ли вызывать обработчик событий.

AddRowEx

Метод ни разу не использовался. Без специального разрешения использовать запрещено.

EditRowEx

Метод ни разу не использовался. Без специального разрешения использовать запрещено.

DeleteRowEx

Метод ни разу не использовался. Без специального разрешения использовать запрещено.

Управление внешним видом

Layout(Name, Load)

Имя представления. Параметр Load опциональный и по умолчанию равен FALSE. Если Load равно TRUE, то представление загружается сразу, иначе - только по необходимости.

Разное

Refresh

Вызывает метод Refresh(_isRefreshDS: Bool) источника данных и выполняет перерисовку списка. Параметр _isRefreshDS отвечает за обновление датасета. По умолчанию, если не указан - True.

RefreshRecord

Вызывает метод RefreshRecord источника данных и выполняет перерисовку соответствующих записей. Параметры метода аналогичны RefreshRecord источника данных.

Redraw

Выполняет перерисовку списка.
Может быть полезен в паре с обработчиком события DrawRow. Пример:

]
macro Button_OnClick (Sender: Object)
  // ...
  // Вызываем перерисовку
  Grid.Redraw;
end;
 
// Вызов Grid.Redraw генерирует событие DrawRow, которое обрабатывается
// через метод Grid_DrawRow
macro Grid_DrawRow(Sender: Object, /*ICellCollection*/ ppCells: @Object)
  var cell;
  for(cell, ppCells)
    // ...
  end;
end;

MarkRow

Выбирает запись или снимает с нее выделение.

MarkRow.jpg

MarkRows

Выделяет несколько записей.

]
var arr = MakeTArray(4, 5);
arr.CvtToSafeArray = true;
grid.MarkRows(arr);

UnmarkRows

Снимает выделение с нескольких записей

MarkAllRows

Выделяет все записи.

UnmarkAllRows

Снимает выделение со всех записей.

ShowDialog

???

SetRsObjectAndLayout

???

SetForVirtualTree

???

SwapColums

???

IsRowMarked

???

SetBookMark

???

InsertCol (Column)

Вставляет новую колонку в позицию с номером Column.

DeleteCol (Column)

Удаляет колонку с номером Column.

GetRow(ID)

Доступ к текущей строке.

ExpandAll

Развернуть все элементы. Работает в режиме TreeGrid

CollapseAll

Свернуть все элементы. Работает в режиме TreeGrid

События

KeyDown

???

KeyUp

???

KeyPress

???

MouseDown

???

MouseUp

???

GridCommandMenu

???

InsertRecord

???

InsertChildRecord

???

InsertRecordAfter

???

InsertRowOK

???

EditRecord

???

EditRecordAfter

???

EditRowOK

???

DeleteRecord

???

DeleteRowOK

???

RowChoice

???

ChangeTuning

???

ChangeColumn

???

ChangeRow

???

FieldEvent

???

FieldCtrlTuning

???

PostInsertRow

???

SetRowResult

Обновление итоговой строки списка. Итоговая строка отображается при установленном свойстве OutResult.

Пример:

]
macro gridSpecification_SetRowResult (Sender: Object, /*ICellCollection*/ ppCells: @Object)
   var quant;
 
   /*Берем сумму по полю*/
   quant = gridSpecification.RSObject.Run("GetCount", "Количество");
 
   /*Запихиваем полученное значение в соответствующею колонку строки результатов*/         
   ppCells.item("Количество").Value = "Итого: " + quant;
end;

CancelUpdate

???

Refresh

Вызывается при любом обновлении данных в списке

DrawRow

???

ExpandRow

???

CopySelected

Событие копирования выделенных ячеек (Ctrl + C, Ctrl + Ins)

Тип Атрибуты Описание
BSTR [in] Строка, скопированная в формате по умолчанию
BSTR* [out] Строка для измененного текста копирования. В неё заносится пользовательское значение. По умолчанию пустая. Если строка является пустой, то используется значение по умолчанию.

ColumnFilterChange

Изменился фильтр колонки

Тип Атрибуты Описание
long [in] Номер колонки
BSTR [in] Фильтр

Особенности

Работа со свойствами RSObject и RSObjectKey

При работе с источником данных GridControl’а нужно учитывать следующую особенность: обращение к свойствам RSObject и RSObjectKey приводит к тому, что источник данных синхронизируется с GridControl’ом (текущая запись списка становится текущей записью источника данных). Поэтому, если требуется сделать что-то с источником данных и при этом может изменяться текущая запись, то работать с источником данных нужно следующим образом:

]
macro gridDocument_ОБРАБОТЧИК_НЕКОТОРОГО_СОБЫТИЯ
  // Сохраняем ссылку на источник данных
  var dsDocument = gridDocument;
 
  // Делаем что-то с данными, используя ссылку на источник данных dsDocument
 
  gridDocument.Refresh;
end;

Сохранение и восстановление текущей позиции

???

Выделение/выбор записей/закладки

???

Примеры

???

Горячие клавиши

Быстрый поиск


Keywords: grid rsgrid rsgridctrl грид

Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Для разработки
Инструменты