Текущее время: Пн, авг 04 2025, 07:58

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: call method h_excel 'Save'.
СообщениеДобавлено: Пн, авг 03 2009, 15:48 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 03 2009, 15:37
Сообщения: 292
Откуда: Алматы
Пол: Мужской
Всем привет.
У меня такой вопрос: После вызова call method h_excel 'Save', нужно чтобы в адресную строку, а также в название файла передавались значение объявленные ранее (с переменных, параметров). И чтобы это выполнялось без участия конечного пользователя. Т.е. пользователь должен выбрать на селек. экране адрес выгрузки, а остальное сделает программа.
Заранее благодарен.

_________________
Все в этом мире стоит под сомнением, над сомнением – только google...


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: call method h_excel 'Save'.
СообщениеДобавлено: Пн, авг 03 2009, 16:01 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
FeBO-Sh написал:
У меня такой вопрос: После вызова call method h_excel 'Save', нужно чтобы в адресную строку, а также в название файла передавались значение объявленные ранее (с переменных, параметров). И чтобы это выполнялось без участия конечного пользователя. Т.е. пользователь должен выбрать на селек. экране адрес выгрузки, а остальное сделает программа.
А где и в чём вопрос?

_________________
"После" - не значит "вследствие"


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: call method h_excel 'Save'.
СообщениеДобавлено: Пн, авг 03 2009, 16:30 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 03 2009, 15:37
Сообщения: 292
Откуда: Алматы
Пол: Мужской
)) А вопрос такой: как это можно реализовать?

_________________
Все в этом мире стоит под сомнением, над сомнением – только google...


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: call method h_excel 'Save'.
СообщениеДобавлено: Пн, авг 03 2009, 16:39 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
FeBO-Sh написал:
)) А вопрос такой: как это можно реализовать?

Можно написать самому, а можно пригласить знающих людей за деньги.
Вы задайте более конкретный, более детальный, более частный вопрос, с большими техническими подробностями - тогда ещё что то может и можно будет подсказать, посоветовать. А так Ваш "вопрос" выглядит как "напишите за меня программу. ТЗ см. выше". Т.к. кроме того, то у Вас используется конструкция "call method h_excel 'Save'" больше ничего не понятно.

_________________
"После" - не значит "вследствие"


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: call method h_excel 'Save'.
СообщениеДобавлено: Вт, авг 04 2009, 07:44 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 03 2009, 15:37
Сообщения: 292
Откуда: Алматы
Пол: Мужской
Сорри за неграмотность, я пока что не до конца научился грамотно формулировать вопрос с технической точки зрения, поскольку
являюсь новичком в АБАП-е.
По ТЗ мне нужно выгружать не только табличную часть, но и итоговые данные, и т.п., т.е. шаблон сложный. И этот способ я
посчитал более оптимальным. Вот часть кода:

Code:
  CREATE OBJECT h_excel 'EXCEL.APPLICATION'.
  PERFORM sy_subrc.
  SET PROPERTY OF h_excel  'Visible' = 0.
  PERFORM sy_subrc.
  CALL METHOD OF h_excel 'Workbooks' = h_mapl.
  PERFORM sy_subrc.
  CALL METHOD OF h_mapl 'Add' = h_map.
  PERFORM sy_subrc.

  <тут указываю в какие ячейки выгружать разные переменные >

  CALL METHOD OF h_excel 'Save'.
  PERFORM sy_subrc.

  ???

  CALL METHOD OF h_excel 'Quit'.
  PERFORM sy_subrc. 


После CALL METHOD OF h_excel 'Save' мне нужно указать адрес и название ф. с селективного.
Может кто поможет добить код или подскажет в какую сторону копать... А-то я втупике

Пономарев Артем: пользуйтесь тэгами для оформления кода, пожалуйста.

_________________
Все в этом мире стоит под сомнением, над сомнением – только google...


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: call method h_excel 'Save'.
СообщениеДобавлено: Вт, авг 04 2009, 09:38 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
FeBO-Sh написал:
Может кто поможет добить код или подскажет в какую сторону копать...

