|  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... К сожалению. Везде снимается. Хотя этот вариант изначально импонировал..  Вернулся к своему опусу, вроде, работает... Давайте сделаем так: я выложу .fob, а Вы попробуете его накатить. Там единственный объект - форма 80000. Проверьте pls, что этот номер формы у Вас свободен. 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 
				__________________ Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков! | 
|  |