OLE

Материал из GB wiki
Версия от 09:21, 5 июля 2011; Bars (обсуждение | вклад) (Новая страница: «Категория:Настройка ГБ Для запуска ГБ через OLE существует набор интерфейсов == GB.Application …»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск


Для запуска ГБ через 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');