RDLC使用ZXing生成条码

问题描述 投票:0回答:1

我对RDLC报表功能很陌生,我想从SQL数据库中的产品数据生成标签。当用户打开ProductPart时,他们会看到这些信息。当用户点击按钮时,将打开报告,报告将把参数传递给报告,以便生成标签。

enter image description here

        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替换了参数值,这样你就可以理解我想达到的目的。

vb.net visual-studio-2019 zxing
1个回答
1
投票

先用这个把你的图片转换为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>

然后在表达式窗口中..:

=System.Convert.FromBase64String(Parameters!MRPID.Value)
© www.soinside.com 2019 - 2024. All rights reserved.