En el caso que se quiera añadir campos de selección en la pantalla de selección por asientos o ficheros del monitor de B+ SILICIE, se deberá realizar una ampliación de imagen mediante la BADI /EDGE/BADI_SL_MONITOR_ENH.
En dicha BADI encontraremos dos imágenes a ampliar:
Para ampliarlas, crearemos una implementación BADI sobre esta, por ejemplo:
- En el punto 1 (Programa), indicaremos un módulo de funciones que nos crearemos Z. Dicho módulo de funciones contendrá las dynpros con los campos que queramos añadir en la pantalla de selección. A continuación el ejemplo de este módulo de funciones:
1 - Nos creamos un include que contendrá los campos de las subscreens. Este include será llamado desde el TOP.
2 - Definimos las subscreen con los campos que queramos añadir. En este ejemplo añadiremos el campo de "Número de asiento" de la AT a la pantalla de selección de asientos.
NOTA: Si ampliamos una de las dos imágenes debemos de definir la otra subscreen aunque no vayamos a añadir algún campo. En este ejemplo en la pantalla de ficheros no vamos a añadir campos pero hemos definido la subscreen 20.
- En el punto 2 (Subscreen) indicaremos el número de subscreen que hayamos definido en el módulo de funciones Z que se corresponda con la ampliación de la imagen que corresponda. En el ejemplo hemos definido la subscreen Z nº 10 como la ampliación de los asientos (imagen 13) y la subscreen Z nº 20 para la ampliación de la pantalla de los ficheros (imagen 14).
Ahora en la implementación BADI anterior informaremos los campos así:
Hasta este punto tendremos el campo que queremos en la pantalla de selección del monitor:
Ahora tenemos que añadir la funcionalidad de filtrado, para ello crearemos un módulo de funciones en nuestro grupo de funciones Z que recupere los valores del campo de la subscreen y los pase por parámetro en una tabla.
Este módulo de funciones tendrá el siguiente parámetro de changing:
El código de este módulo de funciones es el siguiente:
Por último, este módulo de funciones lo llamaremos desde el método GET_DATA_ASIENTOS de la clase que implementa nuestra implementación BADI:
El producto de b+ SILICIE utiliza los campos recogidos en la estructura /edge/rp_sl_monitor_selscr_asi para filtrar los registros de la tabla de asientos /edge/t_sl_901 y los campos de la estructura /edge/rp_sl_monitor_selscr_fic para filtrar los ficheros de la tabla /edge/t_sl_902.
Se ofrece la posibilidad de que desde el cliente, se pueda generar una estructura Z para asientos y otra para ficheros para definir más campos por los que filtrar de las tablas de BD /edge/t_sl_901 y /edge/t_sl_902.
Estas estructuras Z deberán informarse en los campos de parámetro de SILICIE en la trx, /EDGE/FC_SPRO como en este ejemplo que se informa de una para asientos:
La estructura Z de ejemplo ZCAMPOS_EXTRA_SEL_ASI_SILICIE es la siguiente:
Como se puede ver, debe coincidir el nombre del campo y tipo de datos de la estructura Z con el campo y tipo de dato de la tabla /edge/t_sl_901 o /edge/t_sl_902 según sea el caso.
Para ampliar los campos de selección en el monitor de b+ SILICIE,existen 3 puntos de ampliación explicitos en el include /EDGE/RP_SL_MONITOR_SEL del report /EDGE/RP_SL_MONITOR.
- Punto de ampliación de variables para SELECT-OPTIONS
En este punto de ampliación se declararán aquellas variables necesarias para, posteriormente, declarar los SELECT-OPTIONS en los puntos de asientos o ficheros.
En el ejemplo se ha declarado la siguiente estructura del tipo de estructura de la Z para ampliar campos de selección de la tabla /edge/t_sl_901:
Como se indica en los comentarios, se recomienda declarar las variables de este espacio de manera que empiecen por ZENH_ para evitar conflictos con nomenclatura del producto.
- Punto de ampliación de select-options de asientos
En este punto de ampliación se declararán los select-options de los campos nuevos por los que queramos filtrar en los asientos. En el ejemplo se ha declarado un nuevo select-option que filtrará por el número de asiento de la AEAT haciendo uso de la estructura declarada en el punto de ampliación anterior:
Advertencia |
---|
Los select-options declarados en este punto deberán llevar como MODIF ID el código SA para que se tengan en cuenta a la hora de realizar el SELECT a la tabla /edge/t_sl_901. |
- Punto de ampliación de select-options de ficheros
En este punto de ampliación se declararán los select-options de los campos nuevos por los que queramos filtrar los ficheros.
Advertencia |
---|
Los select-options declarados en este punto deberán llevar como MODIF ID el código SF para que se tengan en cuenta a la hora de realizar el SELECT a la tabla /edge/t_sl_902. |