uo4396
30/04/09, 15:33:21
Hola a todos;
Estoy intentando crear una tabla dinámica. El código es el siguiente:
TYPE-POOLS: abap, col.
* Tablas dinámicas
FIELD-SYMBOLS: <dyn_table> TYPE STANDARD TABLE,
<dyn_wa>,
<fs>.
DATA: gt_dyn TYPE REF TO data,
gw_dyn TYPE REF TO data,
r_table TYPE REF TO cl_salv_table,
r_header TYPE REF TO cl_salv_form_element,
r_footer TYPE REF TO cl_salv_form_element,
r_columns_table TYPE REF TO cl_salv_columns_table,
r_column_table TYPE REF TO cl_salv_column_table,
r_datadescr TYPE REF TO cl_abap_datadescr,
r_structdescr TYPE REF TO cl_abap_structdescr,
gw_component TYPE abap_componentdescr,
gt_component TYPE abap_component_tab.
DATA: l_idx(2) TYPE c,
l_matnr TYPE matnr,
l_maktx TYPE maktx,
l_matkl TYPE matkl,
l_hslxx(6) TYPE C,
lt_color TYPE lvc_t_scol,
l_desc TYPE char50.
r_datadescr ?= cl_abap_datadescr=>describe_by_data( l_desc ).
gw_component-name = 'MATERIAL'.
gw_component-type = r_datadescr.
APPEND gw_component TO gt_component.
El problema lo tengo al realizar la llamada al método siguiente :
cl_abap_datadescr=>describe_by_data( l_desc ).
Para que sirve el parámetro que le estoy pasando al método describe_by_data?
Depende que cabecera me cree para la tabla mas adelante me lanza una excepción y no se campo exactamente pasar para que me funcione.
Si por ejemplo tengo definida una variable asi:
l_hslxx(6) TYPE c,
Y es la que le paso al método:
DO p_times TIMES.
l_idx = sy-index.
CONDENSE l_idx NO-GAPS.
r_datadescr ?= cl_abap_datadescr=>describe_by_data( l_hslxx ).
CONCATENATE 'HOY' l_idx INTO gw_component-name SEPARATED BY space.
gw_component-type = r_datadescr.
APPEND gw_component TO gt_component.
ENDDO.
El programa luego me casca en la siguiente sentencia:
CREATE DATA gw_dyn TYPE HANDLE r_structdescr.
¿ Alguien sabe que estoy haciendo mal ?
Saludos y gracias
Estoy intentando crear una tabla dinámica. El código es el siguiente:
TYPE-POOLS: abap, col.
* Tablas dinámicas
FIELD-SYMBOLS: <dyn_table> TYPE STANDARD TABLE,
<dyn_wa>,
<fs>.
DATA: gt_dyn TYPE REF TO data,
gw_dyn TYPE REF TO data,
r_table TYPE REF TO cl_salv_table,
r_header TYPE REF TO cl_salv_form_element,
r_footer TYPE REF TO cl_salv_form_element,
r_columns_table TYPE REF TO cl_salv_columns_table,
r_column_table TYPE REF TO cl_salv_column_table,
r_datadescr TYPE REF TO cl_abap_datadescr,
r_structdescr TYPE REF TO cl_abap_structdescr,
gw_component TYPE abap_componentdescr,
gt_component TYPE abap_component_tab.
DATA: l_idx(2) TYPE c,
l_matnr TYPE matnr,
l_maktx TYPE maktx,
l_matkl TYPE matkl,
l_hslxx(6) TYPE C,
lt_color TYPE lvc_t_scol,
l_desc TYPE char50.
r_datadescr ?= cl_abap_datadescr=>describe_by_data( l_desc ).
gw_component-name = 'MATERIAL'.
gw_component-type = r_datadescr.
APPEND gw_component TO gt_component.
El problema lo tengo al realizar la llamada al método siguiente :
cl_abap_datadescr=>describe_by_data( l_desc ).
Para que sirve el parámetro que le estoy pasando al método describe_by_data?
Depende que cabecera me cree para la tabla mas adelante me lanza una excepción y no se campo exactamente pasar para que me funcione.
Si por ejemplo tengo definida una variable asi:
l_hslxx(6) TYPE c,
Y es la que le paso al método:
DO p_times TIMES.
l_idx = sy-index.
CONDENSE l_idx NO-GAPS.
r_datadescr ?= cl_abap_datadescr=>describe_by_data( l_hslxx ).
CONCATENATE 'HOY' l_idx INTO gw_component-name SEPARATED BY space.
gw_component-type = r_datadescr.
APPEND gw_component TO gt_component.
ENDDO.
El programa luego me casca en la siguiente sentencia:
CREATE DATA gw_dyn TYPE HANDLE r_structdescr.
¿ Alguien sabe que estoy haciendo mal ?
Saludos y gracias