PDA

Ver la Versión Completa : Smartforms SPOOL


mfr1711
04/05/10, 14:44:06
Buenas a todos, necesito un favor. Tengo un Smartforms que quiero pasarlo a PDF y adjuntarlo y mandarlo por mail. Pude pasarlo a PDF por medio de la funcion: CONVERT_OTFSPO OLJOB_2_PDF, luego modifico la tabla que me devuelve a 255 caracteres en ves de 134 y por ultimo utilizo la funcion: SO_DOCUMENT_SEND_API1 para adjuntar y mandar el mail.
El problema se me presenta en el comienzo cuando llamo al smartforms, como no necesito mostrarlo por pantalla, ni que se imprima por impresora, solo necesito que se genere una orden de spool para poder utilizarla en la funcion de conversion a pdf, pero no puedo lograr que me genere una orden de spool sin tener que imprimirlo.

Alguien me podria ayudar?

gracias!!!

Raven
04/05/10, 15:02:40
Hola mfr1711,

Para controlar parte de la opciones de impresion tenes que ir al nodo irterfaz de formulario y en la pestaña Import tenes que usar los parametros: CONTROL_PARAMETERS, OUTPUT_OPTIONS y creo que USER_SETTINGS y hacer algo asi:

data: x_control TYPE ssfctrlop,
x_output TYPE ssfcompop,
x_settings TYPE tdbool.

* Opciones de impresion
x_control-device = 'PRINTER'. "Dispositivo de salida
x_control-no_dialog = 'X'. "Sin ventana de dialogo para impresion

x_output-tddest = p_print. "Nombre de la impresora. Ver tab. TSP03
x_output-tdnewid = 'X'. "Nueva orden de spool
x_output-tdcopies = p_copias. "Cantidad de copias del formulario
x_output-tdimmed = ' '. "Sin salida inmediata
x_settings = space. "Permite generar nro. spool sin mandar a imprimir

Llenas estos parametros y se los pasas al smartforms cuando lo llamas.

Adapta estos parametros segun tu conveniencia asi podras controlar las acciones del smartforms.

Saludos y espero te sirva.

mfr1711
04/05/10, 20:26:37
pero si le paso los parametros de impresora me lo va a imprimir y ademas la impresora la define el usuario, no puedo ponerle la que tiene predefinida.

Probe sin el parametro de nombre de impresora y no me genera el spool.

Gracias, saludos!

Raven
05/05/10, 11:55:18
Para que no te imprima tenes que ponerle x_output-tdnewid = 'X' para que te cree una nueva orden de spool y x_output-tdimmed = space para que no salga por impresora. Con esto te crea una nueva orden de spool y no lo manda a imprimir.

mfr1711
05/05/10, 14:21:21
lo probé asi pero no me genera la orden de spool. :(

gracias igual

Raven
05/05/10, 14:50:28
Proba agregarle a lo que te pase anteriormente x_control-device = 'PRINTER'.,
x_settings = space y x_control-no_dialog = 'X' y hardcodeale al parametro x_output-tddest la impresora local (para si anda nada mas)

El parametro job_output_info del smartform te devuelve la orden de spool que se creo y en base a esa orden de spool pasas el formulario a PDF con la funcion correspondiente.

Si te sigue sin funcionar te debe estar faltando algun parametro para llenar.
Yo una vez hice algo parecido a lo que vos necesitas, que era generar un formulario en pdf en la maquina sin que lo mande a imprimir, que solo genere la orden de spool.

Saludos.

mfr1711
05/05/10, 16:53:47
Me funcionó de 10!!!

muchisimas gracias, saludos!

PD: me queda un ultimo punto por resolver, me envia el mail con el pdf adjunto perfecto, pero lo ejecuto de la ME9F (mensajes) y termina de procesar y me queda con error. Me tira el error: La rutina de proceso ENTRY_NEU en el programa Z_* NO existe.

La subrutina esta definida y customizada. Que puede ser??

Muchas gracias!!

Raven
05/05/10, 17:17:15
Que bueno que te funciono.

Con el otro tema mucho no te puedo ayudar, tendrías que fijarte por customizing que la clase de mensaje, el programa y la rutina esten bien asignadas, y chequear que esa rutina este efectivamente en programa Z. Y sino a usar el debugging a ver que pasa.

Saludos.

Verónica Cons. junior
03/05/13, 14:46:55
Hola,

tengo un problema con estás estructuras, tengo un smartform que mando como pdf y lo que yo intento hacer es generar la orden de spool para que posteriormente se pueda imprimir mi documento y que mi pdf se muestre directo, es deccir que no se muestre la pantallita con opciones de impresión, ya intente con no_dialog pero no funciona :S

espero puedan ayudarme
saludos!

Raven
08/05/13, 01:08:20
Hola,

tengo un problema con estás estructuras, tengo un smartform que mando como pdf y lo que yo intento hacer es generar la orden de spool para que posteriormente se pueda imprimir mi documento y que mi pdf se muestre directo, es deccir que no se muestre la pantallita con opciones de impresión, ya intente con no_dialog pero no funciona :S

espero puedan ayudarme
saludos!



Hace mucho que no realizo un smartforms pero si no me equivoco para visualizar el formulario sin la pantallita de opciones tenés que marcar las opciones no_dialog = X y preview = X. Si no me equivoco también si marcas la opcion de preview no podes generar una orden de spool por más que indiques en los parametros que deseas crear una nueva orden de spool. Podrías intentar llamar dos veces al smartforms, la primera vez para generar la orden de spool (y sin visualizar) y la segunda vez para realizar solo la visualización en pantalla.

Saludos.

Richard Pineda
11/08/16, 15:44:40
Prueba con el FM 'FOPC_REPORT_SHOW_PDF' para visualizar el smartform como PDF utilizando la estructura: job_output_info. Por ejemplo: (luego de ejecutar el smartform con las opciones antes mencionada en el post)

CALL FUNCTION 'FOPC_REPORT_SHOW_PDF'
EXPORTING
it_otfdata = job_output_info-otfdata.

Espero le sirva a alguien con el mismo problema. Saludos :)