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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.01.2020, 13:35   #1  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от Libovs Посмотреть сообщение
в функцию STRINGJOIN добавить 4-й (необязательный - по умолчанию = false) параметр типа boolean. Если установлен в true - выходная строка формируется только из уникальных значений поля.
На исходный список сожно натравить groupby и тогда он сделает уникльные значения
Старый 10.01.2020, 11:28   #2  
Libovs is offline
Libovs
Участник
 
224 / 53 (2) ++++
Регистрация: 26.03.2018
Цитата:
Сообщение от belugin Посмотреть сообщение
На исходный список сожно натравить groupby и тогда он сделает уникльные значения
Спасибо за подсказку - получилось. Сначала группировка по этому полю, а потом STRINGJOIN по grouped дали нужный результат.
Старый 10.01.2020, 12:07   #3  
Libovs is offline
Libovs
Участник
 
224 / 53 (2) ++++
Регистрация: 26.03.2018
Все-таки есть какая-то несогласованность в коде валидации в зависимости от места вызова.
Выполняю проверку находясь в конструкторе форматов
Нажмите на изображение для увеличения
Название: FA14.jpg
Просмотров: 137
Размер:	183.1 Кб
ID:	12538
ни ошибок, ни предупреждений.
Поднимаюсь выше и выполняю проверку того же формата, но из формы списка конфигураций
Нажмите на изображение для увеличения
Название: FA15.jpg
Просмотров: 150
Размер:	279.2 Кб
ID:	12539
получаю предупреждения - заменить все WHERE на FILTER.
Возвращаюсь в конструктор форматов, меняю функции и проверяю
Нажмите на изображение для увеличения
Название: FA16.jpg
Просмотров: 154
Размер:	205.1 Кб
ID:	12540
получаю ошибки - FILTER в данной формуле использоваться не может.
Старый 10.01.2020, 17:45   #4  
Libovs is offline
Libovs
Участник
 
224 / 53 (2) ++++
Регистрация: 26.03.2018
Столкнулся с такой проблемой: нужно выводить значение в ячейку xls-отчет по условию - если журнал разнесен, то выводится значение из транзакции, если не разнесен - ячейка должна оставаться пустой.
Т.к. IF требует, чтобы оба параметра были одного типа, пишу выражение
IF('$СomingJournals'.'$JournalHeader'.Posted=NoYes.Yes, @.'$InventLine'.Qty, VALUE(""))
валидация проходит, но при выполнении возникает ошибка.
Меняю выражение на
IF('$СomingJournals'.'$JournalHeader'.Posted=NoYes.Yes, @.'$InventLine'.Qty, VALUE("0"))
но тогда в ячейку выводится значение 0,00 (у ячейки установлен числовой формат) - это не устраивает заказчика; он хочет, чтобы ячейка была именно пустой.
Единственное до чего додумался - оба параметра конвертировать в строковый тип
IF('$СomingJournals'.'$JournalHeader'.Posted=NoYes.Yes, NUMBERFORMAT(@.'$InventLine'.Qty, "F2", "ru"), "")
но (когда журнал разнесен) вывод значения в строковом представлении и трактуется Экселем как строка, т.е. не суммируется и т.п.
Может кто-то уже решал такую задачу и может что-то подсказать?
Т.е. в общем случае: по условию выводить значение в ячейку или вообще ничего не выводить.
null в качестве второго параметра IF не воспринял.
Старый 14.01.2020, 07:57   #5  
sparco is offline
sparco
Участник
Самостоятельные клиенты AX
 
44 / 21 (1) +++
Регистрация: 10.10.2011
Адрес: Москва
Цитата:
Сообщение от Libovs Посмотреть сообщение
Столкнулся с такой проблемой: нужно выводить значение в ячейку xls-отчет по условию - если журнал разнесен, то выводится значение из транзакции, если не разнесен - ячейка должна оставаться пустой.
Т.к. IF требует, чтобы оба параметра были одного типа, пишу выражение
IF('$СomingJournals'.'$JournalHeader'.Posted=NoYes.Yes, @.'$InventLine'.Qty, VALUE(""))
валидация проходит, но при выполнении возникает ошибка.
Меняю выражение на
IF('$СomingJournals'.'$JournalHeader'.Posted=NoYes.Yes, @.'$InventLine'.Qty, VALUE("0"))
но тогда в ячейку выводится значение 0,00 (у ячейки установлен числовой формат) - это не устраивает заказчика; он хочет, чтобы ячейка была именно пустой.
Единственное до чего додумался - оба параметра конвертировать в строковый тип
IF('$СomingJournals'.'$JournalHeader'.Posted=NoYes.Yes, NUMBERFORMAT(@.'$InventLine'.Qty, "F2", "ru"), "")
но (когда журнал разнесен) вывод значения в строковом представлении и трактуется Экселем как строка, т.е. не суммируется и т.п.
Может кто-то уже решал такую задачу и может что-то подсказать?
Т.е. в общем случае: по условию выводить значение в ячейку или вообще ничего не выводить.
null в качестве второго параметра IF не воспринял.
Воспользуйтесь свойством enabled на элементе в формате.
Старый 14.01.2020, 11:42   #6  
Libovs is offline
Libovs
Участник
 
