SMARTFORM 傳值的4種方法


*& 20161019 160300
smartform傳值的方法

  • 1.通過結構 傳值;

最通常的用法是通過SE11中建立STRUCTURE XXX(表則沒用),
在REPORT中申明此結構的數據類型,在SMARTFORMS中的FORM接口
申明同樣的結構后就可以傳值了(itabTYPE XXX)

  • 2.Fieldsimble 傳值;

DATA:FIELD(100).
FIELD-SYMBOLS:<FS_PRINT> TYPE ANY,
<FS_ITEM> TYPE ANY.

FIELD = '(ZZCPPRP_0018)GS_ALV'. "zx為程序名,output為內表名
ASSIGN (FIELD) TO <FS_PRINT>.
IF SY-SUBRC EQ 0.
* WA_PRINT = <FS_PRINT>."notes:dump 【Operation not supported for incompatible data objects.
MOVE-CORRESPONDING <FS_PRINT> TO GS_HEAD.
ENDIF.

FIELD = '(ZZCPPRP_0018)GT_ITEM'.
ASSIGN (FIELD) TO <FS_ITEM>.
IF SY-SUBRC EQ 0.
MOVE-CORRESPONDING <FS_ITEM> TO GT_ITEM.
ENDIF.

 


Step1.創建FORM (需求:打印頁面格式, 橫打/豎打, 字體有無特殊要求, 有無圖片 )

 

2.設置頁格式 和 樣式

 

 

3.如果不是用自建表傳值, 表格接口可以不用修改

 

4.使用 Field-symble 指針方式傳值,全局定義中設置,

 

FORM 類型中參考結構定義和程序的打印內表保持一致

 

動態賦值, 注意輸入輸出參數

 

然后,就是FORM 中表頭,表身,表尾 的設計

 

 

 

 

 

 

 

  • 3.通過SAP內存( export,import )傳值;

SAP內存語句含義:
使用EXPORT TO MEMORY語句在內存中存儲數據對象。
使用IMPORT FROM MEMORY語句從內存中讀取數據對象。
使用FREE MEMORY語句從內存中刪除數據簇。

 

若是傳遞一兩個很單一的變量,比較簡單的做法是在REPORT程序中用EXPORT,在SMARTFORMS中用IMPORT。
IMPORT和EXPORT我們一般能不用就不用,后續維護難以跟蹤。

 

  • 4.通過數據庫中的簇數據庫方式

SAP數據庫中的簇數據庫語句含義:
使用EXPORT TO DATABASE語句將數據對象存儲到簇數據庫中。
使用IMPORT FROM DATABASE語句為數據簇生成目錄表,並從簇數據庫中取數據對象。
使用DELETE FROM DATABASE語句從簇數據庫中刪除數據簇。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM