Как узнать имя локального меню?

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

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

m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: Как узнать имя локального меню?

Сообщение m0p3e »

Повторный запуск необходим в случае, если разработчики меню изменили. Если не переинициализировать свои доработки, то оно останется без новых пунктов.
Vik
Местный житель
Сообщения: 370
Зарегистрирован: 28 сен 2006, 15:43
Откуда: Санкт-Петербург
Контактная информация:

Re: Как узнать имя локального меню?

Сообщение Vik »

Я понимаю, что вы хотите проверку на существование меню сделать. Просто функция эта вам не поможет, она отслеживает состояние пунктов меню. Это следует хотя бы из ее названия. Если бы вы все-таки прочитали посты выше, как я вам советовал, вы бы увидели один из способов реализации проверки на то, было меню изменено уже или нет. Теперь об ошибке. Вы как указываете имя меню? Необходимо с указанием компоненты.

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

.......

 if(not MenuChanged('MENU L_SKLAD::SKLOPER') )
  {
     if  (UserIsAdmin) 
       {
          var iMenu: longint;
          iMenu := LoadMenuEx ( 'L_SKLAD::SKLOPER', true, false);
          AddMenuItem ( iMenu, 'separator', 666 );
          AddMenuItemEx2 ( iMenu, 'КАЛЬКУЛЯТОР', '', '', cmRunInterface, 0, 'AtlCalc' );
          StoreMenuHowDynamics ( iMenu, 'L_SKLAD::SKLOPER' );
          DisposeLoadMenu ( iMenu );

       } 
	
  }
.........
Function MenuChanged(nameMenu: string): boolean;
{
   result := (RecordExists X$Resources where ((           3 == X$Resources.XR$Type 
                                               and nameMenu == X$Resources.XR$Name))
       = tsOk);
}

Function UserIsAdmin: boolean;
{
   result := false;
   if (GetFirst FastFirstRow X$Users where (( UserId == X$Users.Atl_NRec)) = tsOk)
      result := (X$Users.Xu$Type = 1);
}
Заходим в Складской учет - Операции - Калькулятор
n0where
Местный житель
Сообщения: 499
Зарегистрирован: 30 дек 2010, 08:16

Re: Как узнать имя локального меню?

Сообщение n0where »

Подключил ресурс через саппорт, меню создано )

Но проблема образовалась в другом: Мой нтерфейс каким то образом перешёл в объекты, а в списке интерфейсах его нет.
Не хотит ))

Увидел что подключаю как компонент ) Как правильно подключить ресурсник в таком случае?
хороший программист — это человек, который переходя улицу с односторонним движением смотрит в обе стороны
n0where
Местный житель
Сообщения: 499
Зарегистрирован: 30 дек 2010, 08:16

Re: Как узнать имя локального меню?

Сообщение n0where »

Все разобрался. теперь по меню.

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

Re: Как узнать имя локального меню?

Сообщение edward_K »

а зачем отключать? Скройте протектом кому не надо и все.
n0where
Местный житель
Сообщения: 499
Зарегистрирован: 30 дек 2010, 08:16

Re: Как узнать имя локального меню?

Сообщение n0where »

Почемуто в Галактике все так говорят, а зачем это делать можно сделать так через заднюю дверь. Неправильная концепция

Потому что это правильно. Например сейчас мой ресер полдключен к нескольким людям разрешенный, а общий запрещен. Но менюшка то у всех показана. Это не правильно же.
хороший программист — это человек, который переходя улицу с односторонним движением смотрит в обе стороны
Ренат
Постоянный обитатель
Сообщения: 194
Зарегистрирован: 12 сен 2007, 16:34
Откуда: Глазов
Контактная информация:

Re: Как узнать имя локального меню?

Сообщение Ренат »

Может тогда удалять меню при выходе из интерфейса?
n0where
Местный житель
Сообщения: 499
Зарегистрирован: 30 дек 2010, 08:16

Re: Как узнать имя локального меню?

Сообщение n0where »

Ренат писал(а):Может тогда удалять меню при выходе из интерфейса?
Это если юзает галактику один юзер. А если их много? перекроется. не канает )))
хороший программист — это человек, который переходя улицу с односторонним движением смотрит в обе стороны
Vik
Местный житель
Сообщения: 370
Зарегистрирован: 28 сен 2006, 15:43
Откуда: Санкт-Петербург
Контактная информация:

Re: Как узнать имя локального меню?

Сообщение Vik »

edward_K писал(а):Скройте протектом кому не надо и все.
n0where, чем же плох этот вариант?
n0where писал(а):Почемуто в Галактике все так говорят, а зачем это делать можно сделать так через заднюю дверь. Неправильная концепция
Чем ваша дверь с подключением ресурсов конкретным пользователям более передняя? Для чего тогда вообще Protect делали, если это, вдруг, стало неправильной концепцией?)
n0where
Местный житель
Сообщения: 499
Зарегистрирован: 30 дек 2010, 08:16

Re: Как узнать имя локального меню?

Сообщение n0where »

Такая ситуация:
Через протект дал права юзерам,
Потом через саппорт всем обрубил ресурс, в итоге не рабочее меню.

Случай частный, и врядли так будет использоваться, но я имею ввиду принцип.
хороший программист — это человек, который переходя улицу с односторонним движением смотрит в обе стороны
Vik
Местный житель
Сообщения: 370
Зарегистрирован: 28 сен 2006, 15:43
Откуда: Санкт-Петербург
Контактная информация:

Re: Как узнать имя локального меню?

Сообщение Vik »

Так можно про любой ресурс Галактики сказать) По-моему, это уже ваша задача правильно организовать работу с вашим же ресурсом. Если отключили ресурс, позаботьтесь, чтоб и меню было удалено. Например, напишите утилиту, которая при запуске Галактики проверяет, подключен ли нужный ресурс, если нет, то зачищает за отключенным интерфейсом все "следы".
n0where
Местный житель
Сообщения: 499
Зарегистрирован: 30 дек 2010, 08:16

Re: Как узнать имя локального меню?

Сообщение n0where »

Спасибо очень помогли
хороший программист — это человек, который переходя улицу с односторонним движением смотрит в обе стороны
Vik
Местный житель
Сообщения: 370
Зарегистрирован: 28 сен 2006, 15:43
Откуда: Санкт-Петербург
Контактная информация:

Re: Как узнать имя локального меню?

Сообщение Vik »

Если это сарказм, то он явно не уместен. Я вам сказал одно из возможных решений. Хотите, чтоб я его и реализовал еще? :) Таблицы Components, X$Resources, точки расширения - посмотрите, почитайте.
n0where
Местный житель
Сообщения: 499
Зарегистрирован: 30 дек 2010, 08:16

Re: Как узнать имя локального меню?

Сообщение n0where »

нет не сорказм. Спасибо за пояснение и обсуждение.
Я просто понял что нет смысла пытаться делать в ВИПе так как привык в Делфи, ПХП и др языках.
хороший программист — это человек, который переходя улицу с односторонним движением смотрит в обе стороны
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: Как узнать имя локального меню?

Сообщение m0p3e »

Есть точка расширения на вход в модуль. Вот там можно пытаться обыграть ситуацию, но динамическое меню в данном случае не годится. Нужно искать возможность менять меню для сеанса пользователя.
Ответить