前文:
SAP Adobe Form 教程一 簡單示例
SAP Adobe Form 教程二 表
SAP Adobe Form 教程三 日期,時間,floating field
SAP Adobe Form 教程四 動態隱藏和顯示欄位
SAP Adobe Form 教程五 圖片
SAP Adobe Form 幾種文本型別
在本文中,我們將演示在FormCalc中使用SUM,然后在SAP Adobe forms中使用JavaScript動態更改文本樣式,
使用腳本的主要優點是,我們可以改進功能,并且可以在運行期間動態地控制表單,
SAP Adobe Form 支持2種腳本語言:
- FormCalc
- JavaScript
這兩種腳本語言各有優缺點,可以根據需要決定使用哪種,本文將提供兩種腳本語言的一些常見業務場景,
注意,之前已經有一篇涉及Javascript的文章,可以參考:SAP Adobe Form 教程四 動態隱藏和顯示欄位
本文鏈接:https://www.cnblogs.com/hhelibeb/p/15522710.html
原文標題:SAP Adobe Form Tutorial. Part XVI. Practical Use Case of FormCalc and JavaScript
前提
- SAP Adobe Form的table相關的基礎知識
- 對JavaScript和FormCalc基本功能的了解
- ABAP編碼能力
業務需求
1. 在發送給客戶的詳細報表中,我們希望在所有行專案末尾顯示總金額和總單位小計,
2. 在陳述句的描述部分,我們希望以粗體和不同的樣式顯示層次結構的標題產品,以便很容易在整個陳述句中識別標題產品,
解決方案
我們需要創建一個Adobe Form和與全域資料的interface,我們將在interface的“code initialization”中的全域資料內表中添加一些測驗資料,然后將這些全域內表與adobe form layout中的UI表系結,
另外,我們還可以通過在驅動程式中撰寫處理邏輯并將所需的內部表作為adobe form的匯入引數傳遞來實作這一點,因為這個博客更多的是關于腳本的使用,所以沒有考慮資料處理的最佳方法,
步驟
1,在事務代碼SFP創建interface ZPB_TEST_SCRIPTS,

2,創建2個全域變數內表,details和descriptions,

3,表型別ZPB_TEST_DESCR、ZPB_TEST_DETAILS的結構如下,


4,前往code initialization,為內表填入測驗資料,


5,前往事務SFP,創建新form,添加interface ZPB_TEST_SCRIPTS,
6,拖放全域變數到context,

7,前往Layout用這兩個全域變數創建表格,
a, 前往Data View,

b,選擇GT_DETAILS,拖放到Layout的Detail頁,

c,你會看到表格自動創建,并系結了GT_DETAILS,


d,為小計創建頁腳行,前往Hierarchy,展開GT_DETAILS,在DATA后創建一個新的行,前往新行的Object,變更行型別為Footer,

請注意,如果我們使用“表格助手”創建表格,則會自動創建頁腳,因為前往是通過Data View創建的表格,所以必須手動創建頁腳,
下一步是寫Formcalc腳本的步驟,
8, 在“NET_UNITS”下的頁腳中選擇文本欄位,然后轉到腳本編輯器,

9,現在轉到“Show Events”下拉串列,你會發現所有事件都顯示為灰色,為什么?

這是因為對于少數UI元素型別,不允許撰寫腳本,這就是為什么所有事件都僅處于顯示模式,要啟用事件并撰寫腳本邏輯,我們需要將UI元素的型別從“Text”更改為“Text Field”,
10,修改NET UNITS和TOTAL ROYALTIES的頁腳欄位為“Text Field”,

可以注意到,對于上面高亮顯示的欄位,邊框顏色已更改為紅色,而對于其他欄位,邊框顏色仍為藍色,顏色是標識文本用戶界面或文本欄位用戶界面的指示器
接著,重復步驟8和9,選擇合適的事件來撰寫腳本,
需求是求和、顯示小計,
11,選擇Calculate事件,語言選擇為Formcalc,

寫入SUM代碼,sum (DATA[*].NET_UNITS)

12,創建一個測驗驅動程式以生成結果pdf(請參閱以前的博客以創建用于測驗Adobe forms的驅動程式),并生成一個包含小計的pdf:

通過使用FormCalc本的一個求和函式,我們可以在Adobe forms中計算表中行專案的和,不需要使用任何ABAP邏輯,
FormCalc檔案:https://helpx.adobe.com/pdf/aem-forms/6-2/formcalc-reference.pdf
JS的使用例子
13,重復步驟7的a-c部分,在Data View為description創建另一個表,使用全域變數GT_DESCRIPTION,

還記得另一個業務需求嗎?我們需要在運行期間根據粗體/斜體設定將描述欄位中的標題產品設定為粗體,并使用不同的文本樣式和專案設定為斜體,
14,在Hierarchy中選擇GT_DESCRIPTION的DATA行,前往腳本編輯器,

15,選擇“form : ready”事件,語言為Javascript,寫入代碼,

代碼如下,

輸出結果,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/353186.html
標籤:SAP
