Глава 12. РАЗРАБОТКА ОКОННОГО ИНТЕРФЕЙСА
Диалог выбора из справочника TRefDialog
Этот компонент рекомендуется использовать в тех случаях, когда необходимо
в процессе работы программы вызвать стандартный диалог выбора из справочника
.
Свойства Published |
|
ClassButtons |
Свойство определяет множество элементов управления, которые будут доступны в
справочнике. Имеет тип TRefQueryButtons |
ClassTableName |
Название таблицы класса |
NamesType |
Способ отображения:
ATTRIBUTES – поля справочника
SHORT
_NAME –краткие наименования объектов
Возможны и другие
значения, если в конфигурации имеются дополнительные типы наименований объектов
. |
Options |
Опции диалога. Имеет тип TRefSelectDlgOptions |
RootRubric_ID |
Идентификатор корневой рубрики. Если значение этого свойства отлично от
нуля – в окне диалога слева высвечивается дерево рубрик,
начиная с этой рубрики. |
SubClassButtons |
Свойство определяет множество элементов управления, которые будут доступны в
подчиненном справочнике, если тот отображается. Имеет тип TRefQueryButtons |
SubClassTableName |
Название таблицы починенного класса |
Title |
Заголовок для окна диалога. |
Transaction |
Транзакция |
WindowOptions |
Оконные опции. Имеет тип TWindowOptions |
Свойства Public |
тип |
readonly |
|
Object_ID |
integer |
readonly |
ID элемента, выбранного из справочника. |
SubObject_ID |
integer |
readonly |
ID элемента, выбранного из подчиненного справочника. |
Методы |
|
function Execute: boolean |
Вызывает диалог на экран. Возвращает True, если пользователь
выбрал справочный элемент в диалоге и False, если он
нажал кнопку «Отмена». |
procedure CloseQueries |
Закрывает все открытые внутренние запросы. |
Объявления некоторых типов данных, используемых в свойствах этого компонента
показаны ниже:
TRefSelectDlgOption = (doValueRequired, doSubValueRequired, doShowSubmitted,
doRestrictClass, doRestrictSubClass, doHideLookups, doHideSubLookups,
doRelocateRecord, doUseWindowOptions);
TRefSelectDlgOptions = set of TRefSelectDlgOption;
{doValueRequired - требуется выбрать значение в справочнике
doSubValueRequired - требуется выбрать значение в подчиненном справочнике
doShowSubmitted – показывать подчиненные справочники
doRestrictClass – ограничить класс справочника (не отображать дочерние)
doRestrictSubClass – ограничить класс подчиненного справочника (не отображать дочерние)
doHideLookups – не высвечивать дополнительные поля в режиме отображения наименований
doHideSubLookups - не высвечивать дополнительные поля подчиненного класса
doRelocateRecord – осуществлять поиск «текущего» элемента при повторном открытии диалога
doUseWindowOptions – использовать оконные опции
TRefQueryButton = (rqbInsert, rqbDelete, rqbEdit, rqbRefresh, rqbFilter, rqbSubmit, rqbNamesType);
TRefQueryButtons = set of TRefQueryButton;
{rqbInsert – отображать кнопку «Добавить»,
rqbDelete – отображать кнопку «Удалить»,
rqbEdit – отображать кнопку «Изменить»,
rqbRefresh – отображать кнопку «Освежить»,
rqbFilter – отображать кнопку «Фильтр»,
rqbSubmit – отображать кнопку «Показывать подчиненные»,
rqbNamesType – отображать селектор «Режим» (атрибуты, краткое наименование и т.п.)}
TWindowOptions = class(TPersistent)
public
constructor Create;
published
property Height: integer read FHeight write FHeight;
property Width: integer read FWidth write FWidth;
property Left: integer read FLeft write FLeft;
property Top: integer read FTop write FTop;
property Position: TPosition read FPosition write SetPosition;
end;
Использовать компонент TRefDialog несложно. Достаточно в Инспекторе объектов указать
транзакцию и установить свойство ClassTableName, выбрав имя таблицы из
выпадающего списка. Затем в программе следует вызвать метод Execute
, а затем прочитать значение свойства Object_ID.
Например, так:
with RefDialog1 do
if Execute then
ShowMessage(IntToStr(Object_ID));
Еще проще использовать оконные компоненты – селекторы объектов TRefEdit и
TDBRefEdit, которые вызывают тот же диалог выбора из справочника
.
|