13.11.2019, 14:41 | #81 |
Участник
|
Элемент можно связать только со списком - тогда он будет повторяться ровно столько раз сколько записей в списке а вложенные узлы будут работать в контексте текущей записи.
Внутрь элемента можно добавить любой текстовый компонент (строка или число) и он будет определять какие данные там могут быть (узел типа "текст" с точки зрения DOM). По умолчанию формат чисел и дат будет как принято в XML, но в русских отчетах могут быть русские форматы (ДД.ММ.ГГ, запятая как десятичный разделитель), это можно задать на элементе типа Файл или на каждом компоненте типа Дата, Число Дизайнер форматов содержит функционал импорта для примеров XML формата, так что если у вас есть образец, можно не кидать компоненты вручную а импортировать его, а потом удалить ненужные повторения и связать с данными. Последний раз редактировалось belugin; 13.11.2019 в 14:59. |
|
|
За это сообщение автора поблагодарили: trud (3). |
13.11.2019, 14:47 | #82 |
Участник
|
|
|
13.11.2019, 16:22 | #83 |
Участник
|
Теперь мне нужно связать реальные данные с моделью
Задание маппинга 1 шаг Создание шапочки мапинга ничем не отличается от создания модели кроме места крыжика и надписей 2 шаг Потыкав пару раз на кнопку Designer попадаю в окошко просмотра/редактирования mapping/ В качестве источника данных хочу выбрать записи таблички акаспты с которой и буду черпать данные. 3 шаг Сопоставляю записи таблички с набором записей в модели (кнопка bind) Могу также сопоставить и поля если их тип совпадает. 4 шаг Так как не нашел идентификатор (ибо все же стажер и червь) то решил использовать RecId о которым слышал что он уникален для этого тычу в кнопку Edit 5 шаг Почти как в Excel делаю формулу, благо там даже подсказка есть Сохраняю и закрываю получая результат типа 6 шаг Тестю что что то работает У меня получается результат в виде xml файла Радуюсь. 7 шаг Как обычно сохраняю результат (потыкав в Change status) Mapping готов |
|
|
За это сообщение автора поблагодарили: belugin (5), sukhanchik (6). |
14.11.2019, 10:39 | #84 |
Участник
|
Теперь попробую таки сделать формат.
Создание шаблона. Обычно его делают консультанты благо у них все для этого есть: они сказали какие данные они им нужны и они представляют в каком виде они их увидят. Но в силу причин описанных выше это делаю я. И так Шаг 1 Создаю файл Excel где рисую два поля заголовка и даю им названия Именую и область всей строки. Почему? Потому что могу и это дает определенную структуру (вся строка это метки а эти ячейки лишь метки поля в виде дерево можно все красиво представить если что) Естественно что кроме заголовков будут и значения. Аналогично завожу поля Делаю красиво Показываю консультанту. Его устраивает. Все рады. Последний раз редактировалось axm2017; 14.11.2019 в 10:47. |
|
|
За это сообщение автора поблагодарили: sukhanchik (4). |
14.11.2019, 11:38 | #85 |
Участник
|
Создание собственно формата на основе Excel
И так приступим 1 шаг Тут все как обычно только буковки ввести по смыслу и крыжик выбрать другой + указать что Excel хочу. 2 шаг Далее традиционным путем попадает в окно разработки/просмотра шаблона Выбираем пунктик импорт и таки закачиваем шаблон Получаем нечто подобное Зададим названия столбиков, для чего встаем на соответствующие поле и жмем Edit formula В форме формулы вводим название По правильному можно метку создать, но так как задача не в этом проигнорим пока данный вопрос. Далее указываем что и куда будет писаться Для этого сопоставляем элементы шаблончика с элементами модели. Итогово получим нечто подобное Традиционно сохраняем и пробуем запустить Жмем кнопку получаем результат |
|
|
За это сообщение автора поблагодарили: mazzy (5), raz (20), sukhanchik (6), Stitch_MS (10), Dynamics365Eng (1). |
14.11.2019, 12:04 | #86 |
Участник
|
Цитата:
Или данные для импорта должны иметь какую-то предопределенную табличную структуру? Может коммент не совсем в тему, но я столкнулся с этой проблемой в Электронном документе АХ2012. И без модификации кода решить ее не удалось. Суть проблему была в том, при генерации xml-документа можно было получить <имяТега>значение</имяТега> - если в xsd-схеме тип элемента определен как simple или <имяТега имяАтрибута1="значение" имяАтрибута2="значение"/> - если в xsd-схеме тип элемента определен как complex Но никакими ухищрениями стандартный код не мог сгенерировать в выходном файле конструкцию вида <имяТега имяАтрибута1="значение">значение</имяТега> А структуру xml-документа определяет регулирующий орган, именно в виде xsd-схемы. И для табличной части документа (то, что в АХ2012 именовалось динамической таблицей, а не секцией) в выходном файле должны повторяться строки с одинаковым именем тега, имеющим значение, и атрибутом ROWNUM с номером строки. Вот я и пытаюсь с разобраться, возможна ли настройка такой конструкции средствами интерфейса или, как в АХ2012, в стандарте это не реализуемо. |
|
14.11.2019, 12:19 | #87 |
Участник
|
Во-первых, спасибо.
Напомню, что хотел получить "пользователь ака консультант" в постановке задачи. Цитата:
Цитата:
Сообщение от axm2017
В качестве источника данных хочу выбрать записи таблички акаспты с которой и буду черпать данные.
Вложение 12440 dirPerson может содержать кучу всяких персон помимо пользователей. кроме того, dirPerson содержит записи о всех персонах, в том числе и давно не активных. что-то я сильно сомневаюсь, что консультант просил всех персон, которые когда либо были зарегистрированы с системе (включая внешние контакты) что-то я сильно сомневаюсь, что консультант просил RecID в качестве идентификатора. Как программист, я отлично понимаю почему в примере была выбрана именно эта таблица. Потому что ФИО в куче нормализованных dirParty-таблиц находится именно здесь. И чтобы "не парится", программист выдал по форме правильное решение, а по сути издевательство. Цитата:
Сообщение от axm2017
Жмем кнопку получаем результат
Вложение 12473 upd: оказывается recId в качестве идентификатора - не насмешка Joker-программиста Цитата:
Сообщение от axm2017
4 шаг
Так как не нашел идентификатор (ибо все же стажер и червь) то решил использовать RecId о которым слышал что он уникален для этого тычу в кнопку Edit Вложение 12442 Mapping готов Кто этот супер-ER-man? Последний раз редактировалось mazzy; 14.11.2019 в 12:27. |
|
|
За это сообщение автора поблагодарили: mnt_dx (4). |
14.11.2019, 12:25 | #88 |
Участник
|
Большое спасибо за такой подробный пример, обязательно попробую сотворить что-то аналогичное, но на данных, приближенным к моим задачам.
Но у меня несколько иные задачи. Я как раз не разработчик, а тот консультант, на которого это инструмент и ориентирован. Вторым этапом, при наличии времени, я с удовольствием разберусь и с созданием модели, источников данных и маппингом. Но первым делом хочу разобраться с возможностями настройки форматов в xml, xls, pdf для кастомных форм (а-ля локализация для UA). Взял стандартную модель Customer invoice model и пробую сваять форму расходной накладной в этих 3-х форматах. Понятно, что в стандартной модели данных не хватит и ее понадобится дополнять, например реквизиты договора, который надо тянуть из таблиц _RU. Но хотя бы настроить вывод в формы тех полей, которые есть в стандартной модели, я и учусь. |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
14.11.2019, 12:37 | #89 |
Участник
|
И пока стажеры собираются повторить,
предлагаю старожилам обратить внимание на галочку Ask for Query и предположить что именно она делает, и что хотели сделать когда ее добавляли Цитата:
Сообщение от axm2017
В качестве источника данных хочу выбрать записи таблички акаспты с которой и буду черпать данные.
Вложение 12440 |
|
14.11.2019, 12:53 | #90 |
Участник
|
Потому что консультант посмотрел на форму ака entity и догадался.Это (название таблички) не является проблемой для консультанта так же как и названия поля.
Цитата:
Цитата:
Цитата:
Потому что см. статью индийско-американского коллеги, отчет к примеру сразу зафигачили клиенту. В моем случае консультант опять же к примеру махнул рукой со словами кидай там посмотрим: время - лучший тестировщик. Что же делать? Ошибку видят но как быть? Если бы это был SSRS ака закодированный отчет подобная ошибка привела бы к Большой Боли так как приложение работающее и боевое. Но не ЕР. Минута правки маппинга, где TEXT(@.recId) меняется на что то осмысленное и все хорошо. Последний раз редактировалось axm2017; 14.11.2019 в 12:55. |
|
14.11.2019, 12:57 | #91 |
Участник
|
|
|
14.11.2019, 13:09 | #92 |
Участник
|
Цитата:
пример в целом получился шикардос! Цитата:
axm2017, жгите еще. Цитата:
Для тех, кто хочет разобраться:
В целом напоминает анекдот: приходит девушка на вакансию секретаря. ее спрашивают: - с какой скоростью печатаете? - 1000 знаков в минуту (про себя: такая фигня получается) Цитата:
"да запросто! жалко что ли?" (С) О чем говорят мужчины Цитата:
вы попробуйте все-таки сделать что-то осмысленное и применимое на практике. Пусть даже не опубликуете, но хотя бы для себя поймете о чем речь |
|
14.11.2019, 13:22 | #93 |
Участник
|
Цитата:
Никто не требует сразу от человека сделать мега сервис вывода и кучей настроек в C# и тем более с практической значимостью при написании Hello word. Сварганьте кстати подобное за 5 минут в SSRS к примеру в 365 с тестами и тп. Вряд ли выйдет имхо. Пойму что? |
|
14.11.2019, 13:50 | #94 |
Участник
|
На сколько представляю сейчас у ER есть поддержка SSRS-ого framework-а (с временными и прочим добром). Рекомендую поинтересоваться так как это может кардинально сократить ваши трудозатраты.
|
|
14.11.2019, 15:13 | #95 |
Участник
|
Сколько-то постов назад было упоминание, что SSRS "умирает". Не знаю, насколько это достоверная информация, но даже не в этом дело.
Глобальная задача - именно локализация простых форм документов. И поставлена не программистам с опытом, а консультанту без такового, по крайней мере в Х++. Прочитать то код могу, но писать не приходилось. Поэтому на первом этапе - только создание форматов и маппинг на шаблоны, а модели и источники данных - уже в свободное от работы время "для себя". И только в рамках возможностей интерфейса ER. |
|
14.11.2019, 15:29 | #96 |
Участник
|
Это так. По слухам отказ от него вопрос решенный.
Однако так сложилось что Ax содержит кучу отчетов взаимодействующих с ним и определенный framework для работы (создаются таблички как временные так и постоянные, классы провайдеры и прочая чепуха) Подобное творили все подряд (как консалты так и MS) и отказ от этого привел бы к тоске и боли большого круга людей. Поэтому кто-то сделал framework перехода который позволяет использовать ту же логику только вместо SSRS работать через ER. Это хорошо так как расчет порой крайне нетривиален. Цитата:
Кратко как понял идея такая. PS понятно что мое представление может быть искажено так как идет не с прямого контакта. Последний раз редактировалось axm2017; 14.11.2019 в 15:36. |
|
14.11.2019, 15:54 | #97 |
Участник
|
Цитата:
Невозможно десериализовать XML-документ. Класс 'hello' не существует. |
|
14.11.2019, 16:12 | #98 |
Участник
|
Цитата:
Просто мне казалось, что для первого опыта будет проще сваять xml - не сложилось. Попробую настроить xls, хотя бы для тех полей, которые есть в стандартной Customer invoice model, может получится. Хотя "генеральная" позиция - это xml для обмена и pdf для визуального отображения и печати, т.к. он нередактируемый, по крайней мере для рядового пользователя. |
|
14.11.2019, 16:46 | #99 |
Участник
|
Вероятно вы импортируете из дерева конфигураций а не из дизайнера формата:
|
|
14.11.2019, 16:56 | #100 |
Участник
|
Цитата:
Сообщение от axm2017
...то по mapping у нас была неправильная рекомендация стараться жить с одним mapping лишь дорабатывая его. Как показала практика жить на одном mapping пытаясь не сломать существующее модифицировать основываясь на других источниках данных крайне сложно и не стоит усилий. Проще сделать новый mapping...
Чуть попозже попробую проиллюстрировать примером. Предположим у нас есть все из примера 1 и это всем нравится до такой степени что китайские сотрудники попросили запилить почти такой же отчет. Ок. Не вопрос. Делаем почти такой же формат. Но китайские товарищи к примеру начинают хотеть порой свое уникальное значение в поле идентификатор так как мое их не устроило (из другого источника данных связанного с табличкой). Попытки решить подобное изначально в рамках одного mapping (типа добавим поле IdFromChine и прочее) оказались крайне неудобными. Отчеты и модели жили своей жизнью росли, покрываясь расчетными функциями и прочим и это же касалось mapping (где надо было помнить еще и о китайцах) в итоге поддержка подобной уникальности оказалась трудозатратной. Проще оказалось сделать новый mapping хотя изначально рекомендовалось жить в одном маппинге. Последний раз редактировалось axm2017; 14.11.2019 в 16:58. |
|
Теги |
generic electronic reporting, ger |
|
|