Как узнать имя локального меню?
Модераторы: m0p3e, edward_K, Модераторы
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5187
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Как узнать имя локального меню?
тяжко. Только просмотром всех, что есть по компоненте и проверке на совпадение тому, что вы видите в фейсе.
-
- Местный житель
- Сообщения: 2896
- Зарегистрирован: 24 июн 2005, 12:12
- Откуда: Иркутская область
Re: Как узнать имя локального меню?
ну так и пришлось... но согласитесь, это же жесть какая то! неужели нельзя было в описаниях интерфейсах сделать вкладку, в которых указать возможные локальные меню. пичаль ![Smile :)](./images/smilies/078.gif)
![Smile :)](./images/smilies/078.gif)
-
- Местный житель
- Сообщения: 1842
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
- Контактная информация:
Re: Как узнать имя локального меню?
Такого думаю нет. Явного описания локальных меню, использующихся в том или ином интерфейсе, вроде нет нигде.
В саппорте, действительно можно много почерпнуть по меню. И, зачастую , по пунктам меню можно понять то ли это искомое меню.
Но бывают еще менюхи динамически набираемые/загружаемые прямо в коде прикладниками...
В саппорте, действительно можно много почерпнуть по меню. И, зачастую , по пунктам меню можно понять то ли это искомое меню.
Но бывают еще менюхи динамически набираемые/загружаемые прямо в коде прикладниками...
-
- Местный житель
- Сообщения: 2896
- Зарегистрирован: 24 июн 2005, 12:12
- Откуда: Иркутская область
Re: Как узнать имя локального меню?
не отрабатывает.... хотя подобный пример на другом интерфейсе работает, может быть это связано с тем, что интерфейс является встраиваемым в другой интерфейс?
нужно в каталоге объектов ремонта в иерархическом виде подключить ещё один пункт. что не так делаю?
нужно в каталоге объектов ремонта в иерархическом виде подключить ещё один пункт. что не так делаю?
Код: Выделить всё
#Component "L_REMONT"
const
cmIface = 3001;
end
alter interface TREEOBJREM;
var menuID:longint;
create view;
Window TreeObjRem;
HandleEvent
cmInit: message('init');
cmHotKeys:
{
message('1');
menuId := LoadMenu('RemObjTree_HotKeys');
AddMenuItem (menuID,'111111111111111',cmIface);
PutHotCommand(RunLoadMenu(menuID));
}
cmIface:
{
message('1 '+objrem.name);
}
end;
End;
end.
-
- Местный житель
- Сообщения: 552
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Челябинск
- Контактная информация:
Надо имя локального меню в договорах
Добрый день! Нужно имя локального меню Договора- Спецификация, вот его вид:
Пытался в справочной системе для 9-ки найти в описании L_DOGOVOR- но убрали оттуда содержание меню, оставили только имена. А в 8-ке было содержание меню..
Посмотрите, пож., у кого есть описание..
Перебирал строки с именами меню типа 'L_DOGOVOR::MNUDOGOVORSPDOCS' и др.- не получается. Возможно, динамически строка собирается..
![Изображение](http://152.r.photoshare.ru/01529/00e961c6c3d524761e0ebe02631ce0c754712b92.jpg)
Пытался в справочной системе для 9-ки найти в описании L_DOGOVOR- но убрали оттуда содержание меню, оставили только имена. А в 8-ке было содержание меню..
Посмотрите, пож., у кого есть описание..
Перебирал строки с именами меню типа 'L_DOGOVOR::MNUDOGOVORSPDOCS' и др.- не получается. Возможно, динамически строка собирается..
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5187
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Как узнать имя локального меню?
Вот вам все событие.
Код: Выделить всё
cmHotKeys:
{
var boFlag: boolean;
boFlag := ( ((SpDocs.prMC = 2) or (SpDocs.prMC = 3)) AND (Dogovor.Direct < 3) AND EditDogPosEnabled(false, false) );
SetEnableCommand(cmAccording , boFlag); //Рассчитать стоимость услуги как % от стоимости МЦ
SetEnableCommand(cmCalcUslParam, boFlag AND (KatUsl.TYPEUSL = 1));
SetEnableCommand(cmValue20 , boFlag AND (KatUsl.TYPEUSL = 1));
SetEnableCommand(cmPickClass, (GetCurrentFormat <> scwSpDocNal));
SetEnableCommand(cmPickAttr , (GetCurrentFormat <> scwSpDocNal));
SetEnableCommand(cmExAttrBat, (GetCurrentFormat <> scwSpDocNal));
var CanCopyFromClipbrd: boolean; CanCopyFromClipbrd := TRUE;
if NOT EditDogPosEnabled(false, false)
CanCopyFromClipbrd := FALSE
else
if (Dogovor.cDogovor <> 0)
CanCopyFromClipbrd := ((DogOwner.SpecStatus <> 0) or not bSpec);
SetEnableCommand(cmCopySpecFromClipboard, CanCopyFromClipbrd);
SetEnableCommand(cmValFld10, (Dogovor.VidDog = vd_12));
boFlag := EditDogPosEnabled(false, false);
SetEnableCommand(cmRestoreDoc, boFlag);
SetEnableCommand(cmSortMC , boFlag);
SetEnableCommand(cmVal6 , boFlag);
SetEnableCommand(cmVal7 , boFlag);
SetEnableCommand(cmVal8 , boFlag);
SetEnableCommand(cmValue32 , boFlag and CanCopyFromClipbrd);
SetEnableCommand(cmValue42 , boFlag);
SetEnableCommand(cmValue33 , boFlag);
SetEnableCommand(cmMulSelDO , boFlag and Lic_ItemExists('SmetaDocs'));
SetEnableCommand(cmValue41 , boFlag and not Lic_ItemExists('SmetaDocs'));
SetEnableCommand(cmValFld10 , boFlag);
SetEnableCommand(cmValue18 , boFlag);
epAddMenuEx(coSpDocs, SpDocs.nRec, coDogovor, Dogovor.nRec, IExtMenu(Self));
sMenuDop := Replace(sMenuDop, ';SEPARATOR;', '');
var mnuName: string;
var MenuID, DopMenuID : longint;
if (Dogovor.cDogovor <> 0)
{
mnuName := 'L_Dogovor::mnuDogovorSpDocs';
MenuID := LoadMenu(mnuName);
}
else
if ((Dogovor.Direct mod 2) = 0)
{
mnuName := 'L_Dogovor::mnuDogovorSpDocs2';
MenuID := LoadMenu(mnuName);
case wGetTune('DOG.CTRLF3_BUY') of
0 : mnuName := 'L_Dogovor::mnuDogovorSpDocs2_1';
1 : mnuName := 'L_Dogovor::mnuDogovorSpDocs2_2';
2 : mnuName := 'L_Dogovor::mnuDogovorSpDocs2_3';
else
mnuName := '';
end;
AddMenuItem(MenuID, 'SEPARATOR', 0);
ConcatMenu(MenuID, LoadMenu(mnuName));
mnuName := 'L_Dogovor::mnuDogovorSpDocs2_4';
AddMenuItem(MenuID, 'SEPARATOR', 0);
ConcatMenu(MenuID, LoadMenu(mnuName));
}
else
{
mnuName := 'L_Dogovor::mnuDogovorSpDocs1';
MenuID := LoadMenu(mnuName);
case wGetTune('DOG.CTRLF3_SELL') of
0 : mnuName := 'L_Dogovor::mnuDogovorSpDocs1_1';
1 : mnuName := 'L_Dogovor::mnuDogovorSpDocs1_2';
2 : mnuName := 'L_Dogovor::mnuDogovorSpDocs1_3';
else
mnuName := '';
end;
AddMenuItem(MenuID, 'SEPARATOR', 0);
ConcatMenu(MenuID, LoadMenu(mnuName));
mnuName := 'L_Dogovor::mnuDogovorSpDocs1_4';
AddMenuItem(MenuID, 'SEPARATOR', 0);
ConcatMenu(MenuID, LoadMenu(mnuName));
}
if MenuMakerV2::IsOptionalMenuFuncsPresent(IMenuMakerParameters(Self))
MenuMakerV2::AddItemsOfOptionalMenuFuncs(IMenuMakerParameters(Self), MenuID);
if (Dogovor.VidDog = vd_19)
{
AddMenuItem(MenuID, 'SEPARATOR', 0);
ConcatMenu(MenuID, LoadMenu('L_Dogovor::mnuDogovorSpDocsBTK'));
}
if ( sMenuDop = '' )
PutHotCommand(RunLoadMenu(MenuID))
else
{
DopMenuID := MenuMaker::LoadDynMenu(sMenuDop);
ConcatMenu(DopMenuID, MenuID);
PutHotCommand(RunLoadMenu(DopMenuID));
}
EnableCommand(cmRestoreDoc);
EnableCommand(cmSortMC);
EnableCommand(cmVal6);
EnableCommand(cmVal8);
EnableCommand(cmVal7);
EnableCommand(cmValFld10);
EnableCommand(cmValue32);
EnableCommand(cmValue42);
EnableCommand(cmValue33);
EnableCommand(cmValue18);
}
-
- Местный житель
- Сообщения: 552
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Челябинск
- Контактная информация:
Re: Как узнать имя локального меню?
Так и есть- динамическое меню..
Спасибо, Эдвард
Спасибо, Эдвард
-
- Местный житель
- Сообщения: 552
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Челябинск
- Контактная информация:
Re: Как узнать имя локального меню?
Борьба с меню закончилась поражением противника. Ход сражения:
Тяжелая артиллерия, любезно предоставленная главнокомандующим Эдвардом, была возвращена на место за невостребованностью. Вместо неё по совету начштаба Дениса (позывной Den) на передовую позицию выдвинута стрелковая рота именем 'L_DOGOVOR::MNUDOGOVORSPDOCS'. Конфигурация фронта приняла вид:
Залп по неприятелю нанесён кнопкой Огонь (замаскированной как Скомпилировать)
После рассеивания дыма стало видно, что противник бежал, а его место заняли наши войска
Ура! ![Smile :-)](./images/smilies/116.gif)
Тяжелая артиллерия, любезно предоставленная главнокомандующим Эдвардом, была возвращена на место за невостребованностью. Вместо неё по совету начштаба Дениса (позывной Den) на передовую позицию выдвинута стрелковая рота именем 'L_DOGOVOR::MNUDOGOVORSPDOCS'. Конфигурация фронта приняла вид:
Код: Выделить всё
cmHotKeys:{
case CurTable of
#Spdocs :
{
var MenuIdm: longint;
var sDynMenum: string;
MenuIdm := LoadMenu('L_DOGOVOR::MNUDOGOVORSPDOCS');
AddMenuItem(MenuIdm, 'SEPARATOR', 0);
AddMenuItemEx(MenuIdm, 'Добавить спецификацию из ДО','','',cmValue59,kbAltP);
AddMenuItemEx(MenuIdm, 'Удалить всю спецификацию','','',cmValue58,kbAltP);
AddMenuItem(MenuIdm, 'SEPARATOR', 0);
PutHotCommand(RunLoadMenu(MenuIdm));
Stop;
}
else inherited :: handleEvent (cmHotKeys);
end;
}
После рассеивания дыма стало видно, что противник бежал, а его место заняли наши войска
![Изображение](http://152.r.photoshare.ru/01529/00e9752d0f223f8779d719204f00852a9288d8e5.jpg)
![Smile :-)](./images/smilies/116.gif)