27.12.2019, 18:58 | #261 |
Участник
|
В чем отличие функций FILTER и WHERE?
Пишу формулу FILTER('$CompanyInfo'.'$DirPartyLocation', $CompanyInfo'.'$DirPartyLocation'.IsPrimaryTaxRegistration=NoYes.Yes) При сохранении не проходит валидация Ошибка проверки: Выражение списка функции FILTER недоступно для запросов. Заменяю FILTER на WHERE WHERE('$CompanyInfo'.'$DirPartyLocation', $CompanyInfo'.'$DirPartyLocation'.IsPrimaryTaxRegistration=NoYes.Yes) Формула сохряняется. Нажимаю «Проверить» - получаю предупреждение Использование функции "FILTER" для выражения более предпочтительно, чем "WHERE", с точки зрения производительности. Нажимаю «Исправить» - ER заменяет WHERE на FILTER. Разные условия валидации в конструкторе формул и конструкторе форматов? |
|
27.12.2019, 23:45 | #262 |
Участник
|
см справку:
https://docs.microsoft.com/en-us/dyn...on#usage-notes Цитата:
Разные условия валидации в конструкторе формул и конструкторе форматов?
|
|
28.12.2019, 11:59 | #263 |
Участник
|
Видимо так. По крайней мере после замены WHERE на FILTER (чего не позволял валидатор формы конструктора формул) конфигурация отрабатывает - никаких сбоев в процессе выполнения не происходит.
|
|
28.12.2019, 12:41 | #264 |
Участник
|
|
|
28.12.2019, 14:19 | #265 |
Участник
|
Есть перечисление модели данных
И входной параметр пользователя типа перечисление модели данных SelectedType(Тип заказа):SalesType Значение перечисления Например, пользователь выбрал значение <Sales | Заказ на продажу>. Можно ли каким-то выражением ER получить в виде текстовой строки значение метки выбранного элемента перечисления, т.е. «Заказ на продажу»? Что-то типа $TypeValue = SelectedType.Label Или единственный способ это писать CASE на все элементы перечисления $TypeValue = CASE (SelectedType, SalesType.DEL_Blanket, “Договор продажи”, SalesType.Sales, “Заказ на продажу”, …) т.е. каждый раз писать формулу со всеми элементами перечисления (а если их 3-4 десятка и используется в нескольких формулах)? |
|
29.12.2019, 11:38 | #266 |
Banned
|
По опыту, "...единственный способ - это писать CASE на все элементы перечисления"
|
|
30.12.2019, 18:40 | #267 |
Участник
|
|
|
30.12.2019, 23:26 | #268 |
Banned
|
|
|
31.12.2019, 10:22 | #269 |
Участник
|
Цитата:
Чисто из спортивного интереса отмечу что что-то подобное (привел ниже) вполне работает, выдавая метку (хотя возможны ньюансы так, как полноценно не тестил). TestModelEnum - Enum в модели TestEnum - данный enum в маппинге. X++: FIRSTORNULL( WHERE(ERDataContainerDescriptorItemTable, AND(ERDataContainerDescriptorItemTable.'>Relations'.Parent.Name = "TestModelEnum", GETENUMVALUEBYNAME( TestEnum, ERDataContainerDescriptorItemTable.Name) = TestEnum.Test2))).Label |
|
|
За это сообщение автора поблагодарили: EVGL (3). |
31.12.2019, 14:05 | #270 |
Участник
|
Не проверял, но просто идея:
1. Превратить enum datasource в список X++: $calculatedField1 = LIST(enumDataSourceName) 3. Из него выбирать метаданные по имени поля, совпадающего с именем элемента энама X++: WHERE(tableMetadata.Fields, GETENUMVALUEBYNAME(TestEnum, tableMetadata.Fields.Name) = myEnumValue).Description |
|
08.01.2020, 12:49 | #271 |
Участник
|
Где-то в начале этой темы было предложение от belugin высказывать пожелания по совершенствованию ER. Если это еще актуально, то в контексте обсуждавшегося вопроса такое предложение:
реализовать внутренний объект ER (функция или источник данных), который бы позволил один раз сопоставить перечисление АХ с перечислением модели данных и затем при маппинге источник данных - модель позволял автоматически связывать поле записи с узлом модели. Сейчас кнопка "Связать" не активируется, если с одной стороны энам - нужно только писать формулу (CASE или возможно какой-то из предложенных выше вариантов - надо пробовать). Как мне кажется, это вполне реализуемо: если при сопоставлении двух энамов (АХ и модели) объект будет сохранять "в себе" их идентификаторы, то при маппинге модели, если слева выбрано поле записи типа энам АХ и справа выбран узел типа энам модели и для этой пары энамов уже определено сопоставление - то активируется кнопка "Связать" и не надо писать CASE. А при маппинге формата - "связывание" ячейки/тега с узлом модели типа энам должно реализовывать вывод в выходной файл метки текущего значения узла модели без необходимости написания очередного CASE. |
|
|
За это сообщение автора поблагодарили: EVGL (3), belugin (5). |
08.01.2020, 13:32 | #272 |
Banned
|
Для этого обычно сюда надо писать:
https://experience.dynamics.com/idea...1-5065f38b21f1 |
|
08.01.2020, 17:17 | #273 |
Участник
|
Цитата:
Сообщение от EVGL
Для этого обычно сюда надо писать:
https://experience.dynamics.com/idea...1-5065f38b21f1 |
|
09.01.2020, 08:49 | #274 |
Участник
|
Цитата:
Цитата:
А при маппинге формата - "связывание" ячейки/тега с узлом модели типа энам должно реализовывать вывод в выходной файл метки текущего значения узла модели без необходимости написания очередного CASE.
На такое был запрос, когда ER еще не поддерживал отчеты для людей в XLSX а только отчеты электронных болванов в XML, но было отвергнуто, так как в конкретном случае там нужно было выводить специфический, определенный форматом текст, соответсвтенно этот текст должен задаваться на стороне конкретного формата - у другого формата он был бы другой. |
|
09.01.2020, 11:43 | #275 |
Участник
|
|
|
09.01.2020, 12:00 | #276 |
Участник
|
Цитата:
Сообщение от mnt_dx
Подскажите, пожалуйста, что делает экспорт меток в репортинге?
Вложение 12535 |
|
09.01.2020, 12:11 | #277 |
Участник
|
Цитата:
Сообщение от belugin
На такое был запрос, когда ER еще не поддерживал отчеты для людей в XLSX а только отчеты электронных болванов в XML, но было отвергнуто, так как в конкретном случае там нужно было выводить специфический, определенный форматом текст, соответсвтенно этот текст должен задаваться на стороне конкретного формата - у другого формата он был бы другой.
И это не отрицает возможности не связывать (если нужен специфический текст) ячейку с узлом, а в таком случае написать формулу: Ячейка = CASE (Узел, энам.1, "текст1", энам.2, "текст2", ...) |
|
09.01.2020, 12:37 | #278 |
Участник
|
И такое предложение для обсуждения:
в функцию STRINGJOIN добавить 4-й (необязательный - по умолчанию = false) параметр типа boolean. Если установлен в true - выходная строка формируется только из уникальных значений поля. Например, формируется транспортная накладная из сотни записей; в записи есть поле Склад.Нужно в "шапке" вывести список складов, на которые развозятся товары - из может быть всего 2-3, а не сотня. |
|
09.01.2020, 13:35 | #279 |
Участник
|
|
|
10.01.2020, 11:28 | #280 |
Участник
|
|
|
Теги |
generic electronic reporting, ger |
|
|