Ejemplo generar smartforms a PDF

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • rhein
    Member
    • abr
    • 66

    #1

    Ejemplo generar smartforms a PDF

    Hola foreros, necesito un ejemplo de como transformar la impresion de un smartfomrs a PDF, es un formulario muy simple pero debeo transformarlo a PDF.

    de antemano agradecido
    rhein
  • RAMONES
    Member
    • mar
    • 69

    #2
    Buen dia!! Proba con este codigo y contanos como te fue!!

    Saludos!!





    *&---------------------------------------------------------------------*
    *& Report Z_ALE_SMARTFORMS_PDF
    *&
    *&---------------------------------------------------------------------*
    *&
    *&
    *&---------------------------------------------------------------------*

    REPORT Z_ALE_SMARTFORMS_PDF.

    PARAMETERS:
    SPOOLNO LIKE TSP01-RQIDENT, " Orden Spool
    DOWNLOAD AS CHECKBOX DEFAULT 'X',
    P_FILE LIKE RLGRAP-FILENAME DEFAULT 'C:\file.pdf'. " Destino del
    " archivo

    DATA: name like RSTSTYPE-NAME,
    client like tst01-dclient.

    * Tabla donde se van a guardar los datos del SPOOL, para bajarlos al
    * archivo
    DATA PDF LIKE TLINE OCCURS 100 WITH HEADER LINE.

    DATA: v_file TYPE string.

    * Se utiliza para poder utilizarlo como condición cuando se pregunta si
    * es = ´X´ OTF (Sapscript, Smartform) = '' (Lista)
    DATA is_otf.

    * Tipo de dato donde se guarda el tipo de documento de la orden de
    * spool, si es un Smartforms o una lista ABAP
    DATA: objtype LIKE rststype-type,
    type LIKE rststype-type.


    START-OF-SELECTION.

    TABLES: tsp01.

    SELECT SINGLE * FROM tsp01 WHERE rqident = spoolno.

    client = tsp01-rqclient. " Mandante
    name = tsp01-rqo1name. " N° de Spool


    * Función que se le pasan los datos de la orden de Spool con la cual
    * vamos a trabajar y devuelve de que tipo es el documento que tiene la
    * orden de Spool. 'OTF' = Smartforms
    CALL FUNCTION 'RSTS_GET_ATTRIBUTES'
    EXPORTING
    AUTHORITY = 'SP01'
    CLIENT = client
    NAME = name
    PART = 1
    IMPORTING
    * CHARCO =
    * CREATER =
    * CREDATE =
    * DELDATE =
    * MAX_CREDATE =
    * MAX_DELDATE =
    * NON_UNIQ =
    * NOOF_PARTS =
    * RECTYP =
    * SIZE =
    * STOTYP =
    TYPE = type
    OBJTYPE = objtype
    EXCEPTIONS
    FB_ERROR = 1
    FB_RSTS_OTHER = 2
    NO_OBJECT = 3
    NO_PERMISSION = 4.

    IF objtype(3) = 'OTF'. " Si es un Smartforms
    is_otf = 'X'.
    ELSE. " Si es una lista ABAP
    is_otf = space.
    ENDIF.

    IF is_otf = 'X'. " Si es un Smartforms

    " Función que se encarga de bajar los datos del documento (Smartforms)
    " de la orden de Spool a una tabla interna (PDF)
    CALL FUNCTION 'CONVERT_OTFSPOOLJOB_2_PDF'
    EXPORTING
    SRC_SPOOLID = spoolno
    NO_DIALOG = ' '
    " DST_DEVICE =
    " PDF_DESTINATION =
    " IMPORTING
    " PDF_BYTECOUNT = numbytes
    " PDF_SPOOLID = spoolno
    "" OTF_PAGECOUNT =
    " BTC_JOBNAME = jobname
    " BTC_JOBCOUNT = jobcount
    TABLES
    PDF = pdf
    EXCEPTIONS
    ERR_NO_OTF_SPOOLJOB = 1
    ERR_NO_SPOOLJOB = 2
    ERR_NO_PERMISSION = 3
    ERR_CONV_NOT_POSSIBLE = 4
    ERR_BAD_DSTDEVICE = 5
    USER_CANCELLED = 6
    ERR_SPOOLERROR = 7
    ERR_TEMSEERROR = 8
    ERR_BTCJOB_OPEN_FAILED = 9
    ERR_BTCJOB_SUBMIT_FAILED = 10
    ERR_BTCJOB_CLOSE_FAILED = 11.

    ELSE. " Si es una lista ABAP

    " Función que se encarga de bajar los datos del documento (Lista ABAP)
    " de la orden de Spool a una tabla interna (PDF)
    CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
    EXPORTING
    SRC_SPOOLID = spoolno
    NO_DIALOG = ' '
    " DST_DEVICE =
    " PDF_DESTINATION =
    " IMPORTING
    " PDF_BYTECOUNT = numbytes
    " PDF_SPOOLID = pdfspoolid
    "" LIST_PAGECOUNT =
    " BTC_JOBNAME = jobname
    " BTC_JOBCOUNT = jobcount
    TABLES
    PDF = pdf
    EXCEPTIONS
    ERR_NO_ABAP_SPOOLJOB = 1
    ERR_NO_SPOOLJOB = 2
    ERR_NO_PERMISSION = 3
    ERR_CONV_NOT_POSSIBLE = 4
    ERR_BAD_DESTDEVICE = 5
    USER_CANCELLED = 6
    ERR_SPOOLERROR = 7
    ERR_TEMSEERROR = 8
    ERR_BTCJOB_OPEN_FAILED = 9
    ERR_BTCJOB_SUBMIT_FAILED = 10
    ERR_BTCJOB_CLOSE_FAILED = 11.
    ENDIF.


    v_file = p_file. " Variable del nombre del path tipo string

    * Función que se encarga de bajar los datos guardados en una tabla
    * interna a PC en formato PDF.
    CALL FUNCTION 'GUI_DOWNLOAD'
    EXPORTING
    * BIN_FILESIZE = bin_filesize
    FILENAME = v_file
    FILETYPE = 'BIN'
    * APPEND = ' '
    * CODEPAGE = ' '
    * NO_BYTEORDER_MARK = ' '
    * IMPORTING
    * FILELENGTH = c
    TABLES
    DATA_TAB = pdf
    * FORMAT_TAB =
    EXCEPTIONS
    FILE_WRITE_ERROR = 1
    NO_BATCH = 2
    GUI_REFUSE_FILETRANSFER = 3
    INVALID_TYPE = 4
    NO_AUTHORITY = 5
    UNKNOWN_ERROR = 6.
    El mundo es Redondo y de Ricota......

    Comentario

    Trabajando...