SAP Adobe Form 教程六 FormCalc和JavaScript的實踐


前文:

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,寫入代碼,

 

 代碼如下,

 

輸出結果,

 


免責聲明!

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



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