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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.08.2016, 06:55   #1  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
650 / 352 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Цитата:
Сообщение от Vasiliusis Посмотреть сообщение
Мне это нужно для формы с гридом, в котором количество столбцов меняется в рантайме в зависимости от данных в базе.
Меня терзают смутные сомнения... Вы случайно раньше на Delphi+Firebird не работали?
__________________
// no comments
Старый 30.08.2016, 08:35   #2  
Vasiliusis is offline
Vasiliusis
Участник
 
225 / 13 (1) ++
Регистрация: 30.01.2013
Цитата:
Сообщение от dech Посмотреть сообщение
Меня терзают смутные сомнения... Вы случайно раньше на Delphi+Firebird не работали?
не работали
Старый 30.08.2016, 09:56   #3  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,340 / 3558 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Кстати, нормальное желание для тех, кто:
1. Привык к таблицам в Excel (в т.ч. сводным)
2. Знает, что такое перекрестные запросы (штука, не поддерживаемая АХ).

Т.е. все это похоже на требования к BI-системе только в сильно упрощенном виде.
Соответственно, и реализовывать все это проще с использованием ActiveX-компонент, имеющих отношение к BI. Самый наипростейший вариант (правда немного устаревший) - компонент SpreadSheet из пакета Office Web Components (OWC). Вариант потяжелее - это непосредственно Excel.
Самое сложное из всего этого - приучить пользователей, что если вывести данные так еще и можно (обычный отчет в Excel, где на скрытом листе данные, удобные для представления в АХ, а на отображаемом листе - сводная таблица, опирающаяся на эти данные), то вот обеспечить такую форму для ввода - это сильно сложно. Сильно = затраты на реализацию неоправданно высоки по сравнению с тем, чтобы приучить народ вводить в другом виде, но иметь отчет.

В мире большого объема данных такого рода отчет делается в кубах с помощью какого-либо средства просмотра (Excel, SSRS, QlickView и т.д.). А вариант "по-деревенски" - это выгрузка данных в Excel на скрытый лист с отображением сводной таблицы на другом листе
__________________
Возможно сделать все. Вопрос времени
За это сообщение автора поблагодарили: gl00mie (1).
Старый 30.08.2016, 12:43   #4  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5803 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Самый наипростейший вариант (правда немного устаревший) - компонент SpreadSheet из пакета Office Web Components (OWC). Вариант потяжелее - это непосредственно Excel.
Самое сложное из всего этого - приучить пользователей, что если вывести данные так еще и можно (обычный отчет в Excel, где на скрытом листе данные, удобные для представления в АХ, а на отображаемом листе - сводная таблица, опирающаяся на эти данные), то вот обеспечить такую форму для ввода - это сильно сложно. Сильно = затраты на реализацию неоправданно высоки по сравнению с тем, чтобы приучить народ вводить в другом виде, но иметь отчет.
Полностью поддерживаю: Excel и OWC очень подходят, по описанию, для решения указанной выше задачи. В свое время на 3-ке с помощью OWC делалась форма ручного редактирования количества в переменном числе колонок для кросс-докинга, выглядело примерно так (зеленые поля - редактируемые, остальные - защищены от ручной правки):

Затем введенные данные брались из листа OWC, запихивались в строки журнала кросс-докинга, журнал разносился. Пользователям было удобно и привычно потому, что они до этого то же самое делали в Excel, а тут они могли просто выплюнуть данные в Excel, отредактировать и вставить результат обратно через буфер обмена. Но эти бантики было реально трудоемко реализовывать...

Последний раз редактировалось gl00mie; 30.08.2016 в 13:49. Причина: стилистика
Старый 30.08.2016, 14:57   #5  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1633 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
так а зачем усложнять. недавно делал похожую задачу - обошлось десятком заранее созданных edit методов и енумом из 10 значений, который определял позицию элемента в гриде. ну и init методом на основной форме с гридом который менял лейблы и скрывал неиспользуемые
сортировки правда не требовалось.
Старый 30.08.2016, 16:01   #6  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5803 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
В моем случае колонок могло быть несколько десятков - по количеству пунктов назначения в кросс-докинге. Генерить несколько десятков edit-методов - это уже перебор, если не сказать хуже А так, если текущая задача имеет ограничение сверху в дюжину колонок, то, разумеется, лучше обойтись заранее сгенерированными edit-методами и енумом.
Старый 30.08.2016, 17:13   #7  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Ноосфера программистская, к которой через определённое количество опыта каждый программист подключается, шепчет уже осипшим голосом что если упёрся в стенку то значит идёшь не туда.

Ну если надо вот так как типа в Excel так значит надо использовать ActiveX и использовать функционал Excel на форме. Хотя тоже изврат. Мы же не китайцы у которых понятие чересчур сложного отсутствует. Типа что думать, берёшь кирпич и строишь Великую Китайскую стену.

Профи он ведь в достаточности усилий и эффективности результата, априори ленивый.
Ну если горизонтальное представление нужно показывать вертикально в АХ и иметь возможность редактировать, тогда пусть делают это в Excel примерно так как работает Atlas и в АХ 2012.
И в предыдущих версиях не велика беда - немного VBA и АХ бизнес-коннектор.
По крайней мере дизайн такого решения и его обоснованность уже можно понять.

Ну и как быстрый и тупой вариант, как правильно уже сказали, не парится и сделать фиксированное количество столбцов и статический дизайн, скрывая ненужное. Тупость но уже не такая дорогая.

Зы: но ещё профессионализм в умении говорить слово НЕТ.
Потому как все же строки в базе переводить в динамические столбцы это даже не экстрим, это
Полный привет. Следующим будут круглые кнопки.

Можно ещё временную таблицу создавать как источник данных для формы где переворачивать строки в столбцы.

Последний раз редактировалось ax_mct; 30.08.2016 в 17:24.
Старый 30.08.2016, 18:04   #8  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 868 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Если набор данных не велик, то можно сделать.
Временная таблица со столбцами данных Field1-FieldN и ключевыми (например код клиента)
Некое правило преобразования вашего ABC к FieldK и обратно.
При открытии формы ввода заполняете временную таблицу, при изменении данных в полях сохраняете информацию в свою основную таблицу.
За это сообщение автора поблагодарили: ax_mct (5).
Старый 31.08.2016, 11:48   #9  
Napalm is offline
Napalm
Участник
 
80 / 88 (3) ++++
Регистрация: 23.05.2012
Можно сделать один универсальный edit метод.
Старый 02.09.2016, 05:20   #10  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,345 / 996 (38) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от Napalm Посмотреть сообщение
Можно сделать один универсальный edit метод.
насколько универсальный?
__________________
Isn't it nice when things just work?
Старый 02.09.2016, 08:00   #11  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
650 / 352 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Цитата:
Сообщение от macklakov Посмотреть сообщение
насколько универсальный?
С кучей кейсов)))
__________________
// no comments
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Можно ли из кода изменить свойства Field в таблице, не в DS? АртемМелихов DAX: Программирование 20 10.06.2015 15:10
Можно ли динамически созданному контролу CheckBox прикрутить метод modified? Poleax DAX: Программирование 4 31.03.2009 19:58
Edit-метод и Relation - баг или фича ? TasmanianDevil DAX: Программирование 9 20.11.2008 10:16
Можно ли в display методе узнать для какого FormControl'а этот метод вызван? Dudnik Anton DAX: Программирование 3 01.02.2006 12:22
Создать Relation в AOT программным кодом EVGL DAX: Программирование 3 21.05.2003 12:47

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 08:37.