|  | 
|  08.07.2022, 13:54 | #1 | 
| Участник | View (DAX2012) 
			
			Добрый день! В процессе реализации отчета потребовалось сделать вьюху, в которой выводится код продукта и продуктовые аналитики. Из-за архитектуры Аксапты, таблицы были естественно добавлены через OUTER JOIN. Но проблема в том, что при таком раскладе невозможно фильтроваться по пустым значениям или делать JOIN с другими таблицами. В качестве эксперимента, в скуле был подправлен запрос так чтобы можно было фильтроваться по пустым значениям. Все заработало как хотелось. Есть ли подобное свойство в Аксапте? | 
|  | 
|  08.07.2022, 14:08 | #2 | 
| Moderator | Цитата: 
		
			Сообщение от DesparioN
			   Добрый день! В процессе реализации отчета потребовалось сделать вьюху, в которой выводится код продукта и продуктовые аналитики. Из-за архитектуры Аксапты, таблицы были естественно добавлены через OUTER JOIN. Но проблема в том, что при таком раскладе невозможно фильтроваться по пустым значениям или делать JOIN с другими таблицами. В качестве эксперимента, в скуле был подправлен запрос так чтобы можно было фильтроваться по пустым значениям. Все заработало как хотелось. Есть ли подобное свойство в Аксапте?  Честно говоря - давно это было, но в DAX2009 решал аналогичную проблему построив два View. Первая - с OUTER JOIN как и у тебя. Вторая - построена вокруг первой вьюхи с мэппингом 1:1. Поскольку вторая вьюха работает с первой как с обычной таблицей, и не знает что там где-то внутри OUTER JOINS, то в итоге все работает правильно (То есть - фильтрутся и сортируется привычным для аксапты образом). Есть шансы что в более поздних версиях DAX семантика View изменилась и подход не взлетит, но попробовать не долго... | 
|  | |
| За это сообщение автора поблагодарили: S.Kuskov (5). | |
|  08.07.2022, 14:19 | #3 | 
| Участник | 
			
			Фокус не удался   И при прямом добавлении вьюхи во вьюху, и через query - результат идентичный. | 
|  | 
|  08.07.2022, 14:19 | #4 | 
| Участник | 
			
			Не понял в чем именно у вас затруднение. Но может быть вам поможет QueryFilter Для случая outer join там фильтр попадает в условие where а не ON | 
|  | 
|  08.07.2022, 14:23 | #5 | 
| Участник | 
			
			Затруднение в том что я не могу такую вьюху фильтровать и соединять с другими таблицами по пустым аналитикам, т.к. в поле хранится не "" а null
		 | 
|  | 
|  08.07.2022, 14:33 | #6 | 
| Moderator | 
			
			Ну - как вариант - наделать кучу computed fields через SysComputedColumn::isNullExpression и возвращать нули, если поле в первой вьюхе равно Null, или само поле в обратном случае.
		 | 
|  | |
| За это сообщение автора поблагодарили: DesparioN (1). | |
|  08.07.2022, 15:13 | #7 | 
| Участник | 
			
			В дополнение к сказанному fed - выглядит метод за таким computed field примерно так: X++: public static str parentPartyIdValue() { str parentPartyIdField = SysComputedColumn::returnField(tablestr(DirPartyRelationshipEntity), dataEntityDataSourceStr(DirPartyRelationshipEntity, DirPartyTableParent), fieldstr(DirPartyTable, PartyNumber)); return SysComputedColumn::if( SysComputedColumn::isNullExpression(parentPartyIdField), SysComputedColumn::returnLiteral(''), parentPartyIdField); } | 
|  | |
| За это сообщение автора поблагодарили: DesparioN (1), Logger (3). | |
|  08.07.2022, 15:23 | #8 | 
| Участник | 
			
			Благодарю, так получилось.
		 | 
|  | 
| Теги | 
| computed field, view | 
|  | 
| 
 |