Objetivo:
- Imprimir un Smartform en un Report.
- La variable CARRID será un parámetro de entrada del Smartform.
- Se mostrará el código de barras correspondiente al CARRID y toda la información relacionada con la tabla SFLIGHT
Diseño del Smartform:
- Crear un código de barras en la transacción SE73 (ZBARCODE).
- Seleccionar System Bar Codes y Change.
- Crear el nuevo código de barras con Code128 y rotación normal.
- Crear un estilo de Smartform en la transacción SMARTFORMS.
- Crear un nodo de Paragraph Format (P0).
- Márgenes por defecto y centrado
- Helve 10pt
- Crear otro nodo de Paragraph Format (P1).
- Márgenes por defecto y centrado.
- Helve 22pt y negrita.
- Asignar a Header Format el formato P0.
- Añadir un nodo Character Format (BC)
- Asignar el Código de Barras creado anteriormente en la SE73.
- Crear el Smartform en la transacción SMARTFORMS.
- Pulsar Form Painter para ver/ocultar el diseño del formulario.
- Indicar el estilo creado anteriormente en la pestaña Output Options.
- Añadir los parámetros necesarios en Form Interface:
- Parámetro de entrada Carrid en la pestaña Import.
- Tabla interna it_sflight en la pestaña Tables.
- Añadir una estructura global SFLIGHT en Global Definitions (necesario para hacer un loop a la tabla it_sflight)
- Crear las ventanas TITULO y BARCODE situándolas con sus tamaños y posiciones correspondientes.
- Introducir un texto en las ventanas TITULO y BARCODE referenciando las variables necesarias pulsando Insert Field y las variables entre el símbolo & (ver imágenes). Además seleccionar el estilo en la pestaña Output Options.
- Introducir una tabla en la ventana MAIN.
- Crear dos tipos de linea en Table Details (Header y MAIN). Uno es para el encabezado de la tabla, y el otro para el contenido de la tabla. Se indicarán cinco columnas y su ancho.
- Introducir la tabla interna it_sflight y la estructura st_sflight en la pestaña Data.
- Seleccionar el estilo creado en la pestaña Output.
![]() |
Transacción SE73 para crear un Código de Barras. |
![]() |
Dar a nuevo y seleccionar las propiedades deseadas. |
![]() |
Crear un nuevo estilo en la transacción SMARTFORMS. |
![]() |
Añadir un nodo en Paragrapgh Format. |
![]() |
Indicar las propiedades a P0. |
![]() |
Asignar el formato P0 a Header Format. |
![]() |
Añadir un nodo a Character Format para el código de barras. |
![]() |
Asignar el código de barras creado en la SE73. |
![]() |
Crear el formulario en la transacción SMARTFORMS. |
![]() |
Asignar el estilo creado. |
![]() |
Añadir parámetro import CARRID. |
![]() |
Añadir la tabla it_sflight en la que se almacenará la información de la aerolínea. |
![]() |
Definir una estructura global necesaria para el loop de la tabla. |
![]() |
Crear las ventanas necesarias. |
![]() |
Renombrar las ventanas y posicionarlas correctamente. |
![]() |
Añadir texto a las ventanas TITULO y BARCODE. |
![]() |
Introducir el parámetro CARRID entre & (Escribir &carrid& en la ventana, no directamente en el texto). |
![]() |
Añadir una tabla a la ventana Main. |
![]() |
Añadir dos tipos de linea (HEADER y MAIN) e indicar la separación de las columnas. |
![]() |
Indicar la tabla interna it_sflight y la estrucutra st_sflight en la pestaña Data. |
![]() |
Selección del estilo Output de la tabla. |
![]() |
Añadir a cada celda su elemento de texto correspondiente. El nombre de la columna en HEADER, y el valor de la tabla en MAIN. |
![]() |
Ejemplo de introducir el valor de connid de la tabla en la línea MAIN. |
- Crear un Report en la transacción SE38:
REPORT zsmartform_prueba. TABLES: sflight. DATA: g_it_sflight TYPE TABLE OF sflight, g_st_sflight TYPE sflight. PARAMETERS: p_carrid TYPE sflight-carrid. START-OF-SELECTION. SELECT * FROM sflight INTO TABLE g_it_sflight WHERE carrid = p_carrid. PERFORM imprime_smartform. *&---------------------------------------------------------------------* *& Form IMPRIME_SMARTFORM *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM imprime_smartform . DATA: fm_name TYPE rs38l_fnam, l_st_control_parameters TYPE ssfctrlop, l_st_output_options TYPE ssfcompop. DATA: l_wa_pa_form LIKE ssfscreen-fname . l_st_output_options-tdnewid = 'X'. l_st_output_options-tdimmed = 'X'. l_st_output_options-tddelete = 'X'. l_st_control_parameters-no_dialog = ' '. CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' EXPORTING formname = 'ZSMARTFORM' IMPORTING fm_name = fm_name EXCEPTIONS no_form = 1 no_function_module = 2 OTHERS = 3. CALL FUNCTION fm_name EXPORTING carrid = p_carrid TABLES it_sflight = g_it_sflight. ENDFORM. " IMPRIME_SMARTFORM
![]() |
Introducción del parámetro CARRID. |
![]() |
Visualización del Smartform. |
Gracias. Ha sido efectivo. Quise y pude!!!
ResponderEliminar