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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.06.2006, 16:34   #1  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от AndyD
Продолжим
Выгрузка в текстовый файл с последующей загрузкой в Excel...
Супер. Высший пилотаж. У меня на всё той же "эталонной" машине (AMD,2.5,4) трижды подряд получилось "время полета" = 14 сек для "эталонных" 50 тыс. записей, т.е. при "if (cnt > 50000) break". Типы полей - всё как надо. Полный зачОт!

P.S. Спасибо! Дал именно "троечку" - не "раскрутки маховика инфляции репутации ради", а "своей симпатии к круглым числам из-за". Поздравляю с достижением 150! (честно говоря, думал, появится еще один зеленый "кирпичик"...)

P.P.S. AndyD, ну и надо наконец закомментарить или удалить строку " && ledgerTrans.TransDate >= str2date('dd.mm.yy',123) && ledgerTrans.TransDate <= str2date('DD.MM.YY',123)", а то чел, не вдающийся в подробности всей ветки, запустит джоб и обнаружит пустой набор, а ошибку компиляции эта строка не дает.

Последний раз редактировалось Gustav; 20.06.2006 в 16:58.
Старый 21.06.2006, 13:29   #2  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от AndyD
Почему такой путь - для передачи типов данных в столбцах функция требует передачи в кач-ве одного из параметров массива массивов.
К сожалению, не знаю как это организовать в Axapta без привлечения сторонних средств
AndyD, есть мысль - использовать формулу массива, во всяком случае в Excel у меня получилось...

Итак, как я понимаю, проблема заключается в том, что в операторе VBA вида
PHP код:
...
Workbooks.OpenText Filename:="C:\demo.txt"Origin:=1251StartRow:=1_
DataType
:=xlDelimitedTextQualifier:=xlDoubleQuoteConsecutiveDelimiter _
:=FalseTab:=TrueSemicolon:=FalseComma:=FalseSpace:=False_
Other
:=FalseFieldInfo:=Array(Array(11), Array(22), Array(32), Array(42), _
Array(51), Array(61), Array(71), Array(81), Array(91), Array(101)), _
TrailingMinusNumbers
:=True
... 
присутствует неудобный для нас фрагмент:
PHP код:
...
FieldInfo:=Array(Array(11), Array(22), Array(32), Array(42), _
Array(51), Array(61), Array(71), Array(81), Array(91), Array(101)),
... 
По жизни это не что иное, как двумерный массив "Номер поля - Тип поля" (в данном контексте задачи):
Код:
Номер Тип
---------
    1   1
    2   2
    3   2
    4   2
    5   1
    6   1
    7   1
    8   1
    9   1
   10   1
Так вот, если перед вызовом Workbooks.OpenText... выполнить оператор VBA:
PHP код:
...
Worksheets("Sheet1").Range("A1:B10").FormulaArray "={1,1;2,2;3,2;4,2;5,1;6,1;7,1;8,1;9,1;10,1}"
... 
(запятые разделяют элементы в строке, точка с запятой - строки),
то потом можно заменить FieldInfo:=Array... на FieldInfo:=Worksheets("Sheet1").Range("A1:B10") и получится:
PHP код:
...
Workbooks.OpenText Filename:="C:\demo.txt"Origin:=1251StartRow:=1_
DataType
:=xlDelimitedTextQualifier:=xlDoubleQuoteConsecutiveDelimiter _
:=FalseTab:=TrueSemicolon:=FalseComma:=FalseSpace:=False_
Other
:=FalseFieldInfo:=Worksheets("Sheet1").Range("A1:B10"), _
TrailingMinusNumbers
:=True
... 
Соответственно, от функции VBA.Array избавляемся и получается, что всё можно сделать из Аксы, не вызывая код VBA.

Попробуете? Только прошу, ни в коем случае не убирайте предыдущую версию. Пусть она останется в ветке. А новую можно назвать типа "ExportExcelTXT_2"
За это сообщение автора поблагодарили: AndyD (4).
Теги
benchmark, download, excel, faq, xml, законченный пример, производительность, экспорт/импорт

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Axapta программирует Excel на VBA Gustav DAX: База знаний и проекты 10 13.03.2006 11:42
Использование OWC.Spreadsheet для ускорения экспорта/импорта в/из Excel. storer DAX: Программирование 24 28.03.2005 19:10
Передача данных из 1С в Axapta 3.0 через COM Connector isbist DAX: Программирование 10 03.12.2004 10:58
Особенности экспорта данных в Excel Roman-sp DAX: Функционал 18 01.03.2004 12:07
Введение в Аксапту Роман Кошелев DAX: Прочие вопросы 0 18.12.2001 14:00

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 14:48.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.