|
|
#1 |
|
Участник
|
Положим есть такая таблица:
---------------------------------------------------------------------------------- code name user_creator user_master user_finmanager ---------------------------------------------------------------------------------- В ней записи (удивляет? ), первые два поля не интересны. Поля, начинающиеся на "user_" содержат имена пользователей. Пользователь может попадать в разные поля, в несколько сразу или ни в одно вообще.Задача: отображать уважаемому USERID только те записи, в которых он фигурирует. Может мне не хватает знаний, но решить такую задачу только фильтрами я не нашел возможным. Решение: отобрать по критериям и создать временную таблицу. Но далее есть необходимость дать возможность пользователям переходить в карточку доступной записи, редактировать там её, а так же в карточке добавлять новую запись... С отображением списка по врем.таблице проблем нет. Список readonly. Но вот организовать переход в карточку, да с возможность редактирования, вставки, удаления... Говорят, надо кодить тригеры validate.. Правильное-ли направление мысли? Вроятно я задачу изначально неправильно пытаюсь разрешить?.. Может кто поделится соображениями. Спасибо! |
|
|
|
|
#2 |
|
Участник
|
Вообще, временные таблицы часто оказываются очень удобными, но когда возникает желание приделать к ним интерфейс, возникает много "но".
Может кто подскажет, где можно посмотреть примеры или обсуждение подобного? |
|
|
|
|
#3 |
|
Участник
|
Цитата:
Сообщение от e-statik
Может мне не хватает знаний, но решить такую задачу только фильтрами я не нашел возможным.
__________________
MBS Certified Master in Navision Developer |
|
|
|
|
#4 |
|
Участник
|
Насколько я понял Вам нужен ИЛИ фильтр. Действительно в навике его установить нельзя. Обычно такую задачу решают пометкой записей (установкой свойства MARK) и отображением только помеченых записей.
|
|
|
|
|
#5 |
|
Участник
|
Можно еще юзеров развернуть вертикально, тогда таблица примет вид:
code name user user_action (user_creator,user_master,user_finmanager) |
|
|
|
|
#6 |
|
Участник
|
Добавить поле, которое будет включать в себя значение полей
user_creator user_master user_finmanager через символ разделитель. И по нему фильтровать.
__________________
MBS Certified Master in Navision Developer |
|
|
|
|
#7 |
|
Участник
|
2 Alterant
Нет, Mark не подходит. MARKEDONLY слетает если жмакнуть на shift+ctrl+F7. И FILTERGROUP на него не распространяется. Пробовал [N3.70]. 2 rmv Не совсем понял, что должно получиться. 2 Роман Вспомогательное поле ввести... Поддерживать его... Как насчет варианта, когда одно из поля user_ типа flowfield? |
|
|
|
|
#8 |
|
Участник
|
Цитата:
Сообщение от e-statik
Как насчет варианта, когда одно из поля user_ типа flowfield?
__________________
MBS Certified Master in Navision Developer |
|
|
|
|
#9 |
|
Участник
|
2 Роман
Это понятно. Но если мы говорим о вспом.поле, которое будет содержать значения указанных полей, то значение в нём надо обновлять. А если это flowfield, то обновлять придётся и из таблицы - источника значения flowfield поля?
|
|
|
|
|
#10 |
|
Участник
|
Цитата:
Сообщение от e-statik
2 Alterant
Нет, Mark не подходит. MARKEDONLY слетает если жмакнуть на shift+ctrl+F7. И FILTERGROUP на него не распространяется. Пробовал [N3.70]. Я тоже пробовал Вставьте, например, такой код в триггер OnOpenForm 22-й формы:<div class='CALtop'>C/AL</div><div class='CAL'>CLEARMARKS; RESET; FILTERGROUP(2); SETFILTER(Name,'A*'); IF FIND('-') THEN REPEAT MARK(TRUE); UNTIL NEXT = 0; FILTERGROUP(0); MARKEDONLY(TRUE); </div> Запустите и попробуйте снять фильтр по маркировке :P |
|
|
|
|
#11 |
|
Участник
|
Я наверное повторюсь, тем не менее..
В общем вариации того же что предложили rmv и Роман Дополнительное поле в табличке: user_action (например) на validate каждого из полей user_ прописывайте занесение значения в поле user_action. Как бы этого достаточно - при условии, что у вас обычные записи Но вы упоминали про flowfield - т.е. поля user_ вычисляемые? Тогда, конечно все усложняется - но тада надо доп. информацию - правила(формулы) расчета, причины, почему поля типа Code объявлены flowfield и пр. И исходя из этого модифицировать поле user_action. |
|
|
|
|
#12 |
|
Участник
|
А почему не использовать временную таблицу?
Конструкция FORM.RUN работает с временной таблицей, остается только синхронизировать изменяемые записи во временной таблице с реальной |
|
|
|
|
#13 |
|
Заноза в заднице
|
Цитата:
Сообщение от johndoe
Цитата:
Сообщение от e-statik
2 Alterant
Нет, Mark не подходит. MARKEDONLY слетает если жмакнуть на shift+ctrl+F7. И FILTERGROUP на него не распространяется. Пробовал [N3.70]. Я тоже пробовал Вставьте, например, такой код в триггер OnOpenForm 22-й формы:
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков! |
|
|
|
|
#14 |
|
Участник
|
2 johndoe
И в произвольной форме, и в 22... К сожалению. Везде снимается. Хотя этот вариант изначально импонировал.. |
|
|
|
|
#15 |
|
Участник
|
Цитата:
Сообщение от e-statik
2 johndoe
И в произвольной форме, и в 22... К сожалению. Везде снимается. Хотя этот вариант изначально импонировал.. Вернулся к своему опусу, вроде, работает... Давайте сделаем так: я выложу .fob, а Вы попробуете его накатить. Там единственный объект - форма 80000. Проверьте pls, что этот номер формы у Вас свободен.P.S. Эксперимент ставился в Navision 3.60. Но иногда я так поступаю в 3.70... P.P.S. Надеюсь, вместе мы разберемся
|
|
|
|
|
#16 |
|
Участник
|
2 johndoe
Занято! Можешь сделать текстовый фоб, я подправлю?
|
|
|
|
|
#17 |
|
Участник
|
Цитата:
Сообщение от e-statik
Лови! Скажи, что получится!
|
|
|
|
|
#18 |
|
Участник
|
Ну-у-у, собсна... Та же песня. Легко снимается по ....F7
|
|
|
|
|
#19 |
|
Участник
|
2 johndoe
фильтр по маркировке в Filtergroup не канает. снимется в любом случае... ![]() A filtergroup can contain a filter for a Record that has been set earlier with SETFILTER or SETRANGE. и ни слова про MARK
__________________
Want to believe... |
|
|
|
|
#20 |
|
Заноза в заднице
|
Цитата:
Сообщение от johndoe
Цитата:
Сообщение от e-statik
2 Alterant
Нет, Mark не подходит. MARKEDONLY слетает если жмакнуть на shift+ctrl+F7. И FILTERGROUP на него не распространяется. Пробовал [N3.70]. Я тоже пробовал Вставьте, например, такой код в триггер OnOpenForm 22-й формы:<div class='CALtop'>C/AL</div><div class='CAL'>CLEARMARKS; RESET; FILTERGROUP(2); SETFILTER(Name,'A*'); IF FIND('-') THEN REPEAT MARK(TRUE); UNTIL NEXT = 0; FILTERGROUP(0); MARKEDONLY(TRUE); </div> Запустите и попробуйте снять фильтр по маркировке :P
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков! |
|
|