OLE
Материал из GB wiki
Для запуска ГБ через OLE существует набор интерфейсов
Содержание
GB.Application
Интерфейс для взаимодействия с ГБ
Свойства
- Params['Имя параметра']
- позволяет задать или прочитать любой параметр запуска ГБ
- ReportNames
Методы
- Open
- запускает ГБ
- Close
- закрывает ГБ
- EvaluateExpression('выражение')
- выполняет любое выражение на языке ГБ (например, вызов функции)
- NewGbObject()
- Создает объект ГБ
- ReportByCommand(код)
- Создает отчет по коду команды
- ProcessCommand(объект,команда)
- Выполняет команду ГБ
IAutoGBObject
Интерфейс для работы с объектами ГБ
Свойства
- ItemCount
- число вложеннных объектов
- ObjectType
- тип объекта
- Items[номер,'свойство']
- позволяет прочитать или установить значение свойства вложенного объекта с указанным номером. Имена свойств: Id, Name, Node, ItemType, SubType
- Params['Имя параметра']
- позволяет прочитать или установить значение глобального параметра объекта(см. PROCESSCOMMAND)
Методы
- AddItem
- добавляет вложенный элемент
IAutoReport
Интерфейс для работы с отчетами ГБ
Свойства
- PresetLayoutSelected
- позволяет прочитать или изменить значение предустановки для настройки таблицы
- PresetParamsSelected
- позволяет прочитать или изменить значение предустановки для параметров
Методы
- Execute()
- выполнить отчет
- CopyToClipBoard()
- скопировать результаты в буфер
- TabularResult()
- получить результаты в виде таблицы
- TabularTotals()
- получить итоги в виде таблицы
Пример
// открываем ГБ
Gb := CreateOleObject('Gb.Application');
// проверить статус ГБ
if (Gb.Params['path']<>) then
begin
// уже запущено, что-то делаем
end
begin
else
begin
//путь к базе;
Gb.Params['path'] := CfgFile.DBLogin;
// без сплэш-формы
Gb.Params['nosplash'] := '1';
// хотим получать Exception при ошибках
GB.Params['erroraction'] := 'raise';
if CfgFile.DBLogin <> then
begin
GB.Params['user'] := CfgFile.DBLogin;
GB.Params['password'] := CfgFile.DBPassword;
end;
Gb.Open;
end
//обработка заказа
Obj := Gb.NewGbObject;
//тип - заказы из интернет
Obj.ObjectType := 20;
Obj.AddItem;
Obj.Items[0,'Id'] := Id;
Obj.Params['SaveImmediate'] := 'Y';
Obj.Params['SendSaveMessage'] := '1';
Gb.ProcessCommand(Obj,5);
// получить код созданного заказа
DocId := GB.EvaluateExpression(':LastCreated');