Страница 1 из 1

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

Добавлено: 29 сен 2016, 11:24
zna
Приветствую всех. Кто- нибудь делал свои настройки в дополнение к системным? Вроде видел АПИ, но не могу найти.. :-(
Гал.8.1

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

Добавлено: 29 сен 2016, 11:52
Den
Уж обсуждалось не раз вроде. думаю в поиске можно найти подобные темы для понимания

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

Добавлено: 29 сен 2016, 12:09
zna
Den писал(а):Уж обсуждалось не раз вроде. думаю в поиске можно найти подобные темы для понимания
Нашлась одна тема 9-летней свежестиhttp://www.tyumbit.ru/gal_forum/viewtop ... %D0%B8+api
Может, есть какая- нить дока?

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

Добавлено: 29 сен 2016, 12:14
Den
Там был где то в папке Гал файлик TuneApi.rar

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

Добавлено: 29 сен 2016, 13:16
zna
Den писал(а):Там был где то в папке Гал файлик TuneApi.rar
Не нашлось TuneApi.rar. В ..GalSrv\frm...\C_tune.. нашёлся CreateTune.vih, но нужен примерчик, чтобы в целом понять :eek:

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

Добавлено: 29 сен 2016, 14:33
RAJAH
Ничего сложного, всё, как обычно с vih:

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

interface TunDover, AlwaysReturn
var
  iCrTun: CreateTune;

...

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

end.

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

Добавлено: 29 сен 2016, 15:18
zna
Нет, там механизм точек расширения используется.. непонятно

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

Добавлено: 29 сен 2016, 15:26
Den
http://tyumbit.ru/gal_forum/viewtopic.p ... eComponent

edward_K пример там приводит..

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

Добавлено: 29 сен 2016, 16:55
edward_K
TuneApi.rar лежит в документации на галактику. Ищите папку Documentation91 на московском фтп.

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

Добавлено: 30 сен 2016, 08:30
zna
Нашёл доку, спасибо

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

Добавлено: 30 сен 2016, 10:49
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:

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

Добавлено: 30 сен 2016, 12:08
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

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

Добавлено: 30 сен 2016, 12:59
Den
после установки патчей последних для вашей 8,1 , в папке frm, в компоненте c_tune (C_Tune.rar) должна быть актуальная для вас версия CreateTune.vih

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

Добавлено: 30 сен 2016, 13:34
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);
}