PDA

View Full Version : سوال: چگونگی چاپ اطلاعات موجود در دیتا گرید با استفاده از کریستال ریپورت



mohsenrahx
سه شنبه 17 شهریور 1388, 20:25 عصر
با سلام:
چگونه می توان بعد از زدن دکمه چاپ ,اطلاعات موجود در دیتا گرید چاپ شوند؟(در ضمن از کریستال ریپورت استفاده کنم)
لطفا مرا راهنمایی کنید.
با تشکر و احترام فراوان

mohsenrahx
سه شنبه 17 شهریور 1388, 20:44 عصر
یعنی هیچکسی بلد نیست!!!!!!!:متعجب:

mc_laren
چهارشنبه 18 شهریور 1388, 06:09 صبح
با سلام

rptDocument.Load(Application.StartupPath + "\filename.rpt")
rptDocument.SetDataSource(Me.DataGridVeiw1.DataSou rce)
CrystalReportViewer1.ReportSource = rptDocument

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

m_zamani
چهارشنبه 18 شهریور 1388, 09:45 صبح
با اين كد فقط اطلاعات جدول چاپ ميشه نه اطلاعات ديتاگريد

arsalansalar
چهارشنبه 18 شهریور 1388, 12:18 عصر
مثال اول از لینک زیر و ببین
http://barnamenevis.org/forum/showthread.php?t=69916&page=8

mohsenrahx
چهارشنبه 18 شهریور 1388, 13:39 عصر
میخوام مسئله رو یه بار دیگه شرح بدم:
1- من یک برنامه حسابداری دارم می نویسم.
2- با vb.net2005 کار می کنم و بانکم هم SQL2000 هست.
3- یک دیتاگراید دارم که با کد زیر داده ها رو نمایش می دهد.


Public ConDetails As New SqlConnection
Public CmdDetails As New SqlCommand
Public DrDetails As SqlDataReader
Public AdapDetails As New SqlDataAdapter
Public DtDetails As New DataTable
-----------------------------------------------------
Public Sub Load_ArBank()
IDGV_Details("SELECT * From Tbl_Details")
New_Details()
ConDetails.ConnectionString = "Data Source=KINGOFFR-CC4E70;Initial Catalog=ArBank;Integrated Security=True;User ID=RAHIMZADEH\Nik;Password=2006;" '"server=RAHIMZADEH;database=ArBank;uid=Nik;password =2006"
CmdDetails.Connection = ConDetails
CmdDetails.CommandText = "SELECT * FROM Tbl_Details"
ConDetails.Open()
DrDetails = CmdDetails.ExecuteReader()
DrDetails.Close()
ConDetails.Close()

