تور لحظه آخری
امروز : دوشنبه ، 5 آذر 1403    احادیث و روایات:  امام حسین (ع):آن که در کاری که نافرمانی خداست بکوشد امیدش را از دست می دهد و ن...
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

تبلیغات متنی

صرافی ارکی چنج

صرافی rkchange

سایبان ماشین

دزدگیر منزل

تشریفات روناک

اجاره سند در شیراز

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

Future Innovate Tech

پی جو مشاغل برتر شیراز

لوله بازکنی تهران

آراد برندینگ

خرید یخچال خارجی

موسسه خیریه

واردات از چین

حمية السكري النوع الثاني

ناب مووی

دانلود فیلم

بانک کتاب

دریافت دیه موتورسیکلت از بیمه

طراحی سایت تهران سایت

irspeedy

درج اگهی ویژه

تعمیرات مک بوک

دانلود فیلم هندی

قیمت فرش

درب فریم لس

زانوبند زاپیامکس

روغن بهران بردبار ۳۲۰

قیمت سرور اچ پی

خرید بلیط هواپیما

بلیط اتوبوس پایانه

قیمت سرور dl380 g10

تعمیرات پکیج کرج

لیست قیمت گوشی شیائومی

خرید فالوور

بهترین وکیل کرج

بهترین وکیل تهران

خرید اکانت تریدینگ ویو

خرید از چین

خرید از چین

تجهیزات کافی شاپ

ویزای چک

محصولات فوراور

خرید سرور اچ پی ماهان شبکه

دوربین سیمکارتی چرخشی

همکاری آی نو و گزینه دو

کاشت ابرو طبیعی و‌ سریع

الک آزمایشگاهی

الک آزمایشگاهی

خرید سرور مجازی

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

لوله و اتصالات آذین

قرص گلوریا

نمایندگی دوو در کرج

خرید نهال سیب

وکیل ایرانی در استانبول

وکیل ایرانی در استانبول

وکیل ایرانی در استانبول

رفع تاری و تشخیص پلاک

 






آمار وبسایت

 تعداد کل بازدیدها : 1833684874




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

یک جدول با اطلاعاتی به شکل زیر چگونه می توان در CrystalReport ساخت؟


