#1
|
|||
|
|||
smartforms
Hola chavales, la cuestión sobre SMARTFORMS es esta: quiero recorrer una tabla y para cada entrada, después de los correspondientes cálculos, hay que sacar la información, PERO!!! CADA UNA EN UNA PÁGINA DISTINTA.
Si tengo dos entradas en la tabla de entrada, pues saldrán dos páginas y además de la información también tiene que tener su correspondiente cabecera de datos, es decir una página completa con el mismo formato que la primera pero con información distinta. Creo que esto se hace con COMANDOS, pero no los he utilizado nunca.No se si todo tiene que estar en una sola ventana o no hace falta y al comenzar una nueva página se pinta todo otra vez. ¿Alguna idea?,gracias. |
#2
|
|||
|
|||
si..bueno...yo prefiero usar los comandos solo para cosas muy especificas..todo el manejo de datos prefiero hacerlo en el reporte que corresponda..en tu caso, recorrer una tabla y para cada entrada, después de los cálculos, guardar la información en una tabla interna...y hacer un loop a esa tabla y por cada loop llamar al smartform.
|
#3
|
|||
|
|||
gracias por tu respuesta, pero si hago los cálculos fuera del smartforms, me obliga a pulsar la tecla de imprimir para cada llamada al formulario. Yo quiero que me imprima todo sin pausas.
Que os parece?? Se podría hacer como propone Azua14 sin que se detenga la impresión a cada llamada al formulario?? |
#4
|
||||
|
||||
Es posible imprimir directamente, sin la obligacion de pulsar el boton de imprimir. Mediante la estructura SSFCTRLOP, puedes indicarle que no muerstre la pantalla de previsualizacion, y que lo imprima directamente, mediante los campos:
ls_control_param-no_dialog = 'X'. Con eso evitas el tener que pulsar el boton de imprimir, y si le haces un clear al campo preview, entonces creo que imprime directamente, o si no, muestra el formulario directamente en caso de ponerlo a X. Una vez rellena esa estructura, llamas a la Funcion : SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L0S33 { color: #4DA619; } .L0S52 { color: #0000FF; } CALL FUNCTION 'WFMC_PREPARE_SMART_FORM' EXPORTING PI_NAST = NAST PI_COUNTRY = IS_DLV-LAND PI_ADDR_KEY = IS_ADDR_KEY PI_REPID = LF_REPID PI_SCREEN = XSCREEN IMPORTING PE_RETURNCODE = CF_RETCODE PE_ITCPO = LS_ITCPO PE_DEVICE = LF_DEVICE PE_RECIPIENT = CS_RECIPIENT PE_SENDER = CS_SENDER. Esto te devuelve las estructuras para luego pasarselas a la llamada del smartforms. Por ultimo haces la llamada al smartforms, usando las estructuras devueltas () Asegurandote de que la estructura del control param, tenga los campos anteriores con los valores deseados. Y debería de imprimirlo de manera directa. SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L0S31 { font-style: italic; color: #808080; } .L0S32 { color: #3399FF; } .L0S52 { color: #0000FF; } CALL FUNCTION lf_fm_name EXPORTING archive_index = toa_dara archive_parameters = arc_params control_parameters = ls_control_param mail_recipient = ls_recipient mail_sender = ls_sender output_options = ls_composer_param user_settings = space is_nast = nast is_repeat = repeat * Parametro a pasar s_fini = s_fini-low s_ffin = s_ffin-low TABLES ITAB_datos = itab_datos EXCEPTIONS formatting_error = 1 internal_error = 2 send_error = 3 user_canceled = 4 OTHERS = 5. Espero que te haya sido de ayuda. |
#5
|
|||
|
|||
Gracias lo probaré y si no digo nada es que está bién, y creo que lo estará.
|
Herramientas | Buscar en Tema |
Desplegado | |
|
|