Tuesday, January 18, 2011
The below sample programs are used to show PDF on the selection in the docking container. Basically calling program gets the called program output from spool , converts to PDF, display PDF on the selection screen using docking container.

REPORT  ZTEST_NOTEPAD.


DATA:
      lt_pdf TYPE TABLE OF tline,
      lt_data TYPE STANDARD TABLE OF x255.
DATA:
      ls_pdf LIKE LINE OF lt_pdf.
DATA:
      lv_url      TYPE char255,
      lv_buffer   TYPE string,
      lv_spool    LIKE tsp01-rqident,
      lv_content  TYPE xstring.
DATA:
      lo_dialog_container TYPE REF TO cl_gui_dialogbox_container,
      lo_docking_container TYPE REF TO cl_gui_docking_container,
      lo_html              TYPE REF TO cl_gui_html_viewer.

FIELD-SYMBOLS:
      <xstr>  TYPE x.

PARAMETERS: p_check.

AT SELECTION-SCREEN OUTPUT.

* Run the report program, in this program you need to export the
* spool id to memory.
  SUBMIT ZTEST_NOTEPAD1 TO SAP-SPOOL
       WITHOUT SPOOL DYNPRO
               DESTINATION space
               COVER TEXT 'Test program'
               NEW LIST IDENTIFICATION 'X'
               IMMEDIATELY space
               AND RETURN.

* import spool number from memory
  IMPORT lv_spool = lv_spool FROM MEMORY ID 'ZTESTNOEPAD_0002_SPONO'.

* Convert the spool request to PDF format.
  CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
    EXPORTING
      src_spoolid              = lv_spool
    TABLES
      pdf                      = lt_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
      OTHERS                   = 12.

* convert pdf to xstring string
  LOOP AT lt_pdf INTO ls_pdf.
    ASSIGN ls_pdf TO <xstr> CASTING.
    CONCATENATE lv_content <xstr> INTO lv_content IN BYTE MODE.
  ENDLOOP.

  CREATE OBJECT lo_docking_container
    EXPORTING
      repid     = sy-repid
      dynnr     = sy-dynnr
      side      = lo_docking_container->dock_at_right
      extension = 1200.

  CREATE OBJECT lo_html
    EXPORTING
      parent = lo_docking_container.

* Convert xstring to binary table to pass to the LOAD_DATA method
  CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
    EXPORTING
      buffer     = lv_content
    TABLES
      binary_tab = lt_data.

* Load the HTML
  lo_html->load_data(
    EXPORTING
      type         = 'application'
      subtype      = 'pdf'
    IMPORTING
      assigned_url         = lv_url
    CHANGING
      data_table           = lt_data
    EXCEPTIONS
      dp_invalid_parameter = 1
      dp_error_general     = 2
      cntl_error           = 3
      OTHERS               = 4 ).

* Show it
  lo_html->show_url( url = lv_url  in_place = 'X' ).


REPORT ZTEST_NOTEPAD1.

DATA: lv_spool LIKE tsp01-rqident.
data: lv_value type i.

START-OF-SELECTION .

* Write the report.
  DO 20 TIMES.
    lv_value = sy-index * 10.
    WRITE:/ sy-index, at 20 lv_value.
  ENDDO.

* Export this spool number to memory
  lv_spool = sy-spono.
  EXPORT lv_spool = lv_spool TO MEMORY ID 'ZTESTNOEPAD_0002_SPONO'.

1 comment:

Your useful comments, suggestions are appreciated.Your comments are moderated.

Followers

Contact Form

Name

Email *

Message *

Web Dynpro ABAP Book

An SAP Consultant

Follow US


Want to Contribute ?

If you are interested in writing about the new stuff you learn everyday while working, please write to the.sap.consultants@gmail.com.

Click on Contribution for more details.