前文:
原文標題:SAP Adobe Interactive Form Tutorial. Part III. Date Time and Floating Fields
本文鏈接:https://www.cnblogs.com/hhelibeb/p/15501044.html
准備
首先依然還是創建interface和form。細節見前文。

得到form如下,把參數NAME拖放到context,

將 DATE 和 TIME 字段拖放到 Context。 這些是系統生成的變量,


接着在Layout區域工作。
如何使用floating field?
floating field,即根據綁定打印的字段,具體打印內容取決於運行期間綁定的字段。
前往Layout,

插入標准文本字段,


展開/拉伸(如在ms paint中所做的)文本字段邊界,以便在其中寫文本。

輸入下面的文本或任何所需的行。但選擇一個你想保留為floating field的單詞。floating field意味着,它可以打印任何綁定的字段。
My name is NAME, I am SAP Technical consultant. Thank you SAP Yard.
對於本示例,我們希望NAME是動態的。 選擇文本(NAME),右鍵單擊它並選擇它作為floating field, NAME一詞更改為 {TextField}。


將floating field與我們拖到上下文區域的NAME字段綁定,

字段{Text Field}將具有動態長度(從上下文到綁定NAME字段的最大長度)。它將根據輸入進行擴展和壓縮。名稱“Ram”只有3個字符,但名稱“Wolfeschlegelsteinhausenbergerdorff”有30多個字符,但{TextField}仍會接受它。畢竟,這是一個floating field。
如何使用日期和時間?
前往Data view,

將日期和時間字段拖放到Layout中,

通過在選擇類型下選擇日期模式來更改日期格式,

可以在區域設置下通過選擇所需的國家/地區來選擇基於國家/地區的模式。
我們還可以使用上述針對日期字段的相同步驟來格式化時間。
Adobe Form中存在以下系統字段,

檢查,保存和激活。
按F8運行,傳入NAME值。

接着繼續運行,

會得到日期時間和包含輸入的NAME的文本,

通過驅動程序調用的話,可以使用以下代碼,
1 *======================================================================* 2 * YRAM_ADOBE_FORM_PROGRAM3 * 3 *======================================================================* 4 * Project : SAP Adobe Forms Tutorial * 5 * Author : Ramanjula Naidu DARURU (www.SAPYard.com) * 6 * Description : Driver Program for Printing Floating Field, Date & Time * 7 *======================================================================* 8 REPORT yram_adobe_form_program3. 9 10 * Selection Screen 11 PARAMETERS: p_name TYPE name1. 12 13 **&&~~ Data Objects 14 DATA: gv_fm_name TYPE rs38l_fnam, " FM Name 15 gs_fp_docparams TYPE sfpdocparams, 16 gs_fp_outputparams TYPE sfpoutputparams. 17 18 CONSTANTS : gv_form_name TYPE fpname VALUE 'YRAM_ADOBE_FORM3'. 19 20 *======================================================================* 21 * START of Calling the Form 22 *======================================================================* 23 *&---------------------------------------------------------------------* 24 **&&~~ Form Processing: Call Form - Open 25 * 26 CALL FUNCTION 'FP_JOB_OPEN' 27 CHANGING 28 ie_outputparams = gs_fp_outputparams 29 EXCEPTIONS 30 cancel = 1 31 usage_error = 2 32 system_error = 3 33 internal_error = 4 34 OTHERS = 5. 35 IF sy-subrc <> 0. 36 " Suitable Error Handling 37 ENDIF. 38 *&---------------------------------------------------------------------* 39 **&&~~ Get the Function module name based on Form Name 40 * 41 CALL FUNCTION 'FP_FUNCTION_MODULE_NAME' 42 EXPORTING 43 i_name = gv_form_name 44 IMPORTING 45 e_funcname = gv_fm_name. 46 IF sy-subrc <> 0. 47 " Suitable Error Handling 48 ENDIF. 49 *&---------------------------------------------------------------------* 50 **&&~~ Take the FM name by execuing the form - by using Pattern- 51 **&&~~ call that FM and replace the FM Name by gv_fm_name 52 **&&~~ Call the Generated FM 53 CALL FUNCTION gv_fm_name "'/1BCDWB/SM00000176' 54 EXPORTING 55 /1bcdwb/docparams = gs_fp_docparams 56 name = p_name 57 EXCEPTIONS 58 usage_error = 1 59 system_error = 2 60 internal_error = 3 61 OTHERS = 4. 62 IF sy-subrc <> 0. 63 * Implement suitable error handling here 64 ENDIF. 65 *&---------------------------------------------------------------------* 66 67 *&---------------------------------------------------------------------* 68 *&---- Close the spool job 69 CALL FUNCTION 'FP_JOB_CLOSE' 70 EXCEPTIONS 71 usage_error = 1 72 system_error = 2 73 internal_error = 3 74 OTHERS = 4. 75 IF sy-subrc <> 0. 76 * <error handling> 77 ENDIF.
