2017-10-10 8 views
0

Iam 건물 Windows 응용 프로그램에 C#을 사용하고 크리스탈 보고서가 들어 있습니다.다른 컴퓨터에 크리스탈 보고서가있는 C# Windows 응용 프로그램을 설치할 수 없습니다.

내 문제는 어디에서 코드를 사용하여 crystalreport.rpt 파일을 컴퓨터에서 iam이 앱을 개발하고있는 위치에로드했는지입니다.

문제는이 코드 줄에서 정확하게 나타납니다.

  cryRpt.Load("PUT CRYSTAL REPORT PATH HERE\CrystalReport1.rpt"); 

이제 다른 컴퓨터에서 응용 프로그램을 실행할 때마다 .rpt 파일을 찾을 수없고 보고서가 작동하지 않습니다.

다음은 전체 코드입니다.

using System; 
using System.Windows.Forms; 
using CrystalDecisions.CrystalReports.Engine; 
using CrystalDecisions.Shared; 

namespace WindowsApplication1 
{ 
public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     ReportDocument cryRpt = new ReportDocument(); 
     TableLogOnInfos crtableLogoninfos = new TableLogOnInfos(); 
     TableLogOnInfo crtableLogoninfo = new TableLogOnInfo(); 
     ConnectionInfo crConnectionInfo = new ConnectionInfo(); 
     Tables CrTables ; 

     cryRpt.Load("PUT CRYSTAL REPORT PATH HERE\CrystalReport1.rpt"); 

     crConnectionInfo.ServerName = "YOUR SERVER NAME"; 
     crConnectionInfo.DatabaseName = "YOUR DATABASE NAME"; 
     crConnectionInfo.UserID = "YOUR DATABASE USERNAME"; 
     crConnectionInfo.Password = "YOUR DATABASE PASSWORD"; 

     CrTables = cryRpt.Database.Tables ; 
     foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in 
CrTables) 
     { 
      crtableLogoninfo = CrTable.LogOnInfo; 
      crtableLogoninfo.ConnectionInfo = crConnectionInfo; 
      CrTable.ApplyLogOnInfo(crtableLogoninfo); 
     } 

     crystalReportViewer1.ReportSource = cryRpt; 
     crystalReportViewer1.Refresh(); 
    } 
} 
} 

모든 컴퓨터에서 내 보고서를 만들려면 어떻게해야합니까?

답변

0

당신은 키와 app.config 파일의 경로를 추가하며 사용자 코드에서 호출 할 수 있습니다

또는

System.Reflection.Assembly.GetExecutingAssembly() 

또는

System.IO.Path.GetFullPath