# مباحث متفرقه برنامه نویسی > گزارش سازی با Crystal Report >  گزارشگیری دینامیک با کریستال ریپورت

## programmermp

با سلام

اولا چطوری می شه از بانک sql server 2005 توسط کریستال ریپورت گزارش تهیه کرد

من که جایی برای اضافه کردن فایل بانک اطلاعاتی sql server ندیدم 

ثانیا چطوری می شه از توی وی بی دات نت به گزارشی که با کریستال ریپورت درست کردی

فیلدی رو اضافه بکنی یا حذف کنی در ضمن بانک اطلاعاتی نیز اس کیو ال سرور 2005 دولاپر 

هست

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

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

جزئیات گزارش تغییراتی ایجاد کرد یا نه


اگه امکانش هست زودتر و کاملتر جواب بدید چون برای پایان نامه دانشگاه می خوام

با تشکر :تشویق:

----------


## programmermp

کسی نمی تونه جواب بده ؟

----------


## reza_rad

> اولا چطوری می شه از بانک sql server 2005 توسط کریستال ریپورت گزارش تهیه کرد
> 
> من که جایی برای اضافه کردن فایل بانک اطلاعاتی sql server ندیدم


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




> ثانیا چطوری می شه از توی وی بی دات نت به گزارشی که با کریستال ریپورت درست کردی
> 
> فیلدی رو اضافه بکنی یا حذف کنی در ضمن بانک اطلاعاتی نیز اس کیو ال سرور 2005 دولاپر 
> 
> هست
> 
> برای مثال فیلد نام رو از گزارش حذف کنم و نام خانوادگی که در گزارش گذاشته نشده بود 
> 
> رو اضافه کنم


با استفاده از FORMULA شما می تونید بگید که در چه صورتی فیلدتون رو نشون بده یا نده... که می تونید در کنارش از parameter  خا برای فرستادن طلاعات از فرمها به گزارش تون استفاده کنید.




> در ضمن ایا می شه در جزئیات دیگر فرم گزارش مثل خطوط ترسیمی و دیگر
> 
> جزئیات گزارش تغییراتی ایجاد کرد یا نه


البته که میشه. هم خط ترسیم کرد . هم چارت کشید . هم رنگ ها و ... رو تنظیم کرد




> اگه امکانش هست زودتر و کاملتر جواب بدید چون برای پایان نامه دانشگاه می خوام


برای یادگیری خوب و کامل از کتابهای crystal  می تونید استفاده کنید!

----------


## programmermp

خیلی ممنون از جواب شما

اگه می شه یک مثالی در این مورد به خصوص کار با formul ها برای من بگذارید 

ممنون می شم به خدا کارم خیلی فوری و گرنه مزاحم شما نمی شدم

بعد هم  برای گزارشگیری از بانک اکسس ما یک crystal report جدید ایجاد می کردیم 

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

قسمت ویزارد اول کریستال ریپورت بود اما برای بانک sql server من در اون قسمت چیزی

ندیدم چطوری می شه این کار رو برای sql server انجام داد


با تشکر :تشویق:   :تشویق:   :تشویق:

----------


## reza_rad

> اگه می شه یک مثالی در این مورد به خصوص کار با formul ها برای من بگذارید


مثال رو که کامل نمیشه اینجا گفت...
ولی یه توضیح مختصر:
فرض کن شما می خوای توی فری که داری انتخاب کنی که کدوم فیلدها رو توی ریپورت برات نشون بده و بعد ریپورت بر اساس اون بگیری
اول شما تمام فیلدهایی که لازم داری توی ریپورت ایجاد کن
بعد یک پارامتر توی ریپورت ایجاد کن
حالا برای هر فیلد توی ریپورت یک فرمول ایجاد کن و چک کن که بر اساس فلان مقدار متغیر آیا اون رو نشون بده ای نه...
طبیعیه که مقدار متغیر هم از فرم به ریپورت ات فرستاده میشه.
ضمنا توی فرمول می تونی از دستوراتی مثل IF و SELECT CASE استفاده کنی.




> بعد هم برای گزارشگیری از بانک اکسس ما یک crystal report جدید ایجاد می کردیم 
> 
> و از قسمت database file نام اون رو انتخاب می کردیم و بعد هم فیلدها و ... که فکر کنم در 
> 
> قسمت ویزارد اول کریستال ریپورت بود اما برای بانک sql server من در اون قسمت چیزی
> 
> ندیدم چطوری می شه این کار رو برای sql server انجام داد


