보고서가 프로그래밍 방식으로 가리키는 데이터 소스를 변경할 수 있습니다. 중간 데이터 집합을 사용할 필요가 없습니다. 보고서의 각 테이블을보고 데이터 소스를 업데이트하기 만하면됩니다.
코드 아래 참조 :
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();
}
}
}
에서 촬영 : 내가 원하는 같은 메커니즘이 같은 http://csharp.net-informations.com/crystal-reports/csharp-crystal-reports-dynamic-login.htm
데이터베이스 호출에서 보고서를 채우라고합니다. 중간 데이터 세트에 데이터를로드해야합니까? 또는 데이터베이스에서 직접 보고서를 채울 수 있습니까? –
데이터베이스에서 분리하려고하므로 config 파일의 연결 문자열에서 데이터 소스를 쉽게 제어 할 수 있습니다. –
연결 문자열에서 데이터 소스를 제어 할 수있는 솔루션을 게시했습니다. 그게 충분하지 않은지 알려주세요. –