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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Выгрузка данных в Excel
СообщениеДобавлено: Чт, мар 27 2008, 14:04 
Начинающий
Начинающий

Зарегистрирован:
Чт, фев 28 2008, 13:41
Сообщения: 22
Откуда: Moscow
Понимаю что тема уже обсуждалась сто раз.
Целый день провёл изучая написанное. но всеравно вопрос остался.
Собственно говоря есть внутренняя таблица.
Нужно её сохранить в Excel файле.

Только это не должен быть банальный файл с разделителями типа табуляции...
Требуется чтоб это был полноправный файл формата xls.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, мар 27 2008, 14:05 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
Воспользуйтесь этим: http://sapboard.ru/forum/viewtopic.php?t=4880


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, мар 27 2008, 14:24 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, авг 04 2006, 20:56
Сообщения: 1006
Откуда: 37 МИКРОРАЙОН
Пол: Мужской
Simple Function Module to export any internal table to MS Excel:arrow:


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, мар 27 2008, 17:02 
Начинающий
Начинающий

Зарегистрирован:
Чт, фев 28 2008, 13:41
Сообщения: 22
Откуда: Moscow
ROKO написал:


Вот по данной ссылке приводится следующий код
Code:
FUNCTION z_db001_itab_to_msexcel.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  IMPORTING
*"     VALUE(I_FILENAME) TYPE  RLGRAP-FILENAME
*"     VALUE(I_TABNAME) TYPE  DFIES-TABNAME
*"     VALUE(I_DESC_TYPE) TYPE  CHAR1 DEFAULT 'M'
*"  TABLES
*"      I_TB_DATA
*"  EXCEPTIONS
*"      ERROR_EXCEL_OLE
*"      ERROR_GET_DICTIONARY_INFO
*"----------------------------------------------------------------------

* REMARK: certain data elements may cause the function
*         EXCEL_OLE_STANDARD_DAT to crash.
*  Known data elements to crash function: PS_STUFE
*  Workaround for PS_STUFE: use a data element with type NUMC instead
*  of INT
*
*  I have not looked into this problem so be careful when using this
*  function

* declarations
  DATA:
     l_filename    LIKE rlgrap-filename,
     wa_x030l      LIKE x030l,
     tb_dfies      TYPE STANDARD TABLE OF dfies,
     wa_dfies      TYPE dfies,
     BEGIN OF tb_flditab OCCURS 0,
*      field description
       fldname(40)  TYPE c,
     END OF tb_flditab.

* get table/structure field info
  CALL FUNCTION 'GET_FIELDTAB'
       EXPORTING
            langu               = sy-langu
            only                = space
            tabname             = i_tabname
            withtext            = 'X'
       IMPORTING
            header              = wa_x030l
       TABLES
            fieldtab            = tb_dfies
       EXCEPTIONS
            internal_error      = 01
            no_texts_found      = 02
            table_has_no_fields = 03
            table_not_activ     = 04.
* check result
  CASE sy-subrc.
    WHEN 0.
*      copy fieldnames
      LOOP AT tb_dfies INTO wa_dfies.
        CASE i_desc_type.
          WHEN 'F'.
            tb_flditab-fldname = wa_dfies-fieldname.
          WHEN 'S'.
            tb_flditab-fldname = wa_dfies-scrtext_s.
          WHEN 'M'.
            tb_flditab-fldname = wa_dfies-scrtext_m.
          WHEN 'L'.
            tb_flditab-fldname = wa_dfies-scrtext_l.
          WHEN OTHERS.
*         use fieldname
            tb_flditab-fldname = wa_dfies-fieldname.
        ENDCASE.
        APPEND tb_flditab.
*        clear variables
        CLEAR: wa_dfies.
      ENDLOOP.
    WHEN OTHERS.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
      WITH  sy-subrc raising error_get_dictionary_info.
  ENDCASE.

* export (and open) file to MS-Excel
  CALL FUNCTION 'EXCEL_OLE_STANDARD_DAT'
       EXPORTING
            file_name                 = i_filename
            data_sheet_name           = 'Data'
       TABLES
            data_tab                  = i_tb_data
            fieldnames                = tb_flditab
       EXCEPTIONS
            file_not_exist            = 1
            filename_expected         = 2
            communication_error       = 3
            ole_object_method_error   = 4
            ole_object_property_error = 5
            invalid_filename          = 6
            invalid_pivot_fields      = 7
            download_problem          = 8
            OTHERS                    = 9.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 raising error_excel_ole.
  ENDIF.

ENDFUNCTION.


