Documentos de Académico
Documentos de Profesional
Documentos de Cultura
. Verificacin de campos obligatorios. Verificacin de llaves forneas. Verificacin valores fijos. 1.2 Mensajes en pantalla Mensaje de Error. Mensaje de Advertencia. Mensaje de Informacin. Mensaje de Buen Resultado. Mensaje de Interrupcin. 1.3 Configuracin dinmica de pantallas 1.4 Ejecucin Condicionada De Mdulos ON CHAIN-[INPUT REQUEST] 2 Modificacin Dinmica de Pantallas. 3 Definicin y Manejo de Tabstrip controls.
2 5 6 7 14 17 19 21 23 25 31 58 67
4 horas
Tcnicas Especiales del Screen Painter. 3.1 Verificacin automtica en Module Pool Verificacin de formato. Verificacin de campos obligatorios. Verificacin de llaves forneas. Verificacin valores fijos.
El dynpro tendra los siguientes elementos: I_FECHA: elemento de Formato Fecha DATS. I_MONTO: elemento de Formato Fecha DEC.
Finalmente, una vez activado el Dynpro se pueden hacer las pruebas con los siguientes valores, se observar que sin agregar cdigo el sistema valida el contenido de los campos de pantalla de acuerdo a su formato.
3.3 Verificacin de campos obligatorios. Al momento de que algn campo de la pantalla se le asigna el atributo de que es obligatorio, el procesador de dilogo no contina con el proceso, al menos que todos los campos obligatorios tengan algn valor. Ejemplo: Al crear un dynpro similar al ejemplo de Verificacin de formato, modificando el elemento I_FECHA, del siguiente modo:
En el Servidor, el programa ZNICAPII1B llama a este dynpro del ejemplo: Finalmente, una vez activado el Dynpro se pueden verificar que el sistema pide que se ingrese un valor para el campo I_FECHA.
3.4 Verificacin de llaves forneas. Una verificacin de clave fornea es procesada solo si un campo de pantalla se refiere a un campo del Diccionario para el cual se ha definido una tabla de verificacin. Al mismo tiempo, la funcionalidad de la tecla F4 es activada. Esto significa que las posibles entradas para un campo son desplegadas. Ejemplo: Al crear en un dynpro un elemento que haga referencia a un campo de una Tabla que tiene Foreign Key a otra Tabla, como es el caso de SBOOK-CARRID con SCARRCARRID, del siguiente modo:
En el Servidor, el programa ZNICAPII1C llama a este dynpro del ejemplo: Finalmente, una vez activado el Dynpro se pueden verificar que el sistema slo permite el ingreso se valores existentes en el campo de la Tabla SBOOK-CARRID.
3.5 Verificacin valores fijos. En el Diccionario ABAP/4, se pueden definir los valores fijos para los dominios. Si se define un campo de pantalla con referencia a un dominio con valores fijos, ocurre lo siguiente: Los valores fijos son desplegados si el usuario presiona la tecla F4 para ver los posibles valores para el campo de entrada. El procesador de dilogo verifica los valores introducidos en el campo contra el conjunto de valores fijos del Dominio correspondiente. Ejemplo: Al crear en un dynpro un elemento que haga referencia a un campo de una Tabla que tiene un dominio con valores fijos, como es el caso del campo Clase de Vuelo del campo de tabla SBOOK-CLASS, del siguiente modo.
En el Servidor, el programa ZNICAPII1D llama a este dynpro del ejemplo: Finalmente, una vez activado el Dynpro se pueden verificar que el sistema slo permite el ingreso se valores existentes del dominio para el campo de la Tabla SBOOK-CLASS. Conjunto de valores para el campo SBOOK-CLASS: C Business class Y Economy class F First class
3.6 Mensajes en pantalla Mensaje de Error. Mensaje de Advertencia. Mensaje de Informacin. Mensaje de Buen Resultado. Mensaje de Interrupcin.
Mensajes en pantalla
3.7 Mensaje de Error. El texto de un mensaje de error (E) es desplegado en la pantalla actual. Todos los campos de pantalla asignados al mdulo correspondiente (instruccin se vuelven disponibles para introducir informacin de nuevo. El sistema obliga al usuario a reintroducir datos. Ejemplo de Mensaje de Error Al crear un dynpro con 3 elementos que haga referencia a 3 variables de un programa.
FIELD)
Casos de Prueba Mensaje de Error El Modulo chain_module_1 muestra un mensaje de error si la Suma de los campos es menor a 100, Chain permite el ingreso de valores en los 3 campos.
3.8 Mensaje de Advertencia. El texto del mensaje de advertencia (W) es desplegado en la pantalla actual. Todos los campos de pantalla asignados al mdulo correspondiente (instruccin se vuelven disponibles para introducir informacin de nuevo.
FIELD)
El usuario puede reintroducir los datos o ignorar el mensaje de advertencia presionando la tecla ENTER. Ejemplo de Mensaje de Advertencia Al crear un dynpro con 3 elementos que haga referencia a 3 variables de un programa.
10
Casos de Prueba Mensaje de Advertencia El Modulo chain_module_1 muestra un mensaje de Advertencia si la Suma de los campos es igual a 100, Chain permite el ingreso de valores en los 3 campos.
11
3.9 Mensaje de Informacin. El texto de un mensaje de informacin (I) es desplegado en la pantalla actual. El proceso de la pantalla actual es suspendido. Despus de que el usuario presione la tecla ENTER, el programa contina con su ejecucin normal desde el punto donde fue suspendido. Ejemplo de Mensaje de Informacin Al crear un dynpro con 3 elementos que haga referencia a 3 variables de un programa.
12
Casos de Prueba Mensaje de Informacin El Modulo chain_module_1 muestra un mensaje de Informacin si la Suma de los campos est en el rango de 100 a 150, Chain permite el ingreso de valores en los 3 campos.
13
3.10
Un mensaje de texto de buen resultado ( S) es desplegado en la pantalla siguiente a la actual. Ejemplo de Mensaje de Buen Resultado Al crear un dynpro con 3 elementos que haga referencia a 3 variables de un programa.
14
Casos de Prueba Mensaje de Buen Resultado El Modulo chain_module_1 muestra un mensaje de Buen Resultado si la Suma de los campos es mayor a 100.
El Modulo chain_module_1 muestra un mensaje de Error si la Suma de los campos es menor a 100, Chain permite el ingreso de valores en los 3 campos.
15
3.11
Mensaje de Interrupcin.
El texto de un mensaje de Interrupcin (A) es desplegado en la pantalla actual. Despus de que el usuario presione la tecla ENTER, el proceso actual es terminado y el proceso regresa a la pantalla inicial. Ejemplo de Mensaje de Buen Resultado Al crear un dynpro con 3 elementos que haga referencia a 3 variables de un programa.
16
Casos de Prueba Mensaje de Interrupcin El Modulo chain_module_1 muestra un mensaje de Interrupcin si la Suma de los campos es menor a 10, el proceso actual es terminado.
17
3.12
3.13
Ejemplo de Sentencia SET SCREEN Crear dos dynpro cualquiera 100 y 200 asociados a un programa. En el Servidor, el programa ZNICAPII1L llama a estos dynpros del ejemplo:
1
En el Screen Painter (Transaccin SE51), creamos los dynpros 100 y 200 para el programa ZNICAPII1L.
18
19
Por defecto, cuando acaben los mdulos del evento PAI, el sistema saltar a la pantalla que indique el atributo Next Screen de la pantalla en ejecucin. Es posible modificar el atributo de la prxima pantalla con la instruccin SET. SET SCREEN <no._pantalla>.
Donde los mdulos PBO_100 y PAI_100 (dentro del programa ZNICAPII1L) seran de la siguiente forma:
*Modulos PBO *&---------------------------------------------------------------------* *& Module PBO_100 OUTPUT *&---------------------------------------------------------------------* MODULE PBO_100 OUTPUT. SET PF-STATUS 'STATUS_100'. ENDMODULE. *Modulos PAI *&---------------------------------------------------------------------* *& Module PAI_100 INPUT *&---------------------------------------------------------------------* MODULE PAI_100 INPUT. SET SCREEN 200. LEAVE SCREEN. ENDMODULE.
La instruccin SET SCREEN XXX rescribe temporalmente la siguiente pantalla a procesar. La pantalla xxx debe ser una pantalla del mismo "module pool".
20
La pantalla siguiente es procesada despus de procesar la pantalla actual, o al menos que se termine la ejecucin de la pantalla actual con la instruccin LEAVE SCREEN. Al encontrar esta instruccin, se ejecuta la pantalla siguiente en forma inmediata.
Si se desea terminar el procesamiento de la pantalla actual e ir directamente a la pantalla siguiente en una sola instruccin, se puede usar el estatuto LEAVE TO SCREEN xxx.
21
3.14
La instruccin CALL SCREEN xxx interrumpe el procesamiento de la pantalla actual para procesar la pantalla xxx y las pantallas subsecuentes. La pantalla llamada con esta instruccin deber ser una pantalla del mismo "module pool". Ejemplo de Sentencia CALL SCREEN Crear dos dynpro cualquiera 100 y 200 asociados a un programa. En el Servidor, el programa ZNICAPII1L llama a estos dynpros del ejemplo:
1
En el Screen Painter (Transaccin SE51), creamos los dynpros 100 y 200 para el programa ZNICAPII1M (Ntese que son iguales al del programa ZNICAPII1L).
La lgica del programa ZNICAPII1M sera como el siguiente:
REPORT ZNICAPII1M MESSAGE-ID zmsg001. CALL SCREEN 100. *&---------------------------------------------------------------------* *& Module PBO_XXX OUTPUT *&---------------------------------------------------------------------* MODULE PBO_XXX OUTPUT. SET PF-STATUS 'STATUS_XXX'. ENDMODULE. *&---------------------------------------------------------------------* *& Module PAI_100 INPUT *&---------------------------------------------------------------------* MODULE PAI_100 INPUT. CALL SCREEN 200. ENDMODULE. *&---------------------------------------------------------------------* *& Module PAI_200 INPUT *&---------------------------------------------------------------------* MODULE PAI_200 INPUT. SET SCREEN 0. LEAVE SCREEN. ENDMODULE. *&---------------------------------------------------------------------* *& Module CANCELAR INPUT *&---------------------------------------------------------------------* MODULE CANCELAR INPUT. LEAVE PROGRAM. ENDMODULE.
22
Finalmente, una vez grabado y activado el programa y los dynpros, podemos ver el fuljo de los dynpros:
23
Si se especifica la adicin ON REQUEST despus de MODULE en una instruccin FIELD, el mdulo es ejecutado nicamente si el campo relevante tiene una nueva entrada. En un estatuto CHAIN, se debe usar la instruccin ON CHAIN-REQUEST. Entonces, el mdulo concerniente es procesado solamente si al menos uno de los campos de pantalla del estatuto CHAIN tiene una nueva entrada.
PROCESS AFTER INPUT. FIELD <campo de pantalla>. MODULE <mdulo> ON REQUEST. . . PROCESS AFTER INPUT. CHAIN. FIELD <campo de pantalla>, <campo de pantalla>, . . <Campo de pantalla>. MODULE <mdulo> ON CHAINREQUEST. ENDCHAIN.
24
Ejemplo de Sentencia ON INPUT, ON CHAIN-INPUT y ON CHAIN-REQUEST Creamos un programa con 6 campos, del modo siguiente: En el Servidor, el programa ZNICAPII1N llama a este dynpro del ejemplo:
25
Los Text-Elements text-001, text-002 y text-003 que mostraran los mdulos PAI seran como los siguientes:
26
Finalmente, una vez grabado y activado el programa y sus elementos podemos ver como trabajan las sentencias ON INPUT, ON CHAIN-INPUT y ON CHAIN-REQUEST.
Si se modifica al menos un campo, sale el mensaje, Notar que si no modificamos los valores ingresados y le damos ENTER a la pantalla el mensaje ON CHAIN-REQUEST no vuelve a aparecer porque no ha variado los valores en los campos.
27
3.15
Ejemplo de Sentencia SET SCREEN Crear dos dynpro cualquiera 100 y 200 asociados a un programa. En el Servidor, el programa ZNICAPII1L llama a estos dynpros del ejemplo:
1
En el Screen Painter (Transaccin SE51), creamos los dynpros 100 y 200 para el programa ZNICAPII1L.
28
Por defecto, cuando acaben los mdulos del evento PAI, el sistema saltar a la pantalla que indique el atributo Next Screen de la pantalla en ejecucin. Es posible modificar el atributo de la prxima pantalla con la instruccin SET. SET SCREEN <no._pantalla>.
Donde los mdulos PBO_100 y PAI_100 (dentro del programa ZNICAPII1L) seran de la siguiente forma:
*Modulos PBO *&---------------------------------------------------------------------* *& Module PBO_100 OUTPUT *&---------------------------------------------------------------------* MODULE PBO_100 OUTPUT. SET PF-STATUS 'STATUS_100'. ENDMODULE. *Modulos PAI *&---------------------------------------------------------------------* *& Module PAI_100 INPUT *&---------------------------------------------------------------------* MODULE PAI_100 INPUT. SET SCREEN 200. LEAVE SCREEN. ENDMODULE.
La instruccin SET SCREEN XXX rescribe temporalmente la siguiente pantalla a procesar. La pantalla xxx debe ser una pantalla del mismo "module pool".
29
La pantalla siguiente es procesada despus de procesar la pantalla actual, o al menos que se termine la ejecucin de la pantalla actual con la instruccin LEAVE SCREEN. Al encontrar esta instruccin, se ejecuta la pantalla siguiente en forma inmediata.
Si se desea terminar el procesamiento de la pantalla actual e ir directamente a la pantalla siguiente en una sola instruccin, se puede usar el estatuto LEAVE TO SCREEN xxx.
30
3.16
La instruccin CALL SCREEN xxx interrumpe el procesamiento de la pantalla actual para procesar la pantalla xxx y las pantallas subsecuentes. La pantalla llamada con esta instruccin deber ser una pantalla del mismo "module pool". Ejemplo de Sentencia CALL SCREEN Crear dos dynpro cualquiera 100 y 200 asociados a un programa. En el Servidor, el programa ZNICAPII1L llama a estos dynpros del ejemplo:
1
En el Screen Painter (Transaccin SE51), creamos los dynpros 100 y 200 para el programa ZNICAPII1M (Ntese que son iguales al del programa ZNICAPII1L).
La lgica del programa ZNICAPII1M sera como el siguiente:
REPORT ZNICAPII1M MESSAGE-ID zmsg001. CALL SCREEN 100. *&---------------------------------------------------------------------* *& Module PBO_XXX OUTPUT *&---------------------------------------------------------------------* MODULE PBO_XXX OUTPUT. SET PF-STATUS 'STATUS_XXX'. ENDMODULE. *&---------------------------------------------------------------------* *& Module PAI_100 INPUT *&---------------------------------------------------------------------* MODULE PAI_100 INPUT. CALL SCREEN 200. ENDMODULE. *&---------------------------------------------------------------------* *& Module PAI_200 INPUT *&---------------------------------------------------------------------* MODULE PAI_200 INPUT. SET SCREEN 0. LEAVE SCREEN. ENDMODULE. *&---------------------------------------------------------------------* *& Module CANCELAR INPUT *&---------------------------------------------------------------------* MODULE CANCELAR INPUT. LEAVE PROGRAM. ENDMODULE.
31
Finalmente, una vez grabado y activado el programa y los dynpros, podemos ver el fuljo de los dynpros:
32
A B
A B
campos de salida
Tambin se puede usar la modificacin dinmica de pantallas para facilitar el ocultar ciertos campos y as evitar secuencias dinmicas de pantallas. Atributos de campos Modificables Los campos de pantalla y sus atributos modificables son automticamente almacenados en la tabla interna SCREEN. La tabla SCREEN es inicializada con los campos definidos en el Screen Painter y con sus atributos cada vez que el mdulo PBO es ejecutado. Para determinar los campos para los cuales se puede cambiar uno ms atributos, se lee el campo SCREEN-NAME y del campo SCREEN-GROUP1 al campo SCREEN-GROUP4 en la tabla SCREEN. El campo SCREEN-REQUEST est reservado para uso interno del sistema. Puede modificar la estructura de un Dynpro en su programa ABAP durante el evento PBO del Dynpro. Las nicas sentencias permitidas que se puede utilizar para modificar la pantalla son:
LOOP AT SCREEN. ... MODIFY SCREEN. ... ENDLOOP.
es una sentencia propia, que no debe confundirse con un LOOP ms sobre una tabla interna.
LOOP AT SCREEN
LOOP AT SCREEN
en el evento
AT SELECTION-SCREEN
33
Atributos: Modificacin de grupos Se puede asignar un campo a cuatro grupos diferentes. Los nombres de grupos son de tres caracteres de longitud y pueden ser definidos libremente.
Modificacin de Grupos Field name Group1 Group2 Group3 Group4
DEMO_CONN-CARRID DEMO_CONN-CONNID DEMO_CONN-CITYFROM DEMO_CONN-CITYTO DEMO_CONN-ARRTIME DEMO_CONN-DISTANCE DEMO_CONN-FLDATE MOD MOD MOD MOD MOD
En el Screen Painter en atributos del campo y en la Parte Groups, podemos asignar un campo a cuatro grupos diferentes. En la grfica se asigna el campo DEMO_CONNCITYFROM al grupo MOD.
34
Ejemplo de Modificacin dinmica de campos de pantallas. Creamos un programa de dilogo con un dynpro 100. En el Servidor, el programa ZNICAPII4A llama a este dynpro del ejemplo: El dynpro 100 tiene siete campos de entrada, que hacen referencia a los campos de diccionario de la estructura DEMO_CONN. Los campos DEMO_CONNCARRID y DEMO_CONNCONNID no estn asignados a ningn grupo de modificacin, el resto de campos de la estructura DEMO_CONN estn asignados al grupo de modificacin MOD El botn Alternar en la pantalla y el botn el men bar Alternar/Modificar tienen el mismo Function code = ALT.
35
El dynpro 100 tiene siete campos de entrada, que hacen referencia a los campos de diccionario de la estructura DEMO_CONN.
Los campos de entrada DEMO_CONNCARRID y DEMO_CONNCONNID no estn asignados a ningn grupo de modificacin, El resto de campos de entrada de la estructura DEMO_CONN estn asignados al grupo de modificacin MOD
36
El botn Alternar en la pantalla y el botn el men bar Alternar/Modificar tienen el mismo Function code = ALT. Para el dynpro 100, se crea el STATUS 'SCREEN_100'. En el Application toolbar se crea el Function code = ALT.
En el Screen Painter para el botn Alternar en el dynpro 100 se le asocia el Function code = ALT.
37
Para el dynpro 100, en el STATUS 'SCREEN_100'. En el Standard toolbar se crea el Function code = OUT, del tipo E. Para el mdulo PAI MODULE cancel AT EXIT-COMMAND, el cual permite escapar de la pantalla ante cualquier validacin.
PROCESS BEFORE OUTPUT. MODULE status_0100. PROCESS AFTER INPUT. * Function code = OUT, escapa de las validaciones MODULE cancel AT EXIT-COMMAND. MODULE user_command_0100.
38
La lgica del programa ZNICAPII4A (el cual contienen los Mdulos necesarios) sera como el siguiente:
REPORT ZNICAPII4A. ************************************************************************ *CAPITULO II * * Modificacin dinmica de campos de pantallas * * Ejemplo de LOOP AT SCREEN-- MODIFY SCREEN * * Responsable: Carlos Ancasi (7C) * ************************************************************************ DATA: OK_CODE TYPE SY-UCOMM, FCODE TYPE SY-UCOMM. DATA flag(1) TYPE C. CALL SCREEN 100. *&---------------------------------------------------------------------* *& Module STATUS_0100 OUTPUT *&---------------------------------------------------------------------* MODULE STATUS_0100 OUTPUT. SET PF-STATUS 'SCREEN_100'. SET TITLEBAR 'TIT_100'. * Modif. dinmica de campos de pantallas, PERMITIR O NO INGRESAR VALORES LOOP AT SCREEN. IF screen-group1 = 'MOD'. IF flag = ' '. screen-input = '0'. ELSEIF flag = 'X'. screen-input = '1'. ENDIF. MODIFY SCREEN. ENDIF. ENDLOOP. ENDMODULE. " STATUS_0100 OUTPUT *&---------------------------------------------------------------------* *& Module USER_COMMAND_0100 INPUT *&---------------------------------------------------------------------* MODULE USER_COMMAND_0100 INPUT. fcode = ok_code. clear ok_code. CASE fcode. WHEN 'ALT'. IF flag = ' '. flag = 'X'. ELSEIF flag = 'X'. flag = ' '. ENDIF. WHEN 'SALIR'. LEAVE TO SCREEN 0. ENDCASE. ENDMODULE. " USER_COMMAND_0100 INPUT *&---------------------------------------------------------------------* *& Module cancel INPUT *&---------------------------------------------------------------------* MODULE cancel INPUT. LEAVE PROGRAM. ENDMODULE. " cancel INPUT
39
Finalmente, una vez grabado y activado el programa y sus elementos podemos ver como trabajan las sentencias LOOP AT SCREEN y MODIFY SCREEN. Abrimos una sesin y ejecutamos el programa ZNICAPII4A y notaremos que los ltimos 5
campos estn bloqueados para ingresar valores.
Si damos click en el botn Alternar de la pantalla o en el botAlternar/Modificardel men bar notaremos que los ltimos 5 campos ya no estn bloqueados para ingresar valores.
40
Tabstrips Controls
Definicin de Tabstrip controls Un control tabstrip pantalla es un objeto compuesto por dos o ms fichas o pestaas. Cada ficha consta de un ttulo y una zona para elementos de pantalla. Si la zona ocupada por el control tabstrip es demasiado estrecha para mostrar todos los ttulos de la pestaa, aparece una barra de desplazamiento, lo que le permite llegar a los ttulos que no se muestran. Tambin hay un botn que le permite mostrar una lista de todos los ttulos de ficha.
Pasos para creacin un control tabstrip. Cuando se crea un control tabstrip, usted debe: 1. Definir el rea del tabstrip en la pantalla y los ttulos de las pestaas. 2. Asignar un Subscreen para cada una de los ttulos de las pestaas. 3. Programar el flow logic de la pantalla. 4. Programar la lgica de procesamiento ABAP. Programacin del flow logic En el flow logic, todo lo que tiene que hacer a mano es incluir los correctos subscreens. El flujo de pantallas y el transporte de datos para el programa ABAP es el mismo que para subscreens normales.
El flow logic del Dynpro que contiene al tabstrip sera como el siguiente:
PROCESS BFORE OUTPUT. ... CALL SUBSCREEN: area1 INCLUDING [prog1] dynp1, area2 INCLUDING [prog2] dynp2, area3 INCLUDING [prog3] dynp3, ... ... PROCESS AFTER INPUT. ... CALL SUBSCREEN: area1, area2, area3, ... ...
41
42
Ejemplo de Tabstrip Controls. Creamos un programa con un dynpro 100, el cual contiene el tabstrip w_tabstrip. El tabstrip tiene tres pestaas, a las cuales se les asignar los subscreen 110, 120 y 130. (En el Servidor, el programa ZNICAPII5A llama a este dynpro del ejemplo). Creamos el programa ZNICAPII5A en la Transaccin SE80. Crear el tabstrip en el screen painter. Llamamos un dynpro 100 y lo creamos. En el screen painter seleccionamos el icono tabstrip control y dibujamos el rea que ocupar, por default nos aparecern dos pestaas.
Nos pedir el nombre del tabstrip (w_tabstrip para el ejemplo), y en la parte de Atributos en Tab title (nmero de pestaas) le ponemos 3.
43
Procedemos a definir las pestaas. Definicin pestaa 1. Le damos doble clic en la primera pestaa y le colocamos los sgtes valores.
Debemos Asignar el Fct Code = PUSH1 con el Fct Type = P, los cuales permiten el traslado entre pestaas y el visualizar los subscreens de las pestaas. En Atributos en el campo Ref. field ir el subscreen rea (SUB1) que colocaremos dentro del rea de la pestaa. En el screen painter seleccionamos el icono dentro del rea de la pestaa y le llamamos SUB1. subscreen rea, el cual dibujamos
Si vemos de nuevo los atributos de la pestaa notaremos que el campo ha sido llenado con SUB1, y ya tenemos definida la pestaa. En un paso posterior dibujaremos los campos del subscreen (110 para el ejemplo) que ir dentro del subscreen rea SUB1.
44
Procedemos de igual forma para la segunda y tercera pestaa. Definicin pestaa 2. En Atributos en el campo Ref. field ir el subscreen rea (SUB2) que colocaremos dentro del rea de la segunda pestaa.
En un paso posterior dibujaremos los campos del subscreen (120 para el ejemplo) que ir dentro del subscreen rea SUB2. Definicin pestaa 3. En Atributos en el campo Ref. field ir el subscreen rea (SUB3) que colocaremos dentro del rea de la tercera pestaa.
En un paso posterior dibujaremos los campos del subscreen (130 para el ejemplo) que ir dentro del subscreen rea SUB3.
45
Procedemos a definir los subscreens. Definicin subscreen 110. En la transaccin SE80 para el programa ZNICAPII5A.
crear o F5.
En el
46
El subscreen 110 sera del siguiente modo. Tiene un campo de entrada input1 del tipo Numrico.
Definicin subscreen 120. Procedemos de igual modo que el subscreen 110, entonces el subscreen 120 sera del siguiente modo. Tiene un campo de entrada input2 del tipo Numrico.
47
Definicin subscreen 130. Procedemos de igual modo que el subscreen 110, entonces el subscreen 130 sera del siguiente modo. Tiene un campo de entrada input3 del tipo Numrico similar a input2. Adems tiene un botn promediar con el FctCode = PROM, el cual calcula el promedio de input1 y input2 y lo muestra en input3
La pantalla principal 100, la cual contiene al tabstrip tiene un botn continue el cual muestra un mensaje con la pestaa activa.
48
Procedemos a definir GUI STATUS Definicin GUI STATUS SCREEN_100. En la transaccin SE80 para el programa ZNICAPII5A.
crear o F5.
En el Standard Toolbar el Function code = CANCEL es del tipo E el cual se utiliza en los Eventos AT EXIT-COMMAND para escapar de todas la validaciones en pantalla.
49
La lgica del programa ZNICAPII5A (el cual contienen los Mdulos necesarios) sera como el siguiente:
REPORT ZNICAPII5A . CONTROLS w_tabstrip TYPE TABSTRIP. DATA: ok_code TYPE sy-ucomm, save_ok TYPE sy-ucomm. DATA: INPUT1(10) TYPE N,"CAMPO INPUT DE SUBSCREEN 110 INPUT2(10) TYPE N,"CAMPO INPUT DE SUBSCREEN 120 INPUT3(10) TYPE N."CAMPO INPUT DE SUBSCREEN 130 w_tabstrip-activetab = 'PUSH3'. CALL SCREEN 100. *&---------------------------------------------------------------------* *& Module STATUS_0100 OUTPUT *&---------------------------------------------------------------------* MODULE STATUS_0100 OUTPUT. SET PF-STATUS 'SCREEN_100'. SET TITLEBAR 'T100'. ENDMODULE. " STATUS_0100 OUTPUT *&---------------------------------------------------------------------* *& Module CANCEL INPUT *&---------------------------------------------------------------------* MODULE CANCEL INPUT. LEAVE PROGRAM. ENDMODULE. " CANCEL INPUT *&---------------------------------------------------------------------* *& Module USER_COMMAND_0100 INPUT *&---------------------------------------------------------------------* MODULE USER_COMMAND_0100 INPUT. save_ok = ok_code. CLEAR ok_code. IF save_ok = 'OK'. MESSAGE i888(sabapdocu) WITH 'Pestaa Activa W_TABSTRIP-ACTIVETAB =' w_tabstrip-activetab. ENDIF. ENDMODULE. " USER_COMMAND_0100 INPUT *&---------------------------------------------------------------------* *& Module UC_0130 INPUT *&---------------------------------------------------------------------* MODULE UC_0130 INPUT. save_ok = ok_code. * CLEAR ok_code. CASE SAVE_OK. WHEN 'PROM'. INPUT3 = ( INPUT1 + INPUT2 ) / 2. ENDCASE. ENDMODULE. " UC_0130 INPUT
50
El flow logic del Dynpro 100 (el cual contiene el tabstrip) correspondiente sera como el siguiente:
PROCESS BEFORE OUTPUT. MODULE STATUS_0100. *DEFINE EL SUBSCREEN EN QUE SUBSCREEN AREA APARECER CALL SUBSCREEN: SUB1 INCLUDING SY-REPID '0110', SUB2 INCLUDING SY-REPID '0120', SUB3 INCLUDING SY-REPID '0130'. PROCESS AFTER INPUT. MODULE CANCEL AT EXIT-COMMAND. *LLAMA A LOS MODULOS PAI DE LOS SUBSCREENS CALL SUBSCREEN: SUB1, SUB2, SUB3. MODULE USER_COMMAND_0100.
51
Finalmente, una vez grabado y activado el programa y sus elementos podemos ver como se trabajan con los tabstrip. Abrimos una sesin y ejecutamos el programa ZNICAPII5A y colocamos valores en las
Pestaas A y B.
Luego vamos a la pestaa C y si damos click en el botn Promediar notaremos que en el campo aparece el promedio de los valores ingresados en las pestaas A y B.
52
53