jueves, 25 de noviembre de 2010

Sort and fliter Table Control Webdynpro Abap

Uso del Sort and fliter en Table Control Webdynpro Abap:

1.- Primero creo un nodo para los datos que mostrare en el Table Control.



2.- En la vista MAIN, en la pestaña de atributos añado la interface IF_WD_TABLE_METHOD_HNDL para el control de los métodos de SORT y FILTER del Table Control.





3.- Hacemos el mapping correspondiente con el Context de la vista y a su vez vamos a crear otro nodo con los atributos para los que se desean crean un FILTER. Estos campos como se ven en la imagen son tipo string y están dentro de un nodo con cardinalidad 1-1 y selección 1-1-



4.- Crearemos en el Layout de la Vista MAIN el Table Control usando el Wizard. Lo primero es con el click derecho del mouse sobre el ROOTUIELEMTENCONTAINER la opción Create Container Form.




5.- En la ventana que nos muestra damos click en Context y luego escojemos el Nodo con los datos que se quieren mostrar en la tabla.



6.- Este es el resultado final del Table Control. Damos click en el check list y seguimos.

 

7.- Nuestra Table Control se mostrara de esta manera pero SIN la opción de SORT y FILTER. Una vez creemos los EVENT como se muestra en la figura aparecerá una fila de Filter en nuestro Table Control.


Para crear los eventos se le da click en la hoja perteneciente al evento correspondiente luego asignarle un nombre de Action y continuar.


Tambien navegaremos por la TABLE y escogeremos la TABLE que queremos que se habilite para FILTER. En este caso estoy mostrando TABLE_CARRID y en la propiedad ISFILTERED lo colocamos con el check list.! (he colocado dos campos más con el valor IsFiltered enable correspondientes a los campos creados en el nodo para el table control CONNID y PRICE pero no muestro la imagen, con este ejemplo de CARRID basta ;)


Metodos creados…

8.- Damos doble click sobre el envento en este caso ONACTIONFILTER y agregamos el código que muestro.! Sirve para aplicar la opción de FILTER al evento. De Igual manera lo haremos para el evento del SORT.


method ONACTIONFILTER .
     wd_this->table_control->APPLY_FILTER( ).
endmethod.


method ONACTIONON_ACTION_SORT .
     wd_this->table_control->apply_sorting( ).
endmethod.


9.- Por Ultimo agregamos en el evento standart WDDOMODIFYVIEW del MAIN el código que controlara los cambios que se harán en la tabla una vez se quiera usar el filter o el sort.



method WDDOMODIFYVIEW .
data wd_table type ref to cl_wd_table.
check first_time = abap_true.
* Name of the table UI element to be provided
wd_table ?= view->get_element( 'TABLE' ).
wd_this->table_control ?= wd_table->_method_handler.
*Name of the key attribute of the context node to which the table binding is done to be provided
wd_this->table_control->set_key_attribute_name( 'CARRID' ).
endmethod.


Usando el FILTER.