Ver Mensaje Individual
  #2  
Viejo 28/08/08, 22:10:31
Avatar de Alfredosite
Alfredosite Alfredosite is offline
Senior Member
 
Fecha de Ingreso: jul 2007
Localización: Lima-Perú
Mensajes: 135
Exclamation RE:Explicacion basica

En el programa principal haces las rutinas necesarias para obtener los datos que deseas visualizar en el Smartform. Imagínate que la tabla gt_datos tengo todo lo que quiero mostrar por ejemplo datos de los trabajadores de una empresa pero algo muy importante debes de crear la estructura de la tabla a enviar al smartform en la transacción SE11 ahí armas tus campos a mostrar imagínate que solo quiera enviar código de trabajador y nombre. Tienes que armar la estructura con los campos y atributos de los mismos.

Nombre estructura : ZHRSMDATOS
Campo Tipo de datos Tamaño
Codigo INT 4
nombre CHAR 80

Una vez creada esta estructura declara que tu tabla gt_datos tenga la estructura creada ZHRSMDATOS.
Lo puedes hacer de esta manera : (Ojo esto en el TOP (declaración de tablas globales))
TYPES: BEGIN OF gt_datos.
INCLUDE STRUCTURE ZHRSMDATOS.
TYPES: END OF gt_datos.

2.- Luego haces tu lógica para obtener los datos que quieres mostar en tu programa principal (ZXXX)
Cuerpo del Programa
------
-----
------
(n-líneas código)
------
------
Append gt_datos.
-----

2.- Una vez cargados en esa tabla gt_datos, esta tabla debe ser enviada al Smartform , ojo no solamente se pueden enviar tablas sino también variables, etc. Por ejemplo enviar variables y otras tablas que obtuviste en tu código principal.

3.- Este envío se hace a través de una función la forma mas común de enviarla es de esta manera: Por ejemplo

CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = “Ingresa aqui el nombre de tu smartform”
IMPORTING
fm_name = v_func. (v_func es un parámetro de salida que devuelve el smartform con nombre de function)

Ahora acá v_func se convierte en función y en mi caso le envío la tabla gt_datos adicionalmente le envío parámetros que tu mismo creas por ejemplo le envío un parámetro v_titulo (lo obtuve de mi programa y para mi esta llenado con un texto que quiero mostrar en el titulo por ejemplo, ojo no solo eso puedes enviarle lo que se te ocurra)

CALL FUNCTION v_func
EXPORTING
v_titulo = v_titulo_smart
TABLES
t_datos = gt_datos.

4.-Bueno una vez dentro del smartform recibes lo que enviaste desde tu programa pero ojo ahora ya no lo recibirás como gt_datos sino como t_datos nombre que decidimos ponerle para que reciba el smartform.

Bueno y ya dentro del smartforms debes recibir la tabla buscando en tu arbol a la derecha de la pantalla (Interfase de formulario) y en la pestaña tablas poner el nombre t_datos que es el mismo nombre con que lo enviaste …y bueno dentro del smart puedes hacer loop, o escribir líneas de código para poder leer esa tabla que enviaste de tu programa principal, ETC.
Bueno ya el tratamiento dentro del smartform es otro tema ahí te recomendaría buscar una manual para ver como va.
Pero básicamente es así como trabaja espero si hay algún termino no claro o en algo haya errado me sepan corregir.

Saludos.

Pdta: te recomiendo revises otros smartforms ya hechos para que entiendas el funcionamiento, para ello puedes escribir esto :
break-point.
En uno de las línea de programa dentro del smartform para que puedas debuggear y entiendas mas o menos como llega tu tabla
Responder Con Cita