29.06.2017, 14:22 | #1 |
Участник
|
Передача большой таблицы в excel
Нужно передать большую таблицу из NAV2015 в excel. Стандартные средства не подойдут т.к. очень долго будет отрабатывать. Поэтому написал следующий код:
Добавил новую функцию в CU 12416 Excel Management CopyFromRecordset(CellName : Text;ADORecordSet : DotNet "ADODB.RecordsetClass") XlRange := XlWrkSht.Range(CellName); XlRange.CopyFromRecordset(ADORecordSet,100,100); определил локальные переменные: ADORecordSet DotNet ADODB.RecordsetClass.'ADODB, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' Создал новый отчет или кодеюнит, определил в нем глобальные переменные: ExcelManagement Codeunit Excel Management SQLText Text var_ra Variant ADOConnectionClass DotNet ADODB.ConnectionClass.'ADODB, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' ADORecordSetClass DotNet ADODB.RecordsetClass.'ADODB, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' написал код: ExcelManagement.OpenBook('C:\TEMP\book1.xlsx'); ExcelManagement.OpenSheet('Sheet1'); SQLText := 'SELECT [G_L Account No_],[Amount] FROM [dbo].[MY COMPANY$G_L Entry]'; ADOConnectionClass := ADOConnectionClass.ConnectionClass(); ADOConnectionClass.Open('Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=MY_DB;Data Source=MY_SERVER', '', '', -1); ADORecordSetClass := ADORecordSetClass.RecordsetClass(); ADORecordSetClass := ADOConnectionClass.Execute(SQLText, var_ra, -1); ExcelManagement.CopyFromRecordset('A1',ADORecordSetClass); ExcelManagement.GiveUserControl(); ExcelManagement.CloseBook(); Возникает ошибка на команде XlRange.CopyFromRecordset(ADORecordSet,100,100): Cannot serialize an instance of the following .NET Framework object: assembly ADODB, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, type ADODB.RecordsetClass. Заранее спасибо за помощь. |
|
|
Похожие темы | ||||
Тема | Ответов | |||
german_nav_developer: Export nach Excel : Spalte(n) vermisst? | 0 | |||
Сводные таблицы в Excel | 6 |
|