Está en la página 1de 34

Preparacion LAYOUT de una WEBDYNPRO.

Ahora voy a coger como ejemplo una webdynpro y analizare el layout de una vista. Utilizare la
webdynpro ZPH_CV_CERTIFICACION_ALTA.

La webdynpro dentro del Portal.

Ahora vamos a ver internamente como se definio el layout.

Para crear el Layout metemos todo en un CONTAINER ya que será mucho más fácil de ordenar los
elementos del LAYOUT.

Ya dentro del CONTAINER , tenemos que crear algo parecido a esto :

.Entonces: Ahora vamos mirando elemento a elemento que es y como esta configurado.

.

.

.

.

.

.

.

Ahora nos fijamos como están dispuestos los input fields y nos fijamos en su configuración del Matrixlayout. .

.

.

.

.

Ojo!! MatrixHeadData ¡! Al ir en la línea de abajo. .

Por ejemplo: .Para colocar bonito los input fields de un mismo bloque es mejor usar un contenedor como TEMPLATE.

.

Tambien para agrupar objetos relacionados usamo lo denominados GROUP. .

.

Ver ejemplo insertar una tabla: .Otra webdynpro.

.

.

.

Definida la tabla ahora definimos las columnas y los bindings. Como se hace?? Boton derecho y añadir binding .

.

.

Los toolbar y sus acciones: .

DATA ls_condiciones TYPE wd_this->element_condiciones.Código del método (evento acción) DATA lo_table TYPE REF TO cl_wd_table. DATA lo_element TYPE REF TO if_wd_context_element. . DATA lo_nd_condiciones TYPE REF TO if_wd_context_node. DATA lt_condiciones TYPE wd_this->elements_condiciones.

* lo_el_ambito = lo_nd_ambito->get_element( ). * * CALL METHOD lo_api_controller->get_message_manager * RECEIVING * message_manager = lo_message_manager. * * lo_nd_ambito = wd_context->get_child_node( name = wd_this- >wdctx_ambito ). * DATA lo_el_ambito TYPE REF TO if_wd_context_element. * * lo_api_controller ?= wd_this->wd_get_api( ). * * ELSE. * DATA lv_ambito TYPE wd_this->element_ambito-ambito. * DATA lo_nd_ambito TYPE REF TO if_wd_context_node. * CALL METHOD lo_message_manager->report_error_message * EXPORTING * message_text = wd_assist->get_t100_msg( id = 'ZPH_GP' * para1 = 'ZPH_TCOWD' * key = '010' ). DATA l_lines TYPE i. * DATA ls_ambito TYPE wd_this->element_ambito. * * lo_el_ambito->get_attribute( * EXPORTING * name = `AMBITO` * IMPORTING * value = lv_ambito ). * CONSTANTS lc_name(30) TYPE c VALUE 'ZPH_CV_CERTIFICACION_ALTA'. * . * * IF sy-subrc NE 0. * DATA lo_message_manager TYPE REF TO if_wd_message_manager. * IF sy-subrc EQ 12. * * * * CALL FUNCTION 'ZPH_XX_CHECK_AUTORITHY' * EXPORTING * name = lc_name * actvt = '01' "Crear Nuevo * i_ambito = lv_ambito * co_action = '2076' * EXCEPTIONS * no_authority = 1 * no_confing = 12. * DATA lo_api_controller TYPE REF TO if_wd_controller. DATA lo_view_contr TYPE REF TO if_wd_view_controller.

ENDIF. lo_nd_condiciones = wd_context->get_child_node( name = wd_this->wdctx_condiciones ). lo_table ?= wd_assist->o_view_condicion->get_element( id = 'T_DETALLES' ). ADD 1 TO l_lines. lo_element = lo_nd_condiciones->get_element( l_lines ). ELSE. "error. ls_condiciones-kmanu = 'X'. APPEND ls_condiciones TO lt_condiciones . lo_nd_condiciones->set_lead_selection_index( l_lines ). lo_nd_condiciones->get_static_attributes_table( IMPORTING table = lt_condiciones ). ls_condiciones-input = 'X'. * . ls_condiciones-input = 'X'. DESCRIBE TABLE lt_condiciones LINES l_lines. IF wd_assist->o_view_condicion IS BOUND. ENDIF. * * ELSE. READ TABLE lt_condiciones INTO ls_condiciones INDEX l_lines. * lo_nd_condiciones = wd_context->get_child_node( name = wd_this->wdctx_condiciones ). IF sy-subrc IS INITIAL. IF ls_condiciones-kschl IS INITIAL.hay una posicion sin indicador de condicion ELSE. CLEAR l_lines. lo_table->set_first_visible_row( l_lines ). lo_view_contr->request_focus( EXPORTING context_element = lo_element attribute = 'KSCHL' ). APPEND ls_condiciones TO lt_condiciones . lo_view_contr = wd_this->wd_get_api( ). * ENDIF. lo_nd_condiciones->bind_table( new_items = lt_condiciones set_initial_elements = abap_true ).* CALL METHOD lo_message_manager->report_error_message * EXPORTING * message_text = wd_assist->get_t100_msg( id = 'ZPH_GP' * key = '009' ). CLEAR ls_condiciones. IF lo_table IS NOT INITIAL. ls_condiciones-kmanu = 'X'. ENDIF.

ENDIF. IF lo_table IS NOT INITIAL. lo_table->set_first_visible_row( l_lines ). . ENDIF. ADD 1 TO l_lines. * ENDIF. ENDIF. IF wd_assist->o_view_condicion IS BOUND. lo_nd_condiciones->set_lead_selection_index( l_lines ). lo_view_contr = wd_this->wd_get_api( ). ENDMETHOD. lo_table ?= wd_assist->o_view_condicion->get_element( id = 'T_DETALLES' ). lo_nd_condiciones->bind_table( new_items = lt_condiciones set_initial_elements = abap_true ). lo_view_contr->request_focus( EXPORTING context_element = lo_element attribute = 'KSCHL' ). lo_element = lo_nd_condiciones->get_element( l_lines ). lo_nd_condiciones = wd_context->get_child_node( name = wd_this->wdctx_condiciones ).