Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно... / 22 сообщений из 22, страница 1 из 1
06.11.2007, 21:30
    #34920333
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
Привет!

Посоветуйте, пожалуйста, как создать меню так чтоб потом пожно было програмно раздавать разрешения попунктно - типа этому юзеру такие-то пункты доступны, а такие-то - нет и тд... Типа через таблицу. Причем необходимо чтоб недоступные юзеру пункты не были просто Disabled (\), а вообще не выводились, т.е. чтоб он их даже не видел. И еще к некоторым пунктам нада чтоб доп. можно было бы параметр задавать при вызове. Короче чтобы админ конструировал каждому юзеру индивидуального "клиента"...

таблица юзеров есть. меню создано через дизайнер.

спасибо!

vfp9
...
Рейтинг: 0 / 0
06.11.2007, 22:54
    #34920426
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
Меню в FoxPro - это не объект. А для решения подобной задачи необходимо иметь возможность обращаться с пунктами меню как с объектами.

Основная "закавыка" в том, что через дизайнер меню невозможно НЕ создавать пункты. Придется создать все, а потом удалить лишнее. Ну, либо вручную писать все команды DEFINE POPUP окружая их разными IF...ELSE...

Поэтому необходимо симулировать "объектность" меню. Либо самопальными средствами (что не очень-то и сложно), либо при помощи готовых классов. Например, вот этого

http://www.universalthread.com/wconnect/wc.dll?2,54,33,9156

Написан еще для VFP6, но вполне подойдет. Можно еще посмотреть пример для проекта Sedna

http://www.codeplex.com/VFPX/Release/ProjectReleases.aspx?ReleaseId=61

Здесь показан еще и способ хранения описания меню в отдельной таблице.

Другими словами, придется писать очень много кода. По сути, придется написать собственный дизайнер меню, симулирующий его объектность.

Через стандратный дизайнеры такая задача не решается. Точнее, решается не вполне корректными способами.
...
Рейтинг: 0 / 0
07.11.2007, 09:37
    #34920806
Sea_Cat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
Я в таких случаях создаю избыточное меню "на все случаи жизни". При этом ввожу свои названия пунктов и линеек (типа PAD1... POP1 ...). Затем создаю таблицу удаляемых BAR, в которой указываю, для какого пользователя что нужно удалить. Сканирование этой таблицы и удаление лишних пунктов через
RELEASE BAR (del_bar.bar) OF (ALLTRIM(del_bar.pab))
делаю в INIT формы - и все.

С уважением - Sea_Cat
...
Рейтинг: 0 / 0
07.11.2007, 12:09
    #34921437
NSFuimus1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
эта ... а интересно можно ли замутить это через какой-нить BINDEVENT на какое-нибудь регулярно посылающееся сообщение ... например типа отрисовки главного окна типа (что-нить типа WM_PAINT) и в методе (объекте ли - щас посмотрел хелп) BINDEVENT и рулить состоянием меню через команды POPUP типа

зы я приношу извинения если в чем-то грубо ошибаюсь по поводу возможности фоксового интерфейса ну хотя бы по управлению меню - давно уже его (интерфейс фоксовый) не юзаю
зыы и также извиняюсь если это уже боян или, не дай бог, плагиат
...
Рейтинг: 0 / 0
07.11.2007, 12:45
    #34921613
Sergey Ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
Использую абсолютно другой подход (не факт что самый лучший).

В menu designer есть опция "Skip For". Для каждого необходимого пункта вставляю туда функцию типа ограничения доступа с параметром, который имеет тоже название, что и меню. Далее уже система безопасности берет на себя роль показа или нет данного пункта меню (точнее активация/деактивация пуктов меню/подменю)... Метод очень прост и на практике его вполне хватает, тем более что это часть системы безопасности программы...
...
Рейтинг: 0 / 0
07.11.2007, 17:18
    #34922968
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
спасибо за ответы.

