Ayuda SAP

Como pasar una tabla interna al smartforms

Buenas Tardes, saludos.
Estoy realizando un smartforms, el cual la lógica esta en programa de control. En el programa tengo una tabla interna con los registros, pero como paso esa tabla interna al smartforms?.
Si alguien me puede dar una mano.

Buenas tardes @neilagallardo, lo que debes hacer es llamar la funcion SSF_FUNCTION_MODULE_NAME, previamente debes tener el nombre del SMARTFORMS, el código lo sacas del mismo SMARFORM:

Enviroment > Function Module Name.

El nombre será algo como: /1BDCBWB/SF00000999.

Seguidamente debes llamar la función mencionada, algo así:

CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = "Aqui mandas el nombre que le has definido al SMARTFORM, algo asi ZSF_Reporte
IMPORTING
fm_name = /1BDCBWB/SF00000999  "Aqui el nombre que SAP asigna al SMARTFORM
EXCEPTIONS
no_form = 1
no_function_module = 2
OTHERS  = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid
TYPE sy-msgty
NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CALL FUNCTION  /1BDCBWB/SF00000999
EXPORTING
"Aqui envías los parámetros que envías al SMARTFORM, estos aparecen en el IMPORTING, algo asi:
lv_sf_param = lv_param
TABLES
"Aqui defines las tablas
ti_sf_data = ti_data
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid
TYPE sy-msgty
NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

Espero que te sirva.

Hola Neila,
Por aquí te dejo un manual paso a paso que te puede ayudar:

ht_p://www.teknodatips.com.ar/sap-netweaver/227-tutorial-abap-paso-a-paso-como-crear-un-smartform.html

saludos @rsegovia, lo tengo tal cual pero en smartforms pero no me funciona

que error te da? puedes pasar un print

@hadorno no me muestra los campos que les paso de la tabla al smartfors.

Sería importante lo que menciona @hadorno

de las pestañas IMPORT y TABLAS, de la Interfase del formulario, para poder ayudarte con respecto a lo que mencionas

Claro, no estamos viendo en detalle el smartforms pero por lo que dices que no te muestra nada, no solo pasar la tabla, tienes que recorrer la tabla y en vez de poner los campos de la tabla en el smartforms tienes que poner los de la cabecera (estructura con la que recorrer la tabla) !! ojo con eso

1 me gusta

@canuto, @rsegovia .
codigo del report.

[imagen eliminada, ver como usar el foro, copiar y pegar texto, no hacerle capturas!]

Llamado a la tabla.
[imagen eliminada, ver como usar el foro, copiar y pegar texto, no hacerle capturas!]

Smartforms

Por favor @neilagallardo, los print del codigo…puedes postearlos en codigo propiamente y asi ayudas a la comunidad y a todos !!!

Y efectivamente, estas recibbiendo la tabla pero no la estas recorriendo, tienes que hacer un loop

1 me gusta

@canuto pero en smartforms como puedes ver en la imagen dice que desconoce la tabla.

al menos que hayas declarado un types en definiciones globales del smartforms, ahi no deberia darte error !! el error que te da, es porque ese type no lo reconoce !!

1 me gusta

@neilagallardo revisa esto

Tu definición no existe, debes crear tu TYPE TABLE en la SE11, con la estructura de tu código.

1 me gusta

Si no vas a reutilizar la TYPE TABLE, es mejor lo que indica @canuto

Con la estructura de tu ti

@rsegovia esto lo dice en smartforms
[imagen eliminada, ver como usar el foro, copiar y pegar texto, no hacerle capturas!]

Intenta lo siguiente:

TYPES: gt_empleado TYPE STANDARD TABLE OF ty_empleado.

y en la definición:

t_empleado TYPE gt_empleado

así debiera funcionarte.

saludos, @rsegovia, el problema que tengo es que en programa control, definí una tabla interna, que es donde tengo los registro y esa tabla interna es la que necesito pasársela al que smartforms. Pero en los foros dice que debo crear una estructura, y una tabla transparente de esa estructura
Si tiene otra solución

@neilagallardo

En la definición global de tu TYPE, realiza el cambio sugerido anteriormente reemplazando la última linea y coméntanos como te va.

@rsegovia.
Esto lo hice en la declaración global del smartforms

[imagen eliminada, ver como usar el foro, copiar y pegar texto, no hacerle capturas!]

Esto en loop de tabla.

Puedes ver que me da un error de advertencia.
Y no me muestra nada.
En el programa de control la tabla interna que la tiene es: it_empleado

No estoy seguro pero creo que igual puedes activarlo con ese mensaje de advertencia o no te deja ??, por lo que veo en las imagenes todo esta bien !! deberia funcionarte, si no trae nada…revisa en el programa que it_empleado, tenga datos a ver !!