내 시나리오는 내 보고서가 들어있는 DLL을 만들고 주 프로젝트에 해당 DLL을 추가하는 것입니다. 내 보고서는 임베디드 리소스로 설정되어 있으며 내 기본 프로젝트에서는 다음을 수행하여 ReportViewer에 보고서를 설정합니다.C# DLL에서 보고서를 가져 와서 보고서 뷰어에 넣으십시오.
Assembly assembly = Assembly.LoadFrom("MyAssembly.dll");
Stream stream = assembly.GetManifestResourceStream("MyAssembly.Reports.MyReport.rdlc");
MyReportViewer.LocalReport.LoadReportDefinition(stream);
MyReportViewer.RefreshReport();
이제이 작업을 수행 할 때 ReportParameters를 설정할 수 있기 때문에 보고서가 다소로드되고 있다는 것을 알았습니다. 그것이 전혀로드되지 않은 경우 매개 변수가 존재하지 않거나 그 효과가 있다는 것을 나타내는 예외를 던질 것입니다.
내 보고서가 매개 변수를로드하고 RefreshReport()를 호출 할 때 발생하는 현상입니다.
보고서 정의의 원본이 지정되지 않았습니다.
왜 이런 일이 발생했는지에 대한 단서가 있습니까? dll에서 보고서를로드 할 때 뭔가 빠져있을 수도 있습니다. 그러나 인터넷을 샅샅이 뒤 졌을 때 이것이 올바른 해결책 인 것처럼 보였습니다.
부수적으로, 나는 .dll 안에있는 양식을 가지고 있는데, 나는보고하고 완벽하게 정상적으로 보고서를로드했다. 그러나 그 양식은 해당 보고서의 위치를 구체적으로 알고 있기 때문에 다른 경우입니다.
이 상황에서 나는 .dll 안에없는 ReportViewer를 가지고 있으며 .rdll 내 .dll을 내 ReportViewer에로드하려고합니다. 내 ReportViewer는 DLL 안에 없습니다.
편집 다음 코드를 사용하면 DLL에 필요한 파일을 볼 수 있습니다.
string[] resources = assembly.GetManifestResourceNames();
"MyApp.Controls.Reports.MyCustomReport.rdlc"절차의 시작 부분에 코드의
안녕하세요, 당신을했다 당분간 해결책을 찾으시겠습니까? – Raphael