Текущее время: Пн, июл 21 2025, 23:49

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Yandex [Bot]


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

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