PDA

View Full Version : کریستال ریپورت و ASP2



ardvisoor
چهارشنبه 20 اردیبهشت 1385, 09:48 صبح
سلام
کسی می دونه من چطوری می تونم در ASP2 با کریستال ریپورت بصورت دینامیک ارتباط برقرار کنم؟ و یک سوال دیگر آیا راهی هست بشه یک گزارش رو بصورت کدنویسی طراحی کرد؟
ممنون

Seivan
چهارشنبه 20 اردیبهشت 1385, 14:20 عصر
ابتدا یک پروژه Windows Application ایجاد نمایید سپس فایل Crystal report را به پروژه ADD کنید. دراین حالت کلاسی برای گزارش ایجاد خواهد شد. (این کلاس در واقع Interface برای ارتباط با گزارش می باشد که در Runtime می توانید object هایی را از آن بسازید.)
بعد این کلاس تولید شده توسط NET. را در پروژه ASP خود و در مسیری که فایل Crystal report قرار دارد کپی کنید. حالا با خیال راحت می توانید در پروژه ASP کلاس گزارش خود را در Run time ببینید.
در این کلاس یک خاصیت به نام ReportSource وجود دارد که در واقع مسیر فایل Crystal report نسبت به کلاس آن می باشد. باید توجه داشت که با هر تغییری که در گزارش می دهید کد آنرا نیز همانند بالا دوباره Generate کنید. و باید توجه داشت که بعد از Publish کردن سایت نباید مسیر نسبی فایل Crystal report نسبت به DLL کلاس آنرا تغییر داد.

در مورد سوال دوم نیز تا آنجا که بنده اطلاع دارم اشیا مورد استفاده در یک کلاس گزارش Constructor ندارد بدین معنی که مثلا شما نمیتوانید یک TextBox جدید را توسط کد ایجاد نموده و به کلاس گزارش جدیدی اضافه کنید. بنابراین توسط کد و Component های موجود در Crystal Desicion امکان ایجاد یک گزارش جدید در runtime وجود ندارد. (اما Crystal Report 8.0 این خاصیت را دارد ولی در نسخه های بعدی این امکان وجود ندارد.)
مگر اینکه خود Protocol یی را که Crystal report برای فایل خود ایجاد نمایید پیدا کنید و سعی در تولید آنها نمایید. و یا اینکه کلاس های موجود در Crystal Desion را خود توسط یک Design Pattern ساده مانند Inheritance بازسازی نمایید.

البته جدیدا نسخه Advanced کریستال به بازار آمده است. ولی اینکه امکان این عمل با آن نسخه وجود دارد یا نه دقیقا خبر ندارم.