昨天我搞了一天无法解决,参考了一篇用dataset做打印数据源的,但是我打的时候报错,该报表不含表,如何解决CrystalReport1 orpt = new CrystalReport1();
orpt.SetDataSource(myClass.ds2.Tables[0]);<-----该报表不含表我确定里面有数据表啊,到底是哪里错了,顺便问下如何设定要打印的字段
orpt.SetDataSource(myClass.ds2.Tables[0]);<-----该报表不含表我确定里面有数据表啊,到底是哪里错了,顺便问下如何设定要打印的字段
估计造成你错误的原因是Tables[0]里没有值
或者把0换成你的TABLE NAME试试
orpt.SetDataSource(myClass.ds2.Tables[0]);或
da.fill(ds2,"XXX");
orpt.SetDataSource(myClass.ds2.Tables["XXX"]);试试
CrystalReport1 orpt = new CrystalReport1();
orpt.SetDataSource(myClass.ds2.Tables["Results"]);<---仍然出错,无表求解决办法
public static class myClass
{
public static dataset ds2;
}不知这样是否对???
public DataSet ds2;试试
public myclass
{
public dataset ds2;
}这样???
public DataSet ds2;不需要单独写一个类
{
public partial class Form1 : Form
{
private SqlConnection cn = new SqlConnection("...");
private SqlDataAdapter da;
public DataSet ds = new DataSet();
.......
........这样申明的ds即可以在DataGridView里用又可以在CrystalRrport1用了.
orpt.SetDataSource(myClass.ds2)
我把SetDataSource放成dataset时就通过了,
不知道你能不能行?!
那就是樓主的報表有問題
建報表時里面的表和dataset要相對應
我把SetDataSource放成dataset时就通过了,
括号里参数换成dataset是不?
public DataSet SELECTDB(string Query) //select查询,这个是webservice端的
{
try
{
OracleConnection CS = new OracleConnection("Data Source=wms;User Id=abs_test;Password=12345678;");
OracleDataAdapter myCommand = new OracleDataAdapter(Query, CS);
DataSet myDataSet = new DataSet();
myCommand.Fill(myDataSet, "Results");
return myDataSet;
}
catch (Exception ex)
{
return null;
}
}
private void button5_Click(object sender, EventArgs e) //查历史明细,
{
try
{
movestore.localhost.Service query = new movestore.localhost.Service();
ds2 = query.SELECTDB("select a.billno,a.bookid,b.bookname,b.price,a.factoutqty,b.price*a.factoutqty from movestoredt a,dict_bookcard b where a.bookid=b.bookid and a.billno=" + textBox3.Text); <----这里把webservice回来的dataset给ds2; dataGridView2.DataSource = ds2.Tables["Results"];<-----这个也成功
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void button7_Click(object sender, EventArgs e)<------打印按钮
{
CrystalReport1 orpt = new CrystalReport1();
orpt.SetDataSource(ds2); <-------失败,没有表
//.ReportSource = oRpt;
Form frm3=new Form3();
frm3.Show();
请问这要如何对应,我想就是这个问题,我在报表里用数据库专家找不到我定义的这个dataset
????
我在我机子上试了一下,datagrid不显示数据!!!
我找到问题症结了,报表里没有任何表,所以出错(我随便添了个表就通过了),但问题是我想添加的是ds2这个数据集里的表,不知应该怎么搞,数据库专家里浏览不到自定义的这个ds2!!!!!!!
至於數據你可以用sql語句導到dataset中(可以動態設置,根據不同參數導出不同數據),把它設置成報表的數據源就是了
這是最簡單的報表啊
沒你們想得那麼復雜