AdapDetails.SelectCommand = CmdDetails
AdapDetails.Fill(DtDetails)
End Sub
------------------------------------------------------
Public Sub IDGV_Details(ByVal StrConnect As String)
Try
' Set up the DataGridView.
With Mdi.Tbl_DetailsDataGridView
' Automatically generate the DataGridView columns.
.AutoGenerateColumns = True
' Set up the data source.
Mdi.Tbl_DetailsBindingSource.DataSource = GetDataDetails(StrConnect)
.DataSource = Mdi.Tbl_DetailsBindingSource
' Automatically resize the visible rows.
.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCellsExceptH eaders
' Set the DataGridView control's border.
.BorderStyle = BorderStyle.Fixed3D
' Put the cells in edit mode when user enters them.
.EditMode = DataGridViewEditMode.EditOnEnter
End With
Catch ex As SqlException
MessageBox.Show("To run this sample replace connection.ConnectionString with a valid connection string" _
& " to a Northwind database accessible to your system.", _
"ERROR", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
'System.Threading.Thread.CurrentThread.Abort()
End Try
End Sub
-------------------------------------------------
Private Function GetDataDetails(ByVal sqlCommand As String) As DataTable
Dim connectionString As String = "Data Source=KINGOFFR-CC4E70;Initial Catalog=ArBank;Integrated Security=True;User ID=KINGOFFR-CC4E70\Nik;Password=2006;"
Dim northwindConnection As SqlConnection = New SqlConnection(connectionString)
Dim command As New SqlCommand(sqlCommand, northwindConnection)
Dim adapter As SqlDataAdapter = New SqlDataAdapter()
adapter.SelectCommand = command
Dim table As New DataTable
table.Locale = System.Globalization.CultureInfo.InvariantCulture
adapter.Fill(table)
Return table
End Function

Public Sub New_Details()
' Set up the BindingSource component.
Mdi.Tbl_DetailsBindingNavigator.BindingSource = Mdi.Tbl_DetailsBindingSource
'Me.Controls.Add(Me.Tbl_DetailsBindingNavigator)
' Set up the form.
AddHandler Mdi.ActiveForm.Load, AddressOf Mdi.Mdi_Activated
End Sub
----------------------------------------------
Public Sub IDGV_Details(ByVal StrConnect As String)
Try
' Set up the DataGridView.
With Mdi.Tbl_DetailsDataGridView
' Automatically generate the DataGridView columns.
.AutoGenerateColumns = True
' Set up the data source.
Mdi.Tbl_DetailsBindingSource.DataSource = GetDataDetails(StrConnect)
.DataSource = Mdi.Tbl_DetailsBindingSource
' Automatically resize the visible rows.
.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCellsExceptH eaders
' Set the DataGridView control's border.
.BorderStyle = BorderStyle.Fixed3D
' Put the cells in edit mode when user enters them.
.EditMode = DataGridViewEditMode.EditOnEnter
End With
Catch ex As SqlException
MessageBox.Show("To run this sample replace connection.ConnectionString with a valid connection string" _
& " to a Northwind database accessible to your system.", _
"ERROR", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
'System.Threading.Thread.CurrentThread.Abort()
End Try
End Sub
--------------------------------------
Private Function GetDataDetails(ByVal sqlCommand As String) As DataTable
Dim connectionString As String = "Data Source=KINGOFFR-CC4E70;Initial Catalog=ArBank;Integrated Security=True;User ID=KINGOFFR-CC4E70\Nik;Password=2006;"
Dim northwindConnection As SqlConnection = New SqlConnection(connectionString)
Dim command As New SqlCommand(sqlCommand, northwindConnection)
Dim adapter As SqlDataAdapter = New SqlDataAdapter()
adapter.SelectCommand = command
Dim table As New DataTable
table.Locale = System.Globalization.CultureInfo.InvariantCulture
adapter.Fill(table)
Return table
End Function
----------------------------------------
Public Sub New_Details()
' Set up the BindingSource component.
Mdi.Tbl_DetailsBindingNavigator.BindingSource = Mdi.Tbl_DetailsBindingSource
'Me.Controls.Add(Me.Tbl_DetailsBindingNavigator)
' Set up the form.
AddHandler Mdi.ActiveForm.Load, AddressOf Mdi.Mdi_Activated
End Sub
---------------------------------------


4- حالا که بانک رو فیلتر می کنم داخل گراید یکسری اطلاعات فیلتر شده نمایش داده میشه
5-داخل همین برنامه یک کریستال ریپورت طراحی کردم (که این فایل در داخل برنامه است نه به صورت یک فایل خارجی) حالا می خوام وقتی که گراید فیلتر شد کریستا ریپورت فیلد های داخل دیتا گراید را نمایش بده.


Private Rpt_Details As New CryRep_Details
FrmRepViewer.Show()
FrmRepViewer.CryRepViewer.ReportSource = Rpt_Details

6- دیگه بهتر از این نمی تونم توضیح بدم . لطفا شما دوستان راهنماییم کنید . با تشکر و احترام فراوان

mohsenrahx
چهارشنبه 18 شهریور 1388, 23:35 عصر
لطفا راهنمایی کنید . من خیلی خیلی عجله دارم . باید تا آخر شهریور پروژه رو تموم کنم . :گریه:

saadi2
پنج شنبه 19 شهریور 1388, 17:26 عصر
در اسکیوال از ویو استفاده کن در اکسس از کوئری

mc_laren
جمعه 20 شهریور 1388, 04:09 صبح
با اين كد فقط اطلاعات جدول چاپ ميشه نه اطلاعات ديتاگريد

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

negar_1366
شنبه 30 مرداد 1389, 13:10 عصر
نوشته شده توسط mc_laren

با سلام


rptDocument.Load(Application.StartupPath + "\filename.rpt")

rptDocument.SetDataSource(Me.DataGridVeiw1.DataSou rce)

CrystalReportViewer1.ReportSource = rptDocument



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


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

وقت بخیر

موقعی که منبع داده رو گرید معرفی کیم پرینتمون یه صفحه سفید هستش.
خروجی نداره.....
شما چطوری این کار رو میکنید؟!!!!

ali_najari
شنبه 30 مرداد 1389, 17:26 عصر
وقت بخیر

موقعی که منبع داده رو گرید معرفی کیم پرینتمون یه صفحه سفید هستش.
خروجی نداره.....
شما چطوری این کار رو میکنید؟!!!!

شرمنده من يادم رفته بود فايل رو Attach كنم
الان Attach كردم و مشكل شما هم حل شده توش ميتوني از اين آدرس ببينيش

http://barnamenevis.org/forum/showpost.php?p=1072445&postcount=24

negar_1366
شنبه 30 مرداد 1389, 19:07 عصر
ممنون از لطفتون

ولی من اینجا منظورم این بود که اگه کد ریداد کلیک باتن پرینت رو به شکل زیر بنویسیم،جواب نمیده...
ایشون چه مدلی این کار رو کردند؟؟!!



Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Rpt As New Report
Rpt.Load("Report.rpt")
Rpt.SetDataSource(Me.dgvlist.DataSource)
frmprint.CRV.ReportSource = Rpt
frmprint.ShowDialog()

End Sub

negar_1366
یک شنبه 31 مرداد 1389, 13:14 عصر
دوستان کسی جواب سوال منا نمیدونست؟!!! :ناراحت:

ali_najari
یک شنبه 31 مرداد 1389, 15:14 عصر
ممنون از لطفتون

ولی من اینجا منظورم این بود که اگه کد ریداد کلیک باتن پرینت رو به شکل زیر بنویسیم،جواب نمیده...
ایشون چه مدلی این کار رو کردند؟؟!!



PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Rpt AsNew Report
Rpt.Load("Report.rpt")
Rpt.SetDataSource(Me.dgvlist.DataSource)
frmprint.CRV.ReportSource = Rpt
frmprint.ShowDialog()

EndSub


سلام

من منظورتون رو متوچه نمیشم که میخواید چیکار کنید؟

شما میخواید Datasorce گیرید رو برای Crystal بزارید؟

negar_1366
دوشنبه 01 شهریور 1389, 10:28 صبح
Rpt.SetDataSource(Me.dgvlist.DataSource)


بجای فرستادن یک دیتاست اطلاعات درون دیتاگرید به عنوان منبع داده فرستاده میشه...
دوست عزیزمون mc_laren گفتند که با این روش چندین فرمشون رو چاپ کردند.
من هم پرسیدم ایشون چه مدلی این کار رو انجام دادند.
چرا برا ما نمیشه.....