[英]how to set page size in crystal report for thermal printer in C# windows application
[英]How to Print Crystal Report Without Showing Preview and Printer Selection in Windows application using C#
我正在執行開票應用程序,因此我需要在沒有“預覽報告”的情況下打印帳單。 而且,我不喜歡在打印機對話框彈出窗口中選擇打印機。 它應該選擇默認打印機。
'PrintToPrinter'不能滿足我的要求。 我需要發送最新創建的BillID作為參數以獲取最新詳細信息。
如果我不使用' PrintToPrinter
'語法,則打印機對話框彈出屏幕將帶有“選擇打印機”對話框。
請指導我解決這個問題。
供您參考,我附上我的代碼片段:
Report_Path = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location) + "\\Reports\\StandardBill.rpt";
ReportDocument rd = new ReportDocument();
rd.Load(Report_Path);
rd.SetDatabaseLogon(AccessingData.DBUserName, AccessingData.DBPassword);
ParameterFields paramFields = new ParameterFields();
ParameterField BillID = new ParameterField();
ParameterDiscreteValue discreteVal_BillID = new ParameterDiscreteValue();
BillID.ParameterFieldName = "BillNo";
discreteVal_BillID.Value = Convert.ToInt32(Bill_id);
BillID.CurrentValues.Add(discreteVal_BillID);
ParameterField CType = new ParameterField();
ParameterDiscreteValue discreteVal_CType = new ParameterDiscreteValue();
CType.ParameterFieldName = "ClientType";
discreteVal_CType.Value = ClientType;
CType.CurrentValues.Add(discreteVal_CType);
// Add parameter to the parameter fields collection.
paramFields.Add(BillID);
paramFields.Add(CType);
CRViewer1.ParameterFieldInfo = paramFields;
CRViewer1.ReportSource = rd;
CRViewer1.PrintReport();
rd.Close();
rd.Dispose();
你可以嘗試一下
Dim crtableLogoninfos As New TableLogOnInfos
Dim crtableLogoninfo As New TableLogOnInfo
Dim crConnectionInfo As New ConnectionInfo
Dim CrTables As Tables
Dim CrTable As Table
Dim cryRpt As New ReportDocument
cryRpt.Load("report path")
With crConnectionInfo
.ServerName = "servername"
.DatabaseName = "databasename"
.UserID = "userid"
.Password = "password"
.IntegratedSecurity = False
End With
CrTables = cryRpt.Database.Tables
For Each CrTable In CrTables
crtableLogoninfo = CrTable.LogOnInfo
crtableLogoninfo.ConnectionInfo = crConnectionInfo
CrTable.ApplyLogOnInfo(crtableLogoninfo)
Next
cryRpt.SetDatabaseLogon("userid", crConnectionInfo.Password, crConnectionInfo.ServerName, crConnectionInfo.DatabaseName, crConnectionInfo.IntegratedSecurity)
Dim crParameterFieldDefinitions As ParameterFieldDefinitions
Dim crParameterFieldDefinition As ParameterFieldDefinition
Dim crParameterValues As New ParameterValues
Dim crParameterDiscreteValue As New ParameterDiscreteValue
crParameterDiscreteValue.Value = BillID
crParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields
crParameterFieldDefinition = crParameterFieldDefinitions.Item("BillID")
crParameterValues = crParameterFieldDefinition.CurrentValues
crParameterValues.Add(crParameterDiscreteValue)
crParameterFieldDefinition.ApplyCurrentValues(crParameterValues)
crParameterValues.Clear()
cryRpt.PrintOptions.PrinterName = "printername"
cryRpt.PrintToPrinter(1, False, 0, 0)
End If
我認為這應該可以解決問題。 它在VB中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.