![](/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/188.jpg)
Construcción del programa impresor de un formulario SmartForm
- La selección de los datos que se mostrarán en el formulario.
- La invocación o ejecución del formulario.
Dentro de los formularios podemos agregar códigos de sentencia y selecciones de datos, es conveniente reducir el código que se coloca en los formularios para optimizar una perfomance y facilidad de mantenimientos de futuros objetos.
Selección de los datos
Creamos un programa ZPUEBA_SMARTFORMS y dentro de la subrutina SLECCION_DATOS para modular izar la selección de datos Utilizaremos la tabla base de datos de ZTABLA_USUARIOS.
CLEAR ti_usuarios.
REFRESH ti_usuarios.
SELECT dmi nombre_ape estado_usu dirección código_postal f_nacimiento estado_civil
FROM stable_usuarios
INTO TABLE ti_usuarios
Amlacenamos la tabla interna dentro IT_USUARIOS tiene la misma estructura que la tabla ZTABLA_USUARIOS pero sin campo mandante
REPORT Aprueba_smartforms
DATA: v_nombre_from(30) TYPE c.
DATA: ti_usuarios TYPE STANDARD TABLE OF ZUSUARIOS
START-OF-SELECION
PERFORM cargar_datos.
PERFORM invocar_smartform.
Invocación del formulario
Creamos el formulario Smartform ZFORMULARIO_PRUEBA ingresando a la transacción y creamos.
Volviendo al programa impresor ZPRUEBA_SMARTFORMS vamos a utilizar dos módulos de función para ejecutarlos primero es la función SSF_FUNCTION_MODULE_NAME para averiguar el nombre de la función SAP e ejecuta el formulario.
EL nombre de la función lo almacenamos en V_NOMBRE_FROM
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
forname ='ZFORMULARIO_PRUEBA'
IMPORTING
fm_name = v_nombre_form
EXCEPTIONS
no_form =1
no_function_module =2
OTHERS =3.
IF sy-subrc NE 0.
MESSAJE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
Luego ejecutaremos la función cuyo nombre contiene la variable V_NOMBRE_FORM pasándole los parámetros entrada/salida de la tabla interna de usuarios TI_USUARIOS que obtuvimos de la tabla 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.
MESSAJE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
En EEXPORTING Y TABLES de la función contenida en la variable V_NOMBRE_FORM es donde se especificantodos los parámetros que enviaremos al formulario.
 
 
 
Sobre el autor
Publicación académica de Juan Carlos Pavicich, en su ámbito de estudios para la Carrera Consultor ABAP.
Juan Carlos Pavicich
Profesión: Técnico Informático - Argentina - Legajo: VR91L
✒️Autor de: 116 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Presentación:
Tengo el agrado de dirigirme a ud/s con el objeto de mencionar mi experiencia y conocimientos técnicos necesarios para desarrollar actividades en el rubro de su empresa.
Certificación Académica de Juan Pavicich