前文:
SAP Adobe Form 教程一 簡單示例
SAP Adobe Form 教程二 表
SAP Adobe Form 教程三 日期,時間,floating field
本文連結:https://www.cnblogs.com/hhelibeb/p/15503859.html
原文标題:SAP Adobe Interactive Form Tutorial. Part IV. Dynamically Hide and Display Fields using Javascript in Adobe Form Based on Conditions
條件(IF-ENDIF、CASE、WHILE 等)是常見的程式組成部分。
例如,客戶的所有員工都必須在他們從辦公室列印的表單簽名中将時區列印為GMT–6。 是以,98% 的客戶将使用 GMT–6 小時作為他們的時間,但會有2%的使用者居住在另一個州,他們将時間作為 GMT–7小時。 是以對于那些特定的使用者,你需要放置特殊的邏輯,讓他們的簽名顯示 GMT – 7。這裡你必須處理條件并根據條件列印值。
(譯注:嚴格來說,邏輯處理和輸出混合在一起是不合适的,但這裡我們隻關注實作的過程)
假設,在您的驅動程式中,您已經确定了員工所在的時區,并且根據他們的工作地點設定了标志 v_regular_employee = ‘X’ 或空白。
我們的 Adobe Form需要根據條件值動态列印“GMT – 6”或“GMT – 7”。注意,我們将編寫一個小的 Javascript 而不是 ABAP 代碼。
PS:可能有很多方法可以實作上述場景。 為了清楚起見,我們保持簡單。
本文假設讀者已經看過前序教程,否則建議在此處暫停,回到之前的教程。讀者至少需要了解Form, Interface, Context的概念。
事務代碼:SFP。
建立interface,

添加importing參數IV_NAME和IV_FLAG,
檢查、儲存和激活。
接着回到SFP建立form,
拖放2個參數到context區域,
前往Layout,
前往Data View并且拖放字段IV_NAME。
選擇字段IV_NAME并且前往Palettes->Script Editor.
可以看到下面螢幕,
前往Show選項,在下拉菜單中選擇form: ready。
這裡就可以寫Javascript或者Form Calc代碼了。
寫下如下簡單代碼:
檢查,儲存和激活。
下面是測試部分,
Case 1 : When IV_FLAG = ‘X’.
用F8執行form,輸入參數,
再F8執行,預覽,
因為當我們傳遞IV_FLAG=X時,隐藏元素的腳本沒有被觸發。是以元素不會隐藏。
Case 2 : When IV_FLAG = ‘ ’.
這次測試時讓IV_FLAG為空,
可以看到結果,滿足隐藏的條件,是以輸出是空白的。
單獨用驅動程式調用的話,代碼如下,
YRAM_ADOBE_FORM_PROGRAM4