PDA

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



niknam_mh
سه شنبه 25 مهر 1391, 13:16 عصر
دوستان عزیز
من یه مشکل اساسی در گزارشگیری با کریستال در وی بی دات نت داشتم که به همت و همکاری جناب سیاوش ابراهیمی حل شد و من جا دارد از او در این تاپیک تشکر کنم.

من تا حالا مجبور بودم اطلاعات درون دیتا گرید را به دیتابیس منتقل کرده و سپس گزارش بگیرم .طبق سورسی که جناب ابراهیمی در پیام خصوصی برای من فرستادند ومن آن را با ویژوال استودیو 2010 نوشتم دیگر مجبور نیستم اطلاعات را به دیتابیس بفرستم چون این کار از سرعت برنامه در پرینت های گروهی می کاهد.
ناگفته نماند من در سایت هم سرچ کردم مثال هم بود ولی یه جورایی گزارشگیری به دیتابیس ربط داشت یعنی اطلاعات را از دیتابیس می خواند ولی با این روش اطلاعات را از دیتا گریدویو می خوانه.


ضمیمه:
94049

حسین شهریاری
سه شنبه 25 مهر 1391, 13:23 عصر
خیلی خوب هست!
ولی با افزایش رکوردها، بهینه عمل نمیکنه.
دیتاست را دستی مقدار ندید، اونا با آداپتر پرکنین یا به جای اون دیتا تیبل را ارسال کنین.

niknam_mh
سه شنبه 25 مهر 1391, 13:38 عصر
خیلی خوب هست!
ولی با افزایش رکوردها، بهینه عمل نمیکنه.
دیتاست را دستی مقدار ندید، اونا با آداپتر پرکنین یا به جای اون دیتا تیبل را ارسال کنین.

می شه با مثال توضیح تان را کامل کنید تا دیگران هم به طور کامل استفاده ببرند.
ممنون دوست عزیز

حسین شهریاری
سه شنبه 25 مهر 1391, 13:44 عصر
یعنی DataTable را با DataAdapter پر کنید و به متد SetDataSource ارسال کنید.

niknam_mh
سه شنبه 25 مهر 1391, 13:51 عصر
یعنی DataTable را با DataAdapter پر کنید و به متد SetDataSource ارسال کنید.


آیا کد خاص یا ویزارد خاصی داره من متوجه نمی شم باید چکار کنم اگر امکانش هست با یه سورس راهنمایی کنید ممنون

Hybrid
سه شنبه 25 مهر 1391, 16:43 عصر
آیا کد خاص یا ویزارد خاصی داره من متوجه نمی شم باید چکار کنم اگر امکانش هست با یه سورس راهنمایی کنید ممنون

سلام به همه دوستان عزیز ، من منظور دوستمون حسین شهریاری رو خوب درک نمیکنم ، حالا میشه به روش دیگه ای هم عمل کرد یعنی یک Datatable بسازیم و ستون ها رو به صورت کد بهش اضافه کنیم :


Dim dt As New DataTable
With dt
.Columns.Add("ID")
.Columns.Add("Name")
.Columns.Add("Family")
End With

بعد بیاییم کد درون حلقه رو به شکل زیر تغییر بدیم :

dt.Rows.Add(counter.Cells(0).Value, counter.Cells(1).Value, counter.Cells(2).Value)
و سپس :

rptDoc.SetDataSource(dt)

موفق باشید

CHROCHRO
جمعه 02 فروردین 1392, 12:56 عصر
برادران بهتره یه مقدار هم دقت کنین به نتیجه. ما میخوایم اطلاعات داخل دیتاگرید رو روی کاغذ چاپ کنیم (اونم کلمات فارسی!) این کدهایی که نوشتین، با حروف لاتین هستش که در پرویو و پرینت درست درمیاد. اما خیلی ساده من کلمات فارسی تو همین کدها بکار بردم در پرویو درست بود ولی در پریت روی کاغذ همه چی برعکس شد یعنی حرف به حرف از چپ به راست!