2014-06-19 188 views
0

讓我開始說我從來沒有太多的粉絲,跳過C#Java
但是,我正在解決我繼承的應用程序VB問題。水晶報表打印到錯誤的打印機

以下行執行打印操作:

Me.rptShippingLabel1.PrintOptions.PrinterName = "LabelPrinter" 
Me.rptShippingLabel1.PrintOptions.PaperOrientation = CrystalDecisions.Shared.PaperOrientation.Landscape 
Me.rptShippingLabel1.PrintToPrinter(Me.txtLabelQty.Text, False, 1, 1) 

有一個ZebraZDesignTLP2844經由直接USB連接到工作站和命名LabelPrinter。但是,儘管在代碼中指定了目標打印機,但必須在Windows中將Zebra設置爲默認打印機,否則該作業將作爲默認設置轉到任何其他打印機設置。
更令人沮喪的是,在某些計算機上,使用完全相同的配置作業轉到正確的打印機,但我無法識別可控模式。 任何建議爲什麼會這樣?

有問題的報告在設計>頁面設置中與打印機分離。

+0

打印機名稱必須與它在該計算機上的名稱完全相同。不同計算機上的同一臺打印機可以有不同的名稱。 – Steve

+0

@Steve - 它在每個工作站和代碼中都被正確地解釋出來。 – ArtK

+0

您是否確認使用「打印機」集合?這包含安裝在本地計算機上的所有打印機,您可以獲取需要提供給Crystal的「打印機名稱」的「名稱」。 – Steve

回答

1

查看您的報告。在頁面設置中查看報表是否針對顯示進行了優化。如果是,取消選中它。如果報告僅針對顯示進行優化,則PrinterOptions枚舉將被丟棄。您仍然可以在舊框架中分配給打印機名稱屬性,但現在不再有了。

1

試試下面的代碼

Dim rptShippingLabel1 As New CrystalReport1 
    Dim PrinterSettings1 As New Printing.PrinterSettings 
    Dim PageSettings1 As New Printing.PageSettings 

    'Replace it with your printer name 
    PrinterSettings1.PrinterName = "Microsoft XPS Document Writer" 
    rptShippingLabel1.PrintToPrinter(PrinterSettings1, PageSettings1, False) 

得到打印機的名稱,不要從rptShippingLabel1.PrintOptions.PrinterName讀它,它會顯示空白。嘗試從PrinterSettings1.PrinterName中讀取。

這是使用Crystal Reports運行時測試的13.0.9

相關問題