Одна из самых нудных, но необходимых, задач - это разграничение прав доступа к системе.
Для каждого типа рабочего места (то, что когда-то называлось АРМ'ом) нужно описать и сгенерировать свое меню.
Предлагается следующий подход.
Создается базовое меню, которое содержит все опции и на его основе с помощью прилагаемой программы генерируются меню для соответствующих АРМ'ов.
Так как меню в FoxPro - это DBF-таблица, то права доступа записываются прямо в нее, в поле Comment.
Необходимое условие - в рабочей системе должен быть классификатор рабочих мест, который содержит как минимум ID (Char или Integer),
наименование рабочего места и имя соответствующего меню.
В каталоге HOME() должен быть файл Genmenu.fxp.
Этот классификатор используется как при генерации меню, так и при запуске системы для вызова нужного меню.
На VFP7 не проверял - попробуйте. Все исходники прилагаются.
Я не очень понял... ещё не разбирался с материалом. Но могу рассказать, как сам это делал.
Имеем исходное меню, построенное в MenuDesigner. Брал файл *.mpr и делал его синтаксический разбор
(выдирал название, признак PAD-POPUP-BAR, вышестоящие и тому подобное). По этому файлу строил
таблицу структуры меню. Далее для каждой группы пользователей определял роль, а для ролей список
доступных пунктов меню (из той самой таблицы структуры). Потом при инициализации приложения
проверял что за пользователь и в соответствии с этим просто гасил коммандой SET SKIP OF нужные
пункты меню. Всё реализовывал на VFP 5.0. Если нужны подробности, исзодники и т.п. пишите
(ales-ss@tut.by).