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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.11.2023, 21:09   #1  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1630 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Создание отчета на XMLExcelReport_RU с страницами и лого
А использовал ли кто-нибудь отчет на основании XMLExcelReport_RU где есть лого в шаблоне и разрывы страниц?
Столкнулся с таким непонятным багом, что если есть лого и добавляется разрыв страницы в сформированном XML файле(который можно получить открыв xlsx в архиве) в конце хмл с листом генерятся вот такие строки
X++:
    <x:drawing r:id="rId2" />
    <x:rowBreaks count="1" manualBreakCount="1">
        <x:brk id="19"
               man="1"
               max="16383" />
    </x:rowBreaks>
Excel такой файл не понимает, при открытии говорит что он поврежден.
Если эти теги(x:drawing и x:rowBreaks) поменять вручную местами, то все работает.
Но непонятно как это пофиксить из кода. Все стандартные отчеты идут без логотипов


Версия D365FO(если это важно), но я думаю в АХ2012 такая же проблема
Старый 26.11.2023, 14:40   #2  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,941 / 3229 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Не сталкивался.

Может быть задействовать уже готовый шаблон в которым эти свойства выставлены как надо ?
Старый 26.11.2023, 15:04   #3  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1293 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Сообщение от Logger Посмотреть сообщение
Не сталкивался.

Может быть задействовать уже готовый шаблон в которым эти свойства выставлены как надо ?
Вряд ли поможет. Тем более автор указал, что использует шаблон.

Аксапта пересоздает данные шаблона копированием и далеко не всегда корректно это делает.

я, в свое время, так и не поборол (там другое, но проблема из-за того же подхода) Специальные именованные диапазоны Excel и работа с ними в DAX2012 при помощи OXML
Старый 27.11.2023, 15:47   #4  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1630 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
В общем получилось решить меняя местами эти теги при сохранении. Код для этого ниже

X++:
using DocumentFormat.OpenXml;

[ExtensionOf(classstr(OxmlWorksheet_RU))]
final class OxmlWorksheet_RUDEV_Extension
{
    private OpenXmlElement DEVsavedLastDrawingElement;

    public void save()
    {
        if (this.rowBreaks().elements())
        {
            this.DEVremoveDrawing(worksheet);
        }

        next save();
        
        if (DEVsavedLastDrawingElement != null)
        {
            OXML_RU::appendChild(worksheet, DEVsavedLastDrawingElement);
        }

    }

    //fixing the bug where page break element should be before the drawing
    public void DEVremoveDrawing(DocumentFormat.OpenXml.OpenXmlElement _parent)
    {

        OpenXmlElement lastDrawingElement;

        int i;
        i = worksheet.ChildElements.get_Count();

        lastDrawingElement = _parent.get_LastChild();

        str name = lastDrawingElement.get_LocalName();
        if (name == "drawing")
        {
            DEVsavedLastDrawingElement = lastDrawingElement.CloneNode(true);
            lastDrawingElement.Remove();
        }
    }

}
За это сообщение автора поблагодарили: SRF (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
XMLExcelReport_RU Ошибка при формировании excel отчета в пакете DaniilT DAX: Программирование 2 04.08.2022 16:18
Теория: Создание отчета в виде Запроса Arahnid DAX: Программирование 3 20.12.2007 15:24
Создание формы перед генерацией отчета madproger DAX: Программирование 19 12.10.2006 13:19
Создание дизайна отчета Alenka DAX: Программирование 3 19.04.2006 14:24
Создание отчета Ruff DAX: Функционал 4 23.12.2003 10:12

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

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

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