Текущее время: Чт, июл 31 2025, 17:12

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


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

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


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

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