MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 25/08/08, 12:38:28
daniel_daniel1 daniel_daniel1 is offline
Member
 
Fecha de Ingreso: may 2008
Mensajes: 31
Ayuda Web Dynpro For Abap

QUE TAL MUY BUENOS DIAS!!!

ESTOY EMPESANDO A VER LO QUE ES WEB DYNPRO FOR ABAP... MAS O MENOS ENTIENDO PERO ESTOY HACIENDO UN EJERCICIO EN EL CUAL TENES QUE CREAR UNA TABLA DINAMICAMENTE PARA LA CUAL EN LA PANTALLA PRINCIPAL LO QUE TE VA A APARECER ES UN INPUT CON UN BOTON Y DEBAJO LA TABLA CREADA CON LA ESTRUCTURA Y LOS DATOS DE LA TABLA QUE EL USUARIO INGRESE POR PANTALLA EN ESE INPUFIELD.

YO LOGRO HACER TODO, ME SALE LA TABLA, PERO NO LA ESTRUCTURA Y MUCHO MENOS LOS DATOS EN LA TABLA QUE CREO.

EXPLICO MAS O MENOS LO QUE TENGO CREADO EN LAS PANTALLAS:

EN EL COMPONENTCONTROLER TENGO CREADO UN NODO LLAMADO TABLA DE CARDINALIDAD 1 A 1 Y DENTRO DE ESE NODO TENGO CREADO 2 ATRIBUTOS
UNO LLAMADO NOMBRE_TABLA DE TIPO STRING Y EL OTRO LLAMADO GV_INI DE TIPO BOOLEAN.

EN LA VISTA QUE CREE QUE SE LLAMA TABLA EN EL LAYOUT TENGO CREADO UN GROUP LLAMADO GROUP CUYO LAYOUT ES MATRIXLAYOUT Y DENTRO DEL GROUP TENGO CREADO UN LABEL, UN INPUTFIELD Y UN BUTTON.
EL BUTTON TIENE ASIGNADA UNA ACCION LLAMADA MOSTRAR.

EN EL CONTEXT DE MI VISTA MAPEO EL NODO CREADO EN EL COMPONENTCONTROLER.

EN WINDOWS TENGO CREADA UNA VENTANA LA QUE LE ASIGNO LA VISTA QUE CREE.

Y POR ULTIMO TENGO CREADO UN APLICATION PARA PODER TESTEAR.

BUENO, ACA ADJUNTO EL CODIGO TAL CUAL COMO LO TENGO HECHO:

EN EL COMPONENT CONTROLER CREE UN METODO LLAMADO DYNAMIC

Y ESTE ES EL CODIGO DE EL METODO DYNAMIC:
DATA: l_node_info TYPE REF TO if_wd_context_node_info,
lo_container TYPE REF TO cl_wd_uielement_container.
DATA lo_tabla TYPE REF TO cl_wd_table.
DATA l_data_source TYPE string.
DATA lo_nd_tabla TYPE REF TO if_wd_context_node.
DATA lo_el_tabla TYPE REF TO if_wd_context_element.
DATA ls_tabla TYPE wd_this->element_tabla.
DATA lv_nombre_tabla TYPE ddobjname.
DATA lv_nombre_tabla2 TYPE string.
DATA l_pd TYPE REF TO data.

FIELD-SYMBOLS <lt_llenar_tabla> TYPE ANY TABLE.

* navigate from <CONTEXT> to <TABLA> via lead selection
lo_nd_tabla = wd_context->get_child_node( name =
wd_this->wdctx_tabla ).

* get element via lead selection
lo_el_tabla = lo_nd_tabla->get_element( ).

* get single attribute
lo_el_tabla->get_attribute(
EXPORTING
name = `NOMBRE_TABLA`
IMPORTING
value = lv_nombre_tabla ).

TRANSLATE lv_nombre_tabla TO UPPER CASE.
MOVE lv_nombre_tabla TO lv_nombre_tabla2.
CONCATENATE 'TABLA.' lv_nombre_tabla INTO l_data_source.

