Добавление документа в модуль

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

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

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

Re: Добавление документа в модуль

Сообщение edward_K »

В общем раз сие не следует запускать каждый раз то лучше код m0p3e добавить в добавление настроек в обработчик

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

Handler with replace ???????????????_CreateTune on extensionPoint
  epCreateTuneComponent (TR: ObjCreateTuneEx) [221]
Подменю можно определить так

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

#component "Z_STAFFMENU"
MYSTAFFMENU MENU
{
 = 'Плате~ж~ные требования','Ввод и редактирование платежных требований',hcBankM1PlTreb,scMenuCtx;
 {
   - 'С~о~бственные', cmRunInterface('F_PLPOR::PLPOR(32, 0)')
            ,'Ввод и редактирование собственных платежных требований',hcBankM1PlTreb;
   - 'С~т~оронние',   cmRunInterface('F_PLPOR::PLPOR(1032, 0)')
     ,'Ввод и редактирование сторонних платежных требований',hcBankM1PlTreb;
 }
}
BlazeBio
Местный житель
Сообщения: 386
Зарегистрирован: 27 апр 2010, 14:31
Контактная информация:

Re: Добавление документа в модуль

Сообщение BlazeBio »

m0p3e писал:
Добавление в главное меню:

Код: Выделить всё
#ifdef ComponentVersion
#component "Z_STAFFMENU"
#end

Interface ChangeStaffMenu;
View select * from x$resources;
HandleEvent
cmInit :
{
If Message ( 'Изменить меню модуля кадры?', YesNo ) = cmYes
{
var iMenu, SubMenu : LongInt;
DeleteMenuHowDynamics ( 'Z_STAFFMENU::STAFFDATABASEMENU' );
iMenu := LoadMenuEx ( 'Z_STAFFMENU::STAFFDATABASEMENU',true,false);
SubMenu := LoadMenu ( 'Z_STAFFMENU::MYSTAFFMENU' );
//AddSubMenu ( iMenu, SubMenu, 'Мое новое подменю','','' );
ConCatMenu ( iMenu, SubMenu );
StoreMenuHowDynamics ( iMenu,'Z_STAFFMENU::STAFFDATABASEMENU' );
DisposeLoadMenu ( iMenu );
ReinitHeaderMenu;
};
Abort;
}; //cmInit
End;
END.

MyStaffMenu Menu
{
- 'Приказы (прием на работу)', cmRunInterface ( 'Z_STAFF::Prikaz' );
}

В протекте новый пункт видно.
Извините, что так долго не отвечал. Были на то личные причины. Скажите добавление меню происходит в модуль управления персоналом. Если туда, то где оно должно появится ? Я скомпилил исходник, а ничего не поменялось ? И что значит #ifdef ComponentVersion ?
galover
Местный житель
Сообщения: 794
Зарегистрирован: 16 ноя 2007, 13:52

Re: Добавление документа в модуль

Сообщение galover »

OFF Я кстати тоже не врубаюсь, для чего везде люди втыкают

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

#ifdef ComponentVersion
Я так понимаю это вводилось для Галактики 8.1, где появилась компонентная принадлежность. Для кода самой Галактики оно ясно и понятно. Но зачем нагромождать свой код этими макросами мне непонятно. Народ действительно делает поддержку для нескольких версий Галактики? Что, у кого-то фунциклирует несколько Галактик? Тогда почему вот такой код оставляют

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

LoadMenu('Z_STAFFMENU::MYSTAFFMENU'); // для Галактики ниже 8.1 это выстрелит исключением
// По правильному тогда
LoadMenu(
#ifdef ComponentVersion
 'Z_STAFFMENU::MYSTAFFMENU' 
#else
 'MYSTAFFMENU'
#end
);
Или может я чего не понимаю :hz:
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: Добавление документа в модуль

Сообщение m0p3e »

Извините, что так долго не отвечал. Были на то личные причины. Скажите добавление меню происходит в модуль управления персоналом. Если туда, то где оно должно появится ? Я скомпилил исходник, а ничего не поменялось ?
Сервис/Утилиты/Запуск внешнего интерфейса там выбрать интерфейс ShangeStaffMenu.
Результат смотреть в модуле "Управление персоналом". УП выбрано в качестве теста. Свой обратботчик встраиваете в модуль по задаче.
И что значит #ifdef ComponentVersion ?
Макропеременная. Пользуемся поиском.
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: Добавление документа в модуль

Сообщение m0p3e »

Я так понимаю это вводилось для Галактики 8.1, где появилась компонентная принадлежность. Для кода самой Галактики оно ясно и понятно. Но зачем нагромождать свой код этими макросами мне непонятно. Народ действительно делает поддержку для нескольких версий Галактики? Что, у кого-то фунциклирует несколько Галактик? Тогда почему вот такой код оставляют
У меня в болванке интерфейса так настроено. По идее конструкция необязательная, но существуют регламенты разработки и следование им является "хорошим тоном". :smile:
BlazeBio
Местный житель
Сообщения: 386
Зарегистрирован: 27 апр 2010, 14:31
Контактная информация:

