Как передать изображение(изображение штрих-кода) через c# в файл rdlc

#c# #report #rdlc

Вопрос:

Я пытаюсь передать изображение штрих-кода в файл rdlc, но вместо штрих-кода я получаю символ красного креста

Код, который я пробовал:

содержимое файла rdlc:

 <Image Name="imgBarcode">
        <Source>Embedded</Source>
        <Value>=(Parameters!imgBarcode.Value)</Value>
        <Sizing>FitProportional</Sizing>
        <Top>0in</Top>
        <Left>0.1in</Left>
        <Height>0.2in</Height>
        <Width>2.5in</Width>
        <ZIndex>1</ZIndex>
        <Style>
          <Border>
            <Style>None</Style>
          </Border>
          <PaddingTop>1pt</PaddingTop>
          <PaddingBottom>1pt</PaddingBottom>
        </Style>
      </Image>
 

А также:

 <ReportParameters>
    <ReportParameter Name="imgBarcode">
      <DataType>String</DataType>
      <Prompt>ReportParameter1</Prompt>
    </ReportParameter>
  </ReportParameters>
 

Код на C# :

 string BRFilepath = @"C:dev_workPatagoniaHealthSOURCEtempFilesWebcontentdf5c4fb-56ca-47e0-ace2-0c6b435a01detempImg2DBC_48e9b39e-c8e7-4b80-a9d4-7e9f01d85b39.jpg";
                
                                                                               //ReportViewer1.LocalReport.SetParameters(param);
                rptDoc.ReportPath = HttpContext.Current.Server.MapPath("../Reports/"   sReportFileName);

                ReportDataSource rptDsBHReportDetails = new ReportDataSource("dsPatientLabOrderLabels_dtPatientLabOrderLabels", dtLabOrderLables);
                rptDoc.DataSources.Add(rptDsBHReportDetails);
                ReportParameter param = new ReportParameter();
                param = new ReportParameter("imgBarcode", BRFilepath);
                
                rptDoc.SetParameters(param);
                rptDoc.Refresh();
 

Я конвертирую его в pdf и покажу позже, после того как покажу результат, который я получу, как приведенный выше красный символ X.

Комментарии:

1. Я предполагаю, что указанный вами путь недоступен для вашего веб-приложения. Попробуйте добавить разрешение в IUSER нужную папку.

Ответ №1:

Я решил проблему, добавив внешний вместо встроенного в исходный тег

От этого :

 <Image Name="imgBarcode">
        <Source>Embedded</Source>
        <Value>=(Parameters!imgBarcode.Value)</Value>
        <Sizing>FitProportional</Sizing>
        <Top>0in</Top>
        <Left>0.1in</Left>
        <Height>0.2in</Height>
        <Width>2.5in</Width>
        <ZIndex>1</ZIndex>
        <Style>
          <Border>
            <Style>None</Style>
          </Border>
          <PaddingTop>1pt</PaddingTop>
          <PaddingBottom>1pt</PaddingBottom>
        </Style>
      </Image>
 

К этому:

 <Image Name="imgBarcode">
            <Source>External</Source>
            <Value>=Parameters!imgBarcode.Value</Value>
            <Sizing>FitProportional</Sizing>
            <Top>0.09in</Top>
            <Left>0.062in</Left>
            <Height>0.24999in</Height>
            <Width>2.1in</Width>
            <ZIndex>1</ZIndex>
            <Style>
              <Border>
                <Style>None</Style>
              </Border>
            </Style>
          </Image>