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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.01.2020, 12:07   #281  
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   #282  
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 не воспринял.
Старый 10.01.2020, 20:03   #283  
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/
Старый 10.01.2020, 21:59   #284  
axm2017 is offline
axm2017
Участник
 
1,747 / 292 (13) ++++++
Регистрация: 15.05.2017
Проще с видимостью ячейки поиграться имхо.
Зы
DATEVALUE("31-12-2154","dd-MM-yyyy")) функция не всегда удобна: жёсткое формирование формата даты. А если на машине формат другой?

Последний раз редактировалось axm2017; 10.01.2020 в 22:31.
Старый 13.01.2020, 14:19   #285  
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   #286  
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 и в зависимости от результата параметр будет или не будет отображаться на форме ввода параметров отчета.
Но какие источники данных можно использовать в этом выражении? Ведь форма ввода параметров открывается ДО вычисления значений.
Или я все не правильно понимаю? Где-то можно что-то почитать об этом?
Старый 13.01.2020, 14:58   #287  
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   #288  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2922 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
> The solution was to bind $ToDate directly to an unused field in the model.

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

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

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

Я думаю, что это можно легко проверить и связать с модельным атрибутом, который в свою очередь в модель меппинге связан с БД.
Старый 14.01.2020, 16:40   #297  
Libovs is offline
Libovs
Участник
 
224 / 53 (2) ++++
Регистрация: 26.03.2018
Спасибо, поэкспериментирую на досуге.
Старый 14.01.2020, 16:44   #298  
Libovs is offline
Libovs
Участник
 
224 / 53 (2) ++++
Регистрация: 26.03.2018
У метода тип параметра date, а у поля записи тип datetime; нужно вызвать метод со значением этого поля.
Функция DATETODATETIME есть, а "обратной" нет?
Старый 15.01.2020, 01:55   #299  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
Сообщение от Libovs Посмотреть сообщение
У метода тип параметра date, а у поля записи тип datetime; нужно вызвать метод со значением этого поля.
Функция DATETODATETIME есть, а "обратной" нет?
См. мой блог, черным по белому.
Старый 15.01.2020, 12:47   #300  
Libovs is offline
Libovs
Участник
 
224 / 53 (2) ++++
Регистрация: 26.03.2018
Цитата:
Сообщение от EVGL Посмотреть сообщение
См. мой блог, черным по белому.
Я внимательно его прочитал и видел это решение, так же как и Ваш комментарий:
The solution was dumb, but it worked

Но исходя из такой логики (с двойным преобразованием через строковое представление) можно обойтись и без функции DATETODATETIME
DATETIMEVALUE(CONCATENATE(DATEFORMAT(@.’Created date’, “dd.MM.yyyy”), “ 00:00:00”), “dd.MM.yyyy hh:mm:ss”)

Но разработчики ER эту функцию все-таки реализовали.
Теги
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:50.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.