Anuncio

Colapsar
No hay anuncio todavía.

Vista previa PDF de smartform: Aporte - Problema

Colapsar
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes

  • Vista previa PDF de smartform: Aporte - Problema

    Buenas noches señores, voy a dejar un pequeño aporte y un pequeño problema

    Tengo un smartform que cuando se va a mostrar no se m uestra en la clasica presentacion, quien no ha tenido problemas con la visualizacion del smartform cuando tenemos muchos datos y necesariamente el tamaño de la letra tiene q sea obligaoriamente tamaño 8, pufff muy pequeña verdad y el usuario no lo vera ni con lupa, pues bueno, como saben hay una forma de previsualizar el smartform en pdf (ya que el usuario no siempre querra imprimirlo) a travez de: menu: pasar a -> Presentacion Preliminar PDF

    Pero el usuario muchas veces es tan anticuado que ve esos simples 2 pasos muy complicados (burros de miercoles), pero es que simplemente nosotros estamos para dar soluciones no para dar mas pasos que ellos no deben de hacer , entonces, ¿podemos hacer que el smartform tenga una previsualizacion en formato pdf?, por su puesto que si haciendo uso de: CALL FUNCTION 'SSFCOMP_PDF_PREVIEW', el cual nos permite guardar el documento en formato pdf, hacer zoom in, zoom out y otras funciones que la visualizacion clasica de smartform no permite.

    A continuacion el codigo, completo:

    Código:
    DATA: lwa_output TYPE ssfcompop.
    DATA: lwa_control  TYPE ssfctrlop.
    DATA: fm_name TYPE rs38l_fnam.
     DATA: lwa_anexoa1 LIKE LINE OF gtd_DET_ANEXO14_DET.
    
      DATA: ln_position  TYPE p DECIMALS 2,
            ln_valuation TYPE p DECIMALS 2,
            ln_nominal TYPE p DECIMALS 2,
            ln_tsl01 TYPE p DECIMALS 2.
    
      DATA: ls_fecha(40) TYPE c,
            ls_nromes TYPE fcmnr,
            ls_mes TYPE fcltx.
    
      DATA: lwa_info    TYPE ssfcrescl,
            ltd_otf     TYPE STANDARD TABLE OF itcoo,
            ltd_doctab  TYPE STANDARD TABLE OF docs,
            ltd_tline   TYPE STANDARD TABLE OF tline,
            li_filesize TYPE i.
    
    
      FIELD-SYMBOLS <fs_tline> LIKE LINE OF ltd_tline.
    
      ls_nromes = p_date+4(2).
    
      SELECT SINGLE ltx INTO ls_mes
        FROM t247
        WHERE spras = sy-langu AND
              mnr = ls_nromes.
    
      CONCATENATE 'Al' p_date+6(2) 'de' ls_mes 'del' p_date+0(4)
      INTO ls_fecha SEPARATED BY space.
    
    * Para obtener el nombre de la función del smartform
      DATA: fm_name TYPE rs38l_fnam.
    
      lwa_output-xdf2outdev = gs_printer. “(de tip char 60)  “def
    
      lwa_output-tddest   = gs_printer.   "def
      lwa_output-tddelete = 'X'.
      lwa_output-tdnewid  = 'X'.
      lwa_output-tdimmed  = 'X'.
      lwa_control-no_dialog = 'X'. "no dilog box
      lwa_control-preview = ''. "----para que no se vea en viaualizacion clasica
      lwa_control-device  = 'PRINTER'.
      lwa_control-getotf = 'X'.
    
      CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
        EXPORTING
          formname           = 'ZTRMSF_ANEXO14DET'           "Nombre del SMARTFORM
        IMPORTING
          fm_name            = fm_name
        EXCEPTIONS
          no_form            = 1
          no_function_module = 2
          OTHERS             = 3.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    
      IF p_pdf EQ 'X'. “PDF ES UN RADIO BUTON QUE ELIGIRE SI QUIERO EXPORTARLO A PDF
        lwa_control-getotf    = 'X'.
      ELSE.
        "CLEAR lwa_control-getotf. "---------------------------------JOMS 20130822 CMT
      ENDIF.
    
    * Muestar el formulario
      CALL FUNCTION fm_name
        EXPORTING
          control_parameters = lwa_control
          output_options     = lwa_output
          user_settings      = ' '
          ls_fecha           = ls_fecha
          gs_empresa         = gs_empresa
          gs_fecha_reporte   = gs_fecha_reporte
          gs_rcomvalc1       = gs_rcomvalc1
          gs_rcomvalc2       = gs_rcomvalc2
    *      gs_hechopor        = gs_hechopor
    *      gs_nomconta        = gs_nomconta
    *      gs_nroconta        = gs_nroconta
    
        IMPORTING
          job_output_info    = lwa_info
    
        TABLES
          gtd_DET_ANEXO14_DET    = gtd_DET_ANEXO14_DET
          gtd_CONS_RESPON_A14    = gtd_CONS_RESPON_A14
        EXCEPTIONS
          formatting_error   = 1
          internal_error     = 2
          send_error         = 3
          user_canceled      = 4
          OTHERS             = 5.
    
      IF sy-subrc <> 0.
    
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    
    * BAJAR_PDF.
      IF p_pdf EQ 'X' AND
         NOT lwa_info-otfdata[] IS INITIAL.
    
         ltd_otf[] = lwa_info-otfdata[].
        DATA: li_ruta type i.
        li_ruta = STRLEN( p_ruta ).
        li_ruta = li_ruta - 1.
    
        IF p_ruta+li_ruta(1) eq '\'.
    
    *Sale del form get_constantes (gs_nompdf)
          CONCATENATE p_ruta  gs_nompdf '_' 'DET' '_' p_date+6(2) p_date+4(2) p_date+0(4) '.pdf' INTO gs_fullpath.
        ELSE.
          CONCATENATE p_ruta '\' gs_nompdf '_' 'DET' '_' p_date+6(2) p_date+4(2) p_date+0(4) '.pdf' INTO gs_fullpath.
        ENDIF.
    
    
        CALL FUNCTION 'CONVERT_OTF_2_PDF'
          EXPORTING
            use_otf_mc_cmd         = 'X'
          IMPORTING
            bin_filesize           = li_filesize
          TABLES
            otf                    = ltd_otf
            doctab_archive         = ltd_doctab
            lines                  = ltd_tline
          EXCEPTIONS
            err_conv_not_possible  = 1
            err_otf_mc_noendmarker = 2
            OTHERS                 = 3.
    
    
        IF sy-batch EQ 'X'.
          OPEN DATASET gs_file FOR OUTPUT IN BINARY MODE.
          LOOP AT ltd_tline ASSIGNING <fs_tline>.
            TRANSFER <fs_tline> TO gs_file.
          ENDLOOP.
          CLOSE DATASET gs_file.
        ELSE.
    
          CALL FUNCTION 'GUI_DOWNLOAD'
            EXPORTING
              bin_filesize            = li_filesize
              filename                = gs_fullpath
              filetype                = 'BIN'
            TABLES
              data_tab                = ltd_tline[]
            EXCEPTIONS
              file_write_error        = 1
              no_batch                = 2
              gui_refuse_filetransfer = 3
              invalid_type            = 4
              no_authority            = 5
              unknown_error           = 6
              header_not_allowed      = 7
              separator_not_allowed   = 8
              filesize_not_allowed    = 9
              header_too_long         = 10
              dp_error_create         = 11
              dp_error_send           = 12
              dp_error_write          = 13
              unknown_dp_error        = 14
              access_denied           = 15
              dp_out_of_memory        = 16
              disk_full               = 17
              dp_timeout              = 18
              file_not_found          = 19
              dataprovider_exception  = 20
              control_flush_error     = 21
              OTHERS                  = 22.
    
          IF sy-subrc <> 0.
            MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
          ENDIF.
    
        ENDIF.
    
      ENDIF.
    
    
    
    **********************************************************************
    ****ACA LA LOGICA QUE HACE EL PREVIEW
    **********************************************************************
    
      CALL FUNCTION 'SSFCOMP_PDF_PREVIEW'
        EXPORTING
          I_OTF                          = ltd_otf
           EXCEPTIONS
             CONVERT_OTF_TO_PDF_ERROR       = 1
             CNTL_ERROR                     = 2
             OTHERS                         = 3
                    .
          IF SY-SUBRC <> 0.
           MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                   WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
          ENDIF.
    endif.
    Ahora el problema: el tamaño del preview esta a la mitad de la oantalla y todo por que dentro de la funcion "SSFCOMP_PDF_PREVIEW" hace uso de una dynpro 300 que tiene un control custom que tiene una altura de 31 y un largo de 90, este 90 es el que hace que la visualizacion ocupe poco espacio y que no se vea el documento completo.

    Alguien ha trabajado con esto y ha solucionado este problema, por favor haber si ayudan a expandir mas el conocimiento nuestro.
    Gracias de antemano.
Trabajando...
X