AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Функционал
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.12.2019, 20:18   #181  
online
Libovs
Участник
 
54 / 29 (1) +++
Регистрация: 26.03.2018
Цитата:
Сообщение от belugin Посмотреть сообщение
AssetTable.'<Relations'.'AssetBook.AssetTable_AssetId'.

Означает: из записи AssetTable взять поле <Relations потом оттуда взять поле AssetBook.AssetTable_AssetId:
Большое спасибо за такой подробный ответ. Кое-что вроде становится понятней, но буду еще по вашему тексту пробовать на живых примерах.

Но по выделенной фразе есть вопросы:
у таблицы AssetTable нет Relations на AssetBook; и, как мне кажется об этом "говорит" знак "<". Если в выражении используется Relations таблицы AssetTable то будет знак ">".

Я пока не разбираюсь в синтаксисе выражения, но понимаю физический смысл, т.к. смотрел эти таблицы в AOT-е.
У таблицы AssetBook есть поле AssetId и есть Relations с именем AssetTable_AssetId и выражением
AssetBook.AssertId == AssetTable.AssertId
а приведенное выше выражение возвращает все записи таблицы AssetBook, которые по Relations AssetBook.AssetTable_AssertId ссылаются на текущую запись AssetTable.

Как раз с синтаксисом направления ссылок мне пока непонятно. Т.е. физический смысл понимаю, а как написать корректное выражение - пока нет.
Старый 05.12.2019, 22:16   #182  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,330 / 2525 (93) +++++++++
Регистрация: 16.01.2004
Адрес: Москва
Записей в блоге: 5
Цитата:
Сообщение от Libovs Посмотреть сообщение
Как раз с синтаксисом направления ссылок мне пока непонятно. Т.е. физический смысл понимаю, а как написать корректное выражение - пока нет.
Если есть таблицы t1 и t2 и relation r1 определенный на t1 то

Ds1.>relations.r1 даст записи t2 которые соответствуют текущей записи из источника данных ds1 при условии что это table records по таблице t1

Ds2.<relations. 'T1.r1' это то же самое но с другого конца - записи t1 которые соответствуют текущей записи t2 от условии что ds2 это table records по таблице t2.

Если вы идете от какой-то таблицы то >relations это отношения определенные на ней, а <relation это отношения определенные на других таблицах на нее

Одинарные кавычки это идентификатор (имя поля, например) а двойные кавычки - это строковый литерал.

Например, если определить user input parameter с именем "hello, world" то 'hello, world' вернёт эго значение (то что пользователь ввел) а "hello, world"
саму строчку "hello, world"
__________________
https://axcoder.github.io
Старый 06.12.2019, 13:30   #183  
mnt_dx is offline
mnt_dx
Участник
Axapta Retail User
Лучший по профессии 2014
 
1,664 / 197 (10) ++++++
Регистрация: 17.02.2011
Адрес: К Северу через Северо-Запад
Подскажите, пожалуйста

Хотел, чтобы в импорте выписки в формате 1С поле плательщика бралось из второго возможного тэга, если первый пуст.

В Model mapping designer в дизайнере вот такая формула для счета плательщика:
Цитата:
@.SectionTypes.Documents.Data.Document.'$PayerAccountNum'.DocumentAttrTypes.PayerAccountNumSeq.Data.PayerAccountNum
хотел попробовать Если Х пусто, то "123" вот так

Цитата:
If(@.SectionTypes.Documents.Data.Document.'$PayerAccountNum'.DocumentAttrTypes.PayerAccountNumSeq.Data.PayerAccountNum="","123",@.SectionTypes.Documents.Data.Document.'$PayerAccountNum'.DocumentAttrTypes.PayerAccountNumSeq.Data.PayerAccountNum)
при нажатии ТЕСТ ругается
Цитата:
Incorrect reference 'format/IncomingFile/File/$Documents/SectionTypes/Documents/Data/Document/$PayerAccountNum/DocumentAttrTypes/PayerAccountNumSeq/Data/PayerAccountNum'
No overload for function = matches the input parameters
Function arguments are of incorrect types in 'If'
Я, наверное, все не так делаю?
Старый 06.12.2019, 13:53   #184  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,330 / 2525 (93) +++++++++
Регистрация: 16.01.2004
Адрес: Москва
Записей в блоге: 5
Я не знаю, что тут неправильно. Ошибка означает, что он не может найти операцию сравнения для данных аргументов. Для строк операция сравнения есть. Значит что-то не то с типами данных. Либо какая-то ошибка в пути, что он не определил тип либо еще что-то.
__________________
https://axcoder.github.io
Старый 06.12.2019, 14:09   #185  
online
Libovs
Участник
 
54 / 29 (1) +++
Регистрация: 26.03.2018
Цитата:
Сообщение от belugin Посмотреть сообщение
ER оперирует виртуальными записями.
Правильно ли я понимаю, что при добавлении источника данных типа Записи таблицы для него создается виртуальная запись ER, в которой столько (виртуальных) полей, сколько:
полей в исходной таблице +
relations в исходной таблице +
методов в исходной таблице +
"дочерних" таблиц, у которых есть relations на исходную таблицу?

И значений этих полей содержат ссылки, вызов которых позволяет получить соответственно:
значение поля
список записей дочерней таблицы, связанных с текущей записью исходной
результат выполнения метода
список записей дочерней таблицы, связанных с текущей записью исходной

И затем, для каждой "дочерней" таблицы также создается аналогичная виртуальная запись - и все повторяется для "дочерних" таблиц каждой "дочерней" таблицы первого уровня и т.п.?
В результате, выбрав только одну таблицу, получается многоуровневое дерево из всех связанных между собой по relations таблиц и возможность получения значений полей и выполнения методов всех этих таблиц?