Меня интересует вот какой момент. что за параметр I_TABNAME ??? чего в него помещать? Я кнешно может уже туплю но <я не знать русский языка> вроде всё


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, мар 27 2008, 17:06 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, авг 04 2006, 20:56
Сообщения: 1006
Откуда: 37 МИКРОРАЙОН
Пол: Мужской
Вот так попробуйте :D
Code:
REPORT  z_itab_to_ms_excel .

DATA :
  BEGIN OF wa_makt
, mandt LIKE zmakt-mandt
, matnr LIKE zmakt-matnr
, spras(4)
, maktx LIKE zmakt-maktx
, END OF wa_makt
, it_makt LIKE STANDARD  TABLE OF wa_makt.

PARAMETERS: p_file TYPE rlgrap-filename DEFAULT 'C:\1.xls'.


START-OF-SELECTION.

  SELECT * FROM zmakt
  INTO CORRESPONDING FIELDS OF TABLE it_makt.

  CALL FUNCTION 'Z_DB001_ITAB_TO_MSEXCEL'
    EXPORTING
      i_filename                      = p_file
      i_tabname                       = 'ZMAKT'
      i_desc_type                     = 'M'
      TABLES
      i_tb_data                       = it_makt
* EXCEPTIONS
*   ERROR_EXCEL_OLE                 = 1
*   ERROR_GET_DICTIONARY_INFO       = 2
*   OTHERS                          = 3
            .
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, мар 27 2008, 17:36 
Начинающий
Начинающий

Зарегистрирован:
Чт, фев 28 2008, 13:41
Сообщения: 22
Откуда: Moscow
ну у меня немного иная ситуация. я табличку для выгрузки собирать буду чуть ли не руками. тут для примера забил её цифрами (table_material)

И чё делать? )

Ps: я в abap новичок и пока думаю долго, так что заранее извиняюсь за избыточность вопросов

Code:
DATA: l_directory TYPE string,
        l_file_name LIKE RLGRAP-FILENAME,
        l_error TYPE t_error.

  DATA: BEGIN OF table_material_t.
        DATA: WERKS like caufvd-werks,
              MAKTX LIKE MAKT-MAKTX,
              MATNR LIKE MARA-MATNR
                        .

DATA: END OF table_material_t.

DATA table_material LIKE table_material_t OCCURS 0 WITH HEADER LINE.

  table_material-WERKS = '1'.
  table_material-MAKTX = '11'.
  table_material-MATNR = '111'.
  append table_material.

  table_material-WERKS = '2'.
  table_material-MAKTX = '22'.
  table_material-MATNR = '222'.
  append table_material.

l_file_name = 'c:\tmp\test1.xls' .

CALL FUNCTION 'Z_DB001_ITAB_TO_MSEXCEL'
  EXPORTING
    I_FILENAME                      = l_file_name
    I_TABNAME                       = 'table_material'
*   I_DESC_TYPE                     = 'M'
  TABLES
    I_TB_DATA                       = table_material
* EXCEPTIONS
*   ERROR_EXCEL_OLE                 = 1
*   ERROR_GET_DICTIONARY_INFO       = 2
*   OTHERS                          = 3
          .
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, мар 27 2008, 17:46 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Tony-m написал(а):
ну у меня немного иная ситуация. я табличку для выгрузки собирать буду чуть ли не руками. тут для примера забил её цифрами (table_material)

И чё делать? )

А что Вы хотите?
И в каким образом способ заполнения вн.таблиц связан с проблемой выгрузки в Excel?
Tony-m написал(а):
Ps: я в abap новичок и пока думаю долго, так что заранее извиняюсь за избыточность вопросов

Code:
...
* EXCEPTIONS
*   ERROR_EXCEL_OLE                 = 1
*   ERROR_GET_DICTIONARY_INFO       = 2
*   OTHERS                          = 3
          .
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

Крайне дурной тон оставлять закомментариным раздел EXCEPTIONS - если только дамп при ошибки не является штатной ситуацией.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, мар 27 2008, 17:53 
Начинающий
Начинающий

Зарегистрирован:
Чт, фев 28 2008, 13:41
Сообщения: 22
Откуда: Moscow
sy-uname написал(а):
А что Вы хотите?


я хочу понять что надо задать значением I_TABNAME :D


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, мар 27 2008, 22:30 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Tony-m написал(а):
sy-uname написал(а):
А что Вы хотите?


я хочу понять что надо задать значением I_TABNAME :D

В I_TABNAME должно быть имя словарной структуры (например имя таблицы)

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


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

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


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

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


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

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