Текущее время: Ср, июл 23 2025, 19:11

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Использование F4IF_INT_TABLE_VALUE_REQUEST к таблице Field Symbols
СообщениеДобавлено: Чт, авг 14 2014, 13:58 
Специалист
Специалист

Зарегистрирован:
Ср, дек 07 2005, 09:18
Сообщения: 141
Откуда: Запорожье
Добрый день.
Подскажите как сделать средство выбора данных из динамической таблички объявленной через Field Symbols.

Делаю так ничего - ни чего не выбирается:
data:
FIELD_SYMBOL(40) TYPE C VALUE 'T_OUTTAB',
p_table(40) TYPE C VALUE 'T_OUTTAB'.
FIELD-SYMBOLS: <my_fs> TYPE ANY TABLE.
FIELD-SYMBOLS: <res_fs>.



DATA:
go_struct TYPE REF TO cl_abap_structdescr,
go_table TYPE REF TO cl_abap_tabledescr,
gt_comp TYPE abap_compdescr_tab,
wa_gt_comp like LINE OF gt_comp,
gs_comp_a LIKE LINE OF gt_comp,
gdo_data type ref to data,
gr TYPE REF TO data,
grf4 TYPE REF TO data.

DATA
: lo_struct TYPE REF TO cl_abap_structdescr
, lo_table TYPE REF TO cl_abap_tabledescr
, ls_comp TYPE abap_componentdescr
, lt_comp TYPE abap_component_tab .

FIELD-SYMBOLS: <my_table> TYPE STANDARD TABLE.
FIELD-SYMBOLS: <fld_f4table> TYPE STANDARD TABLE.

data: dyn_table type ref to data,
dyn_line type ref to data,
wa_fcat type lvc_s_fcat,
it_fcat type lvc_t_fcat,
d_table type ref to data.



DATA: ls_row_id TYPE lvc_s_row.
DATA: ls_col_id TYPE lvc_s_col.
DATA: l_value TYPE lvc_s_data-value.
DATA: ls_selfield TYPE lvc_s_self.
DATA: ls_fieldcat TYPE slis_fieldcat_alv.
DATA: ls_fieldcat_lvc TYPE lvc_s_fcat.

CALL METHOD gt_grid-grid->get_current_cell
IMPORTING
es_row_id = ls_row_id
es_col_id = ls_col_id
e_value = l_value.



DATA gt TYPE i.
*** создаем ссылку на динамическую.таблицу
IF <my_fs> IS NOT ASSIGNED.
ASSIGN ('T_OUTTAB[]') TO <my_fs>.
ENDIF.

*** создаем копию динамическ.таблицы с полными данными
IF <my_table> IS NOT ASSIGNED.
GET REFERENCE OF <my_fs> INTO gdo_data.

go_table ?= cl_abap_structdescr=>describe_by_data_ref( gdo_data ).
go_struct ?= go_table->get_table_line_type( ).
gt_comp = go_struct->components.

CREATE DATA gr TYPE HANDLE go_table. " создаем обект-данных полученного типа
ASSIGN gr->* TO <my_table>. "создаем таблицу
<my_table>[] = <my_fs>[].
ENDIF.
**********************************************************************
DATA:
i_retab TYPE TABLE OF ddshretval,
r_field TYPE dfies-fieldname,
r_dynprofield TYPE help_info-dynprofld.

r_field = ls_col_id.
r_dynprofield = ls_col_id.

IF <fld_f4table> IS NOT ASSIGNED.
READ TABLE gt_comp INTO wa_gt_comp WITH KEY name = ls_col_id.

wa_fcat-fieldname = wa_gt_comp-name .
wa_fcat-datatype = wa_gt_comp-type_kind.
wa_fcat-inttype = wa_gt_comp-type_kind.
wa_fcat-intlen = wa_gt_comp-length.
wa_fcat-decimals = wa_gt_comp-decimals.

APPEND wa_fcat TO it_fcat.

* Create dynamic internal table and assign to Field-Symbol
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = it_fcat
IMPORTING
ep_table = d_table.

ASSIGN d_table->* TO <fld_f4table>.
ENDIF.

FIELD-SYMBOLS: <l_line3> TYPE ANY,
<ls_wa> TYPE ANY,
<ls_wa2> TYPE ANY.

* DATA new_line3 TYPE REF TO data.
*
* CREATE DATA new_line3 LIKE LINE OF <my_table> .
* ASSIGN new_line3->* TO <l_line3>.

refresh <fld_f4table>.

FIELD-SYMBOLS:
<fs1> type any,
<fs2> type any.

ASSIGN COMPONENT r_field OF STRUCTURE <fld_f4table> TO <fs2>.
LOOP AT <my_table> ASSIGNING <ls_wa>.
ASSIGN COMPONENT r_field OF STRUCTURE <ls_wa> TO <fs1>.
append <fs1> to <fld_f4table>.
ENDLOOP.
*ENDDO.



CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = r_field "<---Return field column name
dynpprog = sy-repid
dynpnr = sy-dynnr
* dynprofield = r_dynprofield
value_org = 'S'
MULTIPLE_CHOICE = 'X'
TABLES
value_tab = <fld_f4table>
* FIELD_TAB = <fld_f4table>
return_tab = i_retab.
IF sy-subrc EQ 0.

ENDIF.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Использование F4IF_INT_TABLE_VALUE_REQUEST к таблице Field Symbols
СообщениеДобавлено: Пт, авг 15 2014, 03:21 
Специалист
Специалист

Зарегистрирован:
Вт, июн 10 2014, 09:41
Сообщения: 180
Может быть, вместо
Razum написал(а):
Code:
    READ TABLE gt_comp INTO wa_gt_comp WITH KEY name = ls_col_id.


Вы хотели написать
Code:
    READ TABLE gt_comp INTO wa_gt_comp WITH KEY name = r_field.
?

А вообще, нужно писать какую ошибку выводит или почему решили, что не работает :)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Использование F4IF_INT_TABLE_VALUE_REQUEST к таблице Field Symbols
СообщениеДобавлено: Пн, авг 18 2014, 09:51 
Специалист
Специалист

Зарегистрирован:
Ср, дек 07 2005, 09:18
Сообщения: 141
Откуда: Запорожье
Данные все есть, не срабатывает сам ФМ CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'. Не появляется окно выбора значений.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Использование F4IF_INT_TABLE_VALUE_REQUEST к таблице Field Symbols
СообщениеДобавлено: Пт, окт 31 2014, 23:18 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, авг 22 2013, 01:09
Сообщения: 108
Откуда: г. Жлобин, Республика Беларусь
Пол: Мужской
Razum написал(а):
Данные все есть, не срабатывает сам ФМ CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'. Не появляется окно выбора значений.


Попробуйте дать этому модулю на вход описание своей динамической таблицы. Может это поможет...
А то получается, что описание выводимой структуры в программе нет, есть только набор байтов, которые непонятно как разложить на отдельные поля :?

_________________
Когда другие слепо следуют за истиной, помни - ничто не истина.


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

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


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

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


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

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