# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > ASP.NET Web Forms >  گزارش گیری در ASP.NET

## مهدی رحیم زاده

سلام دوستان عزیز
من مدتیه که کار با ASP.NET رو شروع کردم. توی این مدت برای گزارش گیری از CrystalReport استفاده می کردم . اما توی استفاده از اون توی صفحات وب یک سری مشکلاتی دارم . 
سئوال من اینه که حالا همین CrystalReport توی برنامه های تحت ویندوز سنگینه و یکمی دیر عمل میکنه ، تحت وب سرعتش خیلی پایین نمیاد؟
اگر نمیاد که هیچی ، اگر میاد راهکارش چیه و یا اینکه بهترین راه برای گزارش گیری توی ASP.NET چیه؟
با تشکر

----------


## Hossein Bazyan

> سلام دوستان عزیز
> من مدتیه که کار با ASP.NET رو شروع کردم. توی این مدت برای گزارش گیری از CrystalReport استفاده می کردم . اما توی استفاده از اون توی صفحات وب یک سری مشکلاتی دارم . 
> سئوال من اینه که حالا همین CrystalReport توی برنامه های تحت ویندوز سنگینه و یکمی دیر عمل میکنه ، تحت وب سرعتش خیلی پایین نمیاد؟
> اگر نمیاد که هیچی ، اگر میاد راهکارش چیه و یا اینکه بهترین راه برای گزارش گیری توی ASP.NET چیه؟
> با تشکر


سلام 
من گزارشاتم رو با html میسازم و در IE نمایش میدم مشکل چاپ و پیش نمایش چاپ هم میوفته گردن همون. در ضمن دستم هم خیلی بازه برای تغییر و انجام محاسبه روی فیلدها و نوشته ها.

----------


## robatik

سلام.
ببخشید اگه امکانش هست درمورد ساختن گزارش با html توضیح بدید.
من میخوام برای گزارشگیری در وب از ابزاری استفاده کنم که سرعت خوبی داشته باشه به نظر شما SQL Server Reporting Service کارای خوبی داره و اگه از این ابزار استفاده کنم برای گزارشگیری احتیاج به نصب چیزی بر روی کامپیوتر کاربر هست؟
ممنون میشم توضیح بدید.

----------


## mrmohsen

> سئوال من اینه که حالا همین CrystalReport توی برنامه های تحت ویندوز سنگینه و یکمی دیر عمل میکنه ، تحت وب سرعتش خیلی پایین نمیاد؟
> 
> با تشکر



با سلام خدمت دوست عزیز


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

----------


## Hossein Bazyan

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


 سلام 
قبلا در پستهای قبلی گفتم که سریعترین و در دسترس ترین شیوه گزارشگیری استفاده از کدهای html و نمایش آن در براوزر میباشد. در این حالت دستتان باز بوده که به هر فرم و شیوه و محاسباتی گزارش را طراحی کنید و مشکل چاپ و غیره را هم به براوز بسپارید. 
من حدود دو ساله که از این شیوه استفاده میکنم حتی تحت ویندوز !

----------


## Hossein Bazyan

سلام 
بنا به درخواست یکی از دوستان ( elhamath ) تکه برنامه زیر را جهت گزارشگیری با html ن.شته ام که امیدوارم برای دوستان دیگر هم قابل استفاده باشد.
اما قبل از اجرای برنامه لازم است حتما readme.doc را بخوانید 
نظر یادتون نره ( حهت استفاده بقیه دوستان )

----------


## elhamath

> سلام 
> بنا به درخواست یکی از دوستان ( elhamath ) تکه برنامه زیر را جهت گزارشگیری با html ن.شته ام که امیدوارم برای دوستان دیگر هم قابل استفاده باشد.
> اما قبل از اجرای برنامه لازم است حتما readme.doc را بخوانید 
> نظر یادتون نره ( حهت استفاده بقیه دوستان )


سلام 
نمونه ای که نوشتم 
sample 1.rar

----------


## elhamath

> سلام 
> نمونه ای که نوشتم 
> sample 1.rar


سلام
من برا اینکه My Sql  رو با برنامه  Asp.net کانکت کنم اما باید برنامه MySql connector/net  داشته باشم ، خواستم دانلود کنم  اما لینک دانلودش رو پیدا نکردم. 
سایت dev.mysql.com هم امکان دانلود رو نداده
باید فوری این پروژه رو انجام بدم  اما گیر کردم  الان.
ممنون میشم راهنمایی ام کنید.
لطفا

----------


## Hossein Bazyan

> سلام
> من برا اینکه My Sql رو با برنامه ASP.NET کانکت کنم اما باید برنامه MySql connector/net داشته باشم ، خواستم دانلود کنم اما لینک دانلودش رو پیدا نکردم. 
> سایت dev.mysql.com هم امکان دانلود رو نداده
> باید فوری این پروژه رو انجام بدم اما گیر کردم الان.
> ممنون میشم راهنمایی ام کنید.
> لطفا


 سلام