224 / 53 (2) ++++
Регистрация: 26.03.2018
Цитата:
Сообщение от sparco Посмотреть сообщение
Воспользуйтесь свойством enabled на элементе в формате.
А можно чуть подробнее?
У элемента шаблона вижу свойства Type, Name, Mandatory, Excel range, Data type, Transformation.
Или это еще для узла модели (т.е. в модели, а не формате) определяется?
Старый 14.01.2020, 11:49   #7  
sparco is offline
sparco
Участник
Самостоятельные клиенты AX
 
44 / 21 (1) +++
Регистрация: 10.10.2011
Адрес: Москва
Цитата:
Сообщение от Libovs Посмотреть сообщение
А можно чуть подробнее?
У элемента шаблона вижу свойства Type, Name, Mandatory, Excel range, Data type, Transformation.
Или это еще для узла модели (т.е. в модели, а не формате) определяется?
В Вашем сообщении Вебинар по функциональности Электронной отчетности (Electronic reporting) и Электронных сообщений (Electronic messages)
1 картинка, правый блок, внизу есть поле "Включено".
Старый 14.01.2020, 12:33   #8  
Libovs is offline
Libovs
Участник
 
224 / 53 (2) ++++
Регистрация: 26.03.2018
Цитата:
Сообщение от sparco Посмотреть сообщение
В Вашем сообщении Вебинар по функциональности Электронной отчетности (Electronic reporting) и Электронных сообщений (Electronic messages)
1 картинка, правый блок, внизу есть поле "Включено".
Спасибо за подсказку - получилось.
Ячейку безусловно связал с узлом модели
Ячейка<LineQtyFact>? = @.'$InventLine'.Qty
а проверку разнесен ли журнал перенес в это свойство
IF('$СomingJournals'.'$JournalHeader'.Posted=NoYes.Yes, истина, ложь)
Старый 10.01.2020, 20:03   #9  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Да, конвертировать в строку.
Я в главе Date formatting: Show an empty date in Excel as blank аналогичный прием для дат описал: http://erconsult.eu/blog/electronic-...te-formatting/
Старый 13.01.2020, 14:19   #10  
Libovs is offline
Libovs
Участник
 
224 / 53 (2) ++++
Регистрация: 26.03.2018
Цитата:
Сообщение от EVGL Посмотреть сообщение
Да, конвертировать в строку.
Я в главе Date formatting: Show an empty date in Excel as blank аналогичный прием для дат описал: http://erconsult.eu/blog/electronic-...te-formatting/
Я так и поступил, но результат мне не очень нравится.
Нажмите на изображение для увеличения
Название: FA17.jpg
Просмотров: 138
Размер:	98.2 Кб
ID:	12541
Если в колонке 5 число - это число, то в колонке 6 хоть и выглядит как число, но для Экселя это строка. И если бы в этой форме нужно было просчитать сумму по колонке таблицы, то по колонке 5 результат бы сформировался, а по колонке 6 - нет.
Поэтому, ИМХО, преобразование в строку может быть решением в частном, но не общем случае.
Старый 13.01.2020, 14:35   #11  
Libovs is offline
Libovs
Участник
 
224 / 53 (2) ++++
Регистрация: 26.03.2018
Цитата:
Сообщение от EVGL Посмотреть сообщение
Да, конвертировать в строку.
Я в главе Date formatting: Show an empty date in Excel as blank аналогичный прием для дат описал: http://erconsult.eu/blog/electronic-...te-formatting/
И я никак не могу понять управление видимостью для Входного параметра пользователя. При нажатии Изменить видимость открывается форма конструктора формул - с точки зрения формальной логики, можно написать выражение, которое должно иметь возвращаемое значение обязательно типа true | false и в зависимости от результата параметр будет или не будет отображаться на форме ввода параметров отчета.
Но какие источники данных можно использовать в этом выражении? Ведь форма ввода параметров открывается ДО вычисления значений.
Или я все не правильно понимаю? Где-то можно что-то почитать об этом?
Старый 10.01.2020, 21:59   #12  
axm2017 is offline
axm2017
Участник
 
