Текущее время: Вт, июл 22 2025, 09:19

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


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

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


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

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