2Sergey_Ch - skip for это аналог disabled, т.е. пункт будет виден всем, только по условию будет доступным или нет для выбора:
HELPSKIP [FOR lExpression] Specifies a condition whereby if lExpression evaluates to true (.T.) the menu item is disabled preventing the user from choosing it; if false (.F.) the menu item is enabled. A disabled menu item appears in the disabled colors.
...
Рейтинг: 0 / 0
07.11.2007, 17:48
    #34923096
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
2ВладимирМ - скачал по первой приведенной Вами ссылке класс менюшки, но оно не работает :(
Ругается что menulib.vct is not an odject file и с такой же ошибкой не дает редактировать класс menulib... Поэтому, к сожалению, не удалось мне попробывать этот вариант...
...
Рейтинг: 0 / 0
07.11.2007, 17:52
    #34923113
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
оказывается со второй попытки запустить menudemo ругань на необъектный файл прекращается, но начинаеются ошибки NO PARAMETER statement is found
со строки
Код: plaintext
oMenu.File.AddObject("Spacer1","menupad","\-")
если все NO PARAMETER statement is found проигнорировать то в результате на экране ничего нового не появляется, за то из фоксы выйти не удается...

vfp9sp1
...
Рейтинг: 0 / 0
07.11.2007, 18:23
    #34923222
Sergey Ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
CTAC-KO2Sergey_Ch - skip for это аналог disabled, т.е. пункт будет виден всем, только по условию будет доступным или нет для выбора...
Да, примерно так...

Отдельные операции формирую по группам и они уже не видны (внутри группы) неавторизованным пользователям...

P.S. Еще использую аналог меню outlook (скачал с UT). Но данный подход имеет один существенный недостаток - меню занимает значительную часть дорогой экранной площади, хотя и выглядит интересно :)
...
Рейтинг: 0 / 0
07.11.2007, 20:25
    #34923454
Dag
Dag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
Я бы предпочел эмулятор обьектного меню с codeplex (вторая ссылка от ВладимирМ).
Там есть возможность прикручивать к меню иконки, возможность синхронизировать меню и панель инструментов и открытый код, позволяющий его редактировать.
Примеры, вложенные в исходники заводятся без проблем.
...
Рейтинг: 0 / 0
07.11.2007, 21:53
    #34923543
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
О, да!
Menu Projec - это что-то!!! Супер просто!!!
Буду осваивать. Реальная весчь!!!

И еще добавлю о способе выгрузки BAR-ов, т.к. рассмотрел все варианты :). Если выгружать BAR-ы, то меж ними образуются "пустоты". К примеру останутся 1 и 4 бар. место под 2 бара будет просто пустым между 1м и 4м баром. Некрасивенько как-то... Уж не говорю о варианте типа 2 и 16 :)
...
Рейтинг: 0 / 0
07.11.2007, 22:31
    #34923591
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
Ну хорошо, объектное меню седна. И че дальше?
Я в принципе о системном меню, а не меню форм.
Я вижу так - выходит нужно создать таблицу в нее втулить все пункты. Потом сканить таблицу и описывать меню. Но тогда достаточно и обычного меню, зачем объектное?
че-то я не понял суть...
единственно что седновское вроде как легче будет описывать, или?..
в любом случае визуально я его не отредактирую больше и дизайнером не воспользуюсь.
или я чего-то не понял?
...
Рейтинг: 0 / 0
08.11.2007, 06:41
    #34923755
Dag
Dag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
СТАС-КО
единственно что седновское вроде как легче будет описывать, или?..

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

Если выгружать BAR-ы, то меж ними образуются "пустоты". К примеру останутся 1 и 4 бар. место под 2 бара будет просто пустым между 1м и 4м баром. Некрасивенько как-то... Уж не говорю о варианте типа 2 и 16 :)

