Я знаю, что есть похожие вопросы по этой теме, но почему-то я не могу взломать это.
Я погуглил этот вопрос и получил много ссылок, но ни одна из них не сработала для меня: - (
Я создаю отчет Crystal, который я буду использовать для печати бейджей.
Все хорошо, за исключением того, что я хочу штрих-код в отчете, который не отображается.
Я создаю этот штрих-код во время выполнения и сохраняю его в таблице данных, которую я привязываю к отчету.
Я знаю, что есть два способа сделать это.
и я могу получить изображение, используя OLE Object, указав свойство Graphic объекта в поле базы данных, которое содержит путь к изображению.
но проблема с этим подходом заключается в том, что мне нужно сохранить изображение, и количество значков может увеличиться до 1 lakh, и я не хочу сохранять файлы изображений 1 lakh на сервере
Скорее, я хочу использовать другой подход: привязать поле Byte [] к отчету, но почему-то это не работает для меня.
Вот код.
System.IO.MemoryStream strmem = new System.IO.MemoryStream();
bc.Save(strmem, System.Drawing.Imaging.ImageFormat.Tiff);
Byte[] mybit = new Byte[strmem.Length];
strmem.Read(mybit, 0, Convert.ToInt32(strmem.Length));
dt.Rows[0]["Barcode_Image"] = mybit;
где dt - таблица, которую я привязываю к отчету, а "Barcode_Image" - System.Byte []
поле, которое содержит байтовую [] форму изображения штрих-кода
У меня уже есть обработчик Crystal Report Image в моей веб-конфигурации.
WebConfig:
Агрегаты
<assemblies>
<add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.Shared, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.ReportSource, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.ReportAppServer.Controllers, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.ReportAppServer.DataDefModel, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.CrystalReports.Engine, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
</assemblies>
HTTPHandler в System.web
<httpHandlers>
<add path="Telerik.Web.UI.WebResource.axd" verb="*" type="Telerik.Web.UI.WebResource, Telerik.Web.UI" validate="false"/>
<add verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
</httpHandlers>
HTTPHandler в System.webServer
<system.webServer>
<handlers>
<add name="CrystalImageHandler.aspx_GET" verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" preCondition="integratedMode"/>
</handlers>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
Примечание : я использую visualstudio 2010
любезно проведите меня, если я иду не так