l_node_info = wd_context->get_node_info( ).

l_node_info->add_new_child_node(
name = 'NODO_PRUEBA'
static_element_type = 'SFLIGHT'
is_static = abap_false ).

* navigate from <CONTEXT> to <TABLA> via lead selection
lo_nd_tabla = wd_context->get_child_node( name =
wd_this->wdctx_tabla ).

* get element via lead selection
lo_el_tabla = lo_nd_tabla->get_element( ).

* get single attribute
lo_el_tabla->set_attribute(
EXPORTING
name = `GV_INI`
value = abap_true ).

CREATE DATA l_pd TYPE STANDARD TABLE OF (lv_nombre_tabla).
ASSIGN l_pd->* TO <lt_llenar_tabla>.

SELECT * FROM (lv_nombre_tabla) INTO CORRESPONDING FIELDS OF TABLE
<lt_llenar_tabla>.

IF sy-subrc NE 0.
EXIT.
ENDIF.

lo_nd_tabla = wd_context->get_child_node( name = 'NODO_PRUEBA' ).
lo_nd_tabla->bind_table( new_items = <lt_llenar_tabla> ).

EN LA VISTA CREE UNA ACCION LLAMADA MOSTRAR ASIGANADA A MI BUTTON.
ESTE EL EL CODIGO DE LA ACCION MOSTRAR:
DATA lo_componentcontroller TYPE REF TO ig_componentcontroller .
lo_componentcontroller = wd_this->get_componentcontroller_ctr( ).

lo_componentcontroller->dynamic(
).

EN LA VISTA EN EL METODO MODIFYVIEW TENGO EL SIGUIENTE CODIGO:
DATA: l_node_info TYPE REF TO if_wd_context_node_info,
lo_container TYPE REF TO cl_wd_uielement_container.
DATA lo_tabla TYPE REF TO cl_wd_table.
DATA l_data_source TYPE string.
DATA lo_nd_tabla TYPE REF TO if_wd_context_node.
DATA lo_el_tabla TYPE REF TO if_wd_context_element.
DATA ls_tabla TYPE wd_this->element_tabla.
DATA lv_nombre_tabla TYPE ddobjname.
DATA lv_nombre_tabla2 TYPE string.
DATA lv_gv_ini LIKE ls_tabla-gv_ini.
* navigate from <CONTEXT> to <TABLA> via lead selection
lo_nd_tabla = wd_context->get_child_node( name =
wd_this->wdctx_tabla ).

* get element via lead selection
lo_el_tabla = lo_nd_tabla->get_element( ).

* get single attribute
lo_el_tabla->get_attribute(
EXPORTING
name = `GV_INI`
IMPORTING
value = lv_gv_ini ).

* navigate from <CONTEXT> to <TABLA> via lead selection
lo_nd_tabla = wd_context->get_child_node( name =
wd_this->wdctx_tabla ).

* get element via lead selection
lo_el_tabla = lo_nd_tabla->get_element( ).

* get single attribute
lo_el_tabla->get_attribute(
EXPORTING
name = `NOMBRE_TABLA`
IMPORTING
value = lv_nombre_tabla ).

TRANSLATE lv_nombre_tabla TO UPPER CASE.
MOVE lv_nombre_tabla TO lv_nombre_tabla2.

lo_container ?= view->get_element( 'GROUP' ).

cl_wd_matrix_layout=>new_matrix_layout(
container = lo_container ).

lo_container->remove_child( id = 'TABLA_NUEVA' ).

lo_tabla = cl_wd_table=>new_table(
bind_data_source = 'TABLA.NODO_PRUEBA'
id = 'TABLA_NUEVA' ).

cl_wd_matrix_head_data=>new_matrix_head_data(
element = lo_tabla ).

lo_container->add_child( the_child = lo_tabla ).

DESDE YA AGRADEZCO TODO TIPO DE AYUDA!!!

MUCHAS GRACIAS.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 03:37:19.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web