Копать в сторону SaveAs...

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: call method h_excel 'Save'.
СообщениеДобавлено: Ср, авг 05 2009, 07:15 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 03 2009, 15:37
Сообщения: 292
Откуда: Алматы
Пол: Мужской
Копал, но это не решает проблемы, я упираюсь в ту же проблему. Нашел примерчик на подобие того, что мне нужно, только он открывает файлик (p_adr место файлика):
Code:
   
    EXPORTING
*           PERCENTAGE = 0
           text       = text-001
       EXCEPTIONS
            OTHERS     = 1.   
    CREATE OBJECT   h_excel 'Excel.Application'.
    PERFORM sy_subrc.
    SET PROPERTY OF h_excel 'Visible' = 1.
    PERFORM sy_subrc.
  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
     EXPORTING
*           PERCENTAGE = 0
           text       = text-002
       EXCEPTIONS
            OTHERS     = 1.
    GET PROPERTY OF h_excel 'Workbooks' = h_mapl.
    CALL METHOD  OF h_mapl  'Open' = adr
      EXPORTING #1 = p_adr.

Жду вариантов...

_________________
Все в этом мире стоит под сомнением, над сомнением – только google...


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: call method h_excel 'Save'.
СообщениеДобавлено: Ср, авг 05 2009, 07:34 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, фев 17 2006, 07:38
Сообщения: 99
Если я вас правильно понял:
Code:
    DATA:
      filename TYPE c LENGTH 255.

      CALL METHOD OF h_map 'SaveAs'
        EXPORTING
        #1 = filename.

В таких случаях советую записывать в Excel макрос из необходимых вам действий - меню "Сервис\Макрос\Начать запись", после чего переносить полученное в свою программу на ABAP. Ну и RTFM ;)


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: call method h_excel 'Save'.
СообщениеДобавлено: Ср, авг 05 2009, 10:26 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 03 2009, 15:37
Сообщения: 292
Откуда: Алматы
Пол: Мужской
Спасибо большущее, помогло. И наверно последний вопрос, как сделать подтверждение замены (если файл с таким именем существует) ?
Постарался поймать его в VBA в Excel-е, в редакторе ничего не показывает...

_________________
Все в этом мире стоит под сомнением, над сомнением – только google...


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: call method h_excel 'Save'.
СообщениеДобавлено: Пт, авг 07 2009, 14:58 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, июн 02 2009, 22:28
Сообщения: 228
Откуда: MOW
Пол: Мужской
Можно сделать такую проверку на ABAP, а затем спросить о замене с помощью например ФМ POPUP_TO_CONFIRM

Пример такой проверки:

Code:
  lh_file_exists = cl_gui_frontend_services=>file_exist( file = 'C:\_toarchive\book1.xls' ).

  IF lh_file_exists = 'X'.
    MESSAGE 'File exists' TYPE 'I'.
  ELSE.
    MESSAGE 'File doesn''t exists' TYPE 'I'.
  ENDIF.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: call method h_excel 'Save'.  Тема решена
СообщениеДобавлено: Пн, авг 10 2009, 09:36 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 03 2009, 15:37
Сообщения: 292
Откуда: Алматы
Пол: Мужской
К сожалению так я могу только узнать был ли создан файл с таким именем, а с фм POPUP_TO_CONFIRM я могу все лишь подтвердить замену, функцию замены он не выполняет. Может есть еще какие-нибудь варианты Сохранения с заменой?

Code:
   

lh_file_exists = cl_gui_frontend_services=>file_exist( file = file ).

    IF lh_file_exists = 'X'.
      CALL FUNCTION 'POPUP_TO_CONFIRM'
        EXPORTING
   titlebar                    = 'Подтвердить сохранение в виде'
   text_question               = 'Файл с таким именем существует. Заменить?'
   text_button_1               = 'Да'                       "(001)
   text_button_2               = 'Нет'                      "(002)
   default_button              = '1'
   display_cancel_button       = 'X'
IMPORTING
   answer                      = answer
TABLES
   parameter                   = parameter
                .
      IF sy-subrc <> 0.
      ENDIF.

      IF answer = '1'.
        PERFORM download_to_excel.   " Здесь вызывается метод сохранения с заменой
      ENDIF.
    ENDIF.

_________________
Все в этом мире стоит под сомнением, над сомнением – только google...


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

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


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

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


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

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