0

ユーザーが新しいページにアクセスできるようにするアクションを含むレポートに取り組んでいます。この新しいページでは、アプリケーション サーバーに保存されている pdf を表示する必要があります。

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.

これをどのように処理すればよいか教えてください。

4

3 に答える 3

0

同僚との問題を解決しました。ありがとうございます。OPEN DATASET の後に次のコードを追加するだけです。

 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.
于 2016-07-08T07:42:04.947 に答える
0

これを実装するには、いくつかの方法があります。

  • FileDownload要素を使用して、コンテキスト要素の Supply メソッドで上記で説明した操作を実行します。これはおそらくこれを実装する最も簡単な方法ですが、ファイルが表示されず、代わりにダウンロードできるという欠点がある場合があります。実装は非常に簡単なので、試してみる価値があります。
  • 要求されたときに適切な MIME タイプで PDF ファイルを返す新しい ICF サービス (WebDynpro アプリケーションではありません!) を作成します。次に、そのサービスの URL で新しいブラウザ ウィンドウを開きます
  • 前と同じですが、IFrame 要素を使用して PDF ファイルをその場で表示します。この要素の使用は推奨されないことに注意してください (ただし、おそらく顧客を EP に誘導するためだけに...?)。
于 2016-06-27T07:20:02.687 に答える
0

Web Dynpro ABAP ページで PDF ファイルを表示するには、

  • InteractiveFormコントロールをビューに追加します。
  • PDF コンテンツを含む Context ノードにpdfSourceプロパティをバインドします。
  • PDF ファイルをコンテキスト ノードにロードする

これはスクリーンショットのです

于 2016-07-07T00:30:55.430 に答える