Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / динамическое меню / 10 сообщений из 10, страница 1 из 1
01.06.2005, 07:56:06
    #33093823
denis_viktorovich
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
динамическое меню
Доброе время суток.
Не знает ли кто, как можно программно сделать некоторые пункты меню неактивными (или скрыть или удалить)? Лобовое решение понятно - делать несколько вариантов менюшек и запускать разные. Однако большая часть их одинакова и при изменении придеься править все варианты.
...
Рейтинг: 0 / 0
01.06.2005, 08:36:34
    #33093842
Yura .
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
динамическое меню
Очень и очень просто, и совершенно необязательно иметь несколько вариантов менюшки, достаточно одного, но не в MNX, а в PRG файле.

Пример написания меню в файле PRG:

DEFINE BAR 7 OF seRvis PROMPT "Идексация и упаковка данных"
IF lcUser = 'SuperAdmin'
DEFINE BAR 8 OF seRvis PROMPT "Удаление документов из базы"
ON SELECTION BAR 8 OF seRvis DO FORM DATADELETE
ENDIF

И никакие SKIP FOR не нужны, для не СуперАдмина этих пунктов меню вообще не видно и не должно быть видно, даже в недоступном виде.
...
Рейтинг: 0 / 0
01.06.2005, 10:34:47
    #33094095
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
динамическое меню
А поиском воспользоваться, хотя бы по данному форуму, не пробовал?

http://www.sql.ru/forum/actualthread.aspx?tid=186010
...
Рейтинг: 0 / 0
01.06.2005, 11:40:45
    #33094348
denis_viktorovich
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
динамическое меню
ВладимирМА поиском воспользоваться, хотя бы по данному форуму, не пробовал?

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

http://www.sql.ru/forum/actualthread.aspx?tid=186010

Спасибо за подсказку. Как то я не замечал этот параметр.
...
Рейтинг: 0 / 0
01.06.2005, 22:51:24
    #33096115
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
динамическое меню
Hi Yura!

Запаришься так код писать - а уж править - и подавно. Динамически открыть/закрыть пункт тоже нельзя (нужно перекомпилировать всё) в общем крайне ограниченное решение - для большой системы вряд-ли сгодится.

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
02.06.2005, 13:19:09
    #33097166
XAndy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
динамическое меню
...
Рейтинг: 0 / 0
02.06.2005, 13:47:11
    #33097247
Yura .
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
динамическое меню
1. Абсолютно нет, код написанный таким образом выглядит не сравнимо более наглядным, чем сгенерированный, а на написание и отладку такого кода у меня уходит значительно меньше времени, чем использование конструктора плюс всегда можно рядом со строками кода поместить комментарии
2. Вот именно о тех пунктах меню которые должны быть невидны даже в недоступном виде для неадминистратора я и говорю, нет такого SET SKIP, который-бы в этом помог. Т.е. если требуется управлять не доступностью пункта а наличием его в меню, тут без условий вообще обойтись нельзя.
3. Для динамического управления меню никто не мешает использовать эти-же самые SET SKIP, при необходимости и я их использую. Кстати раньше и я пользовался генератором меню, сейчас по ряду причин от него отказался в пользу исходного кода, особенно в больших системах.
...
Рейтинг: 0 / 0
02.06.2005, 14:05:05
    #33097326
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
динамическое меню
2Igor Korolyov
Вам навеное не понравиться но особо хитрые дбф таблицы используют
хотя повторюсь это на любителя
...
Рейтинг: 0 / 0
03.06.2005, 15:35:10
    #33100089
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
динамическое меню
Hi leaf!

Ты про что это?

Если про хранение описания меню - так mnx это и есть "dbf таблица". Я именно её непосредственно и использую (т.к. использую библиотеку MenuLib). А КОДА с DEFINE POPUP и прочим мусором у меня вообще нету - ни "условного" ни "безусловного". Спрятать пункт для меня проще простого - _SCREEN.Menu.MySubMenu.Visible = .F.
Конечно для целей администрирования я НЕ пишу такие команды - есть администратор, там есть права - и при создании, объекты меню запрашивают у модуля администрирования - можно ли им быть видимыми в контексте текущего пользователя. Опять-же РУКАМИ не пишется ни одной команды - всё уже давно написано в классах... Администратор кстати основан на хранении инфы в служебных таблицах (в т.ч. и на SQL-сервере) и имеет достаточно развитый GUI - с возможностями настройки как для разработчика (знающего все тонкости системы, и представляющего что стоит за каждым пунктом меню), так и для стороннего товарища (админа заказчика) - для него все права сгруппированы в несколько суперролей - которые он и может дать или отнять у пользователя...

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
04.06.2005, 07:00:57
    #33100889
piva
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
динамическое меню
Приблизителльно тоже самое и у меня - только я не использую mnx файлы - интерфейс прописывается отдельно - далее кто-то пусть администратор - сам раздает права и управление пунктами юзерам. Точно так же все закопано в классы - и все работает на автомате. Специальных команд типа - _Screen.MyMenu.File.Open.Visible=.F. у меня вообще нигде нету. Все определяется правами и логикой управления документами и отчетностью
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / динамическое меню / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]