如何使用多个表中的数据制作CrystalReport?

内尔

新成员
已加入
2011年11月10日
留言内容
3
编程经验
Beginner
你好,

我有一个包含三个表的数据库,并且我想使用每个表中的一些数据制作水晶报表。
这是我的代码,但是我是新手,我也不知道该如何帮助自己:

ReportDocument cryRpt =新的ReportDocument();
string comstring = "从(() NALOG1.GBRV = MAGACIN.GBR上的NALOG1内部联接MAGACIN)NALOG1.GBRV = NOVI.GBR上的NALOG1内部联接NOVI其中(((NOVI.GBR)>='?' And (NOVI.GBR)<='?')AND(((NOVI.AB)='?')或((NOVI.ab)='?')))AND(((NALOG1.DATA)>=?)和(((NALOG1.DATA)<=?))GROUP BY NOVI.GBR,NOVI.AB,NALOG1.DATA";
OleDbCommand命令=新的OleDbCommand();
command.Connection = conn;
command.CommandText = comstring;
如果(radioButton4.Checked == true){
command.Parameters.AddWithValue("@gbr1", textBox1.Text);
command.Parameters.AddWithValue("@gbr2", textBox1.Text);
}
如果(radioButton5.Checked == true){

command.Parameters.AddWithValue("@gbr1", "1001");
command.Parameters.AddWithValue("@gbr2", "1020");
}
如果(radioButton6.Checked == true){

command.Parameters.AddWithValue("@gbr1","1020" );
command.Parameters.AddWithValue("@gbr2", "1088");
}
如果(radioButton7.Checked == true)
{
command.Parameters.AddWithValue("@gbr1", "1001");
command.Parameters.AddWithValue("@gbr2", "1088");
}
if(checkBox1.Checked == true){
command.Parameters.AddWithValue("@ab1", 1);
command.Parameters.AddWithValue("@ab2", 1);
}
否则,如果(checkBox2.Checked == true)
{
command.Parameters.AddWithValue("@ab1", 2);
command.Parameters.AddWithValue("@ab2", 2);
}
否则if((checkBox1.Checked == true)&&(checkBox2.Checked == true))
{
command.Parameters.AddWithValue("@ab", 1);
command.Parameters.AddWithValue("@ab",2);
}
command.Parameters.AddWithValue("@data1",dateTimePicker1.Value);
command.Parameters.AddWithValue("@data2",dateTimePicker2.Value);
DataSet dataSet2 =新DataSet();
conn.Open();

OleDbDataAdapter oleDBDataAdapter1 =新的OleDbDataAdapter(新的OleDbCommand(comstring,conn));
OleDbCommand command1 =新的OleDbCommand();
command1.Connection = conn;
oleDBDataAdapter1.SelectCommand.CommandText = comstring;
dataSet2.Clear();
oleDBDataAdapter1.Fill(dataSet2);

cryRpt.SetDataSource(dataSet2);
crystalReportViewer1.DisplayToolbar = true;
crystalReportViewer1.ReportSource = cryRpt;

cryRpt.PrintOptions.PaperOrientation = CrystalDecisions.Shared.PaperOrientation.Landscape;
crystalReportViewer1.Refresh();
conn.Close();

我知道我有一些冗余代码,但是我对如何执行此操作尚不清楚。
如果有人有主意请帮助我。
谢谢
 
最佳 底部