smartforms

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • chelisse
    Member
    • jun
    • 40

    #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.
  • azua14
    Senior Member
    • jul
    • 140

    #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.

    Comentario

    • chelisse
      Member
      • jun
      • 40

      #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??

      Comentario

      • ppchico
        Senior Member
        • oct
        • 144

        #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.

        Comentario

        • chelisse
          Member
          • jun
          • 40

          #5
          Gracias lo probaré y si no digo nada es que está bién, y creo que lo estará.

          Comentario

          Trabajando...