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

Спрятать пункт popup меню

Добавлено: 15 дек 2008, 20:04
galover
Запретить/разрешить пункт popup меню нашел, а как вообще скрыть?

Добавлено: 16 дек 2008, 10:53
galover
Попутно: а изменить наименование пункта меню как?

Re: Спрятать пункт popup меню

Добавлено: 01 апр 2011, 09:13
Marisha_P
Вопрос остался без ответа?:) Подниму темку, может кто-то все-таки сможет подсказать как изменить наименование пункта меню?

Re: Спрятать пункт popup меню

Добавлено: 01 апр 2011, 11:03
galover
Я с ТП списывался по этому вопросу. Они присоветовали примерно следующее, поясню кодом

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

   mnuMain menu
   {
      menuItem 'Тест', cmTest,,, 'F4', kbF4;
      menuItem 'Обновить', cmRefreshSelPlPors;
   }
   
   var _mainMenuId : longint; 

   private procedure PreparePopupMenu;
   {
      _mainMenuId := LoadMenu('mnuMain');

      if (нужно спрятать)
         SetMenuItemState(_mainMenuId, 'Test', cmTest, mfHidden);
   }
   
   cmHotKeys:
   {
      PreparePopupMenu();
      PutHotCommand(RunLoadMenu(_mainMenuId));
   }

Re: Спрятать пункт popup меню

Добавлено: 01 апр 2011, 11:10
Vik
Как вариант, можно попробовать сохранить меню как динамическое, зайти в саппорт в таблицу X$resources, найти нужную запись, и подправить в мемо-поле наименование нужного пункта)

Re: Спрятать пункт popup меню

Добавлено: 01 апр 2011, 13:33
Marisha_P
Спасибо!
Следом еще один вопрос - мне нужно при создании нового акта в поле автоматически устанавливать значение. С конфигуратором раньше не связывалась, подскажите, пожалуйста, как это сделать :)

Re: Спрятать пункт popup меню

Добавлено: 01 апр 2011, 15:29
spark
Marisha_P писал(а):Спасибо!
Следом еще один вопрос - мне нужно при создании нового акта в поле автоматически устанавливать значение. С конфигуратором раньше не связывалась, подскажите, пожалуйста, как это сделать :)
Я это делаю через докомпиляцию перехватывая событие cmSetDefault:

Например:

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

#define ComponentVersion
#Component "L_SOPRDOC"
alter interface SOPRDOC;
tableEvent table katsopr
cmSetDefault:
{
 Inherited::HandleEvent(cmSetDefault);
 katsopr.CPODRFROM:=coGetTune('OPER.BUY.NAKLPRMS.GETSKLAD');
}
end
end.

Re: Спрятать пункт popup меню

Добавлено: 04 апр 2011, 09:05
Marisha_P
Спасибо!
а если потом нужно отслеживать изменения значения и обновлять их, то наверное нужно использовать триггер?

Re: Спрятать пункт popup меню

Добавлено: 04 апр 2011, 11:01
m0p3e
Marisha_P писал(а):Спасибо!
а если потом нужно отслеживать изменения значения и обновлять их, то наверное нужно использовать триггер?
Можно конечно и триггером, но это из пушки по воробьям. Проще событие cmUpdateRecord отслеживать.

Re: Спрятать пункт popup меню

Добавлено: 04 апр 2011, 16:47
oiko
Если вы просто не хотите обновлять данное поле просто заблокируйте конфигуратором его редактирование.

Re: Спрятать пункт popup меню

Добавлено: 04 апр 2011, 18:37
edward_K
тригер хорош когда табла модифицируется в куче фейсов и вам влом докомпилить каждый. Как например приказы в кадрах

Re: Спрятать пункт popup меню

Добавлено: 06 апр 2011, 11:40
Marisha_P
Подскажите, пожалуйста, в чем проблема данного проекта, он не комплируется :(

#define ComponentVersion
#Component "F_MBP"
alter interface SPIS_MBP;
tableEvent table mbpmove
cmSetDefault:
{
Inherited::HandleEvent(cmSetDefault);
if pTypeDoc = 5 mbpmove.dopinfo:='Выбытие спецоснастки';
}
end;
end.

Выводится ошибка - Ожидался interface, const или конец файла (стр.2 поз.1)
Добавляю строку #setCurEnv "galnet"; в начало, всё равно та же самая ошибка при компиляции.
Что я делаю неправильно?

Re: Спрятать пункт popup меню

Добавлено: 06 апр 2011, 15:51
Vik
Вообще, тут все правильно написано, не должно ругаться. Либо вы не весь код привели, либо одно из двух..

Re: Спрятать пункт popup меню

Добавлено: 06 апр 2011, 16:14
Marisha_P
Данный код сохранен в файле - test.vip
Компилирую проект aktspisp.prj, содержащий текст
#make "test.vip"

Больше никакого текста нет.....

Re: Спрятать пункт popup меню

Добавлено: 06 апр 2011, 16:52
galover
а если явно прописать в cfg System.OpenResources=..\F_MBP.res?