SAP R/3 форум ABAP консультантов
Russian ABAP Developer's Club

Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check your private messages - Register - Log in - English
Blogs - Weblogs News

Вызов метода Excel SaveAs без вопроса на перезапись файла



 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP
View previous topic :: View next topic  
Author Message
Рустам
Специалист
Специалист



Joined: 26 Dec 2007
Posts: 73

PostPosted: Fri Nov 07, 2008 12:30 pm    Post subject: Вызов метода Excel SaveAs без вопроса на перезапись файла Reply with quote

Привет, сохраняю Excel файл. Усли файл существует, появляется вопрос: "Перезаписать файл Да/Нет"?
Как сделать, чтобы перезаписывал без вопросов?

Code:
      CALL METHOD OF h_workbook 'SaveAs'
        EXPORTING
          #1 = i_file
          #2 = 1.
Back to top
View user's profile Send private message
John Doe
Модератор
Модератор


Age: 46
Joined: 05 Nov 2007
Posts: 725
Location: КраснАдар

PostPosted: Fri Nov 07, 2008 12:42 pm    Post subject: Reply with quote

Может принудительно удалить файл с таким именем перед выполнением этого метода?
Для этого последовательный запуск двух методов класса CL_GUI_FRONTEND_SERVICES:
1. FILE_EXIST. Если результат положителен - переходим ко второму пункту.
2. FILE_DELETE
Back to top
View user's profile Send private message Blog
Рустам
Специалист
Специалист



Joined: 26 Dec 2007
Posts: 73

PostPosted: Fri Nov 07, 2008 12:44 pm    Post subject: Reply with quote

Как хороший вариант, спасибо. Еще подождем...
Back to top
View user's profile Send private message
Armann
Модератор
Модератор



Joined: 01 Jan 2008
Posts: 422
Location: Moscow

PostPosted: Fri Nov 07, 2008 12:55 pm    Post subject: Reply with quote

если этот файл вы открыли на редактирование, а потом его же хотите сохранить - то вместо 'SaveAs' можно использовать метод 'Save' - сохраняет туда же и без вопросов
Back to top
View user's profile Send private message Blog
vga
Мастер
Мастер


Age: 170
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Fri Nov 07, 2008 2:11 pm    Post subject: Reply with quote

Если хотите узнать какие параметры есть у метода SaveAs,

идете на msdn.microsoft.com и ищите описание этого метода, например в строке поиска набираете Excel SaveAs

получаем все параметры метода:

Quote:
public virtual void SaveAs (
[OptionalAttribute] Object Filename,
[OptionalAttribute] Object FileFormat,
[OptionalAttribute] Object Password,
[OptionalAttribute] Object WriteResPassword,
[OptionalAttribute] Object ReadOnlyRecommended,
[OptionalAttribute] Object CreateBackup,
[OptionalAttribute] XlSaveAsAccessMode AccessMode,
[OptionalAttribute] Object ConflictResolution,
[OptionalAttribute] Object AddToMru,
[OptionalAttribute] Object TextCodepage,
[OptionalAttribute] Object TextVisualLayout,
[OptionalAttribute] Object Local


Из подходящего исследуем параметр #8
ConflictResolution

тыркаем мышкой на слове XlSaveConflictResolution
Quote:
ConflictResolution
One of the XlSaveConflictResolution values.


видим, что это перечисление, имеющее 3 возможных значений

Quote:

xlLocalSessionChanges The local user's changes are always accepted.
xlOtherSessionChanges The local user's changes are always rejected.
xlUserResolution A dialog box asks the user to resolve the conflict.


Чтобы найти значения этих констант, идем в Help по Excel, ищем фразу
'Microsoft Excel Constants', и в полученном списке ищем пункт XlSaveConflictResolution, раскрываем и получаем значения:
xlLocalSessionChanges = 2
xlOtherSessionChanges = 3
xlUserResolution = 1

Видимо нам подходит xlLocalSessionChanges = 2

Поэтому попробуйте так
Code:
      CALL METHOD OF m_ole2sheet 'SaveAs'
        EXPORTING
          #1 = i_file         "Filename
          #2 = 1              "FileFormat
          #3 = SPACE          "Password
          #4 = SPACE          "WriteResPassword
          #5 = 'false'        "ReadOnlyRecommended
          #6 = 'false'        "CreateBackup
          #7 = 3              "AccessMode = xlExclusive
          #8 = 2              "ConflictResolution
          .
Back to top
View user's profile Send private message Blog Visit poster's website
Рустам
Специалист
Специалист



Joined: 26 Dec 2007
Posts: 73

PostPosted: Fri Nov 07, 2008 2:31 pm    Post subject: Reply with quote

vga, все равно запрос выдает Sad

Файл нужно сохранить под новым именем в другой папке. Поэтому сделал через удаление.
Спасибо за ответы.
Back to top
View user's profile Send private message
#13
Участник
Участник



Joined: 17 Oct 2008
Posts: 1

PostPosted: Mon Nov 24, 2008 6:52 pm    Post subject: Reply with quote

достаточно добавить строчку:
SET PROPERTY OF EXCEL 'DisplayAlerts' = 0.

или более подробно:
SET PROPERTY OF EXCEL 'DisplayAlerts' = 0.
GET PROPERTY OF EXCEL 'ActiveWorkbook' = WORKBOOK.
CALL METHOD OF WORKBOOK 'Saveas' EXPORTING #1 = xls_file #2 = 1.
CALL METHOD OF WORKBOOK 'Close'.
CALL METHOD OF EXCEL 'Quit'.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG.
SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG.
Every effort is made to ensure content integrity. Use information on this site at your own risk.