2014-08-28 2 views
0

У меня есть два отчета о кристаллах в моем проекте.как развернуть приложение WPF с Crystal Report

У меня есть файл SaleBillReport.rpt в Моем проекте. , который загружается с использованием метода объекта отчета, код которого приведен ниже.

Первый отчет показан как -

Случай 1:

SaleBillReport rptObj = new SaleBillReport();//My Rpt file name 
rptObj.SetDataSource(_ReportDataSet); 

_reportViewer.ReportSource = rptObj; 

Второй доклад показан как -

Случай 2:

ReportDocument objReportDoc = new ReportDocument(); 
objReportDoc.Load(@"D:\\" + "MyReport.rpt"); 

ReportViewerNew.ReportSource = objReportDoc; 

Моя проблема является что при развертывании этого проекта мне не нужно размещать любой файл .rpt в любом месте. Он встроен в Моем приложении.

Но я должен поместить мой второй файл .rpt в любой путь для отображения. (Я не хочу никуда вставлять) Так как я в файле build 2 .rpt в моем проекте во время развертывания.

Заранее спасибо

+0

Какой метод развертывания вы используете? Настроить проект или нажать один раз или что-то еще? –

+0

Просто создайте приложение в режиме деблокирования. – prashant

ответ

0

Использование отражения, чтобы узнать, где ваше приложение установлено

System.Reflection.Assembly.GetExecutingAssembly

Method explantion

и попросить папку этой сборки и добавить ваше имя файла отчета к этому пути ...

0

Одним из решений может быть использование refle но это немного сложно.

Второй и более простой можно использовать Environment.CurrentDirectory.

Для этого измените случай 2 кода, как это -

ReportDocument objReportDoc = new ReportDocument(); 
string reportPath = System.IO.Path.Combine(Environment.CurrentDirectory, "MyReport.rpt"); 
objReportDoc.Load(reportPath); 

ReportViewerNew.ReportSource = objReportDoc; 

и отчет, чтобы всегда быть постоянным в текущем местоположении каталога, просто перейдите к свойствам файла MyReport.rpt и выберите Копировать всегда или Скопировать, если новый.

+0

Если я выберу Копировать всегда, тогда он создаст файлы .rpt в папке .exe. Я не хочу этого делать. – prashant