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

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


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

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


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

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