是否有可用于从Crystal Report构建强类型数据集架构的免费工具?

时间:2012-03-19 14:16:05

标签: c# crystal-reports dataset datasource

我正在将预先创建的Crystal Reports导入到报表项目中,并且我想从数据库调用中填充数据,因此我可以以编程方式更改数据源。

但是,很多表格中都有很多字段。如果我不需要,我不想手动构建这些数据集。是否有一个工具可以检查Crystal Reports的元数据并从中生成强类型的ADO.NET数据集?这会节省我很多时间。

2 个答案:

答案 0 :(得分:2)

您可以通过编程方式更改报表指向的数据源 - 您无需使用中间数据集。您只需查看报告中的每个表并更新数据源。

见下面的代码:

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

答案 1 :(得分:0)

看起来不像我想要的机制。