RDLC使用ZXing生成条码
RDLC generate barcode using ZXing
我对 RDLC 报告功能还很陌生,我想从 SQL 数据库中的产品数据生成标签。当用户打开这个 Product/Part 时,他们会收到这些信息。当用户随后单击一个按钮时,这将打开报告,该报告将参数传递给报告以生成标签。
Dim myparam As ReportParameter
Dim testParameter As New List(Of ReportParameter)
myparam = New ReportParameter("PartID", "Test")
testParameter.Add(myparam)
myparam = New ReportParameter("MRPID", "Test MRP")
testParameter.Add(myparam)
myparam = New ReportParameter("PartName", "Test Name")
testParameter.Add(myparam)
ReportViewer1.LocalReport.SetParameters(testParameter)
Dim writer As New BarcodeWriter
writer.Format = BarcodeFormat.CODE_128
PictureBox1.Image = writer.Write(MRPID)
Me.ReportViewer1.RefreshReport()
如您所见,我正在使用 XLing 生成我的条形码,我已成功使用您在上面看到的 3 行代码生成了条形码。但是,我不知道如何在 运行 时传递它或在报告中生成它。条形码将从 MRPID 生成,即 (TV001232)。我知道这部分是错误的 "writer.Write(MRPID)" 但我用 MRPID 替换了参数值所以你可以理解我想要实现的目标。
首先使用以下方法将您的图像转换为 Base64 字符串:
Public Function ImageToBase64(ByVal image As Image, ByVal format As System.Drawing.Imaging.ImageFormat) As String
Dim base64String As String = ""
Using ms As New System.IO.MemoryStream()
image.Save(ms, format)
Dim imageBytes As Byte() = ms.ToArray()
base64String = Convert.ToBase64String(imageBytes)
End Using
Return base64String
End Function
所以这个:
myparam = New ReportParameter("MRPID", "Test MRP")
testParameter.Add(myparam)
应该是这样的:
Dim writer As New BarcodeWriter
writer.Format = BarcodeFormat.CODE_128
myparam = New ReportParameter("MRPID", ImageToBase64(writer.Write(MRPID),<THE IMAGE FORMAT OF YOUR IMAGE>))
testParameter.Add(myparam)
然后,在您的报告中设置以下内容:
MIMEType = select the correct MIME type from the dropdown list
Source = Database
Value = <Expression>
并且在表达式 window 中:
=System.Convert.FromBase64String(Parameters!MRPID.Value)
我对 RDLC 报告功能还很陌生,我想从 SQL 数据库中的产品数据生成标签。当用户打开这个 Product/Part 时,他们会收到这些信息。当用户随后单击一个按钮时,这将打开报告,该报告将参数传递给报告以生成标签。
Dim myparam As ReportParameter
Dim testParameter As New List(Of ReportParameter)
myparam = New ReportParameter("PartID", "Test")
testParameter.Add(myparam)
myparam = New ReportParameter("MRPID", "Test MRP")
testParameter.Add(myparam)
myparam = New ReportParameter("PartName", "Test Name")
testParameter.Add(myparam)
ReportViewer1.LocalReport.SetParameters(testParameter)
Dim writer As New BarcodeWriter
writer.Format = BarcodeFormat.CODE_128
PictureBox1.Image = writer.Write(MRPID)
Me.ReportViewer1.RefreshReport()
如您所见,我正在使用 XLing 生成我的条形码,我已成功使用您在上面看到的 3 行代码生成了条形码。但是,我不知道如何在 运行 时传递它或在报告中生成它。条形码将从 MRPID 生成,即 (TV001232)。我知道这部分是错误的 "writer.Write(MRPID)" 但我用 MRPID 替换了参数值所以你可以理解我想要实现的目标。
首先使用以下方法将您的图像转换为 Base64 字符串:
Public Function ImageToBase64(ByVal image As Image, ByVal format As System.Drawing.Imaging.ImageFormat) As String
Dim base64String As String = ""
Using ms As New System.IO.MemoryStream()
image.Save(ms, format)
Dim imageBytes As Byte() = ms.ToArray()
base64String = Convert.ToBase64String(imageBytes)
End Using
Return base64String
End Function
所以这个:
myparam = New ReportParameter("MRPID", "Test MRP")
testParameter.Add(myparam)
应该是这样的:
Dim writer As New BarcodeWriter
writer.Format = BarcodeFormat.CODE_128
myparam = New ReportParameter("MRPID", ImageToBase64(writer.Write(MRPID),<THE IMAGE FORMAT OF YOUR IMAGE>))
testParameter.Add(myparam)
然后,在您的报告中设置以下内容:
MIMEType = select the correct MIME type from the dropdown list
Source = Database
Value = <Expression>
并且在表达式 window 中:
=System.Convert.FromBase64String(Parameters!MRPID.Value)