jueves, junio 05, 2008

Obtener el siguiente número secuencial

Donde el parámetro NR_RANGE_NR es de tipo INRI-NRRANGENR y el parámetro OBJETO es de tipo INRI-OBJECT.


lunes, junio 02, 2008

Convertir campos del ALV en totalizables

Para que los botones de sumatoria y subtotales se activen en un listado se deberán especificar los campos que se deseen totalizar a partir de referencias a campos de tablas estándar. De este modo SAP conocerá el tipo (decimales, signo, etc.) y podrá realizar las sumas de manera correcta.



Si, además, marcamos el campo "DO_SUM", esto hará que se muestra una línea de totales al final del listado.

Ocultar campos de pantalla

Hay veces en las que se hace necesario ocultar ciertos campos de la pantalla de selección. Sobre todo cuando se utilizan bases de datos lógicas que incluyen campos propios. En estos casos habrá que saber en primer lugar cuál es el nombre de los campos que deseamos ocultar. Ésto se puede lograr visualizando la pantalla de selección estándar del sistema (dynpro nº 1000). Los campos se recogen en la pestaña Lista de elementos y dentro de ésta deberemos ir a la pestaña Grupos modif./Funciones para conocer los grupos a los que están asignados.

Supongamos que deseamos ocultar aquellos campos que pertenezcan al GRUPO1 YB1. El lugar donde debemos codificar ésto es en el evento AT SELECTION-SCREEN OUTPUT. Y el código sería el siguiente:



Nótese que el campo INPUT puesto a 0 sirve para aquellos campos de entrada salida, ya que si no especificamos este valor, aunque se pongan invisibles se seguirán mostrando.

Llamadas a listados con retorno

Algunas veces se crean programas que, en función de unas opciones de selección, permiten visualizar un tipo de listado u otro. Lo ideal es que el usuario no tenga salir del programa y volver a cada vez que quiera cambiar de listado, sino volver a la pantalla de selección y desde ahí elegir el nuevo listado que desea visualizar.

Esto se consigue mediante la combinación CALL SCREEN + LEAVE TO SCREEN 0. A continuación se muestra un ejemplo.

En el programa principal habrá un código del siguiente estilo:



Y los módulo PAI de las pantallas deberán contener un código similar a éste:



Es importante hacer uso del CALL SCREEN ya que si utilizamos la sentencia LEAVE TO SCREEN 0 con SET SCREEN nos echará del programa.