【问题标题】:How to fill in data from dataset to crystal report?如何将数据集中的数据填入水晶报表?
【发布时间】:2012-06-08 15:34:11
【问题描述】:

我创建了一个空白水晶报表

然后使用下面的代码,运行后什么都没有看到。

是否需要在数据集中字段对应的crytsl报告中添加字段对象。 但是我不知道如何在没有通过水晶报表连接的情况下添加。

try
        {
            string _connectionString = ConfigurationManager.ConnectionStrings["CarParkConnectionString"].ConnectionString;

            OleDbConnection connection = null;
            try
            {
                using (connection = new OleDbConnection(_connectionString))
                {
                    //OleDbCommand command = connection.CreateCommand();
                    string selectsql = "SELECT a.Transaction_Date, a.Card_no, a.Company, a.Credit_Fee, a.Non_Credit_Fee FROM [SELECT Transaction_Date, Card_no, Company, Fee as Credit_Fee, 0 as Non_credit_fee FROM CarPark where IsCredit = true union all SELECT Transaction_Date, Card_no, Company, 0 as Credit_Fee,  Fee as Non_credit_fee FROM CarPark where IsCredit = false]. AS a where a.Transaction_Date >= " + Calendar1.SelectedDate.ToShortDateString() + " and a.Transaction_Date <= " + Calendar2.SelectedDate.ToShortDateString();
                    //command.CommandText = selectsql;
                    //SetCommandParametersForInsertUpdateTo(carpark, command, error);
                    connection.Open();

                    OleDbDataAdapter dataAdapter1 = new OleDbDataAdapter(selectsql, connection);
                    DataSet ds = new DataSet();
                    dataAdapter1.Fill(ds, "CarPark");

                    dataAdapter1.Dispose();

                    CrystalReport1 objRpt = new CrystalReport1();
                    objRpt.SetDataSource(ds.Tables[0]);

                    DailyReport_CrystalReportViewer.EnableParameterPrompt = false;
                    DailyReport_CrystalReportViewer.ReportSource = objRpt;
                    DailyReport_CrystalReportViewer.RefreshReport();
                }
            }
            catch (Exception ex)
            {
                connection.Close();
                Error_Label.Text = Error_Label.Text + " " + ex.Message;
            }
            finally
            {
                connection.Close();
            }

【问题讨论】:

    标签: asp.net crystal-reports


    【解决方案1】:

    以下是使用数据集创建水晶报表所需的步骤:

    首先这个方法叫做PUSH方法。

    1- 通过 Visual Studio 创建数据集 转到右键单击您的项目->添加新项目->数据集将其命名为Dataset1

    2- 在您的数据集中创建一个表,称之为 (Table1)

    3- 将列添加到表中,指定每列的类型 假设你有 2 列(int 的 ID 类型),(字符串的名称类型)

    4- 然后在您的报告中您要为其选择数据源,因此在左侧的字段资源管理器中,您将找到数据库字段,右键单击它并选择数据库专家

    5- 当您这样做时,打开项目数据,然后选择 ADO.NET 数据集选择您的数据集 (Dataset1),然后选择您的表 (Table1)

    6- 您会发现字段资源管理器中的数据库字段现在填充了表格以及 2 列 id 和 name。

    7- 将这两个字段拖放到报告的详细信息部分中。

    现在可以查看报告了,但还没有,因为您需要通过数据集填充 ID 和名称字段

    8- 填充数据集的示例代码

    Dataset ds=new DataSet();
    DataTable dt=new DataTable("Table1"); // Be sure to call this table as your Table's name
                                          // in the Dataset
    dt.Columns.Add("ID", typeof(System.Integer)); //Same name of your ID column
    dt.Columns.Add("Name", typeof(System.String));
    Datarow dr=dt.NewRow();
    dr["ID"]=1;
    dr["Name"]="Test";
    dt.Rows.Add(dr);
    ds.Tables.Add(dt);
    ReportDocument rpt = new ReportDocument();
    rpt.Load(Server.MapPath("Your Report's Name"));
    rpt.SetDataSource(ds);
    
    DailyReport_CrystalReportViewer.ReportSource = rpt;
    DailyReport_CrystalReportViewer.DataBind();
    

    这里有你需要的所有步骤,

    希望对您有所帮助。

    【讨论】:

      【解决方案2】:

      【讨论】:

        猜你喜欢
        • 2023-03-19
        • 2013-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-18
        • 2010-10-28
        • 1970-01-01
        • 2012-04-17
        相关资源
        最近更新 更多