1. 程式人生 > >【轉】SMARTFORMS 強制換行

【轉】SMARTFORMS 強制換行

今天做了一個表單的列印又多瞭解了些smartforms。

1.window的用處

如果一個smartforms要求任何時候都要打印表頭表尾可以用table實現,但是table分頁的時候根據之前的測試會有點小問題。這個時候可以表頭表尾用windows,裡面用一個模板。(這個時候通常是套打,把上邊距和左邊距弄好)這樣表頭和表尾就會固定好。而且只要有新的一頁表頭和表尾都會出現。

2.強制分頁

套打要求如果超過11行則強制分頁這是如何做到了?可以在smartforms裡寫程式碼去控制。首先當然要有一個統計行數的變數在全域性定義裡定義。如下圖:

那每列印一行還要統計列印的行數,就要寫程式碼控制了。在loop下可以插入程式碼,寫上

G_CURRENTLINES = G_CURRENTLINES + 1.
G_PAGINATION = G_CURRENTLINES MOD 11.
就可以達到效果。但是注意裡面輸入引數要輸入G_CURRENTLINES和G_PAGINATION否則會報錯,這裡不知道為什麼這麼麻煩。然後再加上一個判斷如果G_PAGINATION為0則進行分頁。如下圖,建立一個”可選的”.

其實就是一個判斷,在條件裡面加上G_PAGINATION為0的判斷條件。

條件為真時加上分頁的命令即可。如下圖,注意勾上轉到新頁。

3.統計合計數

統計合計數當然也是先自定義一個變數來實現的,然後在遍歷的時候進行累加,換頁的時候清零。不過我卻發現,如果有換頁的時候合計數都是0!想了以後明白了,因為新建的window在模板的結點後,smartforms執行順序是從上到下依次執行的,如果有分頁,分頁時因為清空了變數,所以又分頁的情況下合計數都是0.所以求合計數的時候都再新建一個變數,用它來統計合計數。

4.小技巧

4.1 smartforms在word2007裡有時沒顯示格式,要按Ctr+Shift+Alt+S.就會出現格式的選擇。
4.2 上邊距 + window.高度 <= 紙張.高度
4.3 有時字型設定太大,或者一列的寬度較小會造成自動換行!如果把高度設定的低點的話,這時又不能自動換行,會把字串截斷的。