با توجه به مباحثي كه مطرح شد لازم تونستم در مورد روش استفاده از اين ابزار قدرتمند در زبان برنامه نويسي دات نت توضيحاتي بدم به همراه يكسري كد كه

خودم در پروژه هام ازشون استفاده مي كنم.

براي اينكه بتونيد از گزارشات بدون مشكل استفاده كنيد اصلا خود فايل گزارش رو به ديتابيسي وصل نكنيد. اينطوري بعدا ممكنه به مشكل بر بخوريد.
راه حلي كه بهتون پيشنهاد مي كنم اينه كه بياييد اطلاعاتتون رو در محيط برنامه نويسي داخل يدونه DataTable بريزيد بعد در مقابل يدونه DataTable هم در

محبط ديزاينر Stimulsoft مثل هموني كه در محيط برنامه نويسي ساخته بوديد بسازيد.

حالا مونده كه ارتباط اين دو تا رو برقرار كنيد.

اين هم نمونه كد براي برقراري ارتباط DataTable برنامه با DataTable گزارش:


Me.Cursor = Cursors.WaitCursor
Dim StiReport1 As New Stimulsoft.Report.StiReport()
StiReport1.Load("ReportFile.mrt")

StiReport1.Dictionary.DataSources.Items(0).DataTab le = table
StiReport1.RegData("DataSource1", table)

StiReport1.Dictionary.Variables.Item(0).Value = txtTitle.Text 'title
StiReport1.Dictionary.Variables.Item(1).Value = txtReportDate.Text 'date


StiReport1.Show()
StiReport1.Render()
Me.Cursor = Cursors.Default


توضيحات كد فوق:

Me.Cursor = Cursors.WaitCursor

در ابتدا مياييم و كرسر ماوس رو به حالت انتظار در مياريم



Dim StiReport1 As New Stimulsoft.Report.StiReport()
StiReport1.Load("ReportFile.mrt")

بعدش گزارشي به اسم StiReport ميسازيم و با متد Load فايل گزارشمون رو كه طراحي كرديم بهش ميديم


اگه يادتون باشه داخل فايل گزارش DataTable ساخته بوديم (روش ساخت Datatable داخل فايل گزارش هم به ترتيب زير است:
از قسمت Dictionary روي قسمت خالي راست كليك مي كنيم بعد NewDataSource رو انتخاب مي كنيم بعدش Data From DataSet,DataTable رو انتخاب مي

كنيم ) حالا نوبت ارتباط برقرار كردن بين ديتاتيبل برنامه (كه در اينجا به اسم table هست ) با ديتاتيبل گزارش است . با دو خط زير ميتونيم اين كار رو انجام بديم:


StiReport1.Dictionary.DataSources.Items(0).DataTab le = table
StiReport1.RegData("DataSource1", table)



در ادامه دو خط زير هم براي مقدار دهي Variable هاي گزارش هست. به طور مثال در فايل گزارش دو متغير بسازيد بعد به صورت زير در داخل برنامه اونا رو مقدار

بديد:

StiReport1.Dictionary.Variables.Item(0).Value = txtTitle.Text 'title
StiReport1.Dictionary.Variables.Item(1).Value = txtReportDate.Text 'date

حالا تاريخ هر چيزي ميتونه باشه حتي شمسي!!
عنوان گزارش هم كه ارسال كرديم كه كاربر بتونه عنوان گزارشش رو خودش انتخاب كنه


در آخر هم گزارش رو كامپايل ميكنيم و به كاربر نشون ميديم.

با اين روشي كه گفتم ديگه گزارشتون مستقل از ديتابيس ميشه و به صورت مستقيم به برنامه مربوط ميشه. مثلا اگه بخواهين عملياتي روي اطلاعات مثل مرتب

سازي، فيلتر، ويرايش و .... انجام بدين دستتون بازه براي اين كار.
اميدوارم اين راهنماي خوبي باشه براي عزيزاني كه با گزارش گيري با برنامه و ارسال پارامتر به آن مشكل داشتن.



موفق باشيد ( محمد بشيري)