|  24.01.2005, 12:19 | #1 | 
| Moderator | Объединение источников данных 
			
			Добрый день! Мне надо фильтровать по полю (Название номенклатуры) из формы В наличии (InventSum + InventDim). Display - метод не устраивает -- нет стандартной сортировки. Добавляю datasource InventTable, в таблице InventTable делаю relation по ItemId связь с InventSum. Вывожу поле ItemName (из InventTable) на грид, у datasource InventTable делаю JoinSource InventSum, тип связи -- InnerJoin. Что не так? Почему не видно itemName? При смене типа связи -- itemName появляется и исчезает. Думаю дело в обновлении datasource.. | 
|  | 
|  24.01.2005, 12:34 | #2 | 
| Участник | 
			
			Дело в том что в датасоурсе InventSum включен режим группировки данных. Включите его и у вашего ItemTable (orderMode = Group By) и добавьте в sort filed поле ItemName. | 
|  | 
|  24.01.2005, 12:39 | #3 | 
| Участник | 
			
			поиском что ли, пройдитесь по форуму...  НЕ БУДЕТ СОРТИРОВКИ ПО НАЗВАНИЮ в ЭТОЙ ФОРМЕ, НИКОГДА... ФИЛЬТР МОЖНО СДЕЛАТЬ... (без переписывания всей формы целиком) | 
|  | 
|  24.01.2005, 12:41 | #4 | 
| Administrator | 
			
			добавлю: ... но фильтрацию можно сделать.
		 
				__________________ Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me | 
|  | 
|  24.01.2005, 12:43 | #5 | 
| Moderator | Цитата: 
		
			Изначально опубликовано Maxim Gorbunov  добавлю: ... но фильтрацию можно сделать. | 
|  | 
|  24.01.2005, 12:54 | #6 | 
| Administrator | 
			
			Добавьте DataSource InventTable. Сделайте в нем группировку по ItemName.
		 
				__________________ Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me | 
|  | 
|  24.01.2005, 13:09 | #7 | 
| Участник | 
			
			Если сильно надо, можете скопировать эту форму и в новом варианте сделать InventTable мастер-датасоурсом для InventSum, потому что в Аксапте действительно сортировка в мастер-датасоурсах производится в первую очередь, а в подчинённых уже после них и только после них. По крайней мере в режиме order mode = Group By это так. Но как следует из вышесказанного, в этой новой форме нельзя будет сортировать ни по чему, кроме какого нибудь поля из InventTable    | 
|  | 
|  24.01.2005, 13:42 | #8 | 
| Участник | 
			
			если сделать InventTable первым датасорсом, прийдется еще поковырять в классе InventDimCtrl_Frm_OnHand modifyQuery... как? - я не знаю, не сильные мы программисты, даже и не программисты вовсе   | 
|  | 
|  24.01.2005, 14:26 | #9 | 
| Участник | Цитата: 
		
			Изначально опубликовано linney  если сделать InventTable первым датасорсом, прийдется еще поковырять в классе InventDimCtrl_Frm_OnHand modifyQuery... как? - я не знаю, не сильные мы программисты, даже и не программисты вовсе   Самому такие опыты повторять времени нет, поэтому не исключаю возможности существования каких либо еще граблей. | 
|  | 
|  24.01.2005, 15:37 | #10 | 
| Участник | 
			
			у меня есть - я пробывал. сортировка все равно не работает и глючит все. форма-то работат по группировкам из InventSum... | 
|  | 
|  25.01.2005, 14:03 | #11 | 
| Участник | 
			
			Я тоже попробовал. Удивился результату. Дело не в том о чём вы говорите. Кажется форма запоминает последний query, отсюда все проблемы. | 
|  | 
|  07.07.2005, 13:55 | #12 | 
| Moderator | Цитата: 
		
			Изначально опубликовано Maxim Gorbunov  Добавьте DataSource InventTable. Сделайте в нем группировку по ItemName. PHP код: 
			 Подозреваю что дело в алгоритме класса InventDimCtrl_Frm_OnHand. Что еще надо дописать чтобы появилось наименование номенклатуры? | 
|  | 
|  07.07.2005, 14:56 | #13 | 
| Участник | 
			
			Надо бы еще группировать по ItemId вроде - бо это связующее поле. Попробуйте так. А вообще, это лучше в классе делать по-моему | 
|  | 
|  07.07.2005, 15:04 | #14 | 
| Участник | 
			
			я добавил в инвентсум поле itemname (заполняется при инсерте)  и добился желаемого.  Ну не хотелось пол аксапты переписывать. ЗЫ только в ответ не кидайтесь камнями в виде умных слов про нормализацию и прочую "правильность" | 
|  | 
|  07.07.2005, 15:28 | #15 | 
| Moderator | 
			
			Но даже добавив наименование номенклатуры itemName в InventSum просто так наименования на форме не отобразились! Хотя в таблице они есть.. Продолжу ковырять InventDimCtrl_Frm_OnHand... | 
|  | 
|  07.07.2005, 15:37 | #16 | 
| Moderator | 
			
			В методе modifyQuery PHP код: 
			 | 
|  | 
|  07.07.2005, 15:38 | #17 | 
| Участник | 
			
			Понятно что не отобразились. по ним же нет группировки. Нужно добавить строку в классе в методе modifyQuery: qBSSum.orderMode(OrderMode::GROUPBY); qBSSum.addSortField(fieldnum(InventSum,itemId)); qBSSum.addSortField(fieldnum(InventSum,ItemName)); ЗЫ. О, уже опередил сам меня.   | 
|  | 
|  07.07.2005, 15:40 | #18 | 
| Moderator |   
			
			Спасибо!
		 | 
|  | 
|  03.08.2005, 10:51 | #19 | 
| Moderator | Цитата: 
		
			Изначально опубликовано linney  я добавил в инвентсум поле itemname (заполняется при инсерте) и добился желаемого. " Столкнулся с загадочным исчезновением наименования при таком раскладе. | 
|  | 
|  03.08.2005, 13:35 | #20 | 
| злыдень | 
			
			Не мучь себя и пользователей.. Навскидку: 1. Сделай вью по инвентсам (не в акзапте, в субд), переливай в акцесс через дтс по ночам, выложи файл на сервер, дай доступ 2. Построй куб по вью, если нужно оперативно - сделай модель РОЛАП. Название товара вытащи в свойства 3. Подключи субд-шное вью к акзапте, выведи меню итем Отчеты в акзапте - это зло | 
|  |