http://dev.mysql.com/downloads/connector/net/6.1.html

فایل ضمیمه را ببین

----------


## elhamath

> سلام
> http://dev.mysql.com/downloads/connector/net/6.1.html
> 
> فایل ضمیمه را ببین


 
ممنونم
اما این لینک دانلود نمیشه ، البته فکر کنم برا ایران اینو محدود کردن ، هیچ کدوم از لینکای این سایت رو دانلود نمیشه کرد
پیغام زیر رو میده

11.jpg

----------


## Hossein Bazyan

> ممنونم
> اما این لینک دانلود نمیشه ، البته فکر کنم برا ایران اینو محدود کردن ، هیچ کدوم از لینکای این سایت رو دانلود نمیشه کرد
> پیغام زیر رو میده
> 
> 11.jpg


سلام 
درسته ! طبق قانون تحریم امریکا، لینک برای ایران قابل دانلود نیست . من برات تو راپید شیر گذاشتم در لینک زیر دانلود کن.
http://rapidshare.com/files/28189671...57301160858367

----------


## iran400

سلام عليكم
بهترين برنامه براي گزارشگيري تحت وب Reporting Service  مي باشد 
بسيار سريع هم مي باشد.
كاربر هم وقتي كه اين صفحات را مشاهده مي كند براي اولين بار يك كامپوننت از خود برنامه دانلود مي كند و نصب مي كند و بعد راحت مي تواند تمامي گزارش ها را مشاهده و توسط امكانات خود ريپورت پرينت بگيرد.

معايب اصلي اين ريپورت كمبود داكيومنت و مثال و جديد بودن آن مي باشد.

----------


## elhamath

> سلام 
> درسته ! طبق قانون تحریم امریکا، لینک برای ایران قابل دانلود نیست . من برات تو راپید شیر گذاشتم در لینک زیر دانلود کن.
> http://rapidshare.com/files/28189671...57301160858367


 
سلام

من بالاخره my sql  نصب کردم و همراه با asp.net کار کردم باهاش
اما نمیدونم چطوری detach کنم یا bach up بگیرم

اگه ممکنه راهنمایی ام کنید ، لطفا
باید نرم افزار دیگه رو نصب کنم؟

----------


## Hossein Bazyan

> سلام
> 
> من بالاخره my sql نصب کردم و همراه با ASP.NET کار کردم باهاش
> اما نمیدونم چطوری detach کنم یا bach up بگیرم
> 
> اگه ممکنه راهنمایی ام کنید ، لطفا
> باید نرم افزار دیگه رو نصب کنم؟


سلام 
معمولا بک آپ گیری وظیفه ما نیست. ( البته در جایی که من زندگی میکنم )  این کار وظیفه صاحب سروره !! به همین دلیل من تا بحال بک آپ گیری نکردم اما نباید مشکل باشه . 
هم میتوان از دستورات مای اسکیوال استفاده کرد و هم میتوانید خودتان کدهای مربوطه رو بنویسید.

----------


## elhamath

سلام
روزتون بخیر

من باید با یه query اسامی جداولی که در بانک هستن رو بدست بیارم ؛ اما نمیدونم چکار کنم!؟
ما همیشه با query رکورد ها رو بازیابی میکردیم ، در مورد اسم جدول ها و اسم فیلد هاش نمیدونم، لطفا اگه اطلاع دارین یا کار کردین بهم کمک کنید.
من asp.net  & mysql کار می کنم.

----------


## Hossein Bazyan

> سلام
> روزتون بخیر
> 
> من باید با یه query اسامی جداولی که در بانک هستن رو بدست بیارم ؛ اما نمیدونم چکار کنم!؟
> ما همیشه با query رکورد ها رو بازیابی میکردیم ، در مورد اسم جدول ها و اسم فیلد هاش نمیدونم، لطفا اگه اطلاع دارین یا کار کردین بهم کمک کنید.
> من ASP.NET & mysql کار می کنم.


سلام
من در یکی از پروژه هام برنامه ای نوشتم که هر کاری میتوان با MySql انجام داد یک قسمت از پروژه را درآوردم و به ایمیلتان ارسال کردم که فرم اصلی به پنج قسمت تقسیم شده در قسمت اول ( بالا) مشخصات لوکال را باید بهش بدی سپس قسمت اول نام کلیه دیتابیسها رو برمیگرداند با دابل کلیک روی هر یک تمامی جداول آنرا در قسمت دو نمایش و با دابل کلیک روی هر جدول فیلدهای ان را در قسمت 3 و چهار نمایش میدهد . میتوان خروجی  جدول را xml هم  فرستاد.
این قسمتی از یکی از پروژه های من میباشد و انتظار هم دارم که فقط از کدهاش برای استفاده خودتان استفاده کنید .

----------


## kohyar

