PDA

View Full Version : گزارش گيري با كريستال ريپورت



near_86
سه شنبه 21 خرداد 1387, 11:31 صبح
سلام به همه دوستان
من تازه شروع به كار با كريستال كردم
ميخوام در زمان برقراري ارتباط با ديتابيس از يك reader استفاده كنم اما همونطور كه در كد هم ميبينيد نميدونم بايد از چه دستوري استفاده كنم!
كد برقراري ارتباط با ديتابيس از طريق آداپتور رو ميدونم ولي ميخوام از ريدر استفاده كنم،لطفا كمكم كنيد


PubSqlDR = PubSqlCom.ExecuteReader
PubSqlDR.Read()

rptEmployee.SetDataSource(PubSqlDR.?)

Afshin160
سه شنبه 21 خرداد 1387, 15:48 عصر
سلام دوست عزيز ...
من دقيقا متوجه نشدم كه منظور شما چه ولي در كل يه راه ساده اينه كه شما اول اطلاعاتي را كه براي گزارش مي خواهيد را با دستوراتي همچون select تهيه كنيد و در يك ديتاست بريزيد و بعد ديتاست را به كريستال ريتورت پاس دهيد...

آن وقت ديگه فرق ندارد كه شما براي برقراري ارتباط با ديتابيس از چي استفاده مي كنيد.
موفق باشيد.

near_86
چهارشنبه 22 خرداد 1387, 08:55 صبح
PubSqlCom.CommandText = "SELECT * FROM sales "
PubSqlCom.Connection = PubSqlCon
If PubSqlCon.State = Data.ConnectionState.Open Then PubSqlCon.Close()
If PubSqlCon.State = Data.ConnectionState.Closed Then PubSqlCon.Open()
PubSqlDR = PubSqlCom.ExecuteReader
PubSqlDR.Read()
rptEmployee.SetDataSource(PubSqldr.)


همونطور كه در كد مي بينيد ،مشكل من در برقراري ارتباط با ديتابيس نيست ،مشكل خطي است كه با رنگ قرمز نشون دادم

Afshin160
چهارشنبه 22 خرداد 1387, 11:46 صبح
سلام
يه فايل برات گذاشتم ببين بدردت ميخوره..
فايل attach نميشه..

فايل pdf. توي تاپيك زير هم گذاشتم
http://barnamenevis.org/forum/showthread.php?t=109387

موفق باشيد

near_86
چهارشنبه 22 خرداد 1387, 13:05 عصر
ممنونم از راهنماييتون
ولي ميخوام براي برقراري ارتباط با ديتابيس در گزارشاتم از ExecuteReader استفاده كنم
سوال من اين هست كه بعد از SetDataSource چه چيزي بايد بنويسم
چون data reader ديتاست نداره

Dariuosh
چهارشنبه 22 خرداد 1387, 14:10 عصر
http://barnamenevis.org/forum/showthread.php?t=12794

near_86
چهارشنبه 22 خرداد 1387, 15:12 عصر
با تشكر از همه دوستان

ولي مشكلم حل نشد!!

از بين دوستان كسي نميتونه كمكم كنه؟

near_86
پنج شنبه 23 خرداد 1387, 07:58 صبح
از بین دوستان کسی نمیتونه کمکم کنه :گریه:

Chabok
پنج شنبه 23 خرداد 1387, 16:50 عصر
متد SeytDataSource دارای 4 Overload است که پارامترهای زیر را قبول می کنند .
http://i30.tinypic.com/2u58eh4.jpg
ولی IDataReader از نوع شی نیست . Interface است که شی شما باید آن را Implement کند .(که SqlDataReader این کار رو میکند . ولی نمیدونم اینجا چجوری باید استفاده بشه)

اگر موفق نشدید یا باید از DataSet و یا DataTable استفاده کنید . و یا اگر هنوز قصد استفاده از DataReader دارید آن را از بانک پر کنید و بصورت دستی از آن یک DataTable درست کنید و به گزارش پاس بدهید . :لبخند:

موفق باشید .

near_86
شنبه 25 خرداد 1387, 07:17 صبح
با تشکر از همه دوستان

سوالی که برای من ایجاد شده این هست که، همه ما میدونیم سرعت دیتاریدر بسشتر از دیتا آداپتور
و این میتونه به عنوان یک مزیت خوب در گزارش گیریها به حساب بیاد.

نکته جالب این که از قرار معلوم کسی از دیتاریدر استفاده نمیکنه:متعجب:

Chabok
شنبه 25 خرداد 1387, 09:19 صبح
با سلام
کسی منکر این نیست که استفاده از دیتاریدر بهتر از دیتاست و دیتا تیبل و ... است .

ولی وقتی شما سیستم تون رو استاندارد طراحی کرده باشین و مشکل Performance نداشته باشید ، حالا مثلا اگر در جایی از DataTable و یا حتی DataSet هم استفاده کنید تغییر فاحشی در زمان مشاهده نمی کنید . مگر در حد چند میلی ثانیه .

اگر شما در برنامه تون در همه بخش های گرفتن اطلاعات از دیتابیس از دیتاریدر استفاده می کنید و حالا در یک بخش مثل اینجا هم شاید مجبور به استفاده از DataTable بشید ، این به نظر من مشکل خاصی رو ایجاد نمیکنه .

موفق و پیروز باشید .

near_86
یک شنبه 26 خرداد 1387, 21:25 عصر
از دوستان كسي ميتونه ي Sample از گزارش گيري با ديتا ريدر بزاره !!

ali_md110
سه شنبه 28 خرداد 1387, 01:07 صبح
یه مثال ببین شاید بدردتون بخوره
http://barnamenevis.org/forum/showthread.php?t=104690