![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️ABAP La construcción del programa impresor
ABAP La construcción del programa impresor
![ABAP La construcción del programa impresor ABAP La construcción del programa impresor](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/401.jpg)
1. Construcción del programa Impresor de un formulario Smartform:
Los objetivos principales del programa impresor de un formulario Smartform son:
.- La seleccion de los datos que se mostrarán en el formulario.
.- La invocación o ejecución del formulario.
Si bien en el formulario Samrtform podemos agregar sentencias de código y selecciones de datos, es sumamente conveniente minimizar el código que se coloca en los formularios debido a una cuestion de performance y facilidad de mantenimiento futuro de estos objetos.
2. Seleccion de los datos
Crearemos el Pgm ZPRUEBA_SMARTFORMS y dentro de este la subrutina SELECCION_DATOS para modularizar la selección de los datos. Utilizaremos la tabla base de datos ZTABLA_USUARIOS_XXXXX creada por nosotros en el Nivel Inicial.
Los datos de la tabla ZTABLA_USUARIOS lo almacenaremos en la TI_USUARIOS que tiene la misma estructura pero sin el campo mandante.
DATA: ti_usuarios TYPE STANDARD TABLE OF zusuarios..
CLEAR ti_usuarios. REFRESH ti_usuarios. SELECT dni nombre_ape estado_usu direccion codigo_postal f_nacimiento estado_civil FROM ztabla_usuarios INTO CORRESPONDING FIELDS OF TABLE ti_usuarios. 3. Invocación del Formulario:.
Se creará el formulario Smartform ZFORMULARIO_PRUEBA ingresando a la transacción SMARTFORMS y presionando el botón Crear.
En el programa impresor ZPRUEBA_SMARTFORMS , se va a utilizar dos módulos de función para ejecutarlo. Primero la función "SSF_FNCTION_MODULO_NAME" para averiguar el nombre de la función SAP que ejecuta el formulario.
El nombre de esta función lo almacenamos en la varianble V_NOMBRE_FORM como se verá en el siguiente código:
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' EXPORTING formname = 'ZFORMULARIO_PRUEBA' IMPORTING fm_name = v_nombre_form EXCEPTIONS no_form = 1 no_function_module = 2 OTHERS = 3. IF sy-subrc NE 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF.Audio:
Tabla STXFADMI contiene los formularios SMARTFORMS existentes en el sistema SAP, junto con el numero de funciones generados para la ejecucion.
Luego ejecutaremos la función cuyo nombre contiene la variable v_nombre_form pasandole como parámetro de entrada/salida la tabla interna d usuarios ti_usuarios que obtuvimos de la tabla base de datos ZTABLA_USUARIOS en la subrutina SELECCION_DATOS.
CALL FUNCTION v_nombre_form TABLES ti_usuarios = ti_usuarios EXCEPTIONS formatting_error = 1 internal_error = 2 send_error = 3 user_canceled = 4 OTHERS = 5. IF sy-subrc NE 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. ENDiF.En las secciones EXPORTING y TABLES de la funcion conetenida en la variable v_nombre_form es donde se especifican todos los parámetros que enviaremos al formulario.
 
 
 
Sobre el autor
Publicación académica de Carlos Alberto Carreira, en su ámbito de estudios para la Carrera Consultor ABAP.
Carlos Alberto Carreira
Profesión: Consultor Técnico en Jde W.s. - Argentina - Legajo: KC15G
✒️Autor de: 92 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Inicial
🎓Egresado de los módulos:
Certificación Académica de Carlos Carreira