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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.10.2021, 08:15   #1  
oleggy is offline
oleggy
Участник
 
270 / 36 (2) +++
Регистрация: 03.12.2019
Адрес: Россия
как обойти ограничение в Com Excel при вставке строк свыше 65K
Всем привет.
Среда DAX2009.
При экспорте данных из формы в Com Excel генерируется ошибка:
Цитата:
\Classes\ComExcelDocument_RU\insertRows
Глянул, в методе идет вызов:
Цитата:
\Classes\ComExcelDocument_RU\findRange
X++:
public COM findRange(MSOfficeBookMark_RU bookMark, anytype  _workSheet = 1)
в котором bookMark = 9:81432.
Если отчет генерирует меньше 65K строк, все в порядке.
Погуглил, да есть такое ограничение.
Подскажите как можно в ComExcelDocument_RU убрать это ограничение?
Т.е. создать документ где это ограничение снято? Что то модифицировать/дописать?

Вариант перевести отчет на Net пока не рассматриваю.
Я так понял сам по себе класс ComExcelDocument_RU очень архаичен и открывает документы Excel в очень старом режиме.

Т.к. если отчет формируется успешно (когда в отчете меньше 65K строк), то в открывшемся Excel документе (если прокурутить документ до самого конца) видно что строки заканчиваются на числе 65556 (хотя на терминале Excel 2013).
Если же просто вручную создать в Excel 2013 документ, видно что в нем последняя строка 1M.

Последний раз редактировалось oleggy; 08.10.2021 в 08:17.
Старый 08.10.2021, 08:40   #2  
Pandasama is offline
Pandasama
Участник
 
457 / 134 (5) +++++
Регистрация: 11.08.2014
Адрес: Барнаул
А что конкретно происходит?
ошибка при создании новой строки?
или при попытке получить range на строку с номером больше 65к - возвращается всегда одна эта последняя строка с номером 65к?
А если в пустой документ вставить данные в ячейку на строке 90000 - что будет?
Старый 08.10.2021, 08:41   #3  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,437 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
А как вы программно файл создаёте? На основании шаблона?
Такое ощущение что у вас создаётся файл старого формата (не *.xlsx, а *.xls)
За это сообщение автора поблагодарили: Pandasama (2), oleggy (1).
Старый 08.10.2021, 09:03   #4  
vmoskalenko is offline
vmoskalenko
Участник
Аватар для vmoskalenko
 
145 / 334 (12) ++++++
Регистрация: 25.01.2007
Адрес: Toronto
Цитата:
Сообщение от oleggy Посмотреть сообщение
как обойти ограничение в Com Excel при вставке строк свыше 65K.
Если хочется всё переписать, то я делал вот так
  1. Эксель, в котором есть одна или несколько Сводных таблиц с единственным источником данных.
  2. Источник данных - это SQL запрос в БД. Прямой.И большой.
  3. Пользователи не имеют доступа к SQL. Но такой доступ имеет скрипт.
  4. Скрипт каждую ночь запускается и обновляет все сводные таблицы / источники данных во всех Экселях в папке. Потом сохраняет этот Эксель файл.
  5. Пользователям расшарена эта папка с правами Read Only.
  6. Пользователи открывают Эксель с готовыми отчётами. В разных Листах экселя находятся разные представления одного и того же источника данных.

Ограничение в количестве строк - более миллиона точно умеет. Я строил на базе InventTrans. И еще Эксель хранит/кеширует данные для сводных таблиц в достаточно хорошем формате, в итоге Эксель конечно не маленький но и не монстрообразный.

P.S. Не все отчёты стоит делать в сводной таблице.
За это сообщение автора поблагодарили: S.Kuskov (2).
Старый 08.10.2021, 12:39   #5  
oleggy is offline
oleggy
Участник
 
270 / 36 (2) +++
Регистрация: 03.12.2019
Адрес: Россия
Да, помогло. Файл шаблона пересохранил из *.xlt в *.xltx.

Последний раз редактировалось oleggy; 08.10.2021 в 12:50.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
DynamicsAxSCM: Change license plate, split quantity, skip and override location during inbound put away Blog bot DAX Blogs 0 27.11.2015 16:11
Rahul Sharma: Dynamics AX 2012 R3 Mobile Apps Configuration Using Self-Signed Certificate Blog bot DAX Blogs 0 05.05.2015 08:14
atinkerersnotebook: Using PowerPivot to Analyze Dynamics AX Data Blog bot DAX Blogs 1 05.10.2013 07:23
dynamicsaxtraining: Vendor returns Blog bot DAX Blogs 0 11.10.2012 00:11
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, время: 02:46.