skysky
یک شنبه 12 تیر 1390, 08:04 صبح
سلام دوستان. يه گزارش با كريستال ريپورت روي جداول ديتابيس ميگيرم اما روي خروجي Excel چند تا از فيلدها رو نمايش نميده مثل فيلدstrcallerid البته براي گزارش گيري از تابعي به نامupdatekol() استفاده ميكنه كه كار اين تابع درسته چون وقتي از اون در ديتاگريد استفاده ميكنم فيلدهاي مورد نظر رو نشون ميده ولي وقتي از همون تابع براي كريستال ريپورت استفاده ميكنم چند تا از فيلدها رو توي Excel نشون نميده. لطفا راهنماييم كنيد.
تابعupdatekol:
Function updatekol()
Dim query AsString
Dim da AsNew SqlDataAdapter
Dim SOURCE As DataView
If chk_tel.Checked Then
If chktel() Then
Dim tel_srch AsString
If Left(txt_tel.Text, 1) <> "0"Then
tel_srch = "0" + txt_tel.Text
Else
tel_srch = txt_tel.Text
EndIf
query = "SELECT Tel, tmPayment, strBank, nAmount, strBillId, strpaymentid, strPaygiri, strCardBank, strStatus,strcityname,ncityid,strcallerid"
query += " FROM payment_view where tel='" & tel_srch & "' ORDER BY tmPayment DESC"
Else
ExitFunction
كدي كه توي گزارش گيري استفاده ميكنم:
ProtectedSub btn_excel_Click(ByVal sender AsObject, ByVal e As System.EventArgs) Handles btn_excel.Click
Dim strcon AsString = System.Configuration.ConfigurationManager.Connecti onStrings("responderConnect").ConnectionString
Dim objcon AsNew SqlConnection(strcon)
Dim conn As SqlConnection = New SqlConnection(strcon)
Dim strReportName AsString
Dim Cmd_rep AsNew SqlClient.SqlCommand()
strReportName = "Rep_prn_pay"
Dim strReportPath AsString = Server.MapPath("report") & "/" & strReportName & ".rpt"
Try
Dim TheFile As FileInfo = New FileInfo(MapPath(".") & "\report\" & "rep_prn_pay" & ".pdf")
If TheFile.Exists Then
File.Delete(MapPath(".") & "\report\" & "rep_prn_pay" & ".pdf")
Else
ThrowNew FileNotFoundException()
EndIf
Catch ex As FileNotFoundException
Lbl_msg.Text += ex.Message
Catch ex As Exception
Lbl_msg.Text += ex.Message
EndTry
IfNot IO.File.Exists(strReportPath) Then
Throw (New Exception("Unable to locate report file:" & vbCrLf & strReportPath))
EndIf
Dim rptDocument AsNew CrystalDecisions.CrystalReports.Engine.ReportDocum ent
rptDocument.Load(strReportPath)
Dim da As SqlDataAdapter = New SqlDataAdapter
'("select * from pay1818 order by tel asc", objcon)
Dim ds As DataSet = New DataSet()
Dim dt AsNew DataTable
dt = updatekol()
'ds.Tables.Add(New DataTable())
ds.Tables.Add(dt.Copy())
objcon.Open()
'da.Fill(ds, "pay1818")
objcon.Close()
rptDocument.SetDataSource(ds.Tables(0))
'rptDocument.SetDataSource(DS.Tables(0).DefaultVie w)
Dim DiskOpts As CrystalDecisions.Shared.DiskFileDestinationOptions = New CrystalDecisions.Shared.DiskFileDestinationOptions ()
rptDocument.ExportOptions.ExportDestinationType = CrystalDecisions.[Shared].ExportDestinationType.DiskFile
rptDocument.ExportOptions.ExportFormatType = CrystalDecisions.[Shared].ExportFormatType.Excel 'PortableDocFormat
' DiskOpts.DiskFileName = Server.MapPath("report") & "/" & strReportName & Session("phone") & ".pdf"
DiskOpts.DiskFileName = Server.MapPath("report") & "/" & strReportName & ".xls"'".pdf"
rptDocument.ExportOptions.DestinationOptions = DiskOpts
Dim yearn AsString = Date.Today.Year
Dim monthn AsString = Date.Today.Month
Dim dayn AsString = Date.Today.Day
If monthn.Length < 2 Then
monthn = "0" + monthn
EndIf
If dayn.Length < 2 Then
dayn = "0" + dayn
EndIf
Dim dateinm AsString
dateinm = yearn + "/" + monthn + "/" + dayn
rptDocument.DataDefinition.FormulaFields.Item("date_rooz").Text = "'" & class_date.Miladi2Shamsi_r(dateinm) & "'"
'rptDocument.DataDefinition.FormulaFields.Item("paytotal").Text = "'" & Session("paytotal").ToString & "'"
Dim city AsString
IfNot IsNothing(drp_center.SelectedItem) Then
city = drp_city.SelectedItem.Text & "-" & drp_center.SelectedItem.Text
Else
city = drp_city.SelectedItem.Text
EndIf
rptDocument.DataDefinition.FormulaFields.Item("center").Text = "'" & city & "'"
rptDocument.Export()
Dim test AsString = "report/" & strReportName & ".xls"' ".pdf"
Response.Redirect(test)
EndSub
ProtectedSub Button1_Click(ByVal sender AsObject, ByVal e As System.EventArgs)
Dim report AsNew CrystalDecisions.CrystalReports.Engine.ReportDocum ent
Dim strReportName AsString
strReportName = "Rep_prn_pay"
Dim strReportPath AsString = Server.MapPath("report") & "/" & strReportName & ".rpt"
IfNot Page.IsPostBack Then
report = New CrystalDecisions.CrystalReports.Engine.ReportDocum ent()
report.Load(Server.MapPath("report") & "/" & strReportName & ".xls")
report.SetDataSource(updatekol())
Session("MyReport") = report
Else
report = Session("MyReport")
EndIf
EndSub
تابعupdatekol:
Function updatekol()
Dim query AsString
Dim da AsNew SqlDataAdapter
Dim SOURCE As DataView
If chk_tel.Checked Then
If chktel() Then
Dim tel_srch AsString
If Left(txt_tel.Text, 1) <> "0"Then
tel_srch = "0" + txt_tel.Text
Else
tel_srch = txt_tel.Text
EndIf
query = "SELECT Tel, tmPayment, strBank, nAmount, strBillId, strpaymentid, strPaygiri, strCardBank, strStatus,strcityname,ncityid,strcallerid"
query += " FROM payment_view where tel='" & tel_srch & "' ORDER BY tmPayment DESC"
Else
ExitFunction
كدي كه توي گزارش گيري استفاده ميكنم:
ProtectedSub btn_excel_Click(ByVal sender AsObject, ByVal e As System.EventArgs) Handles btn_excel.Click
Dim strcon AsString = System.Configuration.ConfigurationManager.Connecti onStrings("responderConnect").ConnectionString
Dim objcon AsNew SqlConnection(strcon)
Dim conn As SqlConnection = New SqlConnection(strcon)
Dim strReportName AsString
Dim Cmd_rep AsNew SqlClient.SqlCommand()
strReportName = "Rep_prn_pay"
Dim strReportPath AsString = Server.MapPath("report") & "/" & strReportName & ".rpt"
Try
Dim TheFile As FileInfo = New FileInfo(MapPath(".") & "\report\" & "rep_prn_pay" & ".pdf")
If TheFile.Exists Then
File.Delete(MapPath(".") & "\report\" & "rep_prn_pay" & ".pdf")
Else
ThrowNew FileNotFoundException()
EndIf
Catch ex As FileNotFoundException
Lbl_msg.Text += ex.Message
Catch ex As Exception
Lbl_msg.Text += ex.Message
EndTry
IfNot IO.File.Exists(strReportPath) Then
Throw (New Exception("Unable to locate report file:" & vbCrLf & strReportPath))
EndIf
Dim rptDocument AsNew CrystalDecisions.CrystalReports.Engine.ReportDocum ent
rptDocument.Load(strReportPath)
Dim da As SqlDataAdapter = New SqlDataAdapter
'("select * from pay1818 order by tel asc", objcon)
Dim ds As DataSet = New DataSet()
Dim dt AsNew DataTable
dt = updatekol()
'ds.Tables.Add(New DataTable())
ds.Tables.Add(dt.Copy())
objcon.Open()
'da.Fill(ds, "pay1818")
objcon.Close()
rptDocument.SetDataSource(ds.Tables(0))
'rptDocument.SetDataSource(DS.Tables(0).DefaultVie w)
Dim DiskOpts As CrystalDecisions.Shared.DiskFileDestinationOptions = New CrystalDecisions.Shared.DiskFileDestinationOptions ()
rptDocument.ExportOptions.ExportDestinationType = CrystalDecisions.[Shared].ExportDestinationType.DiskFile
rptDocument.ExportOptions.ExportFormatType = CrystalDecisions.[Shared].ExportFormatType.Excel 'PortableDocFormat
' DiskOpts.DiskFileName = Server.MapPath("report") & "/" & strReportName & Session("phone") & ".pdf"
DiskOpts.DiskFileName = Server.MapPath("report") & "/" & strReportName & ".xls"'".pdf"
rptDocument.ExportOptions.DestinationOptions = DiskOpts
Dim yearn AsString = Date.Today.Year
Dim monthn AsString = Date.Today.Month
Dim dayn AsString = Date.Today.Day
If monthn.Length < 2 Then
monthn = "0" + monthn
EndIf
If dayn.Length < 2 Then
dayn = "0" + dayn
EndIf
Dim dateinm AsString
dateinm = yearn + "/" + monthn + "/" + dayn
rptDocument.DataDefinition.FormulaFields.Item("date_rooz").Text = "'" & class_date.Miladi2Shamsi_r(dateinm) & "'"
'rptDocument.DataDefinition.FormulaFields.Item("paytotal").Text = "'" & Session("paytotal").ToString & "'"
Dim city AsString
IfNot IsNothing(drp_center.SelectedItem) Then
city = drp_city.SelectedItem.Text & "-" & drp_center.SelectedItem.Text
Else
city = drp_city.SelectedItem.Text
EndIf
rptDocument.DataDefinition.FormulaFields.Item("center").Text = "'" & city & "'"
rptDocument.Export()
Dim test AsString = "report/" & strReportName & ".xls"' ".pdf"
Response.Redirect(test)
EndSub
ProtectedSub Button1_Click(ByVal sender AsObject, ByVal e As System.EventArgs)
Dim report AsNew CrystalDecisions.CrystalReports.Engine.ReportDocum ent
Dim strReportName AsString
strReportName = "Rep_prn_pay"
Dim strReportPath AsString = Server.MapPath("report") & "/" & strReportName & ".rpt"
IfNot Page.IsPostBack Then
report = New CrystalDecisions.CrystalReports.Engine.ReportDocum ent()
report.Load(Server.MapPath("report") & "/" & strReportName & ".xls")
report.SetDataSource(updatekol())
Session("MyReport") = report
Else
report = Session("MyReport")
EndIf
EndSub