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

## r0ot$harp

*سلام دوستان 

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

من از این کد استفاده می کنم هیچ خطایی نمی ده ولی هیچی نشون نمی ده . 



Cn = New OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0;  Data Source=" & Adress)
        Cn.Open()

        DA = New OleDbDataAdapter("select * from [Order]", Cn)
        DA.Fill(DS, "[Order]")



        RDS.Name = "[Order]"
        RDS.Value = DS.Tables("[Order]")

        ReportViewer1.LocalReport.DataSources.Add(RDS)
        Me.ReportViewer1.RefreshReport()




باتشکر احسان 
*

----------


## davood-ahmadi

Dim objRPT As New ReportDocument
               objRPT.Load("c:\CrystalReport1.rpt")
        objRPT.SetDataSource("[order]")
        objRPT.SetParameterValue("strDate", strDate1.GetDate(thisDate))
        objRPT.SetParameterValue("strStartDate", m_strStartDate)
        objRPT.SetParameterValue("strEndDate", m_strEndDate)
        CrystalReportViewer1.ReportSource = objRPT

----------


## r0ot$harp

*




 نوشته شده توسط davood-ahmadi


        Dim objRPT As New ReportDocument
               objRPT.Load("c:\CrystalReport1.rpt")
        objRPT.SetDataSource("[order]")
        objRPT.SetParameterValue("strDate", strDate1.GetDate(thisDate))
        objRPT.SetParameterValue("strStartDate", m_strStartDate)
        objRPT.SetParameterValue("strEndDate", m_strEndDate)
        CrystalReportViewer1.ReportSource = objRPT




دوست عزیز کدی که شما گذاشتین برای Crystal Report هست ولی من برای Report View می خوام . 





باتشکر احسان 
*

----------


## r0ot$harp

*دوستان من 15 فیلد دارم و این 15 فیلد اطلاعات بیمار هست . 

من می خوام بدونم چگونه باید با استفاده از کد نویسی و بدون استفاده از کنترل های مربوط به Bind و ... می توانم Crystal Report رو اجرا کنم و در قسمت طراحی ریپورت من وقتی پارامتر ندارم از چه کنترلی برای مقید کردن اطلاعات استفاده کنم ؟ 





باتشکر احسان 
*

----------


## Chabok

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

حالا دیگه بعدش هر جوری میخواهید گزارش رو تغذیه می کنید .

----------


## r0ot$harp

*




 نوشته شده توسط Chabok


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

حالا دیگه بعدش هر جوری میخواهید گزارش رو تغذیه می کنید .


دوست عزیز یه خورده توضیح میدی ؟


من الان یه کریستال ایجاد کردم و به یه بانک به قسمت DataBase Field اضافه کرده ام و الان می خوام بدونم چگونه باید از داخل فرم کریستال رو با یه شرایطی بازگشایی کنم ؟ 

منظروم از شرایط Query هست . مثلا سن های بیشتر از 10 سال . 




باتشکر احسان 
*

----------


## Chabok

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

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

----------


## r0ot$harp

*




 نوشته شده توسط Chabok


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

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


دوست عزیز من تا به حال در .Net با کریستال کار نکرده ام و در این عمر کمی تا قسمتی نیمه ابری ضعیف هستم . اگر لطف کنید به Sample بزارین ممنون می شم . 






باتشکر احسان 
*

----------


## Chabok

Dim Rpt As New ReportDocument
Rpt.Load(Server.MapPath("~\Reports\BookRpt.rpt"))

Rpt.Database.Tables("Books").SetDataSource(Dt)

RepViw.ReportSource = Rpt
RepViw.DataBind()

----------


## r0ot$harp

*




 نوشته شده توسط Chabok


Dim Rpt As New ReportDocument
Rpt.Load(Server.MapPath("~\Reports\BookRpt.rpt"))

Rpt.Database.Tables("Books").SetDataSource(Dt)

RepViw.ReportSource = Rpt
RepViw.DataBind()



دوست عزیز ممنون از جوابتون ولی من الان مشکل اصلیم در رابطه با قرار دادن فیلد ها هست . وقتی یه دیتابیس رو به کریستال اضافه می کنید در قسمت DataBase Field تمام فیلدهای جدول ظاهر می شود و می توان فیلدهای مورد استفاده رو در جاهای خود قرار داد ولی حالا که می خواهید دیتابیس رو از طریق کد نویسی به کریستال وصل کنیم در زمان طراحی باید چگونه فیلد ها را در قسمت های مورد نیاز قرار داد ؟ 



دوست عزیز در ضمن خواهشمند هستم یه نمونه بزارین نه یه نمونه کد . یه Sample عالی . 


باتشکر احسان 
*

----------


## Chabok

با سلام

دوست عزیز . آقا احسان
من خدمتتون عرض کردم . با یک ریپورت خالی هیچ کاری نمیشه کرد .

منظورم اینه که هنگام طراحی با New Blank Report نمیشه کار کرد .

شما نمیتونید بصورت دستی Database Field روی رپیورت قرار بدین . باید خودش اینکار رو انجام بده .

باید در ابتدا توسط ویزارد ها ریپورت رو به یک دیتابیس وصل کنید تا "دیتابیس فیلدها" رو تشخیص داده و روی ریپورت قرار بده .

حالا دیگه شما باید اطلاعات رو به رپیورت بدین تا نمایش بده .

این یک مصیبت در کریستال ریپورت است که نمیشه Database Filed ها رو بصورت دستی بهش داد .
یا من بلد نیستم . ولی تا به حال هم ندیدم کسی کرده باشه .

پس پیشنهاد میکنم :
1 . یک دیتاست بصورت فایل (دیتاستی که add new item می کنید و دستی اضافه می کنید) طبق فیلدهای گزارشتون طراحی کنید .
2 . هنگام ایجاد گزارش از ویزاردهای کریستا ریپورت دیتاست رو بهش بدین تا فیلدها رو براتون بچینه روی ریپورت
3 . دیگه گزارش آمادس و طبق سایر بحث هایی که در این تاپیک و سایر تاپیک ها شده کار رو تموم کنید .

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

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

----------


## r0ot$harp

> با سلام
> 
> دوست عزیز . آقا احسان
> من خدمتتون عرض کردم . با یک ریپورت خالی هیچ کاری نمیشه کرد .
> 
> منظورم اینه که هنگام طراحی با New Blank Report نمیشه کار کرد .
> 
> شما نمیتونید بصورت دستی Database Field روی رپیورت قرار بدین . باید خودش اینکار رو انجام بده .
> 
> ...


*واقعا ازتون تشکر می کنم . بسیار ممنون . 

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


حالا سوالم اینه که می خوام در قسمت سمت چپ که یه قسمت خالی هست مثل یه ListBox می شه کاری کرد که مثلا اسم 10 نفر رو بیاره بعد قتی رو هر کدوم کلیک کردم بره برطبق اسم انتحاب شده اطلاعاتشون رو نمایش بده ؟ 




باتشکر احسان*

----------

