2014年10月14日火曜日

【ウランバ機能紹介!】請求書一括出力機能の技術的実装方法紹介(中国語)


【ウランバ機能紹介!】請求書一括出力機能の技術的実装方法紹介について、
台湾の顧客から問い合わせがあったということで、中国語で翻訳致しました。

在Uranba產品里,用VisualForce來實現多頁PDF出力的方法。
PDF作成時必要的步驟如下:
①VisualForce的apex:page標簽的renderAs屬性的值設定為“PDF”,於是VisualForce就可以作為PDF進行表示。
這個時候可以使用打印用的樣式表(style sheet)

②在Uranba產品里,主要使用@page(selector)和page-break-before來控制多頁PDF出力的處理。
@page是打印時進行頁面設定的selector,可以按照英寸指定打印頁面的長寬等的size(Uranba目前打印A4紙的範圍)
page-break-before是打印時控制換頁面的設定。屬性設置為always時,對象的要素就會強制的進行換頁面的表示。
以上就是使用標簽進行PDF的頁面控制的方法

③寫代碼時的基本思想:
在Uranba產品里,印刷出請求書等的帳票,基本上按照「經常header」,「header」,「正文」,「footer」,「經常footer」等5個類別。
「經常header」和「header」的區別是「經常header」是針對全部的頁面,「header」只是針對最初的頁面。
同理,「經常footer」和「footer」也是區分是否是針對全部的頁面。
「正文」里有多行的列表項目(比如:請求書的話就有請求產品目錄的列表)
Visualforce的apex:repeat標簽進行嵌套作成模板、如下所示。
<apex:repeat> // <- 頁面單位的repeat
  <div> // <- 這裡用page-break-before進行換頁面處理
    <div> // <- 經常header
    </div>
    <div> // <- header。與JSP不同的是沒有if標簽、沒有必要的頁面style sheet里設定display:none來進行控制
    </div>
    <apex:repeat> // <- 正文的repeat。預先計算多少行、一個頁面里能包含的部分放在這個列表內
      <div> // <- 正文(1行內容)
      </div>
    </apex:repeat>
    <div> // footer。與JSP不同的是沒有if標簽、沒有必要的頁面style sheet里設定display:none來進行控制
    </div>
    <div> // 經常footer
    </div>
  </div>
</apex:repeat>

多頁的請求書的情況,另外再嵌套一層請求書單位的repeat。
controller的代碼:請求書・頁面・正文的class里按照Visualforce的表示內容進行代碼編寫。

--------------------------------------
篇外:Uranba產品基於Sales Cloud的開發框架。從用戶的角度出發,
在眾多細節方面都提供更加簡單,更加實用的功能。
今後也會陸續介紹Uranba的更多功能詳解。

0 件のコメント:

コメントを投稿