Текущее время: Вт, июл 29 2025, 02:37

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Где взять функциональный модуль BC402_CREATE_SEP_STRING для курса BC402?
СообщениеДобавлено: Сб, ноя 03 2012, 11:24 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Пн, дек 18 2006, 09:45
Сообщения: 22
Пытаюсь изучать ABAP по курсу BC402. В заданиях фигурирует функциональный модуль BC402_CREATE_SEP_STRING. Может есть у кого?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Где взять функциональный модуль BC402_CREATE_SEP_STRING для курса BC402?
СообщениеДобавлено: Сб, ноя 03 2012, 12:18 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Пн, дек 18 2006, 09:45
Сообщения: 22
Вот что удалось придумать самому:

Code:
FUNCTION Z_BC402_CREATE_SEP_STRING .
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*"  IMPORTING
*"     REFERENCE(IM_NUMBER) TYPE  I DEFAULT 1
*"     REFERENCE(IM_SEPARATOR) TYPE  C DEFAULT '#'
*"     REFERENCE(IM_UNIQUE) TYPE  C DEFAULT 'X'
*"     REFERENCE(IM_TABLE_NAME) TYPE  STRING DEFAULT 'SFLIGHT'
*"  EXPORTING
*"     REFERENCE(EX_STRING) TYPE  STRING
*"  EXCEPTIONS
*"      NO_DATA
*"----------------------------------------------------------------------
  PERFORM get_structure USING im_table_name.
  PERFORM create_dynamic_itab.
  PERFORM get_data USING im_table_name im_unique im_number.
  PERFORM sep_string USING im_separator CHANGING ex_string.
ENDFUNCTION.

TYPE-POOLS: abap, slis.

FIELD-SYMBOLS: <dyn_table> TYPE STANDARD TABLE,
               <dyn_wa>,
               <dyn_field>.

DATA: dy_table TYPE REF TO data,
      dy_line TYPE REF TO data,
      xfc TYPE lvc_s_fcat,
      ifc TYPE lvc_t_fcat.

FORM get_structure USING im_table_name TYPE string.
  DATA: idetails TYPE abap_compdescr_tab,
        xdetails TYPE abap_compdescr,
        ref_table_des TYPE REF TO cl_abap_structdescr.
  ref_table_des ?= cl_abap_typedescr=>describe_by_name( im_table_name ).
  idetails[] = ref_table_des->components[].
  LOOP AT idetails INTO xdetails.
    CLEAR xfc.
    xfc-fieldname = xdetails-name.
    xfc-datatype = xdetails-type_kind.
    xfc-inttype = xdetails-type_kind.
    xfc-intlen = xdetails-length.
    xfc-decimals = xdetails-decimals.
    APPEND xfc TO ifc.
  ENDLOOP.
ENDFORM.

FORM create_dynamic_itab.
  CALL METHOD cl_alv_table_create=>create_dynamic_table
    EXPORTING
      it_fieldcatalog = ifc
    IMPORTING
      ep_table        = dy_table.
  ASSIGN dy_table->* TO <dyn_table>.
  CREATE DATA dy_line LIKE LINE OF <dyn_table>.
  ASSIGN dy_line->* TO <dyn_wa>.
ENDFORM.

FORM get_data USING im_table_name TYPE string im_unique TYPE C im_number TYPE I.
  DATA: others_rows_count TYPE I.
  IF im_unique = 'X'.
    SELECT DISTINCT * INTO CORRESPONDING FIELDS OF TABLE <dyn_table> FROM (im_table_name) UP TO im_number ROWS.
  ELSE.
    SELECT * INTO CORRESPONDING FIELDS OF TABLE <dyn_table> FROM (im_table_name) UP TO im_number ROWS.
    others_rows_count = im_number - lines( <dyn_table> ).
    WHILE others_rows_count > 0.
      SELECT * APPENDING CORRESPONDING FIELDS OF TABLE <dyn_table> FROM (im_table_name) UP TO others_rows_count ROWS.
      others_rows_count = im_number - lines( <dyn_table> ).
    ENDWHILE.
  ENDIF.
  IF sy-subrc <> 0.
    RAISE NO_DATA.
  ENDIF.
ENDFORM.

FORM sep_string USING im_separator TYPE C CHANGING ex_string TYPE string.
  DATA: temp_str TYPE string.
  LOOP AT <dyn_table> INTO <dyn_wa>.
    DO.
      ASSIGN COMPONENT sy-index OF STRUCTURE <dyn_wa> TO <dyn_field>.
      IF sy-subrc <> 0.
        EXIT.
      ENDIF.
      temp_str = <dyn_field>.
      IF temp_str = ''.
        temp_str = '0'.
      ENDIF.
      IF sy-index = 1.
        CONCATENATE ex_string im_separator im_separator temp_str INTO ex_string.
      ELSE.
        CONCATENATE ex_string im_separator temp_str INTO ex_string.
      ENDIF.
    ENDDO.
  ENDLOOP.
  CONCATENATE ex_string im_separator im_separator INTO ex_string.
ENDFORM.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Где взять функциональный модуль BC402_CREATE_SEP_STRING для курса BC402?
СообщениеДобавлено: Сб, ноя 03 2012, 13:24 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Пн, дек 18 2006, 09:45
Сообщения: 22
Теперь уже ищу функциональный модуль BC402_FMDD_CONNECTION_LIST


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

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


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

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


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

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