1 / 18

웹딘프로 PDF

웹딘프로 PDF. 작성인 : 김홍파 작성일 : 2008.02.04. 개요. 본 문서는 이미 스마트폼을 만들어놓은 상황에서 어떻게 웹딘프로에서 PDF 로 출력하는가를 설명한 Tutorial 문서이다. Step - 1. 웹딘프로 컴포넌트를 생성하고 애플리케이션을 만들어준다. Step – 2. 컴포넌트 컨트롤러에서 PDF 노드를 생성해주고 카디날러티를 1:1 로 해준다. Step – 3.

tangia
Download Presentation

웹딘프로 PDF

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 웹딘프로 PDF 작성인: 김홍파 작성일: 2008.02.04

  2. 개요 • 본 문서는 이미 스마트폼을 만들어놓은 상황에서 어떻게 웹딘프로에서 PDF 로 출력하는가를 설명한 Tutorial 문서이다.

  3. Step - 1 • 웹딘프로 컴포넌트를 생성하고 애플리케이션을 만들어준다.

  4. Step – 2 • 컴포넌트 컨트롤러에서 PDF 노드를 생성해주고 카디날러티를 1:1로 해준다.

  5. Step – 3 • PDF 노드에 ‘SOURCE’라는 이름으로 attribute를 추가해주고 타입은 Xstring으로 해준다.

  6. Step - 4 • 웹딘프로 컴포넌트에서 ‘pdfview’라는 이름으로 view를 하나 생성시켜주고 window 에 embedded 시킨다. • View의 layout에서 ‘interactive_form’이라는 이름으로 interactiveform 타입의 element를 생성하여준다. • Height 와 width속성을 각각 800px 와 1000 px 로 수정하여 준다.

  7. Step - 5 • Pdfview의 context에서 컴포넌트 컨트롤러의 pdf 노드를 context mapping 시켜준다.

  8. Step - 6 • 다시 pdfview 의 layout 으로 돌아가 interactiveform을 클릭한뒤 pdfsource의 오른쪽에 있는 버튼을 클릭하여 pdf 노드의 source attribute를 선택하여 binding 시켜 준다.

  9. Step - 7 • 컴포넌트 컨트롤러의 methods 탭에서 displaypdf라는 메소드를 생성하여 준다. 여기에 들어갈 소스는 본 문서의 제일 마지막 소스를 참조.

  10. Step - 8 • Pdfview의 wddoinit 메소드의 위와 같은 소스 삽입

  11. Step - 9 • 웹딘프로 애플리케이션을 실행

  12. Displaypdf 메소드에 들어갈 코드 – 1 • DATA : l_x(1) VALUE 'X'. • DATA: lv_text TYPE char3, • lv_syucomm TYPE char1, • ls_pdf TYPE xstring, • lv_fm_name TYPE rs38l_fnam, • lv_control_parameters TYPE ssfctrlop, • lv_output_options TYPE ssfcompop, • lv_ssf_output TYPE ssfcrescl, • lt_otfdata TYPE TABLE OF itcoo. • DATA: node_input1 TYPE REF TO if_wd_context_node, • elem_input1 TYPE REF TO if_wd_context_element. • ***** 스크린에서 데이타를 받아와서 스마트 폼을 출력할때 • * navigate from <CONTEXT> to <INPUT1> via lead selection • *node_input1 = wd_context->get_child_node( name = • *ig_componentcontroller=>wdctx_zinput ). • ** get element via lead selection • *elem_input1 = node_input1->get_element( ). • ** get all declared attributes • *elem_input1->get_static_attributes( • *importing • *static_attributes = stru_input1 ).

  13. Displaypdf 메소드에 들어갈 코드 – 2 • CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' • EXPORTING • formname = 'Z_WD_SMARTFORMS' • IMPORTING • fm_name = lv_fm_name • EXCEPTIONS • no_form = 1 • no_function_module = 2 • OTHERS = 3. • IF sy-subrc <> 0. • * Error MESSAGE • ENDIF.

  14. Displaypdf 메소드에 들어갈 코드 – 3 • * Set relevant control parameters • lv_control_parameters-getotf = l_x. "OTF output • lv_control_parameters-no_dialog = l_x. "No print dialog • lv_control_parameters-preview = space. "No preview • * Set relevant output options • lv_output_options-tdnewid = l_x. "Print parameters, • lv_output_options-tdDEST = 'LP01'. "Print parameters, • lv_output_options-tddelete = space. "Print parameters,

  15. Displaypdf 메소드에 들어갈 코드 – 4 • CALL FUNCTION lv_fm_name • EXPORTING • control_parameters = lv_control_parameters • output_options = lv_output_options • user_settings = space • * pernr = stru_input1-zpernr • * reinr = stru_input1-zreinr • * pdvrs = stru_input1-zpdvrs • IMPORTING • * DOCUMENT_OUTPUT_INFO • job_output_info = lv_ssf_output • * JOB_OUTPUT_OPTIONS • 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.

  16. Displaypdf 메소드에 들어갈 코드 – 5 • REFRESH lt_otfdata. • lt_otfdata[] = lv_ssf_output-otfdata[]. • CALL FUNCTION 'SSFCOMP_PDF_PREVIEW' • EXPORTING • i_otf = lt_otfdata • 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.

  17. Displaypdf 메소드에 들어갈 코드 – 6 • DATA: l_dummy TYPE STANDARD TABLE OF tline, • pdf_data TYPE xstring, • pdf_size TYPE i. • CLEAR: pdf_data, pdf_size. • * convert otf to pdf • CALL FUNCTION 'CONVERT_OTF' • EXPORTING • format = 'PDF' • IMPORTING • bin_filesize = pdf_size • bin_file = pdf_data • TABLES • otf = lt_otfdata[] • lines = l_dummy • EXCEPTIONS • err_max_linewidth = 1 • err_format = 2 • err_conv_not_possible = 3 • OTHERS = 4. • IF sy-subrc <> 0. • MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno • WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. • ENDIF.

  18. Displaypdf 메소드에 들어갈 코드 – 7 • DATA: node_pdf TYPE REF TO if_wd_context_node, • elem_pdf TYPE REF TO if_wd_context_element, • stru_pdf TYPE if_componentcontroller=>element_pdf , • item_source LIKE stru_pdf-source. • * navigate from <CONTEXT> to <PDF> via lead selection • node_pdf = wd_context->get_child_node( name = if_componentcontroller=>wdctx_pdf ). • * get element via lead selection • elem_pdf = node_pdf->get_element( ). • * set single attribute • elem_pdf->set_attribute( • EXPORTING • name = `SOURCE` • value = pdf_data ).

More Related