powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Работа с меню
9 сообщений из 9, страница 1 из 1
Работа с меню
    #34346775
anatoliy_ioff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
День добрый всем!!!

Ситуация следующая:
Разрабатываю програмулину. В ней имеется разграничение доступа. Т.е. для конкретного пользователя необходимо обозначить доступные пункты меню. В конструкторе меню конкретный пункт будет скрыт, если перед наименование пункта поставить "/". Вопрос как скрыть пункт программно?

И еще. Планируется следующее:

В процессе разработки в программу будут добавляться новые пункты меню, каждый из которых необходимо отразить в разграничении доступа. Как бы такое организовать программно? Т.е. при организации нового пункта меню, этот пункт автоматически должен попасть в форму с разграничением доступа...довольно абстрактно, конечно, но может быть подскажите хоть в какую сторону копать?

Всем заранее спасибо
...
Рейтинг: 0 / 0
Работа с меню
    #34347017
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
См. SET SKIP
...
Рейтинг: 0 / 0
Работа с меню
    #34347135
Kuklachev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не пользуйся конструктором и пиши код меню сам или копируй и дорабатывай напильником то, что он сгенерит.

Например, засерить пункт меню по условию можно простой командой SET SKIP OF
Код: plaintext
1.
2.
IF m.UserType == "Лох" THEN
    SET SKIP OF BAR  2  OF SomePopup .T.
ENDIF
Или так:
Код: plaintext
SET SKIP OF BAR  2  OF SomePopup m.UserType == "Лох"
Во втором случае условие будет проверяться динамически при каждом открытии меню. Этим нужно пользоваться осторожно.

Есть еще ОО-надстройки над фоксовским меню, но пока ИМХО не очень.
...
Рейтинг: 0 / 0
Работа с меню
    #34347754
anatoliy_ioff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо!!!

А не подскажите как получить структуру меню...ну скажем в какой нибудь массив?
...
Рейтинг: 0 / 0
Работа с меню
    #34348571
Kuklachev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
anatoliy_ioffСпасибо!!!

А не подскажите как получить структуру меню...ну скажем в какой нибудь массив?Получить откуда?
Если из дизайнера, то его файлы *.mnx - не что иное как таблицы в формате DBF,
их можно просматривать и запрашивать в массив, например, SELECT-ом.
...
Рейтинг: 0 / 0
Работа с меню
    #34351423
anatoliy_ioff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kuklachev anatoliy_ioffСпасибо!!!

А не подскажите как получить структуру меню...ну скажем в какой нибудь массив?Получить откуда?
Если из дизайнера, то его файлы *.mnx - не что иное как таблицы в формате DBF,
их можно просматривать и запрашивать в массив, например, SELECT-ом.

У меня меню находится на форме . Создаю я его программмно командами DEFINE MENU, DEFINE PAD и т.д. (навязано на init формы). как получить структуру в массив?
...
Рейтинг: 0 / 0
Работа с меню
    #34351486
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никак. Нет такой возможности.

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

Для FoxPro стандартная идеология - одно общее меню на главной форме. Динамически меняющееся при активации/деактивации соответсвующих форм. Пытаться лепить меню на каждой форме - не лучшее решение.
...
Рейтинг: 0 / 0
Работа с меню
    #34354292
anatoliy_ioff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМНикак. Нет такой возможности.

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

Для FoxPro стандартная идеология - одно общее меню на главной форме. Динамически меняющееся при активации/деактивации соответсвующих форм. Пытаться лепить меню на каждой форме - не лучшее решение.

Задумка следующая:
В программе имеется разграничение доступа. У каждого пользователя свой набор доступных пунктов меню. На данном этапе разработки, перечень всех нужных пунктов меню еще не определен (совершенно однозначно, что потом будут добавляться новые пункты). Хотелось бы атоматически формировать на форме список (дерево) меню (чтобы каждый раз в двух местах не править), в котором администратор будет определять делать ли конкретный пункт меню доступным конкретному пользователю.
...
Рейтинг: 0 / 0
Работа с меню
    #34354625
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Логика доступа строится по другому принципу.

Доступными или не доступными для пользователя должны быть опеределенные типы операций . Не пункты меню, а именно некие "действия".

Ну, например, пользователь не должен видеть некие типы документов. Да, конечно, можно заблокировать определенный (конкретный) пункт меню. Но все дело в том, что в более-менее большом приложении, как правило, есть несколько вариантов доступа к одному и тому же документу. Разные пункты меню, кнопки на форме и т.д. и т.п.

Другими словами, создается специальная таблица, где расписаны определенные типы операций. Далее эта таблица "связывается" с конкретным пользователем и выставляются "флаги": доступен или не доступен данному пользователю данный тип операции. Никакого отношения к каким-либо объектам приложения эта таблица вообще не имеет.

Далее, перед выполнение соответствующих операций, где бы в приложении ни потребовалось это действие, делается поиск по таблицам доступа для проверки факта доступности или не доступности данной операции для данного пользователя. И по факту этого анализа решают можно или нельзя идти дальше.

Т.е. вообще-то, все решается банальным указанием функции в опции SKIP FOR для каждого пункта меню. Эта функция принимает в качестве параметра тип выполняемой операции и возвращает .T. или .F. в зависимости от того, можно ли данному пользователю это делать. В момент создания пункта ты ведь знаешь, какую именно операцию этот пункт меню должен выполнить.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Работа с меню
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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