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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.08.2013, 11:50   #1  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Еще вопросик, не знаю сюда его задать или нет.

Объединение ячеек.
В OXMLWorksheet_RU есть метод saveMergeCells. там нужен контейнер, в котором [fromrow, toRow, fromCol, ToCol].но есть еще переменная MergeCells, которую никак не пойму как проинитить.

Там же

метод initMergeCells()
а в нем
if (!mergeCells)
{
return;
}

???? это что такое ?))
Старый 05.08.2013, 15:39   #2  
VORP is offline
VORP
Участник
Аватар для VORP
 
147 / 95 (4) ++++
Регистрация: 26.05.2006
Тип mergeCells - DocumentFormat.OpenXML.Spreadsheet.MergeCells - это смерженные ячейки шаблона.

if (!mergeCells)
{
return;
}
Означает что если нет в воркшите объединённых ячеек то в аксаптовый мап с этими ячейками вычитывать нечего
За это сообщение автора поблагодарили: Sada (2).
Старый 05.08.2013, 15:56   #3  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Цитата:
Сообщение от VORP Посмотреть сообщение
Тип mergeCells - DocumentFormat.OpenXML.Spreadsheet.MergeCells - это смерженные ячейки шаблона.

if (!mergeCells)
{
return;
}
Означает что если нет в воркшите объединённых ячеек то в аксаптовый мап с этими ячейками вычитывать нечего
Научите объединять ячейки программно

Последний раз редактировалось Sada; 05.08.2013 в 16:03.
Старый 05.08.2013, 16:14   #4  
VORP is offline
VORP
Участник
Аватар для VORP
 
147 / 95 (4) ++++
Регистрация: 26.05.2006
Цитата:
Сообщение от Sada Посмотреть сообщение
Научите объединять ячейки программно
У вас templateMode = true?

Я особо не вижу смысла в объединении ячеек, можно всё это нарисовать в шаблоне - одну объединённую вторую разединенную, и вызывать какую надо в зависимости от ситуации.
Но если очень хочется - надо добавить в DocumentFormat.openXml.Spreadsheet.Worksheet узел MergeCells(строго на нужном месте а то будет ошибка). Для этого можно воспользоваться методами InsertBefore или InsertAfter, для чего можно использовать:
OXML_RU::invokeGeneric(row, 'InsertBefore', cell.GetType(), parameters);
Дело в том что эти функции generic и из аксапты по нормальному не вызываются.
Если mergeCells узел уже есть его добавлять не надо
ну а дальше положить просто данные в аксаптовый мап mergeCellsSet аналогично тому как это делается в initMergeCells. в нем хранятся координаты левого верхнего и правого нижнего углов.
Старый 05.08.2013, 15:48   #5  
VORP is offline
VORP
Участник
Аватар для VORP
 
147 / 95 (4) ++++
Регистрация: 26.05.2006
Касательно колонок - не совсем понял. Именованных колонок или ячеек?
Идея в том что отчёт состоит из секций которые задаются посредством выделения и задания именованных ренжей СТРОКам, например с 1 по 10 шапка отчёта, потом с 11 по 15 шапка страницы, потом 16 строки и так далее.
В рамках каждой секции задаются с помощью именованных диапазонов поля(а не колонки)(ItemName, Amount и так далее). Пример - шаблон ТОРГ-12 который можно выгрузить из ресурса TORG_12.
Когда шаблон открывается(при установленной переменной templateMode = true), из него вычитываются все строки в память, содержимое удаляется. Дальше когда вызывается execute на некую секцию всё содержимое секции скидывается обратно в файл. например Execute("REPORTHEADER") скинет в файл 10 строк(см пример выше).
Ещё раз - ещё десять и так далее.

Последний раз редактировалось VORP; 05.08.2013 в 15:51.
Старый 05.08.2013, 15:51   #6  
VORP is offline
VORP
Участник
Аватар для VORP
 
147 / 95 (4) ++++
Регистрация: 26.05.2006
следовательно чтобы что то выводилось в 11 и 12 колонки надо либо задать полям в этих колонках namedRanges, либо, если шаблон динамический - размножить ячейки в соответствующей строке.
Старый 05.08.2013, 15:56   #7  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Цитата:
Сообщение от VORP Посмотреть сообщение
следовательно чтобы что то выводилось в 11 и 12 колонки надо либо задать полям в этих колонках namedRanges, либо, если шаблон динамический - размножить ячейки в соответствующей строке.
С этим я разобрался, спасибо, решил по своему
Теги
open xml, ax2012

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
ax-erp: Creation and Posting of Purchase order in MS Dynamics AX 2012 Blog bot DAX Blogs 0 06.11.2012 15:11
dynamicsaxtraining: Vendor returns Blog bot DAX Blogs 0 11.10.2012 00:11
ax-erp: Creating SSRS-Reports in Dynamics AX 2012 – What’s no longer possible in AX-reports Blog bot DAX Blogs 0 18.07.2012 12:11
emeadaxsupport: Overview of AX build numbers Blog bot DAX Blogs 3 24.05.2012 19:44
emeadaxsupport: New Content for Microsoft Dynamics AX 2012 : October 2011 Blog bot DAX Blogs 0 27.10.2011 17:11

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

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

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