PDA

نسخه کامل مشاهده نسخه کامل : مشکل با انتقال اطلاعات از دیتاگرید به کریستال ریپورت



ahmad_ferd
26-03-2012, 12:22
با سلا خدمت دوستان من کد زیر برای انتقال چند سطر از دیتاگرید به کریستال ریپورت توی یه صفحه دیگه نوشتم و دیتاست و تیبل هم ساختم و به شی کریستال ریپورت فرستادم و ارور میده میگه تیبلی وجود نداره , این کار طوریه که من نمیتونم با ویزارد جدول ها رو به کریستال ریپورت بفرستم چون بانکهای مختلفی با فرمت دی بی اف باز میشه و فیلدها و مقادیر مختلفی و در بر میگیره و چیز ثابتی نیست که بشه یکبار تعریفش کرد , راه حلی که به ذهن خودم رسید همنی بود ولی خطا داره
دوستان کمک کنن ممنون میشم , اینم کد

4

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

توی قسمت cr.SetDataSource(ds); ارور میده

ahmad_ferd
29-03-2012, 10:26
دوستان عید تموم شد حالا یه جوابی بدین دیگه ...

aliaghaaaaa
29-03-2012, 10:56
سلام.
من خودم معمولا از این روش استفاده می کنم:
از قسمت new query میرم فیلدهام رو انتخاب می کنم و دستورش رو کپی پیست می کنم که مطمئن باشم دستوراتم درسته.
بعد برای کریستال هم به روش زیر کار می کنم:
اطلاعاتم رو که ریختم تو دیتاگرید، میام تو خاصیت cell_click دیتا گرید کد زیر رو می می نویسم:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اینطوری id رکوردی که می خوام رو بدست میارم.
بعد همون دستوری که باهاش دیتاگرید رو پر کردم به صورت زیر به کریستال پاس می دم با این تفاوت که یه where id='"+id+"' بهش اضافه می کنم:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

امیدوارم جواب شما رو داده باشم.:20:

neda_traveler
02-04-2012, 13:45
ممنون راه شما هم راه خوبیه
اما فکر کنم سوال دوستنون اینطوری بود که چندین رکورد می خوان بفرستن
و بعد اینجا با دستور شما کمی بررسی لازم داره
اما بازم راه جالب بود
ممنون:11:

ahmad_ferd
02-04-2012, 18:00
ممنون دوستان به خاطر شرکت تو بحث , بله من میخوام اطلاعاتی و که توی یه دیتاتیبل جمع کردم و بفرستم به کریستال ریپورت وقتی دیتاسورس کریستال ریپورت و برابر این دیتاتیبل قرار میدم میگه تیبلی وجود نداره در حالی که داره , وقتی دیتاتیبل و توی دیتاست هم قرار میدم وضع همینه و همین خطا رو میده , در واقع من میخوام گزارشم دینامیک باشه یعنی شکل خاصی نداره که من با ویزارد تعریفش کنم و پارامترها رو توی گزارش قرار بدم و بعد مقادیر و بهش پاس بدم و تمام , دیتاتیبل من هر دفعه مقادیر و فیلدهها و ردیفهای متفاوتی داره که نمیشه استاتیک تعریفش کرد , میخوام در واقع شکل ویزاردیش و دینامیک کنم
فکر کنم قضیه کاملا روشن شد و بحث هم جالب
ممنون اگه جواب بدین

neda_traveler
03-04-2012, 08:02
الان چطوری در کریستال ریپورت از دیتاست استفاده کردین؟
و فیلدها در صفحه گزارش اوردین؟

ahmad_ferd
03-04-2012, 17:43
مشکل همینجاست به اون قسمت نمیرسه اصلا , اگه از ویزارد استفاده کنم آخر کار فیلدهارو میچینه و تمام , من میخوام این کار دینامیک باشه , چون یانکهایی که تو برنامه من هستن ساختارش مثل فایل هستش و هیچ data provider اونو نمیشناسه متاسفانه ,طبق عکس یه دیتاتیبل پر میشه از فیلدها و رکوردها همین دیتاتیبل رو میشه به عنوان دیتاسورس به متد setdatasource کریستال ریپورت ارسال کرد که خطای زمان کامپایل میده و میگه تیبلی وجود نداره , حالا میتونیم این دیتاتیبل و توی دیتاست بزاریم و پاس کنیم که دوباره همین خطارو میده , میتونیم به پروژه مون یه دیتاست اضافه کنیم توی اون یه تیبل خالی بسازیم حالا این تیبل و پر کنیم و پاس کنیم که من این کارم کردم و دوباره خطا میده .
با تشکر

neda_traveler
04-04-2012, 08:22
ببینید من تقریبا یکی از گزارشاهای برنامم مثل شما هست
که در اون برنامه قرار بود من هر دفعه فیلدهای مختلفی بفرستم
چون فیلدها ثابت نبودن اما مثلا میدونستم حداکثر 10 تا هست
یک دیتا تیبل درست کردم و اطلااعت داخلش ریختم
متناظر با اون دیتاست درست کردم و باید حتما نام فیلدها دیتا تیبل دیتاست یکی باشه که بشناسه
بعد در دیتاست 10 فیلد با نام datacoulmn2,datacoulmn1....دزست کردم که عینا نام فیلدها با دیتا تیبل یکی بود
بعد در کریستال دیتاست اضافه کردم و بقیه کار
برا شما هم اگر خطا میده چون دیتاستت خالی هست و فیلدها متناظر نیست

ahmad_ferd
05-04-2012, 19:30
ممنون تستش میکنم

ahmad_ferd
05-04-2012, 19:41
ببخشین میشه یه نمونه کدی که گفتین و بنویسین ممنون

aliaghaaaaa
15-04-2012, 10:32
سلام.
شما یه view بسازید و توش کوئری که می خواید رو بسازید.
بعد یه dataset بسازید و view رو توش drag کنید.
بعد تو کریستال ریپورت database expert کنید و view رو توش بیارید.
بعد می تونید از کدی که گفتم استفاده کنید.