04.10.2005, 14:58 | #1 |
Участник
|
Положим есть такая таблица:
---------------------------------------------------------------------------------- code name user_creator user_master user_finmanager ---------------------------------------------------------------------------------- В ней записи (удивляет? ), первые два поля не интересны. Поля, начинающиеся на "user_" содержат имена пользователей. Пользователь может попадать в разные поля, в несколько сразу или ни в одно вообще. Задача: отображать уважаемому USERID только те записи, в которых он фигурирует. Может мне не хватает знаний, но решить такую задачу только фильтрами я не нашел возможным. Решение: отобрать по критериям и создать временную таблицу. Но далее есть необходимость дать возможность пользователям переходить в карточку доступной записи, редактировать там её, а так же в карточке добавлять новую запись... С отображением списка по врем.таблице проблем нет. Список readonly. Но вот организовать переход в карточку, да с возможность редактирования, вставки, удаления... Говорят, надо кодить тригеры validate.. Правильное-ли направление мысли? Вроятно я задачу изначально неправильно пытаюсь разрешить?.. Может кто поделится соображениями. Спасибо! |
|
04.10.2005, 15:01 | #2 |
Участник
|
Вообще, временные таблицы часто оказываются очень удобными, но когда возникает желание приделать к ним интерфейс, возникает много "но".
Может кто подскажет, где можно посмотреть примеры или обсуждение подобного? |
|
04.10.2005, 15:08 | #3 |
Участник
|
Цитата:
Сообщение от e-statik
Может мне не хватает знаний, но решить такую задачу только фильтрами я не нашел возможным.
__________________
MBS Certified Master in Navision Developer |
|
04.10.2005, 15:11 | #4 |
Участник
|
Насколько я понял Вам нужен ИЛИ фильтр. Действительно в навике его установить нельзя. Обычно такую задачу решают пометкой записей (установкой свойства MARK) и отображением только помеченых записей.
|
|
04.10.2005, 15:16 | #5 |
Участник
|
Можно еще юзеров развернуть вертикально, тогда таблица примет вид:
code name user user_action (user_creator,user_master,user_finmanager) |
|
04.10.2005, 15:20 | #6 |
Участник
|
Добавить поле, которое будет включать в себя значение полей
user_creator user_master user_finmanager через символ разделитель. И по нему фильтровать.
__________________
MBS Certified Master in Navision Developer |
|
04.10.2005, 16:59 | #7 |
Участник
|
2 Alterant
Нет, Mark не подходит. MARKEDONLY слетает если жмакнуть на shift+ctrl+F7. И FILTERGROUP на него не распространяется. Пробовал [N3.70]. 2 rmv Не совсем понял, что должно получиться. 2 Роман Вспомогательное поле ввести... Поддерживать его... Как насчет варианта, когда одно из поля user_ типа flowfield? |
|
04.10.2005, 17:12 | #8 |
Участник
|
Цитата:
Сообщение от e-statik
Как насчет варианта, когда одно из поля user_ типа flowfield?
__________________
MBS Certified Master in Navision Developer |
|
04.10.2005, 17:27 | #9 |
Участник
|
2 Роман
Это понятно. Но если мы говорим о вспом.поле, которое будет содержать значения указанных полей, то значение в нём надо обновлять. А если это flowfield, то обновлять придётся и из таблицы - источника значения flowfield поля? |
|
04.10.2005, 17:33 | #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 |
|
04.10.2005, 17:45 | #11 |
Участник
|
Я наверное повторюсь, тем не менее..
В общем вариации того же что предложили rmv и Роман Дополнительное поле в табличке: user_action (например) на validate каждого из полей user_ прописывайте занесение значения в поле user_action. Как бы этого достаточно - при условии, что у вас обычные записи Но вы упоминали про flowfield - т.е. поля user_ вычисляемые? Тогда, конечно все усложняется - но тада надо доп. информацию - правила(формулы) расчета, причины, почему поля типа Code объявлены flowfield и пр. И исходя из этого модифицировать поле user_action. |
|
04.10.2005, 17:55 | #12 |
Участник
|
А почему не использовать временную таблицу?
Конструкция FORM.RUN работает с временной таблицей, остается только синхронизировать изменяемые записи во временной таблице с реальной |
|
05.10.2005, 09:32 | #13 |
Заноза в заднице
|
Цитата:
Сообщение от johndoe
Цитата:
Сообщение от e-statik
2 Alterant
Нет, Mark не подходит. MARKEDONLY слетает если жмакнуть на shift+ctrl+F7. И FILTERGROUP на него не распространяется. Пробовал [N3.70]. Я тоже пробовал Вставьте, например, такой код в триггер OnOpenForm 22-й формы:
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков! |
|
06.10.2005, 00:47 | #14 |
Участник
|
2 johndoe
И в произвольной форме, и в 22... К сожалению. Везде снимается. Хотя этот вариант изначально импонировал.. |
|
06.10.2005, 10:20 | #15 |
Участник
|
Цитата:
Сообщение от e-statik
2 johndoe
И в произвольной форме, и в 22... К сожалению. Везде снимается. Хотя этот вариант изначально импонировал.. P.S. Эксперимент ставился в Navision 3.60. Но иногда я так поступаю в 3.70... P.P.S. Надеюсь, вместе мы разберемся |
|
06.10.2005, 10:38 | #16 |
Участник
|
2 johndoe
Занято! Можешь сделать текстовый фоб, я подправлю? |
|
06.10.2005, 10:44 | #17 |
Участник
|
Цитата:
Сообщение от e-statik
Лови! Скажи, что получится! |
|
06.10.2005, 10:55 | #18 |
Участник
|
Ну-у-у, собсна... Та же песня. Легко снимается по ....F7
|
|
06.10.2005, 11:19 | #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... |
|
13.10.2005, 11:49 | #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
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков! |
|