|
![]() |
#1 |
Участник
|
Цитата:
Изначально опубликовано Владимир Максимов
Альтернатива - это обычное открытие текстового файла (Файл - Открыть). Это метод Workbooks.OpenText() или Workbooks.Open() О каких двумерных массивах может идти речь? (к слову, можно сформировать массив любой мерности из одномерного, просто указав смещение) Цитата:
Изначально опубликовано Владимир Максимов
Т.е. пользователь вынужден вручную осуществлять открытие или импорт внешнего текстового файла. Нет возможности автоматизировать этот процесс. Пользователь имеет в своем распоряжении три кнопки: 1) В аксапте - кнопка "Выгрузить в Excel". По ее нажатию запускается следующий код : Данный код запускает Excel, и при открытии книги, связанные ячейки автоматически обновляются данными из CSV. PHP код:
2) В Excel - кнопка "Импорт Из Аксапты". Данная кнопка через COM инициирует экспорт данных Аксаптой в текстовый файл. И обновляет связи. На кнопке макрос: Код: Sub ImportFromAxapta() 'Вызов аксаптовского Joba который производит экспорт Dim Axapta As Object Dim Args As Object Set Axapta = CreateObject("AxaptaCOMConnector.Axapta") Axapta.Logon "COM+", "", "", "" Set Args = Axapta.CreateObject("args") Args.Call "parm", "PrLst" Axapta.CallJob "COMExport", Args Axapta.Logoff Set Axapta = Nothing 'Обновление данных для связанных ячеек ActiveWorkbook.RefreshAll End Sub PHP код:
На кнопке макрос: Код: Sub ExportToAxapta() 'Предварительно удаляем CSV хранилище Dim fs Set fs = CreateObject("Scripting.FileSystemObject") fs.DeleteFile "C:\PriceList.dat" 'Сохраняем книгу и удаляем заголовки столбцов ActiveWorkbook.Save Rows("1:1").Select Range("F1").Activate Selection.Delete Shift:=xlUp 'Формируем CSV файл ActiveWorkbook.SaveAs Filename:= _ "C:\PriceList.dat", _ FileFormat:=xlCSV, CreateBackup:=False 'Возвращаемся к главному документу ActiveWorkbook.Close SaveChanges:=True Workbooks.Open Filename:= _ "C:\\PriceList.xls" 'Вызов аксаптовского Joba который производит импорт Dim Axapta As Object Dim Args As Object Set Axapta = CreateObject("AxaptaCOMConnector.Axapta") Axapta.Logon "COM+", "", "", "" Set Args = Axapta.CreateObject("args") Args.Call "parm", "PrLst" Axapta.CallJob "COMImport", Args Axapta.Logoff Set Axapta = Nothing End Sub PHP код:
Итого: корректный, прозрачный двусторонний обмен Axapta-Excel с минимальными задержками для практически любых шаблонов. |
|
|
![]() |
||||
Тема | Ответов | |||
Экспорт/импорт платежных поручений | 96 | |||
Стандартный импорт данных. Обновление | 0 | |||
Программный импорт xpo | 13 | |||
Импорт данных 3.0 SP4. Аксапта валится | 1 | |||
Экспорт/импорт таблиц | 15 |
|