2016-02-15 5 views
1

Я работаю с VS2010 C#, и мне нужно создать отчет, который пользователь может изменить. Я вставил поля параметров, и они отлично работают для текста, но проблема возникает, когда я добавляю изображение в отчет. Основная идея заключается в том, что пользователь может изменить изображение, используя openFileDialog. Я вставил объект OLE и загрузил изображение с заполнителем. У меня есть поле , которое я обновляю с помощью openFileDialog и использую его как формулу, чтобы изменить путь к образцу-заполнителю.
Я не уверен, если это работает, потому что, так как я добавил изображение к отчету я не могу распечатать его (я использую метод printToPrinter), и это дает мне ParameterFieldCurrentValueException.Как настроить отчет Crystal Reports во время выполнения

При дальнейших исследованиях я нашел возможное обходное решение. В этом случае я хотел бы создать объект OLE, а затем добавить его в отчет со следующим фрагментом кода:

private void PictureData_Click(object sender, EventArgs e) 
    { 
     CrystalDecisions.ReportAppServer.ReportDefModel.PictureObject boPictureObject; 
     CrystalDecisions.ReportAppServer.ReportDefModel.Section boSection; 

     rpt.Load("D:\\CPP Net\\RASXIR2Printer\\oleobject.rpt"); 
     rptClientDoc = rpt.ReportClientDocument; 

     String MyfilePath = "C:\\temp\\sample1.jpg"; 

     //Determine which section to add the picture field to - in this case the report header section 
     boSection = rptClientDoc.ReportDefController.ReportDefinition.ReportHeaderArea.Sections[0]; 

     //Add it to the report 
     boPictureObject = rptClientDoc.ReportDefController.ReportObjectController.ImportPicture(MyfilePath, boSection, 1, 1); 

    } 

Проблема здесь состоит в том, что ReportClientDocument класс, используемый, кажется, не существует в версия, с которой я работаю. Также у меня такое ощущение, что даже если мне удастся сделать этот код, он все равно не сможет его распечатать.

Любые идеи?

ответ

0

Итак, после много исследований я нашел решение. Я оставлю это здесь, если кому-то понадобится помощь. Все, что мне нужно было сделать, это добавить некоторые ссылки. В .NET найдите для 'CrystalDesicions.RerportAppServer.ClientDoc' и 'CrystalDesicions.RerportAppServer.Controllers' и добавьте их.

Смежные вопросы