#1
|
|||
|
|||
Aclaración sobre Smartforms
hola a todos, os estaría muy agradecido si alguien me pudiera explicar brevemente como es la mecanica de los smartforms, comprendo su significado pero no mecanica, es decir un programa llama a un formulario el cual llama a una serie de tablas para recoger información y plasmarla, no?, estoy equivocado?
Lo siento mucho pero estoy un poco perdido en este tema y no tengo otra salida que aprender por mi mismo. Por otro lado los smartforms son dependientes de mandante o independiente? Un saludo a todo el foro un millón de gracias |
#2
|
||||
|
||||
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 |
#3
|
||||
|
||||
Si sabes jugar con WRITE y LOOP junto con los quiebres del LOOP ya sabes el 80% de un smartforms ... no lei la nota de alfredo (ta larga ), pero los smartforms son independientes de mandante ^^
__________________
David Carballido Córdova |
#4
|
|||
|
|||
aclaración smartforms
hola Alfredosite y Davidxd_xd,
lo primero gracias por vuestro interes, evidentemente teneis mucho más nivel que yo y algunas cosas se me escapan, pero esto no se aprende de la noche al día. Os explico la situación, tengo que retocar o modificar la forma en que salen las facturas, cambiar algunos campos y añadir información o quitar, depende del cliente. Mi idea es copiar los smartforms existentes a un mandante de pruebas, medianate la SE71 y desde allí modifcarlos y ver que como resulta, creeis que es una buena idea? Una cosa que no entiendo es el uso de LOOP, es una orden para leer la tabla o que es? Gracias por vuestra paciencia y un saludo |
#5
|
||||
|
||||
Hola ... bueno en el caso de los smartforms lo haces a partir de la transaccion SMARTFORMS y si me parece una excelente idea copiar el smartforms q vas a modificar para que no malogres el original hasta q todos los puntos los tengas claros ... y con respecto al LOOP tiene el mismo mecanismo q en codigo, te barre cada registro de una tabla interna ... puede ser una q definas dentro del smartform como tbm una q pasaste como parametro
__________________
David Carballido Córdova |
Herramientas | Buscar en Tema |
Desplegado | |
|
|