Textbox'a girilen değere göre rapor almak istiyorum.
Veri tabanı olarak Sql Server kullanıyorum.Sql serverda 4 adet tablo var.
Po,Poline,Company,Longdescription tabloları.
Bu tabloları dataset'e ekledim.Butonun click olayına aşapıdaki kodu yazdım.
Kod: Tümünü seç
protected void Button1_Click(object sender, EventArgs e)
{
string isemrino2 = TextBox1.Text;
SqlConnection baglantim = new SqlConnection("Data Source=***;Database=****;User Id=***;Password=****");
baglantim.Close();
string sorgu = "SELECT po.po5,po.description,po.ponum,po.orderdate,po.vendor,po.po3,po.po6,po.totalcost,companies.phone,companies.address1,longdescription.ldtext from po LEFT OUTER JOIN poline ON po.ponum=poline.ponum LEFT OUTER JOIN companies ON po.vendor =companies.company LEFT OUTER JOIN longdescription ON po.ldkey=longdescription.ldkey where po.ponum =@satinalmano";
SqlCommand cmd = new SqlCommand(sorgu,baglantim);
SqlParameter param = new SqlParameter();
baglantim.Open();
param.ParameterName = "@satinalmano";
param.Value = TextBox1.Text;
cmd.Parameters.Add(param);
cmd.ExecuteNonQuery();
SqlDataAdapter deneme = new SqlDataAdapter(sorgu,baglantim);
deneme.SelectCommand.Parameters.AddWithValue("@satinalmano", TextBox1.Text);
DataSet ds = new DataSet();
deneme.Fill(ds);
foreach (DataRow row in ds.Tables[0].Rows)
{
Label1.Text= row["po3"].ToString();
}
string firmalar = "SELECT address1 from companies where company=@firma2";
SqlCommand cmd2 = new SqlCommand(firmalar,baglantim);
SqlParameter param2 = new SqlParameter();
param2.ParameterName = "@firma2";
param2.Value = Label1.Text;
cmd2.Parameters.Add(param2);
cmd2.ExecuteNonQuery();
SqlDataAdapter deneme2 = new SqlDataAdapter(firmalar, baglantim);
deneme2.SelectCommand.Parameters.AddWithValue("@firma2",Label1.Text);
DataSet ds2 = new DataSet();
deneme2.Fill(ds2);
//Ürünler veritabanından çekiliyor
string urunler = "SELECT description,storeloc,itemnum,orderqty,orderunit,unitcost,plin1,plin2 from poline where ponum=@satinalmano2";
SqlCommand cmd3 = new SqlCommand(urunler, baglantim);
SqlParameter param3 = new SqlParameter();
param3.ParameterName = "@satinalmano2";
param3.Value = TextBox1.Text;
cmd3.Parameters.Add(param3);
cmd3.ExecuteScalar();
SqlDataAdapter deneme3 = new SqlDataAdapter(urunler, baglantim);
deneme3.SelectCommand.Parameters.AddWithValue("@satinalmano2",TextBox1.Text);
DataSet ds3 = new DataSet();
deneme3.Fill(ds3);
ReportDocument rp = new ReportDocument();
rp.Load(Server.MapPath("CrystalReport1.rpt"));
rp.SetDataSource(ds);
rp.Database.Tables["po"].SetDataSource(ds.Tables[0]);
rp.Database.Tables["longdescription"].SetDataSource(ds.Tables[0]);
rp.Database.Tables["companies"].SetDataSource(ds2.Tables[0]);
rp.Database.Tables["poline"].SetDataSource(ds3.Tables["0"]);
CrystalReportViewer1.ReportSource = rp;
CrystalReportViewer1.Visible = true;
baglantim.Close();
}
}
2)2. sorguda bu sorgudan gelen firma bilgisine göre adres bilgisi gibi bilgileri çekmek istiyorum.
2. Sorgu
string firmalar = "SELECT address1 from companies where company=@firma2";
Crystal report dizaynda company tablosundan istediğim alana adres field'ini yerleştirdim.Ama po tablosundan 3 adet firma var ve asp'de bunu aşağıdaki şekilde yapmıştım.c#'de nasıl yaparım.crystal reportdaki adres alanına 3 adet firmanın varsa bilgilerini nasıl gönderirim ??..
Asp'de recordsetten
Kod: Tümünü seç
firma1=rs("vendor")
firma2=rs("po3")
firma3=rs("po6")
toplamfiyatf1=rs("totalcost")
telefon(a)=rs("phone")
fadres=rs("address1")
detayli_aciklama=rs("ldtext")
rs.movenext
loop
if firma2<>"" or firma3<>"" then
if firma2<>"" then
set firmalar=Baglantim.execute("SELECT address1 from companies where company='"& firma2 &"'")
end if
if firma3<>"" then
set firmalar2=Baglantim.execute("SELECT address1 from companies where company='"& firma3 &"'")
end if
2)Sqldatareader kullansam dataları nasıl crystal reportda raporlayabilirim ? Datareaderdan crystal reportda döngü içindeki tüm verileri göndermem gerekiyor...
Kod: Tümünü seç
SqlDataReader drurunler;
drurunler = squrunler.ExecuteReader();
while(drurunler.Read())
{
string urunler=drurunler.GetString(0);
}
3 sorumla ilgili olarak yardımlarınızı bekliyorum..