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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.07.2011, 09:58   #1  
GBH is offline
GBH
MCITP
Аватар для GBH
MCP
MCBMSS
Ex AND Project
 
140 / 28 (1) +++
Регистрация: 28.06.2007
Да, это всё сработает отлично. Т.е. открыть файл, пересохранить его в нормальном формате Excel.
Но задача состоит в том, чтобы не производить данных манипуляций, а обработать файл таким какой он есть. Т.е. файл будет приходить постоянно, а формат его никто менять не будет.
Грубо говоря, необходимо следущее - обработать файл таким какой он есть непосредственно средствами аксапты, чтобы пользователь нажал кнопку, например, "Импорт" и всё.
Возможно, я использую не те инструменты для данной обработки. Поэтому жду советов как это сделать правильнее.
Старый 27.07.2011, 10:31   #2  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от GBH Посмотреть сообщение
Т.е. файл будет приходить постоянно, а формат его никто менять не будет.
Ну, ёлка-палка... Дык, его формат менять не надо. Откройте в Excel, "сохраните как" в Excel, прочитайте новый файл классом gl00mie и удалите новый файл. Всё - конечно, программно, не вручную. И всё незаметно для пользователя.
Старый 27.07.2011, 11:26   #3  
GBH is offline
GBH
MCITP
Аватар для GBH
MCP
MCBMSS
Ex AND Project
 
140 / 28 (1) +++
Регистрация: 28.06.2007
Цитата:
Откройте в Excel, "сохраните как" в Excel....Всё - конечно, программно, не вручную
Нельзя ли пример кода.

Также не понятно одно - если мы откроем его для сохранения, то зачем нам его сохранять. Лучше взять и обработать.
Только не понятно как.
Старый 27.07.2011, 12:42   #4  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от GBH Посмотреть сообщение
Нельзя ли пример кода.
Запишите макрос в Excel, т.е. в пустом Экселе включите запись макро, далее откройте свой файл, сохраните его как xls, закройте файл, выключите запись макро. Получившийся код VBA несите сюда - я помогу его оформить на X++.

Цитата:
Сообщение от GBH Посмотреть сообщение
Также не понятно одно - если мы откроем его для сохранения, то зачем нам его сохранять. Лучше взять и обработать.
Импорт при помощи ADO работает с СОХРАНЕННЫМ файлом на диске! (этот файл как бы БД для него). К тому же, для несохраненного файла вы не сможете указать параметры строки подключения. Поэтому сохранение обязательно при использовании класса gl00mie.
Старый 27.07.2011, 12:53   #5  
GBH is offline
GBH
MCITP
Аватар для GBH
MCP
MCBMSS
Ex AND Project
 
140 / 28 (1) +++
Регистрация: 28.06.2007
Цитата:
Сообщение от Gustav Посмотреть сообщение
Запишите макрос в Excel, т.е. в пустом Экселе включите запись макро, далее откройте свой файл, сохраните его как xls, закройте файл, выключите запись макро. Получившийся код VBA несите сюда - я помогу его оформить на X++.

Импорт при помощи ADO работает с СОХРАНЕННЫМ файлом на диске! (этот файл как бы БД для него). К тому же, для несохраненного файла вы не сможете указать параметры строки подключения. Поэтому сохранение обязательно при использовании класса gl00mie.
Спасибо за совет. Сейчас попробую.
Но сомневаюсь, что макрос должен показать как он преобразует файл в удобочитаемый вид для Excel.

Собственно вот и макрос.
Просто открытие:
Sub Test()
'
' Test Макрос
'

'
ChDir "C:\"
Workbooks.Open Filename:="C:\reportSmall.xls"
End Sub

Открытие с сохранением:
Sub TestFull()
'
' TestFull Ìàêðîñ
'

'
ChDir "C:\"
Workbooks.Open Filename:="C:\reportSmall.xls"
ActiveWorkbook.SaveAs Filename:="C:\reportSmall.xlsx", FileFormat:= _
xlOpenXMLWorkbook, CreateBackup:=False
End Sub

Последний раз редактировалось GBH; 27.07.2011 в 12:58.
Старый 27.07.2011, 13:53   #6  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Как-то так. Предполагается, что в Excel 2007+ мы сохраняем файл в формате Excel 2003. Открывать дальше Jet'ом 4 (не ACE).
X++:
{
    COM xlApplication;
    COM xlWorkbooks, xlWorkbook;
    ;
    xlApplication = new COM('Excel.Application');
    xlWorkbooks = xlApplication.Workbooks();

    xlWorkbook = xlWorkbooks.Open(@'C:\reportSmall.xls');
    xlWorkbook.SaveAs(@'C:\reportSmall_TEMP.xls', 56);  // 56 = xlExcel8
    xlWorkbook.Close(false);
}
За это сообщение автора поблагодарили: GBH (1).
Старый 27.07.2011, 14:01   #7  
GBH is offline
GBH
MCITP
Аватар для GBH
MCP
MCBMSS
Ex AND Project
 
140 / 28 (1) +++
Регистрация: 28.06.2007
Цитата:
Сообщение от Gustav Посмотреть сообщение
Как-то так. Предполагается, что в Excel 2007+ мы сохраняем файл в формате Excel 2003. Открывать дальше Jet'ом 4 (не ACE).
X++:
{
    COM xlApplication;
    COM xlWorkbooks, xlWorkbook;
    ;
    xlApplication = new COM('Excel.Application');
    xlWorkbooks = xlApplication.Workbooks();

    xlWorkbook = xlWorkbooks.Open(@'C:\reportSmall.xls');
    xlWorkbook.SaveAs(@'C:\reportSmall_TEMP.xls', 56);  // 56 = xlExcel8
    xlWorkbook.Close(false);
}
Спасибо большое за пример!
Насчёт Jet не опечатка?
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
документооборот и доступ к файлам ivas DAX: Программирование 34 18.05.2012 11:00
SysMailer, отправка PDF, приходит пустой файл ena_ax DAX: Программирование 12 19.11.2010 10:56
Gustav: Unsorted, или Записки DAX-дилетанта - II Gustav DAX Blogs 39 20.05.2009 15:34
Периодически пропадает доступ к Системе у удаленных пользователей andy_555 DAX: Администрирование 4 04.03.2009 15:02
Разрешение на доступ к базе данных nicko DAX: Администрирование 3 18.05.2004 18:49

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 09:42.