Re: Добавление документа в модуль

Сообщение BlazeBio »

m0p3e,ChangeStaffMenu во внешних интерфейсах нет. И там же я не нахожу группы интерфейсов с компонентом Z_STAFFMENU ? В чём может быть причина ?
galover
Местный житель
Сообщения: 794
Зарегистрирован: 16 ноя 2007, 13:52

Re: Добавление документа в модуль

Сообщение galover »

пропало имя юзера при вставке цитаты (т.е. кого цитируем), какие-то бесполезные огромные кавычки вместо этого. Не айс, раньше лучше было
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Добавление документа в модуль

Сообщение edward_K »

BlazeBio писал(а):m0p3e,ChangeStaffMenu во внешних интерфейсах нет. И там же я не нахожу группы интерфейсов с компонентом Z_STAFFMENU ? В чём может быть причина ?
Vip.VisibleAllInterface=On в cfg и будет вам счастье, в противном случае фейсы без визуальной части не показываются - а здесь ее нет.
BlazeBio
Местный житель
Сообщения: 386
Зарегистрирован: 27 апр 2010, 14:31
Контактная информация:

Re: Добавление документа в модуль

Сообщение BlazeBio »

edward_K, интерфейс виден, только при запуске вылетает ошибка "ExLoadMenuError(ExVip), что интерфейс Z_STAFFMENU::MYSTAFFMENU не найден в ресурсе ". Из-за чего это может быть ?
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Добавление документа в модуль

Сообщение edward_K »

#define ComponentVersion
в проекте или в 1 строке
galover
Местный житель
Сообщения: 794
Зарегистрирован: 16 ноя 2007, 13:52

Re: Добавление документа в модуль

Сообщение galover »

OFF прогнал, есть оказывается имя пользователя в цитате
BlazeBio
Местный житель
Сообщения: 386
Зарегистрирован: 27 апр 2010, 14:31
Контактная информация:

Re: Добавление документа в модуль

Сообщение BlazeBio »

edward_K писал(а):#define ComponentVersion
в проекте или в 1 строке
Если добавить эту строку, то интерфейс исчезает из списка вызываемых в утилиты/запуск внешнего интерфейса?!
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: Добавление документа в модуль

Сообщение m0p3e »

Если добавить эту строку, то интерфейс исчезает из списка вызываемых в утилиты/запуск внешнего интерфейса?!
Потому как появляется под именем
Z_STAFFMENU::ChangeStaffMenu
BlazeBio
Местный житель
Сообщения: 386
Зарегистрирован: 27 апр 2010, 14:31
Контактная информация:

Re: Добавление документа в модуль

Сообщение BlazeBio »

Да, появилось Z_STAFFMENU::ChangeStaffMenu. А как удалить созданное меню? Я нашёл, что есть команда DeleteMenuItem. Там есть 4 параметра. Как я понимаю для моего случая menuID:=LoadMenu('Z_STAFFMENU::STAFFDATABASEMENU') и name='Приказы (прием на работу)'. А command и commandParams что за они?
edward_K писал(а):В общем раз сие не следует запускать каждый раз то лучше код m0p3e добавить в добавление настроек в обработчик

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

Handler with replace ???????????????_CreateTune on extensionPoint
  epCreateTuneComponent (TR: ObjCreateTuneEx) [221]
Подменю можно определить так

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

#component "Z_STAFFMENU"
MYSTAFFMENU MENU
{
 = 'Плате~ж~ные требования','Ввод и редактирование платежных требований',hcBankM1PlTreb,scMenuCtx;
 {
   - 'С~о~бственные', cmRunInterface('F_PLPOR::PLPOR(32, 0)')
            ,'Ввод и редактирование собственных платежных требований',hcBankM1PlTreb;
   - 'С~т~оронние',   cmRunInterface('F_PLPOR::PLPOR(1032, 0)')
     ,'Ввод и редактирование сторонних платежных требований',hcBankM1PlTreb;
 }
}
Где можно узнать что-нибудь о hcBankM1PlTreb и scMenuCtx? И что за параметры в скобках в 'F_PLPOR::PLPOR(1032, 0)?
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: Добавление документа в модуль

Сообщение m0p3e »

BlazeBio писал(а):Да, появилось Z_STAFFMENU::ChangeStaffMenu. А как удалить созданное меню? Я нашёл, что есть команда DeleteMenuItem. Там есть 4 параметра. Как я понимаю для моего случая menuID:=LoadMenu('Z_STAFFMENU::STAFFDATABASEMENU') и name='Приказы (прием на работу)'. А command и commandParams что за они?
DeleteMenuHowDynamics ( 'Z_STAFFMENU::STAFFDATABASEMENU' ); - удаляет измененное меню из x$resources (сбрасывает по дефолту).
Вообще рекомендую не бояться читать доки и хелпы. Наблюдаются явные пробелы в знаниях.
Ответить