Текущее время: Вт, июл 22 2025, 00:19

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: i_oi_document_proxy
СообщениеДобавлено: Ср, окт 26 2011, 15:12 
Специалист
Специалист

Зарегистрирован:
Вс, янв 11 2009, 11:05
Сообщения: 152
Пол: Мужской
Господа!
У нас половина народа работает с Office 2003. Половина с 2007.
Проблема появилась у пользователей 2007го.
Есть экселевский шаблон в OAER.
Я его открываю используя класс i_oi_document_proxy.
Чего-то там делаю и вызываю метод
Code:
     CALL METHOD gcl_document->save_as
        EXPORTING file_name = file_path
                  prompt_user = ' '
        IMPORTING
          error            = gcl_error.


Затем не закрывая книгу еще в ней что-то делаю и опять вызываю
Code:
     CALL METHOD gcl_document->save_as
        EXPORTING file_name = file_path
                  prompt_user = ' '
        IMPORTING
          error            = gcl_error.

только указываю другой путь.

И перед сохранением появляется окно типа
"Следующие компоненты невозможно сохранить в книге без поддержки макросов:
-Проект VB
Чтобы сохранить файл со всеми компонентами, нажмите кнопку "Нет", а затем в списке "Тип файла" выберите тип файла с поддержкой макросов.".

Написал в книге макрос который вызываю вместо gcl_document->save_as где указываю тип файла с макросами?
Заработало двойное сохранение в 2007ом, но перестало работать в 2003ем, потому что нет константы для нужного типа файла.

Что-то можно сделать? или придется пользователю в сапе указывать какой у него офис установлен или как-то самому определять и пускать сохранение по двум разным веткам в зависимости от версии?

Та же самая ситуация и в OAER если установлен 2007ой оффис. Не получается сохранить два раза подряд одну и ту же копию в разные файлы нажимая "Сохранить как" в экселевском меню не указывая конкретно тип файла.

В одной программе я сделал так: два раза открываю шаблон и два раза сохраняю. Но тогда два раза вылетает сообщение чтобы разрешить макросы. А я изначально хотел чтобы макросы разрешали только один раз.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: i_oi_document_proxy
СообщениеДобавлено: Ср, окт 26 2011, 16:21 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
to _garycor_, может попробовать узнать версию экселя пользователя через ОЛЕ или в реестр залезть, тут это обсуждалось http://sapboard.ru/forum/viewtopic.php?f=13&t=63674&start=0
Так же еще как вариант, когда создается документ, там можно указать версию экселя, что если всем 2003 ставить?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: i_oi_document_proxy
СообщениеДобавлено: Пн, окт 31 2011, 16:55 
Специалист
Специалист

Зарегистрирован:
Вс, янв 11 2009, 11:05
Сообщения: 152
Пол: Мужской
Ничего умнее не придумал. Сделал подпрограмму в экселе для сохранения в зависимости от версии.

Code:
Public Sub SaveMeAs(path As String)
    Dim path1 As String
    path1 = path
    If Application.Version = "12.0" Then
//это чтобы не ругался эксель при открытии книги типа формат файла не соответствует расширению XLS. в 2007 то XLSM стало
        path1 = path1 & "m"
//52 - типа книга с макросами
        ThisWorkbook.SaveAs Filename:=path1, FileFormat:=52, CreateBackup:=False
    Else
// сохранение для 2003го
        ThisWorkbook.SaveAs Filename:=path1
    End If
End Sub


И вызываю этот макрос из сапа.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: i_oi_document_proxy  Тема решена
СообщениеДобавлено: Ср, ноя 28 2012, 08:57 
Специалист
Специалист

Зарегистрирован:
Вс, янв 11 2009, 11:05
Сообщения: 152
Пол: Мужской
Решил написать сюда же.
В АЛВ есть такая фича как выгрузка в эксель как сводной таблицы.
В программе для этой АЛВ может быть настроено куча форматов. Нужно нажать кнопку и как бы выполнить эту АЛВшную фичу для каждого формата с выгрузкой в одну книгу на отдельные листы и сохранением в файл.
Сделал выгрузку по АЛВшной аналогии через i_oi_document_proxy.
1) формирую данные.
2) зачитываю форматы.
3) открываю книгу через i_oi_document_proxy
4) выбрасываю данные на первый лист
5) формирую листы со сводными таблицами
Дальше опять уперся в сохранение.
У пользователей есть 2003 и 2007 оффисы. Соотвественно чтобы работало у всех нужно сохранять в 2003ем.
Вопрос. Как сохранить из 2007го в формате 2003го?
у i_oi_document_proxy в методе SAVE_AS ничего такого не передается.
Может при вызове get_document_proxy нужно какой-то хитрый document_type подать?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: i_oi_document_proxy
СообщениеДобавлено: Ср, ноя 28 2012, 10:48 
Специалист
Специалист

Зарегистрирован:
Вс, янв 11 2009, 11:05
Сообщения: 152
Пол: Мужской
Сделал опять через макрос.
На лету вставляю в книгу макрос
Code:
  s = 'Public Sub SaveMe'. append s to CODE.
  s = 'If Application.Version = "12.0" Then'. append s to code.
  concatenate 'ThisWorkbook.SaveAs Filename:="'
                file
              '", FileFormat:=56, CreateBackup:=False'
    into s.
  append s to code.
  s = 'Else'. append s to code.
  concatenate 'ThisWorkbook.SaveAs Filename:="' file '"' into s.
  append s to code.
  s = 'End If'. append s to code.
*  s = 'ThisWorkbook.VBProject.VBComponents.Remove _'.
*  append s to code.
*  s = 'ThisWorkbook.VBProject.VBComponents("Module_Save")'.
*  append s to code.
  s = 'End Sub'. append s to code.

и потом его вызываю.

Не нравится, но ничего другого не придумывается.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB