Besa написал:
Цитата:
Проблема в том что некоторые поля в itab имеют тип 'P' и DECIMALS 2.
Когда я смотрю на эти поля в динамической таблице <f_table> они имеют тип 'С' 21.
Соответственно когда происходит append, все поля где не совпадает тип у меня смещены и отображают ерунду, с обычными полями все гуд.
Вопрос что мне сделать чтобы в динамическую таблицу нормально передать данные?
Или как можно изменить тип поля динамической таблицы, перед тем как сделать append в нее.
Что это значит когда смотрю? Вы ведь сами изначально создаете поля с типом с21 или нет? Ерунда - это пробелы впереди? Что дальше собираетесь делать с этой диначески заполненной динамической таблицей?
Объясните для чего проводить такие манипуляции.
Какая у Вас версия системы?
версия системы SAP ERP 6.0
Для чего все это, есть пользовательская настроечная таблица, в зависимости от добавления там новых настроек, будет расширяться динамическая таблица. А там уже буду с ней работать.
Стараюсь изначально задать такие параметры
Code:
wa_field-datatype = 'P'.
wa_field-intlen = 21.
wa_field-outputlen = 21.
wa_field-decimals = 002.
APPEND wa_field TO it_fields.
ерунда это вот такая картина
Code:
00001975 ИВАНОВ ИВАН ИВАНЫЧ 92201401 К2301 ######(,#####'6<
а ITAB, и после присвоения <F_ROW> имеет такой вид
Code:
PERNR 00001975 N(8)
SNAME ИВАНОВ ИВАН ИВАНЫЧ C(30)
VDSK1 92201401 C(14)
KOSTL К2301 C(10)
AUFNR C(12)
TRZTR 12.82 P(8) DECIMALS 2
ZP 273.63 P(8) DECIMALS 2
я так понимаю изначально <f_table> имеет поля не того типа что мне нужны, тогда вопрос как правильно их задать?
ниже часть кода
Code:
field-symbols: <f_table> type standard table,
<f_row>,
<f_field>.
data: t_table type ref to data,
t_row type ref to data,
col_name(4) type c,
wa_field type lvc_s_fcat,
it_fields type lvc_t_fcat,
cur_index type i,
cur_value type i.
CALL FUNCTION 'GET_COMPONENT_LIST'
EXPORTING
program = 'Z_********'
fieldname = 'ITAB'
TABLES
components = it_components.
loop at it_components.
assign it_components-compname to <f>.
wa_field-fieldname = <f>.
assign it_components-type to <f>.
wa_field-datatype = <f>.
assign it_components-olen to <f>.
wa_field-intlen = <f>.
assign it_components-decs to <f>.
wa_field-decimals = <f>.
APPEND wa_field TO it_fields.
endloop.
loop at t_zhrfi01.
assign t_zhrfi01-grp to <f>.
wa_field-fieldname = <f>.
wa_field-datatype = 'P'.
wa_field-intlen = 21.
wa_field-decimals = 002.
wa_field-outputlen = 21.
APPEND wa_field TO it_fields.
endloop.
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = it_fields
IMPORTING
ep_table = t_table.
ASSIGN t_table->* TO <f_table>.
CREATE DATA t_row LIKE LINE OF <f_table>.
ASSIGN t_row->* TO <f_row>.
loop at itab assigning <f_row>.
append <f_row> to <f_table>.
endloop.