一張A5橫放的單據,做SmartForm時很自然的選擇了DINA5,然後橫放,測試的時候一直用雷射印表機,感覺挺正常。實際使用時發現異常,不得己自己定義了一個A5橫放的自定紙型(210mmX148mm),印表機端也要設定同樣的自訂紙型,並設為預設紙型。針式印表機,窄行列印紙,格式及定位就都正常了。
一面是我在網上找到的SAP自訂紙型的方法,至於作業系統下如何自訂紙張就不用說了吧:
1、運行事務代碼SPAD;選擇工具列上的【完全管理】按鈕——>選擇【裝置類型】頁面(在該頁面上有四個按鈕:【裝置類型】、【列印控制】、【格式類型】、【頁格式】);
2、選擇【頁格式】進入頁格式列表介面,選擇工具列上的【修改】表徵圖,工具列左邊會出現【建立】表徵圖(註:不點【修改】表徵圖是不會出現【建立】表徵圖的);選擇【建立】表徵圖進入建立頁格式介面,輸入頁格式名稱“zkz”,方向選擇肖像“Portrait”即豎向,紙張大小為:紙寬“215mm”、紙長“140mm”;(註:方向選為豎向則紙列印時是按豎向來作列印,如方向選橫向則按橫向列印,當你紙張設為140*215時才可橫向列印);儲存退出;
3、選擇【格式類型】進入格式列表介面,選擇工具列上的【建立】表徵圖進入建立格式介面,格式類型輸入“215*140”,類型選擇“sapscript”或“abap列表”均可;屬性選擇前面設定的頁格式名稱“zkz”,填寫注釋“xxxxx”;儲存退出;
4、選擇【裝置類型】進入裝置類型列表介面,在列表中選擇裝置類型為“CNSAPWIN”雙擊進入裝置類型(更改)介面,選擇工具列上的【格式】按鈕表徵圖進入裝置類型格式修改介面,選擇【建立】表徵圖,在彈出的對話方塊的“格式化”框內填入上面所設定的格式類型“215*140”,確定即可。
5、對於是使用write輸出報表的,可以雙擊上述做好的格式類型“215*140”進入maintain format介面,雙擊要編輯的地方,進入代碼編寫介面,可在代碼中寫列印的行間距、字間距、字型、字型大小。(這步很重要,我就是忽圖了,導致分頁不正常,具體設定代碼可以參考己經存在的紙型代碼)
至此就為SAP的報表列印設定了針孔紙的紙張列印格式,接著是在報表中的使用:
6、write輸出的方式,不需要在程式中設定,只是在列印時要求使用者選擇“格式類型”為上面所設定的“215*140”;
7、smarform方式,在使用事務代碼smartforms畫表格時,在“表格屬性”欄的“輸出選項”中的“頁格式”選擇上面所設定的“215*140”即可。
8、對於針式印表機,其預設紙張都是A4,我們需要自訂一種紙張的大小,定義紙張格式為215*140,實際尺寸可設定為214.5mm/139.5mm。
至此,你的ABAP報表就可以使用針式列印列印出正確的格式出來了。
注意:由於SAP與針式印表機之間介面的問題,如果表格線太細,列印出來的表格會有時缺少部分橫線和豎線,糾正辦法是:加粗表格的表框線,最好設定到20TW。(