Как узнать имя локального меню?
Модераторы: m0p3e, edward_K, Модераторы
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Как узнать имя локального меню?
тяжко. Только просмотром всех, что есть по компоненте и проверке на совпадение тому, что вы видите в фейсе.
-
- Местный житель
- Сообщения: 2898
- Зарегистрирован: 24 июн 2005, 12:12
- Откуда: Иркутская область
Re: Как узнать имя локального меню?
ну так и пришлось... но согласитесь, это же жесть какая то! неужели нельзя было в описаниях интерфейсах сделать вкладку, в которых указать возможные локальные меню. пичаль 

-
- Местный житель
- Сообщения: 1846
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
- Контактная информация:
Re: Как узнать имя локального меню?
Такого думаю нет. Явного описания локальных меню, использующихся в том или ином интерфейсе, вроде нет нигде.
В саппорте, действительно можно много почерпнуть по меню. И, зачастую , по пунктам меню можно понять то ли это искомое меню.
Но бывают еще менюхи динамически набираемые/загружаемые прямо в коде прикладниками...
В саппорте, действительно можно много почерпнуть по меню. И, зачастую , по пунктам меню можно понять то ли это искомое меню.
Но бывают еще менюхи динамически набираемые/загружаемые прямо в коде прикладниками...
-
- Местный житель
- Сообщения: 2898
- Зарегистрирован: 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' и др.- не получается. Возможно, динамически строка собирается..

Пытался в справочной системе для 9-ки найти в описании L_DOGOVOR- но убрали оттуда содержание меню, оставили только имена. А в 8-ке было содержание меню..
Посмотрите, пож., у кого есть описание..
Перебирал строки с именами меню типа 'L_DOGOVOR::MNUDOGOVORSPDOCS' и др.- не получается. Возможно, динамически строка собирается..
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 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'. Конфигурация фронта приняла вид:
Залп по неприятелю нанесён кнопкой Огонь (замаскированной как Скомпилировать)
После рассеивания дыма стало видно, что противник бежал, а его место заняли наши войска
Ура! 
Тяжелая артиллерия, любезно предоставленная главнокомандующим Эдвардом, была возвращена на место за невостребованностью. Вместо неё по совету начштаба Дениса (позывной 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;
}
После рассеивания дыма стало видно, что противник бежал, а его место заняли наши войска

