ورود

View Full Version : آموزش : نمایش اطلاعات فیلتر شده با کد نویسی در گزارش



aknj56
شنبه 27 اردیبهشت 1393, 09:56 صبح
با سلام خدمت دوستان
قبل از آموزش یک توضیحی بدم:
من در تهیه گزارش وقتی برنامه به صورت ویزاردی بود هیچ مشکلی نداشتم و راحت دیتا ست رو اضافه می کردم ولی مشکل من در جایی بود بیام با کد نویسی در برنامه اطلاعات رو نشون بدم یا بخواهم اطلاعات رو فیلتر کنم بعد بیام اطلاعات رو در گزارش نشون بدم من خیلی توی اینترنت گشتم ولی چیز مناسبی پیدا نکردم بعضی از دوستان خیلی از کدها رو سخت و پیچیده کرده بودند همه میگفتند توسط دیتا ست یا دیتا تیبل بفرستیم به گزارش ولی این که چطوری اینکار رو بکنیم و توی فرم گزارش چه گزینه های رو باید انتخاب کنیم از میان آن همه گزینه که نیاز به کانشکن نداشته باشه و فقط اطلاعات دیتا ست رو بفرستیم توضیح نداده بودند لذا خودم خیلی تلاش کردم تا تونستم عاقبت موفق بشم حالا هم این آموزش رو برای اونایی که مثل من این مشکل رو داشتند میزارم امیدوارم بدردتون بخوره و امیدوارم خوب توضیح داده باشم لطفا نظرتون رو بدید ضمنا نمونه برنامه هم پیوست کردم میتونید دانلود کنید
حالا بریم سراغ آموزش :


ابتدا یک stireport به فرم اضافه می کنیم
آن را درحالت design report باز می کنیم
از تب dictionery گزینه new data source را انتخاب می کنیم
در صفحه باز شده گزینه data from dataset.data tables را انتخاب میکینیم
با قسمت nam is source کاری نداریم در قسمت name و alias نام دلخواه را برای دیتا ست انتخاب میکنیم یا اگر ابتدا در برنامه کدهای خود را نوشته ایم نامی هم نام با دیتا ست در برنامه رو حتما در اینجا وارد میکنیم
در قسمت پایین همین فرم به تعداد فیلدهای جدول new columns اضافه کرده و دقیقا نام فیلدهای جدول رو در قسمت مقابل آن در قسمت name تغییر نام می دهیم سپس ok می کنیم.
حالا این دیتا ست رو در تب dictionery مشاهده می کنیم (بعد فرم گزارش رو طراحی میکنیم فرض بر این است که این مراحل رو بلد هستید)
بعد باید این گزارش رو ذخیره کنیم در برنامه که stireport رو اضافه کرده ایم روی stireport کلیک راست و گزینه save report to file رو انتخاب کرده و آن را در کنار فایل اصلی برنامه ذخیره میکنیم.


کار در این مرحله تمام شده و به سراغ کدهای برنامه می رویم برای نشان دادن این گزارش به سه خط کد بیشتر نیاز نداریم یکی برای لود کردن فرم گزارش است دومی برای منبع داده های گزارش است و سومی هم برای نمایش گزارش است که نمونه کدهای زیر رو براتون گذاشتم

Dim StiReport1 As New Stimulsoft.Report.StiReport
StiReport1.Load(Application.StartupPath + "\\rep_test.mrt")
StiReport1.RegData(ds)
StiReport1.Show()

قابل توجه این که ابتدا باید توسط دستور سلکت رو بنویسیم حالا اگر دکمه گزارش رو بدون فیلتر کردن اطلاعات بزند تمام اطلاعات در گزارش نمایش داده می شود و اگر اطلاعا ت ر وفیلتر کند اطلاعات فیلتر شده رو در گزارش خواهد آورد


Dim cnn As New OleDbConnection
Dim cmd As New OleDbCommand
Dim da As New OleDbDataAdapter
Dim ds As New DataSet
conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\mdb.mdb;Persist Security Info=True"
cmd.Connection = cnn
cnn.ConnectionString = conn
cnn.Open()
da = New OleDbDataAdapter("select * from tbl where famil like@p1", cnn)
da.SelectCommand.Parameters.Add("p1", OleDbType.VarChar)
da.SelectCommand.Parameters("p1").Value = "%" + TextBox1.Text + "%"
ds.Clear()
da.Fill(ds)
DataGridView1.DataSource = ds
DataGridView1.DataMember = ds.Tables(0).ToString
'-------------------------------------------------------------------
StiReport1.Load(Application.StartupPath + "\\rep_test.mrt")
StiReport1.RegData(ds)
StiReport1.Show()


این هم نمونه برنامه:
http://nedaei1356.persiangig.com/vb.rar (http://nedaei1356.persiangig.com/vb.rar)