PDA

View Full Version : سوال: رسم نمودار



f_g1348
چهارشنبه 19 فروردین 1388, 21:13 عصر
سلام دوستان
من دنبال يه قطعه كد مي گردم كه اطلاعات را از ديتا بيس اكسل بخونه و بصورت نمودار نشون بده. و مستقيم در ارتباط لحظه به لحظه با ديتانيس باشه. دقيقا مثل نمودارهاي ارائه شده در برنامه sms برنامه نود

Miss Mary
پنج شنبه 20 فروردین 1388, 17:44 عصر
احتیاجی به کد نیست. با کریستال ریپورت به راحتی میتونید این کار را انجام بدید.

f_g1348
پنج شنبه 20 فروردین 1388, 23:47 عصر
miss mary اين كار و چطور انجام بدهم ؟

Miss Mary
جمعه 21 فروردین 1388, 20:18 عصر
miss mary اين كار و چطور انجام بدهم ؟

تا حالا با کریستال ریپورت کار کردید؟ اگر کار کردید بگید که مشکلتون تو رسم نموداره یا refresh شدن داده ها؟ تا راهنماییتون کنم. اگر هم کار نکردید بگید تا تمام مراحل رسم نمودار با کریستال ریپورت رو براتون توضیح بدم.

f_g1348
جمعه 21 فروردین 1388, 22:55 عصر
سلام
من تا حالا با كريستال كار نكردم.
لطفا اگر ممكنه توضيح كامل دهيد.
با تشكر

Miss Mary
یک شنبه 23 فروردین 1388, 10:54 صبح
من با sql کار میکنم و کنترلهایی که میگم مربوط به sql میشه نه اکسس. البته فکر میکنم اگه به جای SqlDataAdapter از OleDBDataAdapter استفاده کنید میتونید همین کارها رو در اکسس هم انجام بدید. در ضمن این توضیحات مربوط به دانت نت 2005 میشه و در ورژنهای 2003 و 2008 ممکنه اسمهای کنترلها قدری فرق کنه که فکر میکنم به راحتی بتونید اسمهای کنترلها را تشخیص بدید.
اول باید یه SqlDataAdapter رو فرمتون بذارید و از طریق اون به بانکتون وصل بشید و Query مورد نظرتون رو بنویسید و بعد از اینکه SqlDataAdapter رو Configure کردید DataSet مربوط به اون رو هم ایجاد کنید. (این قسمت رو زیاد توضیح ندادم چون فکر میکنم که با DataAdapter و DataSet کار کرده باشید. اگه تو این قسمتها هم مشکل داشتید بگید تا توضیح بدم)
بعد از داخل منوی view گزینه Add Windows Forms رو کلیک کنید و Crystal Report رو انتخاب کنید و پس از دادن نام (البته پسوندش رو تغییر ندید) روی Add کلیک کنید.
تو صفحه ای که باز میشه پیش فرضها رو تغییر ندید.( گزینه های Using The ReportWizard و همینطور Standard باید انتخاب باشه) این صفحه رو ok کنید. صفحه Data باز میشه. تو این صفحه باید DataSet ای رو که به بانک وصل کردید رو انتخاب کنید. برای این کار به ترتیب Project Data و سپس ADO.NET DataSets رو باز کنید و DataSet ای رو که مورد نظرتون هست رو انتخاب کنید و روی علامت < کلیک کنید. جدول شما به صفحه Selected Tables اضافه میشه. بعد روی Next کلیک کنید.
تو صفحه جدید که باز میشه میتونید جدول مورد نظرتون رو انتخاب کنید و روی علامت << کلیک کنید تا همه فیلدهای اون جدول اضافه بشن و یا میتونید روی فیلدهای مورد نظرتون کلیک کنید و بعد روی گزینه < کلیک کنید تا فیلد به لیست فیلدهای Fields to Display اضافه بشه. (برای رسم نمودار باید حداقل دو تا فیلد داشته باشید). روی Next کلیک کنید.
اگر میخواهید از گروه بندی استفاده کنید (که برای رسم نمودار باید حتما در اینجا یک فیلد رو برای گروه بندی انتخاب کنید) میتونید فیلد مورد نظرتون رو انتخاب کنید و روی < کلیک کنید تا بر اساس اون گروه بندی بشه. در ضمن در همین صفحه بعد از انتخاب فیلد میتونید نوع مرتب سازی صعودی یا نزولی رو هم تعیین کنید. روی Next کلیک کنید.
در این صفحه میتونید در صورت تمایل روی فیلدهای عددیتون اعمال محاسباتی مثل میانگین و جمع و غیره رو انجام بدید.(مثل صفحات قبل عمل کنید) روی Next کلیک کنید.
در این صفحه میتونید نوع گروه بندی رو که میخواهید تعیین کنید. روی Next کلیک کنید.
در صفحه جدید(صفحه Chart) اگر میخواهید گزارش شما به صورت نمودار باشد نوع نمودار و نحوه تغییرات را باید انتخاب کنید. روی Next کلیک کنید.
در صفحه Record Selection باید فیلدهایی را که قصد نمایش آن را دارید انتخاب کنید و روی Next کلیک کنید.
در صفحه Report Style در صورتی که بخواهید گزارش شما به صورت جدول باشد، نوع جدول خود را انتخاب کنید.(البته اگه در صفحه Chart نوع نمودار رو انتخاب کرده باشید در این صفحه نمیتوانید نوع جدول را تعیین کنید چون گزارش شما به صورت نمودار خواهد بود) روی Finish کلیک کنید.
به برنامه شما یک صفحه به نام کریستال ریپورتی که وارد کرده بودید اضافه میشود که نحوه نمایش گزارش شما را نشان میدهد. در صورت تمایل میتوانید در این صفحه در هر زمان که بخواهید میتونید نحوه نمایش فیلدهایی رو که انتخاب کردید رو تغییر بدید.حتی اگر بخواهید میتونید روی نمودارتون هم تغییرات زیادی بدید. برای این کار روی نمودار کلیک راست کنید و به هر شکلی که میخواهید نمودارتون رو در بیارید.
حالا باید برای نمایش گزارشتون روی فرم از toolbox یک CrystalReportViewer بگذارید. روی CrystalReportViewer که روی فرم قرار داده اید راست کلیک کنید و Choose a Crystal Report رو انتخاب کنید. در صفحه ای که باز میشه نام CrystalReport ای رو که ساخته اید رو انتخاب کنید.
اگر در مراحل ساخت کریستال ریپورت اشتباه نکرده باشید باید روی فرمتون نمودار و یا جدولی که انتخاب کرده اید نمایش داده بشه( البته با داده های فرضی نه صحیح).
حالا در رویداد Form_Load تون این کد رو تایپ کنید:
(البته با فرض اینکه نام Adapter، SqlDataAdapter1 و نام DataSet ، DataSet1 و نام کریستال ریپورت CrystalReport1 یعنی همان نام های پیشفرض دانت باشه. اگر نامهای پیشفرض رو تغییر دادید باید رو کدها اندکی تغییرات بدید.)


SqlDataAdapter1.Fill(DataSet11)
CrystalReport11.SetDataSource(DataSet11)

برنامه تون رو اجرا کنید. در صورت صحیح بودن تمام مراحل باید داده ها تون به صورت صحیح نمایش داده بشه.

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