1. 程式人生 > >ABAP實戰Form設計

ABAP實戰Form設計

SAPForm是ABAP設計單據列印的工具,實現與SmartForms類似的功能,並且兩種工具很多概念是相同的,Smart Forms視覺化設計功能更強、更直觀,但SAP中很多標準單據都是由Form設計的,每個專案都需要調整標準的單據格式,再介紹較複雜的Form製作。內容如下:
(1)一個簡單的單據列印例子,包括Form製作,列印程式設計;
(2)複雜單據的製作,包括圖片的上傳、變數的傳遞、迴圈變數輸出、表格製作;
(3)SAP Form編輯器操作,由於操作比較複雜,會多加說明;
(4)在Form中呼叫自定義程式。在調整系統的Form時,有時會發生需要的欄位沒有傳遞到Form的情況,那就可以使用自定義程式,定義子程式,通過輸入輸出變數傳遞到系統Form中;
(5)Form的匯入與匯出。

1、一個簡單的單據列印例子

該例子完成有圖示、表頭,有文字說明的表身單據,如圖


1.1、Form的製作

一個Form可以有多個頁面組成,一個頁面含有一個或多個視窗,但一個頁面只有一個主視窗。段落格式描述視窗的每一行的格式,一個Form可以有很多段落格式,在具體定義每一行內容時可以選擇相關段落行。

輸入TCODE:SE71,輸入Form名稱後,單擊“建立”按鈕,如圖


1.1.1、建立頁面

輸入描述後,單擊工具條“頁數”按鈕,如圖


輸入頁名稱後回車,輸入描述,如圖


1.1.2、建立段落格式

單擊工具條的“段落格式”按鈕,如圖


單擊“字型”按鈕定義段落字型,如圖


選擇字型及字型大小,單擊“記錄”按鈕,定義行輸出欄位的數量及位置,如圖


儲存後,單擊“視窗”,顯示MAIN主視窗。再建立一個非主視窗,單擊右鍵,選擇“建立元素”選單,如圖


輸入視窗和描述後繼續,如圖


將視窗分配到頁面中,單擊“頁視窗”,如圖


右鍵選擇“建立元素”選單,如圖


選擇已建立的主視窗,如圖


定義主視窗的位置和大小,如圖


建立第二個視窗作為輸出表頭,如圖


再用格式繪製器調整兩個視窗的位置和大小,單擊選單“設定”-->“格式繪製器”,選擇“圖形格式繪製器”,如圖


進入格式繪製器後,將SUB1視窗往右移動,右鍵選擇“Create Graphic”選單,如圖


進入影象選擇介面,選擇“彩色”引數,選擇相關影象,如圖


影象物件建立,如圖


注意:關閉該設計器方法,需要單擊主視窗中的選單“設定”-->“格式繪製器”,如圖


取消“圖形格式繪製器”選項,設計視窗自動關閉。


退回後,出現三個物件,其中一個就是剛建立的影象物件,選擇“MAIN”主視窗,單擊工具條的“文字元素”按鈕,如圖


輸入相關內容,如圖


左端格式行文字的意義如圖所示


定義文字元素”/E“,名稱”DATA“,採用段落格式”A1“(已定義的欄位格式),輸出四行。再定義表頭,選擇”SUB“子視窗1單擊工具條的”文字元素“按鈕,如圖


輸入元素”MOOD“,選擇A1段落格式,如圖


單擊儲存按鈕,選擇選單”表格“-->”啟用“,系統提示輸入預設段及第一頁,如圖


列印程式設計:

REPORT  Z_FORMSTEST_20160715001.
CALL FUNCTION 'OPEN_FORM'
EXPORTING
  FORM = 'ZTFORM20160715'.
  IF SY-SUBRC <> 0.
  ENDIF.

  CALL FUNCTION 'WRITE_FORM'
  EXPORTING
    ELEMENT = 'MOOD'
    FUNCTION = 'SET'
    TYPE = 'BODY'
    WINDOW = 'SUB1'.

  IF SY-SUBRC <> 0.
  ENDIF.

  CALL FUNCTION 'WRITE_FORM'
  EXPORTING
    ELEMENT = 'DATA'
    FUNCTION = 'SET'
    TYPE = 'BODY'
    WINDOW = 'MAIN'.

  IF SY-SUBRC <> 0.
  ENDIF.

  CALL FUNCTION 'CLOSE_FORM'.

  IF SY-SUBRC <> 0.
  ENDIF.
執行後,輸出結果如圖