1,770 / 293 (13) ++++++
Регистрация: 15.05.2017
Проще с видимостью ячейки поиграться имхо.
Зы
DATEVALUE("31-12-2154","dd-MM-yyyy")) функция не всегда удобна: жёсткое формирование формата даты. А если на машине формат другой?

Последний раз редактировалось axm2017; 10.01.2020 в 22:31.
Старый 13.01.2020, 14:58   #13  
Libovs is offline
Libovs
Участник
 
224 / 53 (2) ++++
Регистрация: 26.03.2018
И в продолжение к предыдущему вопросу: какой смысл во Входном параметре пользователя в модели, если он не отображается при выполнении формата, построенного на этой модели?
На мой взгляд, "выполнение" модели - это чисто отладочный процесс, а конечный пользователь "выполняет" именно формат. И если не "протащить" эти параметры из модели в формат,
The solution was to bind $ToDate directly to an unused field in the model.
то пользователь не сможет их задать. И зачем тогда они нужны в модели?
Старый 13.01.2020, 15:28   #14  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
> The solution was to bind $ToDate directly to an unused field in the model.

Это воркжраунд для ошибки. Обычно ER сам детектит что UIP из модели используется в формате и показывает в этом случае. Обяснение было выше.
Старый 14.01.2020, 12:42   #15  
Libovs is offline
Libovs
Участник
 
224 / 53 (2) ++++
Регистрация: 26.03.2018
Практически вся функциональность ER по сути является "недокументированной" (кроме функций) и далеко не всегда очевидной в интерфейсе, вот и приходится обращаться и отвлекать знающих людей.
Может хотя бы парой слов подскажете функциональное назначение "Изменить видимость" для Входного параметра пользователя? Задавал это вопрос выше Вебинар по функциональности Электронной отчетности (Electronic reporting) и Электронных сообщений (Electronic messages)
Старый 14.01.2020, 13:38   #16  
sparco is offline
sparco
Участник
Самостоятельные клиенты AX
 
44 / 21 (1) +++
Регистрация: 10.10.2011
Адрес: Москва
Согласен с вами, с документацией беда.

Как я понимаю, какие-либо вычисления происходят в момент вызова функции, которые связанны с вычислением.
При редактировании visible входящего параметра ничего не мешает использовать что-нибудь из Data source. Например можно настроить связь с каким-нибудь параметр из настроечной таблицы, который будет в DS.
При запуске отчета, произойдет вызов проверки visible на входящем параметре, следовательно по связке и произойдет запрос к БД.
Но не уверен что в формате можно использовать таблицу напрямую.
Старый 14.01.2020, 15:49   #17  
Libovs is offline
Libovs
Участник
 
224 / 53 (2) ++++
Регистрация: 26.03.2018
Цитата:
Сообщение от sparco Посмотреть сообщение
При запуске отчета, произойдет вызов проверки visible на входящем параметре, следовательно по связке и произойдет запрос к БД.
Т.е. уже при открытии диалогового окна параметров отчета, если для "Входного параметра пользователя" задана формула, использующая данные из БД, будет выполнятся запрос для анализа того, надо ли этот параметр отображать в диалоговом окне?
Старый 14.01.2020, 16:05   #18  
sparco is offline
sparco
Участник
Самостоятельные клиенты AX
 
44 / 21 (1) +++
Регистрация: 10.10.2011
Адрес: Москва
Сейчас, к сожалению, нет аксапты под рукой, где можно было бы это проверить точно, но вы правильно поняли мою мысль.

Однако это противоречит с идеологией, что в формат не должно быть аксаптовых объектов.

Я думаю, что это можно легко проверить и связать с модельным атрибутом, который в свою очередь в модель меппинге связан с БД.
Старый 14.01.2020, 16:40   #19  
Libovs is offline
Libovs
Участник
 
224 / 53 (2) ++++
Регистрация: 26.03.2018
Спасибо, поэкспериментирую на досуге.
Старый 14.01.2020, 16:44   #20  
Libovs is offline
Libovs
Участник
 
224 / 53 (2) ++++
Регистрация: 26.03.2018
У метода тип параметра date, а у поля записи тип datetime; нужно вызвать метод со значением этого поля.
Функция DATETODATETIME есть, а "обратной" нет?
Теги
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, время: 14:26.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.