SAP SMARTFORMS 之由竖打向横打的转换
在同一個SMARTFOMR中,想實現前幾頁是豎向打印的,而后幾頁變為橫向打印的,覺得這個需求有點不切實際
老大說這樣的打印好像只有Mircosoft Word能夠實現,我覺得這也有點不可能。如果你有好的方法能夠實現在同
一個SMARTFORM中實現打印方向的改變,請你與我聯系,我將非常感謝。
當然,需求是不能不實現的,畢竟俺是拿著工資上著班的,所以沒辦法,簡便的方法做不出來,只能用笨方法做了,
一個SMARTFORM完成不了的工作,我把他分配給兩個,這樣實現起來雖然麻煩點,但終歸是把這個需求解決了,
還是挺高興的。
具體實現方法就不詳細說了,其實很簡單,和上一篇循環打印的原理差不多,只是把一個SMARTFORM的循環打印變
成了控制兩個SMARTFORM同時打印而已。貼段代碼出來,大家一看就明白了。希望哪位遇到這樣的需求了能夠對
你有所幫助。
當然,如果你有更好的方法,請與我聯系。謝謝。
?
*要豎打的內表數據 ---豎打FORM調用
?CONCATENATE sy-uname sy-uzeit+4(2) INTO mid.
? EXPORT table = itab TO DATABASE indx(hk) ID mid.
? CONDENSE mid NO-GAPS.?
? DATA fm_name TYPE tdsfname.
? DATA: ls_control_param TYPE ssfctrlop .
? DATA: ls_composer_param TYPE ssfcompop .
? DATA: outopt TYPE ssfcresop.
? DATA: i_job_output_info TYPE ssfcrescl.
? ls_control_param-langu = '1'.
? ls_control_param-no_open = 'X'.
? ls_control_param-no_close = 'X'.
? CALL FUNCTION 'SSF_OPEN'
??? EXPORTING
????? control_parameters = ls_control_param
????? output_options???? = ls_composer_param
??? IMPORTING
????? job_output_options = outopt
??? 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.
??? EXIT.
? ENDIF.
? CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
??? EXPORTING
????? formname?????????? = 'Z_CUSTOMER_BILL'
????? variant??????????? = ' '
????? direct_call??????? = ' '
??? IMPORTING
????? fm_name??????????? = fm_name
??? EXCEPTIONS
????? no_form??????????? = 1
????? no_function_module = 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.
? CALL FUNCTION fm_name
??? EXPORTING
????? control_parameters = ls_control_param
????? output_options???? = ls_composer_param
??? 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.
? DELETE FROM DATABASE indx(hk) ID mid.
**要橫打的內表數據 ---橫打FORM調用
? IF jtab IS NOT INITIAL.
??? CLEAR fm_name.
??? CLEAR mid.
??? CONCATENATE sy-uname sy-uzeit+4(2) INTO mid.
*將內表數據存入ABAP內存
??? EXPORT table = jtab TO DATABASE indx(hk) ID mid.
??? CONDENSE mid NO-GAPS.
??? CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
????? EXPORTING
??????? formname?????????? = 'Z_CUSTOMER_BILL_ADD'
??????? variant??????????? = ' '
??????? direct_call??????? = ' '
????? IMPORTING
??????? fm_name??????????? = fm_name
????? EXCEPTIONS
??????? no_form??????????? = 1
??????? no_function_module = 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.
??? CALL FUNCTION fm_name
????? EXPORTING
??????? control_parameters = ls_control_param
??????? output_options???? = ls_composer_param
????? 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.
??? DELETE FROM DATABASE indx(hk) ID mid.
? ENDIF.
? CALL FUNCTION 'SSF_CLOSE'
??? IMPORTING
????? job_output_info? = i_job_output_info
??? EXCEPTIONS
????? formatting_error = 1
????? internal_error?? = 2
????? send_error?????? = 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.
總結
以上是生活随笔為你收集整理的SAP SMARTFORMS 之由竖打向横打的转换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解析BW:数据源提取数据的原理
- 下一篇: ABAP屏幕上显示LIST的三种方法