我创建了一个空白水晶报告
然后使用以下代码,运行后没有什么可看的。
是否需要将字段对象添加到与数据集中的字段对应的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();
}
答案 0 :(得分:3)
以下是使用数据集创建晶体报告所需的步骤:
首先,这种方法称为PUSH方法。
1-通过visual studio创建数据集 转到右键单击您的项目 - &gt;添加新项目 - &gt; Datset称之为数据集1
2-在数据集中创建一个表(表1)
3-将列添加到表中,指定每列的类型 假设你有2列(ID类型为int),(字符串的名称类型)
4-然后在您的报告中您想为其选择数据源,因此在左侧的Field Explorer中,您将找到数据库字段,右键单击它并选择数据库专家
5-当你这样做时打开项目数据然后ADO.NET数据集选择你的数据集(数据集1)然后你的表(表1)
6-您会发现字段资源管理器中的数据库字段现在填充了表格和2列id和名称。
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();
这是您需要的所有步骤,
希望有所帮助。
答案 1 :(得分:0)
这可能有助于从asp.Net Dataset生成水晶报告的逐步过程: