Функциональность добавления своих настроек

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

Функциональность добавления своих настроек

Сообщение zna »

Приветствую всех. Кто- нибудь делал свои настройки в дополнение к системным? Вроде видел АПИ, но не могу найти.. :-(
Гал.8.1
Den
Местный житель
Сообщения: 1842
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: Функциональность добавления своих настроек

Сообщение Den »

Уж обсуждалось не раз вроде. думаю в поиске можно найти подобные темы для понимания
zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

Re: Функциональность добавления своих настроек

Сообщение zna »

Den писал(а):Уж обсуждалось не раз вроде. думаю в поиске можно найти подобные темы для понимания
Нашлась одна тема 9-летней свежестиhttp://www.tyumbit.ru/gal_forum/viewtop ... %D0%B8+api
Может, есть какая- нить дока?
Den
Местный житель
Сообщения: 1842
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: Функциональность добавления своих настроек

Сообщение Den »

Там был где то в папке Гал файлик TuneApi.rar
zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

Re: Функциональность добавления своих настроек

Сообщение zna »

Den писал(а):Там был где то в папке Гал файлик TuneApi.rar
Не нашлось TuneApi.rar. В ..GalSrv\frm...\C_tune.. нашёлся CreateTune.vih, но нужен примерчик, чтобы в целом понять :eek:
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Re: Функциональность добавления своих настроек

Сообщение RAJAH »

Ничего сложного, всё, как обычно с vih:

Код: Выделить всё

interface TunDover, AlwaysReturn
var
  iCrTun: CreateTune;

...

handleevent
  cminit:
  {
     iCrTun.AddPart(...);
     iCrTun.AddTune(...);
     iCrTun.SetNumberTune(...);
     ...
  }
end;

end.
zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

Re: Функциональность добавления своих настроек

Сообщение zna »

Нет, там механизм точек расширения используется.. непонятно
Den
Местный житель
Сообщения: 1842
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: Функциональность добавления своих настроек

Сообщение Den »

http://tyumbit.ru/gal_forum/viewtopic.p ... eComponent

edward_K пример там приводит..
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5185
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Функциональность добавления своих настроек

Сообщение edward_K »

TuneApi.rar лежит в документации на галактику. Ищите папку Documentation91 на московском фтп.
zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

Re: Функциональность добавления своих настроек

Сообщение zna »

Нашёл доку, спасибо
zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

Re: Функциональность добавления своих настроек

Сообщение zna »

Написал так:

Код: Выделить всё

#include CreateTune.vih
#ifdef ComponentVersion
#component "F_USERREPORT"
#end 
Handler with replace M_TranspTest_DateModifyTune on ExtensionPoint
epDateModifyTuneEx (TS : C_Tune::ObjStartCreateTuneEx)
Action
{
 TS.SetLastDateModTuneComp('#__COMPONENT__', 01, 03, 2014);
Result := true;
}

Handler with replace My_CreateTune_ALL on extensionPoint
epCreateTuneComponent (TR: ObjCreateTuneEx) [201]
Action
{
...
Result := true;
} 
При компиляции имею : Отсутствует описание точки расширения epDateModifyTuneEx ...
Ресурс С_Tune.res в репозитарии подключен, точка расширения epDateModifyTuneEx видна
Изображение
:eek:
zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

Re: Функциональность добавления своих настроек

Сообщение zna »

Похоже, у меня протухший CreateTune.vih, т.к. на epDateModifyTune не ругается. Вот он:

Код: Выделить всё

#ifdef ComponentVersion
#component "C_Tune"
#end

//------------------------------------------------------------------------------
// ObjCreateTune - предоставляет доступ к функциям создания настроек
ObjInterface ObjCreateTune;
//------------------------------------------------------------------------------
  Function AddPart ( SysType: word;  Code: string; CodeParent: string; Name: string; Help: string ): word;
  //----------------------------------------------------------------------------
  // следующие 3 функции являются клоном AddPart с явно указанным типом
  Function AddPartA(Code: string; Name: string; Help: string ): word; // All = Sys+User, имя родителя должно быть установлено SetParent
  Function AddPartS(Code: string; Name: string; Help: string ): word; // Sys,  имя родителя должно быть установлено SetParent
  Function AddPartU(Code: string; Name: string; Help: string ): word; // User, имя родителя должно быть установлено SetParent
  //----------------------------------------------------------------------------
  Function AddTune ( SysType: word;
                     Code: string; CodeParent: string;
                     Name: string; ValType: word;
                     DefaultValue: string; Mask: string[20]; Help: string  ): word;
  //----------------------------------------------------------------------------
  // следующие 2 функции являются клоном AddTune с явно указанным типом
  Function AddTuneS(Code: string;
                    Name: string; ValType: word;      // sys, имя родителя должно быть установлено SetParent
                    DefaultValue: string; Mask: string[20]; Help: string ): word;
  Function AddTuneU(Code: string;
                    Name: string; ValType: word;      // user,имя родителя должно быть установлено SetParent
                    DefaultValue: string; Mask: string[20]; Help: string ): word;
  //----------------------------------------------------------------------------
  Function AddListTune (Code: string; ValueNo: word; Value: string): word;
  Function AddList (ValueNo: word; Value: string): word; // AddListTune(

  Function AddIntrTune (Code: string; Intr: string): word;
  Function AddIntr (Intr: string): word;

  Function SetRghTune  (Code: string; Rgh: word): word;
  Function SetRgh (Rgh: word): word;
  Function MakeInvisible: word;

  Procedure CallPostMetod (Code: string);                       // вызвать отложенный пост-метод для настройки
  Procedure SetNextNumberTune (Num: word);                      // установить следующий номер настройки
  Procedure SetParent(CodeParent: string);                      // установить родителя
  Procedure SetParentAndNumber(CodeParent: string; Num: word);  // установить родителя и номер настройки
  Procedure DeleteTune (Code: string);                          // удалить настройку
  Procedure SetComponent(CompName: string);                     // установить имя компонента

  Function  SetCorpoType  (Code: string; Tip: word): word;      // установить Корпо-тип настройки

  Function  GetNumberTune (Code: string) : word;                // получить номер настройки
  Procedure SetNumberTune (Code: string; Num: word);            // установить номер настройки
  Procedure ReNumberPart  (Code: string; isSubFolder: boolean); // перессчитать номера в разделе
  Function  GetMaxNumberTune: word;                             // получить Максимальный номер в реестре настроек
end;
//------------------------------------------------------------------------------

//------------------------------------------------------------------------------
VipInterface CreateTune implements ObjCreateTune Licensed(Free);
//------------------------------------------------------------------------------

//------------------------------------------------------------------------------
// ObjStartCrTune - обработка даты модификации реестра растроек
ObjInterface ObjStartCreateTune;
  //----------------------------------------------------------------------------
  // Установка даты модификации реестра настроек
  Procedure SetLastDateModTune (_Day, _Month, _Year : word);
end;
//------------------------------------------------------------------------------
VipInterface StartCreateTune implements ObjStartCreateTune Licensed(Free);
//------------------------------------------------------------------------------

//------------------------------------------------------------------------------
// Точки расширения для создания настроек в компонентах
//------------------------------------------------------------------------------

//------------------------------------------------------------------------------
// Точка вызывается из интерфейса CreateTune.
// C помощь вызова методов ObjCreateTune (вызовы TR.xxx) необходимо создать
// настройки компоненты
//
// ! Обработчик точки расширения всегда должен возвращать True
//
ExtensionPoint epCreateTuneComponent (TR : ObjCreateTune);
//
//  Порядок выделения приоритета для точки расширения
//
//  Компоненты C_ - от  11 до  40
//  Компоненты L_ - от  41 до  80
//  Компоненты F_ - от  81 до 120
//  Компоненты M_ - от 121 до 160
//  Компоненты Z_ - от 161 до 200
//  Для прочих разработк (в том числе для партнеров - разработчиков)
//                - от 201 до 240
//  Диапазоны зерезервированы для системы, не использовать !!!
//                - от   0 до  10
//                - от 241 до 255
//
//------------------------------------------------------------------------------

//------------------------------------------------------------------------------
// Точка вызывается из интерфейса StartCrTune.
// C помощью TS.SetLastDateModTune(...) в обработчике точки расширения
// необходимо установить дату модификации реестра настроек.
// Если указанная дата будет больше чем дата в БД, то автоматически
// запустится интерфейс модификации реестра.
//
// ! Обработчик точки расширения всегда должен возвращать True
//
ExtensionPoint epDateModifyTune (TS : ObjStartCreateTune);
//------------------------------------------------------------------------------

#end // __CreateTune__vih__
                                                         
У кого есть посвежее, выложите, пож.- сюда или на nizamyat@mail.ru
Den
Местный житель
Сообщения: 1842
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: Функциональность добавления своих настроек

Сообщение Den »

после установки патчей последних для вашей 8,1 , в папке frm, в компоненте c_tune (C_Tune.rar) должна быть актуальная для вас версия CreateTune.vih
zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

Re: Функциональность добавления своих настроек

Сообщение zna »

Изображение
Yess! Получилось! Спасибо, Денис и Эдвард :D

Мож, кому сгодится..

Код: Выделить всё

#include CreateTune.vih
Handler with replace M_TranspTest_DateModifyTune on ExtensionPoint
epDateModifyTuneEx (TS : ObjStartCreateTuneEx)
Action
{
 TS.SetLastDateModTuneComp('#__COMPONENT__', 01, 03, 2014);
Result := true;
}

Handler with replace My_CreateTune_ALL on extensionPoint
epCreateTuneComponent (TR: ObjCreateTuneEx) [201]
Action
{
Result := true;
TR.SetComponent('#__COMPONENT__');
TR.SetNextNumberTune(30000); //
//TR.SetParent('RARS_TRANSP')
//TR.AddTuneU('RARS_TRANSP.FILTR_PODR','наименование', ftList, '0', '', 'AvtoNastroikaPravaDostupa');
//TR.AddList(0, 'да');
//TR.AddList(1, 'нет');
   TR.AddPart (ttSysUserTune,'SKYSHOP','TUNE','Небесная торговля',0);
    TR.AddTune (ttSysTune, 'SKYSHOP.Trade','SKYSHOP','Торговля',ftList,'0','',0);
      TR.AddListTune ('SKYSHOP.Trade',0,'безпошлинная');
      TR.AddListTune ('SKYSHOP.Trade',1,'пошлинная');
    TR.AddTune (ttSysTune,'SKYSHOP.DefOrg','SKYSHOP','Временный контрагент',ftComp,'0','',0);
      TR.AddIntrTune ('SKYSHOP.DefOrg','GETKATORG_SKY');
    TR.AddTune (ttUserTune,'SKYSHOP.DeficitTo','SKYSHOP','Списывать недостачи на разгильдяйство',ftBoolean,'0','',0);
    TR.AddTune (ttUserTune, 'SKYSHOP.Flot','SKYSHOP','Сумма выдаваемых разменных денег',ftDouble,'1000.00','6666667.899',0);
    TR.AddTune (ttUserTune,'SKYSHOP.DefNaklDate','SKYSHOP','Начальная дата периода просмотра/формирования накладных по умолчанию',ftDate,'01.01.2003','DD.MM.YYYY',0);
}      
Ответить