close

不同的 Datawindow 有時候需要按本身特性分配到不同的打印機,比方說把銷售報表印到 A4 雷射打印機、標籤分配到熱感標籤打印機、一套幾份的發貨單要印到 Dot Matrix 打印機,為方便使用及減少用戶選錯打印機的機會,我們可以把哪個DW打印到哪台打印機的設定寫到代碼中。

這裏介紹幾個相關的函數:
PrintGetPrinters() 取系統打印機清單( 注意有 s )
PrintGetPrinter()  取預設打印機
PrintSetPrinter()  設預設打印機

步驟大概如下:
1.    以PrintGetPrinter() 取得當前預設打印機(ls_original_printer)
2.    從數據庫或 ini 取得該用的打印機名稱放到變量(ls_target_printer)
3.    以 PrintGetPrints() 取系統打印機清單,與前面的變量(ls_target_printer)對比,確定該用的打印機在清單中
4.    以 PrintSetPrinter() 把變量設為預設打印機(ls_target_printer)
5.    以 DW.Print() 到預設打印機打印
6.    以 PrinterSetPrint() 還原本來的預設打印機(ls_original_printer)

關於 DW.Print(True, True) 有一點要注意,第二個 True 用於調用 Windows Print dialog box,只要在這個box 裏面點過「OK」或「確認」之類的,她都會把當時的設定套用到下一個 print job 中,如果你的 DW 在打印前曾經以代碼調整過紙張類型、長濶高之類的都會被剛在 Print dialog box 確認的覆蓋,如果代碼設定為 A4 size,但剛的 Print dialog box 中的是 Letter size,最終打印使用的就會是後者的 Letter size
 

arrow
arrow
    創作者介紹
    創作者 過時程式員 的頭像
    過時程式員

    過時程式員的部落格

    過時程式員 發表在 痞客邦 留言(0) 人氣()