【问题标题】:Is it possible to use the dataset generated dynamically in the report viewer?是否可以使用报表查看器中动态生成的数据集?
【发布时间】:2013-03-06 09:59:12
【问题描述】:

我是 Windows 桌面应用程序开发的新手。

我想在我的应用程序中打印账单,我使用了一个报表查看器控件并放置了两个标签来显示账单编号和当事人名称。

我正在 C# 中的代码隐藏文件中创建数据集。

我将数据集单元格的值分配给标签的文本属性。我的代码是:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data;
using System.Data.OleDb;


namespace WindowsFormsApplication1
{

public partial class Form1 : Form
{
    OleDbConnection cn;
    OleDbCommand cmd;
    OleDbDataAdapter da;
    DataSet ds;

    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        cn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\Bill\\dbBill.accdb");
        string query = "select A.BillNo,A.BillType,A.TaxType,A.PartyName,B.Desc,B.Desc,B.HSNCode,B.Qty,B.Rate,(B.Qty*B.Rate) as Amount " +
                       "from BillMaster A inner join BillDetail B on B.BillNo=A.BillNo";
        cn.Open();
        cmd = new OleDbCommand(query, cn);
        da = new OleDbDataAdapter(cmd);
        ds = new DataSet();
        da.Fill(ds);
        cn.Close();
        // TODO: This line of code loads data into the 'dbBillDataSet.BillDetail' table. You can move, or remove it, as needed.
        this.BillDetailTableAdapter.Fill(this.dbBillDataSet.BillDetail);

        this.reportViewer1.RefreshReport();


    }

    private void reportViewer1_Load(object sender, EventArgs e)
    {



        lblBillNo.Text = ds.Tables[0].Rows[0]["BillNo"].ToString();
        lblParty.Text = ds.Tables[0].Rows[0]["PartyName"].ToString();
    }
}
}

如何将数据集值分配给放置在报表查看器控件中的控件。 请帮我。提前致谢。

【问题讨论】:

  • 你能详细说明一下吗??
  • 当然.. @Praveen Nambiar
  • 我希望主详细信息显示一次。即 BillNo、PartyName、Address 和 CSTNo。它们存储在 Access 2007 的 BillMaster 表中。所以我为此添加了标签。属于特定 BillNo 的详细信息应显示在我将放置在同一报表查看器控件中的网格中。所以我想将数据集中的值绑定到网格和标签的文本属性。 @Praveen Nambiar
  • 听起来像一张发票。好吧,我相信标签将在 ReportViewer 控件之外。对吗?
  • 报表查看器控件中没有先生标签。我可以把我的代码发给你吗?? @Praveen Nambiar

标签: c# visual-studio-2010 desktop-application


【解决方案1】:

您将无法访问 reportviewr_load 内部的 DataSet 实例 ds。我建议您创建一个function(),它将返回一个DataSet,并在reportviewr_load 中使用该function()

【讨论】:

  • 先生,您能帮我解答一下我的this 查询吗? @Praveen Nambiar
【解决方案2】:
private DataSet YourData()
{
cn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\Bill  \\dbBill.accdb");
string query = "select     
  A.BillNo,A.BillType,A.TaxType,A.PartyName,B.Desc,B.Desc,B.HSNCode,B.Qty,B.Rate,
  (B.Qty*B.Rate) as Amount " +

 "from BillMaster A inner join BillDetail B on B.BillNo=A.BillNo";
 cn.Open();
 cmd = new OleDbCommand(query, cn);
 da = new OleDbDataAdapter(cmd);
 ds = new DataSet();
 da.Fill(ds);
 cn.Close();
 return ds;
} 

【讨论】:

  • @Praveen Nambiar 建议的答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-21
  • 1970-01-01
  • 2018-09-17
  • 2016-05-16
相关资源
最近更新 更多