مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

majid_ggg

عضویت از 1395/09/12

نوشتن Query برای stiReport برای استیمول ریپورت

  • یکشنبه 21 آذر 1395
  • 19:50
تشکر میکنم

با سلام خدمت استاید

میخوام توی استیمول Query بنویسم برای فیلتر کردن گزارش

سپاس گذار میشم کمکم کنید دوستانsmiley

پاسخ های این پرسش

تعداد پاسخ ها : 6 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • دوشنبه 22 آذر 1395
  • 08:12

اموزش بخش دوم نرم افزار Stimulsoft Reports براتون اماده کردیم در بخش اول توضیحاتی در مورده نرم افزار و قابلیت هایی که داره در اختیار شما دوستان قرار دادیم.در بخش دوم اموزش ارتباط با بانک اطلاعاتی را براتون اماده کردیم.که چگونگی ارتباط با بانک مورده نظر و طراحی گزارش از طریق Stimulsoft Reports .

سناریوی کلی به این صورته که شما یه پروژه دارید (فرضا با C# و ویندوز فرم) و یه منوی گزارشات که لیستی از گزارشات رو به کاربر نشون میده با انتخاب هر گزارش یه فرم باز میشه که اصطلاحا من بهش میگم “فرم فیلتر گزارش” کاربر یه سری پارامترهای فیلتر واسه گزارشش تعیین می کنه و دکمه نمایش گزارش رو میزنه، پردازش های لازم برای نمایش گزارش انجام میشه و نهایتا یه گزارش ترو تمیز به کاربر نمایش داده میشه.ای روند کاریه که معمولا برای گزارش گیری انجام میشه.حالا میایم قدم به قدم یه گزارش رو می سازیم:

روال کار من به این صورته که ابتدا با Designer استیمول گزارش رو می سازم بعد یه جایی ذخیره می کنم و بعد از توی کد گزارش رو Load کرده و به کاربر نمایش می دم.

اولین مرحله برای ساخت گزارش (که معمولا از روی یه طرح اولیه که روی کاغذ کشیدین شروع میشه) وصل شدن به دیتابیس برای واکشی دیتا و فراهم نمودن ستون های گزارشه.فرض هم بر اینه که دیتابیس SQL Server هست.از Tab دیکشنری (Dictionary Tab) که به طور پیش فرض در سمت راست Designer استیمول هست New Item و New Connection رو میزنیم.

از پنجره Select Type of connection باز شده Sql Connection ر انتخاب می کنیم

در پنجره New Sql Connection،Connection String مورد نظر را وارد کرده و Ok  می کنیم.(از دکمه Test جهت اطمینان از برقراری ارتباط می توان استفاده کرد)

حالا از همون تب دیکشنری، New Item->New Data Source رو انتخاب می کنیم.

پنجره New Data Source باز می شود که با دابل کلیک بر روی نام connection (ساخته شده در مرحله قبلی) می توان برای ایجاد ارتباط استفاده کرد.

همانطور که در تصویر زیر می بینید در پنجره Select Data لیست تمامی جداول،ویوها و روال های ذخیره شده در دیتا بیس وجود دارد و برای ایجاد دیتا سورس می توان از آنها استفاده کرد و یا در صورت نیاز از دکمه Query New در بالای صفحه استفاده کرد.

در این مثال از دکمه Query New برای ساخت کوئری استفاده می کنیم در این پنجره می توان کوئری مورد نظر را نوشت و از دکمه Run Query Builder از اجرای صحیح کوئری مطمئن شد، بعد جهت بازیابی ستونهای حاصل از کوئری حتما می بایست دکمه Retrieve Columns را زده تا ستونها در لیست Columns قرار گیرند.

خوب حالا که ستونها لیست شدن میشه نام و نوع هر کدوم رو در صورت نیاز تو پنجره Property (پایین و سمت راست عکس فوق) تغییر داد.در اینجا چند نکته وجود داره:

اول اینکه شاید خیلی ها بگن که ما می خوایم داده هامون رو فیلتر کنیم، تو همین کوئری، Where Clues لازم رو می نویسیم تا فقط داده های مورد نظرمون رو نمایش بده.باید بگم میشه اینکار رو انجام داد اما مشکلی که وجود داره اینه که اینجوری ما یه گزارش داریم که همیشه با یه فیلتر خاص به کاربر نشون داده میشه و امکان اینکه کاربر بخواد خودش فیلتر رو تعیین کنه وجود نداره و گزارش گیری یه حالت استاتیک میشه.(اگه فکر می کنید واقعا نیازی به فیلتر گزارش توسط کاربر نیست میتونید این کارو بکنید)

 نکته دوم که خیلی مهمه نام دیتا سورس هست که الان تو شکل فوق DataSource1 داده شده.سعی کنید یه نام با مسما انتخاب کنید که بعدا تو کد به کارمون می آد!

 حالا OK رو میزنیم تا این دیتا سورس به نود Queries تو پنجره Select Data اضافه بشه بعد هر کدوم از جداول یا ویوها رو هم که نیاز دارم (به غیر از این دیتا سورس که خودمون نوشتیم) تیک می زنیم تا به مجموعه دیتا سورس مون اضافه بشه.

اکنون با توجه به طرحی که رو کاغذ واسه گزارش داریم شروع به قرار دادن فیلدها روی صفحه گزارش می کنیم.برای این کار از یه کامپوننت به اسم Data استفاده میشه و فیلدهای مورد نظر تو این کامپوننت روی صفحه گزارش قرار می گیره.برای نمایش عنوان ستونها در هر صفحه از Header استفاده می کنیم و نام هر ستون رو توی این کامپوننت می ذاریم تا توی هر صفحه نمایش داده بشه.همه کامپوننت های استیمول سمت راست Designer به صورت عمودی قرار داره.پس از طراحی گزارش میشه از تب Preview استفاده کرد.کلا طراحی گزارش خیلی به سلیقه شما بستگی داره و تقریبا هر نوع امکانی واسه طراحی تو استیمول وجود داره و حتی اگه وجود نداشت می تونید خودتون بنویسید و به استیمول اضافه کنید!

 طراحی گزارش که تموم شد اونو یه جا ذخیره کنید تا تو پست بعد نحوه load کردن گزارش،ایجاد فرم فیلتر و نمایش گزارش فیلتر شده رو (همگی از تو کد C#) بهتون بگم.

منبع : mspsoft

کاربر سایت

majid_ggg

عضویت از 1395/09/12

  • دوشنبه 22 آذر 1395
  • 20:05

معذرت میخوام منظور منو نفهمیدید

من گزارشمو طراحی کردم و با استفاده از Stireport.show(); میتونم اونو نمایش بدم

فقط میخوام با استفاده از تکس باکس اونو فیلتر کنم طبق تاریخ یا ...

ممنون

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • سه شنبه 23 آذر 1395
  • 09:55

در کوئری که میزنید یک Where بزارید تا روی تاریخ شرط برقرار بشه

در سمت برنامه اینکار را انجام دهید

کاربر سایت

majid_ggg

عضویت از 1395/09/12

  • سه شنبه 23 آذر 1395
  • 18:54

واقعا جملتون نامفهوم بود

کد اگه میشه بزارید

ممنونyes

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • چهارشنبه 24 آذر 1395
  • 09:35

دوست من

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

مثل زیر

SELECT * FROM Orders
WHERE OrderDate BETWEEN #07/04/1996# AND #07/09/1996#;

کاربر سایت

majid_ggg

عضویت از 1395/09/12

  • پنجشنبه 25 آذر 1395
  • 10:34

درسته منظوره منو هنوز متوجه نشدید

من با استیمول ی گزارش درست کردم ک توی فرمم یک تکس باکس گذاشتم ک کاربر تاریخ رو به صورت دستی وارد کنه بدش مشاهده رو زد

تاریخ فرستاده بشه به استیمول که طبق تاریخ کاربر فیلتر شه و بدش نمایش بده

فرم نمایش استیمول رو به همین صورته stiReport.show();

ممنون استاد

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)