Как я могу изменить изображение в отчете Crystal с помощью C # - PullRequest
1 голос
/ 07 января 2009

Как я могу изменить изображение (его OLE-объект) в отчете Crystal с помощью C #?

Ответы [ 2 ]

2 голосов
/ 06 октября 2013

вы можете добавить CRAXDRT.dll и CrystalDecisions.Shared.dll к вашим ссылкам тогда вы можете использовать этот код:

                CRAXDRT.Report report2 = new CRAXDRT.Report();
                CRAXDRT.Application app2 = new CRAXDRT.Application();
                report2 = app2.OpenReport("YourReportName.rpt", OpenReportMethod.OpenReportByDefault);
                for (int i = 1; i < report2.Sections.Count + 1; i++)
                {
                    for (int j = 1; j < report2.Sections[i].ReportObjects.Count + 1; j++)
                    {
                        try
                        {
                            CRAXDRT.OleObject to2 = (CRAXDRT.OleObject)report2.Sections[i].ReportObjects[j];
                            CRAXDRT.OleObject to3 = report2.Sections[i].AddPictureObject("NewOleName.bmp", to2.Left, to2.Top);
                            to3.Height = to2.Height;
                            to3.Width = to2.Width;
                            report2.Sections[i].DeleteObject(to2);
                        }
                        catch (Exception) { }
                    }
                }
1 голос
/ 03 марта 2009

Предположим, у вас есть изображение в растровом объекте, сохранить его в MemoryStream в растровом формате,
Создайте DataSource, создайте в нем DataTable с 1 DataColumn с типом байтового массива

MemoryStream ms; //contains saved bitmap~!!!
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("img", typeof(Byte[])));
DataRow row = dt.NewRow();
row["img"] = ms.ToArray();

также привязать отчет (или подотчет вашего отчета) к источнику данных со схемой, как указано выше вставьте объект изображения, привязанный к столбцу «img», для отчета

...