Как-то так, если не вдаваться в детали реализации?
Старый 06.12.2019, 15:05   #186  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,330 / 2525 (93) +++++++++
Регистрация: 16.01.2004
Адрес: Москва
Записей в блоге: 5
Цитата:
Сообщение от Libovs Посмотреть сообщение
Как-то так, если не вдаваться в детали реализации?
Да. Еще все источники данных в целом представляют собой одну большую лениво вычисляемую виртуальную запись.
__________________
https://axcoder.github.io
Старый 06.12.2019, 16:39   #187  
online
Libovs
Участник
 
54 / 29 (1) +++
Регистрация: 26.03.2018
Цитата:
Сообщение от belugin Посмотреть сообщение
Да. Еще все источники данных в целом представляют собой одну большую лениво вычисляемую виртуальную запись.
Ну если не пытаться этим инструментом реализовывать сложные аналитические отчеты, а только печатные и/или xml-файлы документов и простенькие отчеты типа плоских таблиц, максимум с промежуточными итогами, то "ленивость" не должна стать существенной проблемой.
Я по-крайней мере, вижу применение именно для реализации локализованных форм при переходе с АХ2012, где они реализованы на SSRS, на DFO 365. А их таки немало.
Старый 06.12.2019, 17:03   #188  
online
Libovs
Участник
 
54 / 29 (1) +++
Регистрация: 26.03.2018
Очень не хватает в конструкторе форматов кнопки Свернуть/Развернуть на правой части формы (модели). На левой (шаблона) она есть.
Т.к. Поиск выполняется только по развернутым узлам, то раскрывать все дерево модели ручками как-то не по феншую.
Может есть какой hotkey или недокументированная возможность?
Старый 06.12.2019, 17:24   #189  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,330 / 2525 (93) +++++++++
Регистрация: 16.01.2004
Адрес: Москва
Записей в блоге: 5
Цитата:
Сообщение от Libovs Посмотреть сообщение
Может есть какой hotkey или недокументированная возможность?
Нету - там может быть источник данных с очень глубокой или бесконечно глубокой структурой.
__________________
https://axcoder.github.io
Старый 09.12.2019, 11:43   #190  
online
Libovs
Участник
 
54 / 29 (1) +++
Регистрация: 26.03.2018
Подскажите, как написать выражение с вызовом метода таблицы с параметрами?
Добавил источник данных таблица
AssetLedgerAccounts(Asset Ledger Accounts):Таблица AssetLedgerAccounts
у нее есть метод
assetLedgerDimension():Int64 (String _assetId, String _assetBookId, AssetTransType _assetTransType, String _assetPostingProfile, AssetDocumentType_JP _assetDocumentType_JP, Int64 _assetDocumentEntryRecId)
Ячейку отчета связал с этим методом
Ячейка<Col05_LedgerAccount> = model.AssetLedgerAccounts.'assetLedgerDimension()'
В качестве параметров надо передать элементы
model.'$BooksRecords'.'$LedgerJournalRecords'.AssetId
model.'$BooksRecords'.'$LedgerJournalRecords'.BookId
model.AssetTransTypeJournal.Acquisition
model.'$BooksRecords'.General.PostingProfile.Id

Попытка вставить между скобками пару кавычек и в них пути к параметрам успехом не увенчалась
Ячейка<Col05_LedgerAccount> = model.AssetLedgerAccounts.'assetLedgerDimension('model.'$BooksRecords'.'$LedgerJournalRecords'.AssetId, model.'$BooksRecords'.'$LedgerJournalRecords'.BookId, model.AssetTransTypeJournal.Acquisition, model.'$BooksRecords'.General.PostingProfile.Id')'

Как это правильно сделать?
Старый 09.12.2019, 11:54   #191  
EVGL is offline
EVGL
Moderator
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,878 / 2385 (87) +++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Это невозможно. Методы с параметрами приходится эмулировать прямым SQL в выражениях FILTER или WHERE:

FILTER(EGCAssetLedgerAccounts, AND(EGCAssetLedgerAccounts.BookId=AssetRollForwardTmp.AssetBookId,OR(EGCAssetLedgerAccounts.AccountRelation=AssetRollForwardTmp.AssetGroup, EGCAssetLedgerAccounts.AccountRelation=""), EGCAssetLedgerAccounts.TransType=EGCAssetTransType.Acquisition, EGCAssetLedgerAccounts.PostingProfile=EGCAssetParameters.PostingProfile))

Последний раз редактировалось EVGL; 09.12.2019 в 12:01.
Старый 09.12.2019, 12:29   #192  
online
Libovs
Участник
 
54 / 29 (1) +++
Регистрация: 26.03.2018
Тогда, по крайней мере мне, непонятна разница между типами Источника данных "Записи таблицы" и "Таблица". Я считал что второй как раз и дает возможность получить доступ к методам, в отличии от первого.
Теги
generic electronic reporting, ger

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
ievgensaxblog: MSDyn365FO. How to Import CSV file using Electronic Reporting. Part 2 – Format. Blog bot DAX Blogs 0 06.02.2019 07:12
ievgensaxblog: MSDyn365FO. How to Import CSV file using Electronic Reporting. Part 1 – Data Model. Blog bot DAX Blogs 0 06.02.2019 07:12
erconsult: Electronic Reporting (ER) Cookbook 2: new tips from the kitchen Blog bot DAX Blogs 0 06.08.2018 17:11
powerobjects: Electronic Reporting in Dynamics 365 for Finance and Operations Blog bot DAX Blogs 0 14.02.2018 03:28
erconsult: Electronic Reporting (ER) Cookbook Blog bot DAX Blogs 24 09.10.2017 08:47
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 12:33.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.