WinFormはPUSHモードのレポート機能を実現


最近、レポート機能を実現したとき、System.Exception:レポートのロードに失敗しました.
System.Runtime.InteropServices.COMException(0 x 80004005):指定されたパスが見つからないことがわかります.例外情報を通じて、主にレポートファイルが見つからないため、次は別のコードを書きます.主にレポートファイルを取得するパスです.ReportPath=Application.StartupPath.Substring(0, Application.StartupPath.Substring(0,Application.StartupPath.LastIndexOf(“\”)).LastIndexOf(“\”)); ReportPath+=@"フォルダ名"+レポート名;プログラムを実行して、结果はやはり以上の问题を报告して、自分でデバッグを通じて、获得したレポートの経路を见るのはOKで、ここまで気がふさいで、本当にどういうことなのか分からないで、自分は再びインターネットに助けを求めるしかなくて、皇天は心の人を负わないで、最后にやはり私に相応の解决方法を探し当てさせて、自分で自分の简単な総括を贴って贴って、必要な人に対して助けがあることを望みます.1、私はここでPUSHモードを使用しているので、最初のステップはデータセットdsproReportを新規作成することです.具体的な方法はここで説明しません.2、レポートcrpProReportを新規作成します.rptは、データセットdsProReportをレポートデータソース3とし、コードによって対応するレポート表示機能を実現し、以下のようにする.
//  
dsProReport ds = new dsProReport();
// GetList , ds
ds= GetList(dtpStart.Text, dtpEnd.Text, "ProjectName,Stage ", "Report");
// ReportDocument  
ReportDocument myReportDoc = new ReportDocument();
// ;
string AppPath = Application.StartupPath;  
string RptFileFullName = AppPath + @"\crpProReport.rpt"; 
 // Resources 
ResourceManager resources = new ResourceManager(typeof(ProManagerSystem.Properties.Resources));
// , 
byte[] bytes = (byte[])resources.GetObject("crpProReport");
if (File.Exists(RptFileFullName)) 
File.Delete(RptFileFullName);
FileStream fileStream = new FileStream(RptFileFullName, FileMode.CreateNew);
BinaryWriter binWriter = new BinaryWriter(fileStream);
binWriter.Write(bytes, 0, bytes.Length);
binWriter.Close();
fileStream.Close();
string reportPath = RptFileFullName;
// 
myReportDoc.Load(reportPath);
// 
myReportDoc.SetDataSource(ds);
crpView.ReportSource = myReportDoc;

注意:レポート・ファイルのパスが取得できないため、レポートのロードに失敗した解決策は次のとおりです.1、レポート・ファイルをResourcesリソース・ファイルに追加します.Propertiesを開き、下のResourceをダブルクリックします.resx、「リソースの追加」-「既存のファイルの追加」2をクリックし、対応するコードでレポートファイルのパスを取得します.上の対応するコードを参照してください.