А легкой жизни никто не обещал. Ведь это всего лишь альфа. Кое-что я подправил - можешь посмотреть.
...
Рейтинг: 0 / 0
08.11.2007, 12:48
    #34924714
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
CTAC-KO2ВладимирМ - скачал по первой приведенной Вами ссылке класс менюшки, но оно не работает :(
Ругается что menulib.vct is not an odject file и с такой же ошибкой не дает редактировать класс menulib... Поэтому, к сожалению, не удалось мне попробывать этот вариант...

На той же страничке чуть ниже есть ссылка для VFP6. Она перейдет на закладку с файлом menulib60.zip - с этим проблем нет.
...
Рейтинг: 0 / 0
08.11.2007, 17:50
    #34926063
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
Скажите, а в этой Sedna описано создание PAD-ов с BAR-ами, а что же с POPUP-ами? Если BAR ведет к SUBMENU? Типа DEFINE POPUP задавать, или как?
...
Рейтинг: 0 / 0
08.11.2007, 18:26
    #34926167
Dag
Dag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
Посмотри.
...
Рейтинг: 0 / 0
09.11.2007, 02:10
    #34926683
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
сенксь. оказываеццо надо addbar на бар...

2 дня мучал затею свою. Вымучал. Но к сожалению пока у меня все получилось более-менее нормально именно стандарными средствами (define pad/popup/bar). объектным меню труднее - там по ходу нужны полные пути начиная от родителя. Ну или мне не хватает думалки :)
Идея такая - создаеццо 1 таблица для меню. В ней есть уникальный ID (ai) и есть ParentID, который может указывать на этот ID, т.е. внутри 1й таблицы. Типа криво, но избавляет от создания отдельной таблы на каждого child-а.
Затем форма с деревом и там все наглядно создаеццо.

Тока вот одна незадача - я использовал node.tag для хранения команды (если это BAR), а вот куда сохранять ShortKey, Icon и прочие каменты - хз. Addproperty для node не канает...
...
Рейтинг: 0 / 0
09.11.2007, 02:48
    #34926697
Dag
Dag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
А почему не бы в этой же таблице не держать отдельные поля для ShortKey, Icon и прочие каменты , а затем при запуске меню- сканировать таблицу, из каждой строчки создавать команду с помощью нужных полей и выполнять эту команду при помощи макроподстановки или скажем EXECSCRIPT().
...
Рейтинг: 0 / 0
09.11.2007, 10:48
    #34927230
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
Стандартный макет меню (файлы mnx и mnt) уже содержат в себе структуру меню. Т.е. можно использовать стандартный макет как основу собственного генератора.

Создаешь макет меню стандартными средствами, открываешь его как таблицу и смотришь его стуркутру

Код: plaintext
1.
2.
USE MyMenu.mnx
BROWSE

По сути, все сводится к написанию собственного генератора меню. А "исходник" (макет меню) можно использовать и стандартный.
...
Рейтинг: 0 / 0
09.11.2007, 16:16
    #34928856
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
Привет!

С иконками и прочими каментами я порешил, само собой в базе отведены соотв. поля.
Бачина в моем дизайнере образовалась - первыми в меню всегда оказываются бары на попапы, а затем простые бары. Это из-за того что я поочередно строю меню - пады, попапы, бары...

2Владимир Максимов - та да, нада было заюзать фоксовую базу меню, но я изобрел свой велисопед :) Хотя юзание фоксовой менюшной бд имеет несомненые преимущества... вероятно переделаю. и идея с ParentID там вроде как полегше и попроще...
...
Рейтинг: 0 / 0
09.11.2007, 19:10
    #34929399
FOXXX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
да все элементарно
есть признак активности неактивности пункта меню

только доку надо найти по фоксу 2.0 и выше это все работает, просто с хелпа повыкинуто..

а лучше создать таблицы , в них держать пункты меню и в соответствии с привелегиями клиента раздавать менюшки...
...
Рейтинг: 0 / 0
10.11.2007, 16:28
    #34930053
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
FOXXXда все элементарно
есть признак активности неактивности пункта меню
только доку надо найти по фоксу 2.0 и выше это все работает, просто с хелпа повыкинуто..
а лучше создать таблицы , в них держать пункты меню и в соответствии с привелегиями клиента раздавать менюшки... так блин, это я и делаю - меню в таблицу и оттудова расдача согласно AuthID.
А "признак активности неактивности пункта меню" не канает - меню большое, а зачем каждому клиенту лицезреть полное меню, пусть даже серое неактивное? Чтоб в каждом паде искать а нет ли там чего для него? Или чтобы потом админу задавать "умные" вопросы?
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно... / 22 сообщений из 22, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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