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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Динамическая внутренняя таблица
СообщениеДобавлено: Пн, сен 14 2009, 21:22 
Специалист
Специалист

Зарегистрирован:
Вс, янв 11 2009, 11:05
Сообщения: 152
Пол: Мужской
Господа!
Нужно динамически создавать внутреннюю таблицу, в структуре которой должно быть поле со стилями ячеек (тип lvc_t_styl).
Как такая задача решается? И если в лоб не решается, то как можно обрулить это дело?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Динамическая внутренняя таблица
СообщениеДобавлено: Пн, сен 14 2009, 22:46 
Директор
Директор

Зарегистрирован:
Чт, июн 21 2007, 09:01
Сообщения: 904
Откуда: УЖ 15/2
Пол: Мужской
_garycor_ написал:
Господа!
Нужно динамически создавать внутреннюю таблицу, в структуре которой должно быть поле со стилями ячеек (тип lvc_t_styl).
Как такая задача решается? И если в лоб не решается, то как можно обрулить это дело?
Create a Dynamic Internal Table?
Для Вашего поля
Code:
    xfc-ref_field = 'CELL'. "(тип lvc_t_styl)
    xfc-ref_table = 'MASS_EKKO'.
    append xfc to ifc.

_________________
"I have a dream"(c)Martin Luther King, Jr.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Динамическая внутренняя таблица
СообщениеДобавлено: Пн, сен 14 2009, 22:54 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, авг 28 2006, 11:24
Сообщения: 292
Пол: Мужской
При указании i_style_table = 'X', в табличке создается поле с таблицей стилей.
Code:
call method cl_alv_table_create=>create_dynamic_table
  exporting
    i_style_table             = 'X'
    it_fieldcatalog           = l_fieldcat
  importing
    ep_table                  = zcl_gl_i_tab
  exceptions
    generate_subpool_dir_full = 1
    others                    = 2
        .


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Динамическая внутренняя таблица
СообщениеДобавлено: Пн, сен 14 2009, 22:57 
Специалист
Специалист

Зарегистрирован:
Вс, янв 11 2009, 11:05
Сообщения: 152
Пол: Мужской
спасибо!!!!
завтра на работе попробую.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Динамическая внутренняя таблица  Тема решена
СообщениеДобавлено: Вт, сен 15 2009, 12:00 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, окт 31 2008, 15:58
Сообщения: 70
Я пользуюсь собственным классом для создания динамических таблиц.

Code:
*&---------------------------------------------------------------------*
*&  Include           ZAVV_LCL_CRTFIELDCATALOG
*&---------------------------------------------------------------------*
CLASS zavv_lcl_dyn DEFINITION .
  PUBLIC SECTION.
    CLASS-METHODS:
        get_fldcat IMPORTING im_table TYPE STANDARD TABLE
          EXPORTING ex_fldcat TYPE lvc_t_fcat,
        get_dyntab IMPORTING im_table TYPE STANDARD TABLE
          EXPORTING ex_dyntab TYPE REF TO data.


ENDCLASS.                    "zavv_lcl_crtfieldcatalog DEFINITION
*----------------------------------------------------------------------*
*       CLASS zavv_lcl_crtfieldcatalog IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS zavv_lcl_dyn IMPLEMENTATION.
  METHOD get_fldcat.

    DATA: lcl_table_descr TYPE REF TO cl_abap_tabledescr,
          lcl_struc_descr TYPE REF TO cl_abap_structdescr,
          ret_components TYPE abap_compdescr_tab,
          wa_ret_components TYPE LINE OF abap_compdescr_tab,
          wa_ct_fieldcat TYPE lvc_s_fcat.

    CLEAR: lcl_table_descr ,
              lcl_struc_descr ,
              ret_components ,
              wa_ret_components ,
              wa_ct_fieldcat .

    lcl_table_descr ?= cl_abap_typedescr=>describe_by_data( im_table ).
    lcl_struc_descr ?= lcl_table_descr->get_table_line_type( ).
    ret_components = lcl_struc_descr->components.

    LOOP AT ret_components INTO wa_ret_components .
      wa_ct_fieldcat-fieldname = wa_ret_components-name.
      wa_ct_fieldcat-col_pos = sy-tabix.
      wa_ct_fieldcat-inttype = wa_ret_components-type_kind.
      wa_ct_fieldcat-intlen = wa_ret_components-length.
      APPEND wa_ct_fieldcat TO ex_fldcat.
      CLEAR wa_ct_fieldcat.
    ENDLOOP.


  ENDMETHOD.                    "get_fldcat
  METHOD get_dyntab.

    DATA: lcl_table_descr TYPE REF TO cl_abap_tabledescr,
          lcl_struc_descr TYPE REF TO cl_abap_structdescr,
          ret_components TYPE abap_compdescr_tab,
          wa_ret_components TYPE LINE OF abap_compdescr_tab,
          wa_ct_fieldcat TYPE lvc_s_fcat,
          lt_fldcat TYPE lvc_t_fcat.

    CLEAR: lcl_table_descr ,
              lcl_struc_descr ,
              ret_components ,
              wa_ret_components ,
              wa_ct_fieldcat ,
              lt_fldcat .

    lcl_table_descr ?= cl_abap_typedescr=>describe_by_data( im_table ).
    lcl_struc_descr ?= lcl_table_descr->get_table_line_type( ).
    ret_components = lcl_struc_descr->components.

    LOOP AT ret_components INTO wa_ret_components .
      wa_ct_fieldcat-fieldname = wa_ret_components-name.
      wa_ct_fieldcat-col_pos = sy-tabix.
      wa_ct_fieldcat-inttype = wa_ret_components-type_kind.
      wa_ct_fieldcat-intlen = wa_ret_components-length.
      APPEND wa_ct_fieldcat TO lt_fldcat.
      CLEAR wa_ct_fieldcat.
    ENDLOOP.
    DATA: im_table1 TYPE REF TO data.

    CALL METHOD cl_alv_table_create=>create_dynamic_table
      EXPORTING
        it_fieldcatalog           = lt_fldcat
      IMPORTING
        ep_table                  = ex_dyntab
      EXCEPTIONS
        generate_subpool_dir_full = 1
        OTHERS                    = 2.

  ENDMETHOD.                    "get_fldcat

ENDCLASS.                    "zavv_lcl_crtfieldcatalog IMPLEMENTATION


Пример использования
Code:
REPORT  zavv_test.

INCLUDE zavv_lcl_crtfieldcatalog.

DATA : it_file  LIKE alsmex_tabline OCCURS 0 WITH HEADER LINE.

DATA file_path LIKE  rlgrap-filename.

TYPES : BEGIN OF  sbu_upload ,
  bu TYPE c,
  bu_desc TYPE c,
  delete TYPE c,
END OF sbu_upload .

DATA tbu_upload  TYPE STANDARD TABLE OF sbu_upload  WITH HEADER LINE.

DATA: lt_fieldcat TYPE lvc_t_fcat.

INITIALIZATION.

START-OF-SELECTION.

  zavv_lcl_dyn=>get_fldcat( EXPORTING im_table = tbu_upload[]
                                        IMPORTING ex_fldcat = lt_fieldcat  ).
  DATA: lt_tab1 TYPE REF TO data.
  zavv_lcl_dyn=>get_dyntab( EXPORTING im_table = tbu_upload[]
                                        IMPORTING ex_dyntab = lt_tab1  ).


Просто обернул. Ношу с собой =)

_________________
С Уважением, Абрамов Виктор.
The devil is in the detail.


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

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


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

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


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

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