فکر کنم با گرید های 2005 کار کرده باشید. وقتی که روی صفحه یک گرید جدید ایجاد می کنید ازتون تنظیمات دیتاسورس رو می خواد
که همونجا می تونید new  کنید و دیتاسورس بسازید با ویزارد... داخل همین ویزارد یکجا هست که میپرسه از چه جدولهای می خواین دیتاست داشته باشید و براتون دیتا ست رو ایجاد میکنه.
تا اینجا ربطی به ریپورت نداره
اما حالا برای ارتباط دادن ریپورت به دیتاست. روی دیتابیس اکسپرت توی ریپورت کلیک کنید و از نوع ado انتخاب کنید و مسیر دیتاست رو بهش بدید و تمام!

البته این یکی از راههای کانکشن به دیتابیس توی ریپورت هست و راههای دیگه ای هم وجود داره...

خواهش می کنم. موفق باشید.

----------


## programmermp

منظورتون از گرید ها همون دیتا گراید هست دیگه درسته

بعد یک نکته دیگه یعنی نمی شه بانک طراحی شده توسط sql server رو در کریستال ریپورت

انتخاب کرد ( بانک اکسس که می شد) :متفکر:   :متفکر:  

با تشکر :تشویق:   :تشویق:

----------


## reza_rad

> منظورتون از گرید ها همون دیتا گراید هست دیگه درسته


بله...




> عد یک نکته دیگه یعنی نمی شه بانک طراحی شده توسط sql server رو در کریستال ریپورت
> 
> انتخاب کرد ( بانک اکسس که می شد)


چرا میشه! گفتم که فقط همون یک راه نیست...
مثلا یک راه دیگه اینه که شما از توی database expert  توی ریپورت بری و new connection  رو بزنی و از نوع OLEDB(ADO) انتخاب کنی.
حالا ویزاردی ظاهر میشه که نوع دیتابیس رو میخواد بهش sql server  میدی و ...

----------


## programmermp

مشکل همین جاست که من نمی تونم جایی برای اضافه کردن بانک sql server در قسمت

انتخاب بانک در کریستال ریپورت پیدا کنم همه نوع دیتابیس اونجا هست به جز sql server 

در ضمن این فایل های بانک اطلاعاتی که در sql server ساخته می شوند با چه پسوندی 

می شه اونها را در کریستال ریپورت اضافه کرد یعنی پسوند آنها چیست

من که به طور کامل گیج شدم :گیج:   :گیج:   :گیج:   :گیج:  

در ضمن اگه امکانش هست یک مثال در مورد استفاده از formula در گزارشگیری پویا

به من لینک بدید یا یک سایتی که حاوی این مثال ها هست به من معرفی کنید

با تشکر :تشویق:   :تشویق:   :تشویق:

----------


## reza_rad

> شکل همین جاست که من نمی تونم جایی برای اضافه کردن بانک sql server در قسمت
> 
> انتخاب بانک در کریستال ریپورت پیدا کنم همه نوع دیتابیس اونجا هست به جز sql server


یعنی میگید این قسمتی که توی عکس های لایت شده رو ندارید!؟





> در ضمن این فایل های بانک اطلاعاتی که در sql server ساخته می شوند با چه پسوندی 
> 
> می شه اونها را در کریستال ریپورت اضافه کرد یعنی پسوند آنها چیست
> 
> من که به طور کامل گیج شدم


با دیتابیس sql  نمی تونید اینجوری کار کنید و با فایل اضافه اش کنید. باید از روشی که گفتم بهش وصل بشید.
اما محض اطلاع پسوند فایل های دیتابیس SQL اینه :mdf




> در ضمن اگه امکانش هست یک مثال در مورد استفاده از formula در گزارشگیری پویا
> 
> به من لینک بدید یا یک سایتی که حاوی این مثال ها هست به من معرفی کنید


اینها لینکهای خیلی خوبین:
http://www.vbcity.com/forums/faq.asp...rystal+Reports
http://aspalliance.com/crystal/redir...liance.com/216

----------


## programmermp

با سلام و تشکر فراوان از شما

اگه اشکال نداره یک سئوال دیگه می پرسم 

اگه بخواهیم برنامه رو بر روی یک سیستم دیگه اجرا و نصب کنیم تکلیف نحوه انتقال فایل

بانک اطلاعاتی sqlserver که اگه اشتباه نکنم از مسیر زیر می شه پیداش کرد چیه

X:\Microsoft SQL Server\MSSQL.1\MSSQL\Data
یعنی باید فایل بانک رو مثلا test.mdf رو به همراه فایل log که در کنارش هست هر دو رو

با هم به مسیر مشابهی مانند مسیر فوق در کامپیوتر مقصد کپی کنیم یا اینکه در هر 

مسیری کپی بشه فرقی نمی کنه چون در connection string ما فقط نام سرور و نام بانک رو 

مشخص می کنیم و مسیر بانک مشخص نمی شه 

با تشکر :تشویق:   :تشویق:   :تشویق:   :تشویق:

----------


## reza_rad

خواهش می کنم...:)

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

موفق باشید

----------