سلام دوستان
من اين پست رو خوندم كه گزارش در قالب Html ايجاد مي كنه و خيلي نياز به اين نوع گزارش تو برنامه هام دارم
فقط مشكل اينه كه من با سي شارپ دات نت كار مي كنم
كسي نمونه اي داره واسم بذاره
يا كسي مي تونه زحمت بكشه و اين كد رو به سي شارپ تبديل كنه
ممنون

----------


## Hossein Bazyan

> سلام دوستان
> من اين پست رو خوندم كه گزارش در قالب Html ايجاد مي كنه و خيلي نياز به اين نوع گزارش تو برنامه هام دارم
> فقط مشكل اينه كه من با سي شارپ دات نت كار مي كنم
> كسي نمونه اي داره واسم بذاره
> يا كسي مي تونه زحمت بكشه و اين كد رو به سي شارپ تبديل كنه
> ممنون


سلام 
دوست عزیز تبدیل خاصی نمیخواد شما یه متغییر تعریف میکنی و سپس کدهای html رو به آن اضافه کرده و در نهایت محتویات متغییر را در یک فایل با پسوند html  ذخیره میکنید همین

----------


## elhamath

سلام
می خوام در asp.net  آرایه رو بصورت سراسری تعریف کنم  تا از محتوی این آرایه در سابروتین دیگه استفاده کنم ، اگه بصورت دستی آرایه رو در کد مقدار دهی کنم و در متغییر سراسری بریزم ، در سابروتین دیگه منتقل میشه ، اما اگه آرایه توسط کاربر در برنامه مقداردهی بشه ، وقتی اونو به سابروتین دیگه توسط  متغییر سراسری میبرم فقط آخرین مقدار داده شده به آرایه رو نگه میداره 
Sub Page_Load
If Not IsPostBack Then
ViewState("i") = 0
End If
End Sub

Sub Button1_Click
   arr(ViewState("i")) = d1.SelectedValue
        ViewState("j") = ViewState("i")
        ViewState("i") += 1
ViewState("x") = arr
End Sub

Sub Button2_Click
For z = 0 To ViewState("j")
 For q = 0 To ViewState("j")
        co = New MySqlConnection(Session("cn"))
        co.Open()
        com = New MySqlCommand("select tname2 from setup where tname1='" & (ViewState("x"))(z) & "'", co)
        r = com.ExecuteReader
 While r.Read
 If r("tname2") = (ViewState("x"))(q) Then
             ListBox1.Items.Add((ViewState("x"))(q))
             ' anjam kari ke mikham
 End If
 End While
        co.Close()
 Next
 Next
End Sub
من چه کار باید بکنم؟
لطفا راهنمایی ام کنید.

----------


## Hossein Bazyan

> سلام
> می خوام در ASP.NET آرایه رو بصورت سراسری تعریف کنم تا از محتوی این آرایه در سابروتین دیگه استفاده کنم ، اگه بصورت دستی آرایه رو در کد مقدار دهی کنم و در متغییر سراسری بریزم ، در سابروتین دیگه منتقل میشه ، اما اگه آرایه توسط کاربر در برنامه مقداردهی بشه ، وقتی اونو به سابروتین دیگه توسط متغییر سراسری میبرم فقط آخرین مقدار داده شده به آرایه رو نگه میداره 
> من چه کار باید بکنم؟لطفا راهنمایی ام کنید.


سلام 
کدهاتو داخل تگ کد بنویس تا راحت تر خونده بشه !کاش سوالتان رو اینجا نمیپرسیدید و یه تاپیک تازه باز میکردید چون این تاپیک به گزارشگیری مربوط میشه !تا جایی که من فهمیدم شما میخواهید یک آرایه را به فرمهای دیگه بفرستید . خوب میتوانید از ارایه استفاده نکنید بلکه از رشته استفاده کنید و در مقصد آنرا تبدیل به ارایه کنید. من اغلب از این روش استفاده میکنم . یه مثال میزنم برای روشن شدن مطلب.فرض کن شما میخواهید ارایه ای با چهار عضو زیر را به دیگر فرمها بفرستید. ( عضوهای آرایه : Ali, Reza, Hossein, Nader هستند) 
خوب رشته زیر را تعریف کنید 

 
 Dim MyArray as String = Nothing
MyArray = "Ali, Reza, Hossein, Nader"
 
این رشته رو به فرمهای دیگه بفرست ( حتی میتوانید از طریق url نیز بفرستید یا از طریق همون session که خودتون استفاده کردید ) حال در مقصد به شکل زیر تبدیل به آرایه نمائید.
 
 Dim ReadArray() as String  = Split(MyArray,",")
 
حال شما ارایه ای دارید با جهار عضو زیر . البته میتوانید برای تقسیم رشتیه به آرایه از حروفی استفاده کنید که امکان وجودشان در رشته نیست مثلا علامتهای | ~ ^ و غیره
 
 ReadArray(0) = "Ali"
ReadArray(1) = "Reza"
ReadArray(2) = "Hossein"
ReadArray(3) = "Nader"

----------


## amin12amin

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

----------

