|
|
|
|
#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 SubPHP код:
На кнопке макрос: Код: 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 SubPHP код:
Итого: корректный, прозрачный двусторонний обмен Axapta-Excel с минимальными задержками для практически любых шаблонов. |
|
|
|
|
Похожие темы
|
||||
| Тема | Ответов | |||
| Экспорт/импорт платежных поручений | 96 | |||
| Стандартный импорт данных. Обновление | 0 | |||
| Программный импорт xpo | 13 | |||
| Импорт данных 3.0 SP4. Аксапта валится | 1 | |||
| Экспорт/импорт таблиц | 15 | |||
|