Re: Как узнать имя локального меню?
Добавлено: 20 ноя 2013, 11:34
тяжко. Только просмотром всех, что есть по компоненте и проверке на совпадение тому, что вы видите в фейсе.
Обсуждение различных вопросов, связанных с сопровождением, администрированием и программированием
https://asu.tyumbit.ru/
Код: Выделить всё
#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.
Код: Выделить всё
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);
}
Код: Выделить всё
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;
}