RDL C генерирует штрих-код с помощью ZXing - PullRequest
0 голосов
/ 16 июня 2020

Я новичок в функции отчетов RDL C, я хочу создавать ярлыки из данных о продукте в базе данных SQL. Когда пользователь открывает этот продукт / деталь, его приветствует информация. Когда пользователь затем нажимает кнопку, открывается отчет, который передает параметры в отчет для создания метки.

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 ie (TV001232). Я понимаю, что это неправильная часть «writer.Write (MRPID)», но я заменил значение параметра на MRPID, чтобы вы могли понять, чего я пытаюсь достичь.

1 Ответ

1 голос
/ 17 июня 2020

Сначала преобразуйте изображение в строку 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>

и в окне Expression:

=System.Convert.FromBase64String(Parameters!MRPID.Value)
...