واضح آرشیو وب فارسی:سایت ریسک: View Full Version : یک جدول با اطلاعاتی به شکل زیر چگونه می توان در CrystalReport ساخت؟ M-B-M20-07-2008, 01:42 AMسلام توی کریستال ریپورت چنین گزارشی را چگونه می توان ساخت؟ پسر دختر جمع زن مرد جمع جمع کل کلاس الف کلاس ب کلاس ج همه اطلاعات در یک جدول به نام Customer قرار دارد می خواهم در این جدول تعداد پسرهای کلاس الف در مکان مشخص شده، تعداد دخترهای کلاس الف در مکان مشخص شده و جمع این دو در مکان مشخصی شده، تعداد زن های کلاس الف در مکان مشخص شده، تعداد مردهای کلاس الف در مکان مشخص شده و جمع این دو در مکان مشخص شده و همینطور در کلاسهای بعدی این کار تکرار شود چگونه می توان چنین گزارشی تهیه نمود؟ M-B-M21-07-2008, 03:26 PMلطفا اگر کسی یاد داره کمک کنه! _H2_22-07-2008, 12:20 AMسلام آیا ساخت یک جدول با فیلدهای مورد نیاز و پر کردنش از داده های موجود این قدر سخت است؟؟؟ یعنی شما نمیتوانید جدول مورد نیاز با نوع فیلدهای مورد نیاز را بسازید؟؟؟ M-B-M22-07-2008, 12:30 AMسلام آیا ساخت یک جدول با فیلدهای مورد نیاز و پر کردنش از داده های موجود این قدر سخت است؟؟؟ یعنی شما نمیتوانید جدول مورد نیاز با نوع فیلدهای مورد نیاز را بسازید؟؟؟ من فکر می کنم که سئوال کمی مشکل باشد که کسی به آن جواب نداده است! حداقل یک راهنمایی هم نکرده اند که باید برای هر فیلد فرمول نویسی کنم یا با یک ----- کردن ساده می توان چنین جدولی را پر کرد _H2_22-07-2008, 01:54 AMسلام من فکر می کنم که سئوال کمی مشکل باشد که کسی به آن جواب نداده است! :31::11: نام و نوع فیلدهای جدولتان چیست؟ M-B-M22-07-2008, 02:38 AMمن یک جدول دارم که یک فیلد آن حاوی SelectedIndex یک ComboBox روی فرم است، و فیلد دیگر آن حاوی کد جنسیت است (0 زن 1 مرد). می خواهم در گزارش یک جدول چاپ کنم که سطر های آن حاوی مقادیر همان ComboBox روی فرم باشد (کلاس الف، کلاس ب, کلاس ج) و ستون های آن حاوی جنسیت باشد (زن، مرد، جمع). در خانه 1.1 تعداد زن های کلاس الف در خانه 1.2 تعداد مرد های کلاس الف در خانه 1.3 تعداد مرد ها و زن های کلاس الف در خانه 2.1 تعداد زن های کلاس ب در خانه 2.2 تعداد مرد های کلاس ب در خانه 2.3 تعداد مرد ها و زن های کلاس ب در خانه 3.1 تعداد زن های کلاس ج در خانه 3.2 تعداد مرد های کلاس ج در خانه 3.3 تعداد مرد ها و زن های کلاس ج نام جدول Customer نام فیلد حاوی کلاسها Calss از نوع Nvarchar(2) نام فیلد حاوی جنسیت Gen از نوع Nvarchar(2) _H2_23-07-2008, 11:03 AMسلام متاسفانه این جواب سوال من نبود، یعنی جدول اصلی شما فقط دو ستون دارد و PrimaryKey هم ندارد؟؟؟؟!!!!! من فرض میکنم شما حداقل سه جدول دارید 1- جدولی مخصوص کلاسسها با کد کلاس 2- جدولی مخصوص شاگردها با کد دانش آموزی 3- جدولی که مشخص میکند کدام افراد در کدام کلاسها عضو هستند (هر نفری میتواند عضو چند کلاس باشد، هر کلاسی میتواند شامل چند نفر باشد.) اینطوری هر کلاس و هر نفر فقط یک بار نام نویسی میشود. (ساختار دیتابیسی زیر کامل نیست و مثلاً شامل تاریخ ها و دوره ها نیست.) !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! (توجه کنید که طراحی جداول و فیلدهای یک دیتابیس محکم و قوی، خشت اول برنامه نویسی اطلاعات گرا است.) با این فرض، کد SQL دستور select شما برای استخراج اطلاعات و پر کردن یک DataTable و تحویل دادن به کریستال اینچنین خواهد شد. !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! این دستور چهار فیلد را باز پس میدهد نام کلاس-تعداد مردان-تعداد زنان-تعداد کل البته پیشنهاد میکنم برای افزایش کارایی و سرعت، دستور فوق را در یک قالب یک View در SQLServer ذخیره کنید، مثلاً با نام ClassReport یا ClassReportPrint و... سپس در کدهایتان آن View را فراخوانی کنید. M-B-M10-10-2008, 11:39 AMسلام این جواب شما یعنی من برای هر فیلد باید که باید نمایش داده شود باید این دستورات را بنویسم؟ اگر تعداد این سطر ها و ستون ها به 1000 یا 10000 برسد آنوقت باید چکار کرد؟ ببینید من این جدول را یا ویزارد خود CrystelReport ساخته ام فقط مشکل من این است که کلاسهایی که کسی در آنها ثبت نام نشده اند (مثلا در کلاس الف هیچ دختری ثبت نام نکرده است و همچنین در کلاس ج هیچ پسر و دختری ثبت نام نکرده اند) این دو در گزارش نمی آیند. من می خواهم حتی فیلدهایی که مقدار ندارند در گزارش با مقدار 0 ظاهر شوند. آیا این ویزارد را می توان طوری تغییر داد که نتیجه مطلوب حاصل شود؟ _H2_11-10-2008, 12:46 AMسلام این جواب شما یعنی من برای هر فیلد باید که باید نمایش داده شود باید این دستورات را بنویسم؟ اگر تعداد این سطر ها و ستون ها به 1000 یا 10000 برسد آنوقت باید چکار کرد؟ میبخشید، باور بفرمائی منظورتان را درک نمیکنم.... ! اگر شما فرضاً ان سه جدول پست 7 را داشته باشیدريال باید به جای یک SELECT * FROM tablename از آن دستور SQL ای نوشته ام برای بازیابی اطلاعات استفاده کنید. ببینید من این جدول را یا ویزارد خود CrystelReport ساخته ام فقط مشکل من این است که کلاسهایی که کسی در آنها ثبت نام نشده اند (مثلا در کلاس الف هیچ دختری ثبت نام نکرده است و همچنین در کلاس ج هیچ پسر و دختری ثبت نام نکرده اند) این دو در گزارش نمی آیند. من می خواهم حتی فیلدهایی که مقدار ندارند در گزارش با مقدار 0 ظاهر شوند. آیا این ویزارد را می توان طوری تغییر داد که نتیجه مطلوب حاصل شود؟ به نظر من شما باید دستور SELECT خودتان را فقط عوض کنید و متاسفانه به نظر جوابتان همان پست هفت است! در مراحل ویزاد هم حتماً در جایی از شما TypedDataSet خواسته میشود؟ باید TypedDataSet با فیلدهای مورد نیاز بسازید و با ان دستور SQL پرش کنید و تحویل کریستال بدهید... متاسفانه به نظر میرسد حرف همدیگر را متوجه نمیشویم. اگر میتوانید بخشی از پروزه که فقط شامل دیتابیس و دیتاست و گزارش باشد را آپلود و pm کنید، شاید حرف همدیگر را بهتر بفهمیم ! M-B-M11-10-2008, 01:47 PMسلام اینجا Up کردم !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! فایل zip حاوی برنامه ؛ دیتابیس ؛ و فایل راهنما باز هم ممنون _H2_14-10-2008, 12:11 AMسلام متاسفانه تازه امروز وقت کردم و نگاهی به کدتان انداختم... این جواب شما یعنی من برای هر فیلد باید که باید نمایش داده شود باید این دستورات را بنویسم؟ اگر تعداد این سطر ها و ستون ها به 1000 یا 10000 برسد آنوقت باید چکار کرد؟ حالا متوجه شدم مشکلتان کجا است. مشکل شما از آنجا ناشی میشود که چیزی که میخواهید نیاز به یک View دارد که مخالف قوانین نرمال سازی است. شما ستونهایی دارید که احتمال دارد تعدادشان زیاد شود! درست است؟ این تفکر اشتباه است، تفکر شما باید طوری باشد که همواره تعداد ستون ها را ثابت نگاه دارد... به فرض با یک دستور ساده SQL توانستید این اطلاعات را استخراج کنید، خوب اگر به قول خودتان این ستون ها تعدادشان به 1000 تا برسد، در چه کاغذی میخواهید آن را چاپ کنید؟؟؟ به سه طرح زیر دقت کنید: http://www.h02.ir/Files/Temp/001-Report.gif شما الآن مورد اول را انتخاب کرده اید که مشکل دارد ولی به راحتی میتوان مورد دوم و سوم و... را پیاده سازی کرد که هم دستور ثابتی در SQL خواهد داشت و هم مشکل کاغذی با عرض چند متر را حل میکند! ============== اما در مورد بانکتان: من اول فیلدهای غیر منطقی nvarchar شما را تبدیل به tinyint کردم و یک سوال: شما rank را در جدول Customer مشخص کرده اید ولی مشخص نکرده اید حدول Customer با چه فیلیدی به جدول Disorder وصل است و ارتباط دارد؟ بالاخره باید یک فیلدی در Customer مشخص کننده سطر مرجع Disorder باشد؟ این را بگویید من میتوانم نمونه ای از گزارش خودتان (طرح اول تصویر) یا طرح دوم یا ... برایتان بسازم. M-B-M16-10-2008, 10:12 AMسلام من الان شهرستان هستم و تا جایی که یادم می آید من جدول DoGeneral را در دیتا بیس برای شما ارسال کردم که این جدول حاوی فیلد CuId برای ارتباط با جدول Customer و فیلد DiId برای ارتباط با جدول Disorder است که به ازای هر دانشجو یک DiId ذخیره می شود در مورد نوع گزارش هم باید بگم که همانطوری که در فایل Doc مشاهده کردید گزارش من هم همانند آن در برگه A 4 چاپ می شود و که تمام سطرهای آن در عرض برگه جا می شود و ستونهای آن در چند برگه ادامه می یابد (شکل گزارش دقیقا همانند شکل فایل Doc) باز هم از اینکه وقت گزاشتید ممنون هستم _H2_18-10-2008, 01:49 AMسلام من یک نمونه برایتان حاضر کردم ولی متاسفانه جداول و روابط و فیلدهای شما را درست درک نکردم (شرمنده!). برای همین خودم دو جدول با حداقل فیلدهای مورد نیاز درست کردم و برای گزارش از آنها استفاده کردم. مشکل کلی دوستان در عدم توانایی طراحی همچین گزارش هایی فرار از SQL و پناه بردن به سمت ابزار گزارش گیری مثل کریستال است. روش اصولی آن است که شما اول یک دستور SELECT یا یک View بتوانید بسازید که دقیقاً همان سازه اطلاعاتی را که در گزارش نیاز دارید در خروجی نمایش دهد و از ابزاری مثل کریستال فقط در جهت نمایش این خروجی SELECT به صورت شکیل و قابل چاپ استفاده کنید. به اینکه ابزار گزارش را بخواهید جایگزین قدرت پرس و جوی بانک اطلاعاتی کنید. با توجه به اینکه طبق شکلهایی که در پست قبلیم گذاشتم، شما همچنان بر مدل اول تاکید داشتید، دستورات SQL کمی زیاد شد (چون برای هر بلوک ستون باید تکرار میشد.) در نتیجه در جهت سرعت و وضوح و کاهش کد SQL من یک function با نام ReportByID_Study__ و یک view به نام Report__ درست کردم که خروجی این view دقیقاً همان دیتاهایی است که شما میخواهید نمایش دهید (میتوانید در VS یا یک DataGridView مشاهده کنید) و در اصل کریستال فقط وظیفه این نمایش ساده را بر عهده دارد. دستورات هر دو function و view را هم میتوانید در فایل sql.txt در کنار دیتابیس پیدا کنید. 1) البته لازم به ذکر است که میشد بدون function هم کار را تمام کرد ولی کدهای SQL داخل view خیلی زیادتر و سردرگم تر میشد. 2) کد SQL هر view را میتوانید یک راست در برنامه وارد کنید تا دیگر نیاز به وجود آن view نباشد ولی وجود view میتواند خوانایی و سرعت را افزایش دهد. در نهایت هم پیشنهاد میکنم اگر قرار است تعداد ستونهایتان زیاد شود، حتماً به یکی از مدلهای دوم و سوم تصویری پست قبلی ام فکر کنید... ! ( البته وقت زیادی برای قشنگ کردن گزارش کریستال صرف نکرده ام، یعنی خروجی صحیح است و همان است که خواسته اید ولی به صورت یکم نا مرتب. این کریستال خیلی نفهمه و اعصاب آدم را خرد خاکشیر میکند تا یک چیز منظم و شکیل درست کند ... ) rapidshare.com/files/155023585/WindowsFormsApplication_SqlReport.rar همچنان اگر سوالی بود در حد وقت و سوادم میتوانم کمک کنم. موفق باشید. M-B-M18-10-2008, 03:40 PMسلام موقع Attach کردن دیتابیس به Sql این خطا را می دهد !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! من از SqlServer2005 استفاده می کنم؛ آیا شما نیز از این ورژن استفاده میکنید یا ورژن 2008؟ _H2_18-10-2008, 08:51 PMسلام این لینک جدید را تست کنید... SQLServer2005+VS2005 rapidshare.com/files/155257282/WindowsFormsApplication_SqlReport.rar M-B-M23-02-2009, 01:50 PMسلام H2 جان ببخشید که من این تاپیک رو از زیر خاک بیرون کشیدم من مجدد دیتابیس خودم رو با شکل خروجی گزارش با توضیحات کامل برای شما ارسال می کنم اگر لطف کنید و یک نگاهی به آن بیاندازید و مشکل آن را رفع کنید ممنون می شوم !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! فایلZip حاوی دیتابیس و فایل Doc شامل توضیحات کامل جدول ها و ارتباط آنها M-B-M23-02-2009, 01:51 PMسلام H2 جان ببخشید که من این تاپیک رو از زیر خاک بیرون کشیدم من مجدد دیتابیس خودم رو با شکل خروجی گزارش با توضیحات کامل برای شما ارسال می کنم اگر لطف کنید و یک نگاهی به آن بیاندازید و مشکل آن را رفع کنید ممنون می شوم !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! فایلZip حاوی دیتابیس و فایل Doc شامل توضیحات کامل جدول ها و ارتباط آنها _H2_26-02-2009, 01:41 AMسلام - این جدول Period اصلاً برای چه است؟ مبالغ دریافتی؟ - بالاخره این معلولیت هر فرد کجای جدول Customer ذخیره میشود؟ - یعنی معلوبیت فرد در Period ذخیره میشود؟ هر فرد میتواند چندین معلولیت داشته باشد؟ اگر فردی دو معلولیت دارد باید دوبار در آمار معلولیتهای (مرتبط) ذکر شود؟ یعنی در نهایت جمع کل نشان گر تعداد افراد نخواهد بود، بلکه عدد تعداد افراد*معلولیت را نشان میدهد؟ M-B-M26-02-2009, 02:42 PMسلام بله درست متوجه شدید! توضیحات بیشتر: هر فرد که در سیستم ثبت نام می شود (فقط یک بار در جدول Customer) می تواند به تعداد n بار مراجعه کند و وقت بگیرد که به ازای هر بار مراجعه یک رکورد در جدول Period به ازای این فرد ایجاد می شود (که اطلاعات این جدول حاوی شماره ایندکس مشتری، شماره معلولیت، مبلغ پرداختی، ... ) که در گزارش باید معلولیتهایی که در دیتابیس وجود دارد دسته بندی شوند (بدون توجه به اینکه این (مثلا 3) معلولیت از آن یک نفر است یا از آن 3 نفر جداگانه) باز هم ممنون از اینکه وقت گذاشتید _H2_03-03-2009, 01:52 AMسلام همانطور که قبلاً گفتم، باید اول مشکل را در سطح دستور SELECT در SQL رفع کرد و سپس به سراغ ابزار گزارش گیری رفت. ============== من در اولین قدم نوع برخی فیلدهای دیتابیس شما را ویرایش کردم، چون متاسفانه از نوع منطقی استفاده نکرده بودید. الآن در رایانه من... !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! لطفاً در صورت تفاوت، فیلدهای خود را چنین اصلاح کنید، وگرنه ممکن است دستورات بعدی ... ( فیلدهای شما به نظر بزرگتر از حد لازم می آید... مثلاً ... اگر موسسه شما روزی 1000 ثبت نام جدید داشته باشد، میشود ماهی 30000 و سالی 365000 ! که بیشتر از 5883 سال (پنج هزار سال معادل 50 قرن!) طول خواهد کشید تا محدوده int را برای جدول Customer پر کند!!! پس از نظر منطق و اثبات ریاضی هیچ دلیلی وجود ندارد که CuId از نوع bigint باشد. ضمن اینکه من بعید میدانم موسسه شما روزی 1000 و ماهی 30000 ثبت نام داشته باشد! معمولاً خیلی از دوستان int را دست کم میگرند و بدون هیچ پیشبینی منطقی ریاضی از محدوده اعداد مورد نیاز به صرف دم دست بودن int آن را کنار میگذارند! بهحرحال اینها فقط یک پیشنهاد هستند و صلاح برنامه خود را شما بهتر میدانید. ) ============== یک تابع با کد زیر ایجاد کنید: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! این تابع وظیفه استخراج اطلاعات در یک محدوده Customer.Rank مشخص را دارد. ( ضمناً نمیدانم برای چه و به چه معنا یکسری از فیلدهای Period.DiId شما NULL هستند؟ فردی بدون بیماری مشخص؟ این میتواند یک وضعیف غیر نرمال در سطح دیتابیس باشد که در صورت بررسی و صحت باید جلوی آن گرفته شود. ناچاراً دستوری برای نادیده گرفتن این مقادیر اضافه کرده! ) ============== یک View نهایی با کد زیر ایجاد کنید: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! خروجی این View مشابه همان جدولی است که در فایل doc توصیفش کرده بودید. (نباید ایرادی داشته باشد، من هم چک نکردم، شاید بد نباشد یکبار صحت اعداد و ارقام خروجی را چک کنید.) ============== حالا خروجی آمده اطلاعات را دارید. مابقی کار میشود ساخت گزارش (کسل کننده!) مورد نظر از GetStatistic در برنامه گزارش سازتان. موفق باشید. سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 3286]

bt

اضافه شدن مطلب/حذف مطلب




-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن