2016-06-24 61 views
0

我正在處理包含允許用戶訪問新頁面的操作的報告。在這個新的頁面中,必須顯示存儲在應用程序服務器上的pdf。在Webdyn Pro中顯示來自應用程序服務器的PDF ABAP

在PDF查看我創建了我的上下文(PDF_DATA-PDF:xstring)鏈接交互式表單

gv_filepath = '/tmp/test.pdf'. 


    " Open the file in binary mode 
    OPEN DATASET gv_filepath FOR INPUT IN BINARY MODE. 


    IF sy-subrc = 0. 
    READ DATASET gv_filepath INTO gv_filedata. 


     IF sy-subrc = 0. 
      CLOSE DATASET gv_filepath. "Close the file 

      " Convert the file from hex-string to Binary format 
      CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' 
       EXPORTING 
       buffer  = gv_filedata 
       IMPORTING 
       output_length = gv_filesize 
       TABLES 
       binary_tab = gt_bin_data. 

在這裏,我不知道該怎麼辦....


 lo_node = wd_context->get_child_node('PDF_DATA'). 
     lo_node->set_attribute(name = 'PDF' value = ?). 

     wd_comp_controller->gestion_affichage(). 

    ENDIF. 

    ENDIF. 

請問我該如何處理?

+0

後添加以下代碼在新頁面的Web在所有的Dynpro頁面,或者你只是將PDF文件推回到瀏覽器? – vwegert

+0

只要我能顯示pdf,兩種解決方案中的一種對我來說都很好。你有一個想法,我怎麼能意識到這一點? –

回答

0

嗯,我解決了我和我的同事的問題,謝謝 我只是有打開的數據集

CLEAR l_len. 
    CLEAR l_data_tab. 
    DO. 
    READ DATASET gv_filepath INTO l_data actual LENGTH l_len. 
    IF sy-subrc <> 0. 
     IF l_len > 0. 
     file_size = file_size + l_len. 
     APPEND l_data to l_data_tab. 
     ENDIF. 
     EXIT. 
    ENDIF. 
    file_size = file_size + l_len. 
    APPEND l_data to l_data_tab. 
    ENDDO. 
0

有一對夫婦的方式來實現這一點:

  • 使用FileDownload元素,並執行您在上下文元素的供應方法,上述操作。這可能是最簡單的方法來實現這一點,但它可能有缺點,該文件不顯示,而是提供下載。值得一試,因爲它很容易實現。
  • 創建一個新的ICF服務(不是WebDynpro應用程序!),當請求時將返回具有適當MIME類型的PDF文件。然後,open a new browser window with the URL of that service
  • 與以前一樣,但使用IFrame element就地顯示PDF文件。請注意,不鼓勵使用此元素(儘管可能只是將客戶推向EP ...?)。
0

要顯示的Web Dynpro ABAP頁面的PDF文件,

  • InteractiveForm控件添加到瀏覽
  • 綁定pdfSource財產上下文節點包含PDF內容
  • 將PDF文件加載到上下文節點

這裏是一個example的屏幕截圖

相關問題