Текущее время: Пт, авг 01 2025, 09:43

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


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

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


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

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