مشاهده نسخه کامل
: ایجاد گزارش گیری بدون دیتاست
neda_traveler
12-07-2011, 10:20
سلام به دوستان
من گزارش گیری با کریستال ریپورت بلدم فقط می خواستم بدونم روشی هست که نیاز به ایجاد دیتاست نباشه
چون ما برای برناممون گزارش زیاد داریم و ایجاد این دیتاست ها حجم زیای گرفته و سرعت کم کرده و اگر راهی باشه که نیاز به ایجادش نباشه بهتره
ممنون
سلام
در کریستال وجود دیتاست الزامی است.
البته کریسال منابع مختلف دیگری هم میپذیرد و شما میتوانید به جای دیتاست چیز دیگری به ان دهید ولی در نهایت در کدهای داخلی خود هر نوع منبعی را قبل از شروع پردازش هایش به دیتاست تبدیل کرده و سپس کار را انجام میدهد، پس دادن سر راست دیتاست به کریستال سریعترین راه است.
ولی ابزارهای گزارشگیری دیگر مانند stimul الزامی به کار با دیتاست ندارند و منابع دیگر را به صورت قابل شمارش پذیرفته و مصرف میکند.
Payman_62
14-07-2011, 12:44
سلام.
_H2_ جان من هنگامی که با linq کار میکنم مشکل ارتباط با کریستال رو دارم. چون نمیتونم بین linq و دیتاست ارتباط برقرار کنم و خوب مسلما ارتباط با کریستال هم برقرار نمیشه.
راه حلی به ذهنت میرسه؟
سلام
هنگامی که با linq کار میکنم مشکل ارتباط با کریستال رو دارم. چون نمیتونم بین linq و دیتاست ارتباط برقرار کنم و خوب مسلما ارتباط با کریستال هم برقرار نمیشه.
همانطورکه در پست قبل گفتم، اصولاً کریستال همه منابع غیر دیتاست را در نهایت به دیتاست تبدیل کرده و سپس استفاده میکند، (که خودش باعث کاهش سرعتی خواهد شد) ولی نکته مهم آنجاست که از نظر سرعت فرقی ندارد که خودتان در یک حلقه اطلاعات را به دیتاست تبدیل کرده و سپس دیتاست نهایی را به کریستال بدهید.
در نتیجه ...
پیشنهاد میکنم خودتان در یک حلقه foreach تمام سطرهای خروجی LINQ را در یک TypedDataSet (که روی کریستال هم تنظیم شده است) بریزید و سپس نمونه شی دیتاست مربوطه را به عنوان Datasource کریستال بدهید.
البته در حال حاضر کریستال نصب ندارم که بتوانم امتحان کنم وگرنه با حصول شرایطش قاعدتاً باید خود کریستال بتواند تبدیل فوق الذکر را انجام دهد (گرچه درنهایت تفاوت سرعت و بازدهی نخواهید داشت و فقط مسئله چند خط کد بیشتر است)
ولی همین مبحث جاری را با Stimul امتحان کردم و مشکلی نداشت.
(یعنی یک کلاس با چند Property ایجاد کردم و مجموعه چند نمونه ان دستور LINQ ای اجرا و خروجی را به Stimul دادم که به خوبی گزارش را ارائه داد.)
موفق باشید.
و
Payman_62
15-07-2011, 23:20
سلام.
با این روش اگه رکوردها زیاد باشن ممکنه خیلی زمان بر باشه. زیاد اصولی نیست.
اصلا نمیفهمم چرا ماکروسافت ارتباط linq رو با دیتاست قطع کرده. هیچ جوری منطقی نیست. باید خودش یه متد برای تبدیل قرار میداد.
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.