 |
|
|
 |
 |
|
enter parameter values
ข้างๆ จะมีบอกว่า มี parameter ชื่ออะไรที่ยังไม่ได้กำหนดค่ะ
ก็ไปกำหนดให้เสียก่อน จะไม่มี error นี้ขึ้นค่ะ
|
 |
 |
 |
 |
Date :
2010-06-28 12:53:16 |
By :
blurEyes |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
กำหนดใน crystal ใช่ป่ะคะ ถ้าใช่ ทำแล้วค่ะกำหนดแล้วแต่มันก็ยังขึ้นอยู่
|
 |
 |
 |
 |
Date :
2010-06-29 09:23:31 |
By :
nongnooch40 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
cap screen มาค่ะ
ตรงที่มันขึ้นถามหา enter parameter
ไม่ได้กำหนดที่ crystal report ค่ะต้องกำหนดจาก .NET ที่เรียก CR
|
 |
 |
 |
 |
Date :
2010-06-29 10:58:52 |
By :
blurEyes |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (VB.NET)
Sub print_report(ByVal qt_no As string)
Dim doc As String = "test"
Dim sql As String = "select entry_date from qt_policy where qt_no ='" & st_no & "'"
Dim var(1) As String, l(1) As String
var(0) = "@qt_no" : l(0) = "QNº: " & st_no
Exportport(sql, doc, var, l, CrystalReportViewer1)
End Sub
Public Sub Exportport(ByVal sql As String, ByVal DOC_name As String, ByVal PV() As String, ByVal P_VAL() As String, ByVal crs As CrystalDecisions.Web.CrystalReportViewer)
Dim sqlConn As New SqlConnection(".............")
Dim b As New SqlDataAdapter(sql, sqlConn)
Dim dst As New DataSet
b.Fill(dst, "table")
Dim rpt As New ReportDocument()
rpt.Load(Server.MapPath("~/Reports/" & DOC_name & ".rpt"))
rpt.SetDataSource(dst.Tables(0))
If PV IsNot Nothing Or P_VAL IsNot Nothing Then
Dim PAR(UBound(PV)) As ParameterDiscreteValue
Dim PAR_F As ParameterFieldDefinitions
Dim VAL(UBound(PV)) As ParameterValues
Dim cr(UBound(PV)) As ParameterFieldDefinition
PAR_F = rpt.DataDefinition.ParameterFields
For i As Integer = 0 To UBound(PV)
cr(i) = PAR_F.Item(PV(i))
VAL(i) = cr(i).CurrentValues
PAR(i) = New ParameterDiscreteValue
PAR(i).Value = P_VAL(i)
VAL(i).Add(PAR(i))
cr(i).ApplyCurrentValues(VAL(i))
rpt.SetParameterValue(PV(i), P_VAL(i))
Next
End If
Try
With crs
.DisplayToolbar = True
.HasExportButton = False
.HasRefreshButton = False
.HasToggleParameterPanelButton = False
.PrintMode = CrystalDecisions.Web.PrintMode.ActiveX
.ToolPanelView = CrystalDecisions.Web.ToolPanelViewType.None
.ReportSource = rpt
.DataBind()
End With
Catch ex As Exception
Console.WriteLine(ex.Message)
ex = Nothing
Finally
sqlConn.Close()
dst.Dispose()
sqlConn = Nothing
dst = Nothing
End Try
End Sub
|
 |
 |
 |
 |
Date :
2010-06-30 09:46:23 |
By :
Oriya |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|

Code (VB.NET)
Public Sub Exportport(ByVal sql As String, ByVal DOC_name As String _
, ByVal PV() As String, ByVal P_VAL() As String _
, ByVal crs As CrystalDecisions.Web.CrystalReportViewer)
Dim sqlConn As New SqlConnection(".............")
Dim b As New SqlDataAdapter(sql, sqlConn)
Dim dst As New DataSet
b.Fill(dst, "table")
Dim rpt As New ReportDocument()
rpt.Load(Server.MapPath("~/Reports/" & DOC_name & ".rpt"))
rpt.SetDataSource(dst.Tables(0))
If PV IsNot Nothing Or P_VAL IsNot Nothing Then
Dim PAR(UBound(PV)) As ParameterDiscreteValue
Dim PAR_F As ParameterFieldDefinitions
Dim VAL(UBound(PV)) As ParameterValues
Dim cr(UBound(PV)) As ParameterFieldDefinition
PAR_F = rpt.DataDefinition.ParameterFields
For i As Integer = 0 To UBound(PV)
cr(i) = PAR_F.Item(PV(i))
VAL(i) = cr(i).CurrentValues
PAR(i) = New ParameterDiscreteValue
PAR(i).Value = P_VAL(i)
VAL(i).Add(PAR(i))
cr(i).ApplyCurrentValues(VAL(i))
rpt.SetParameterValue(PV(i), P_VAL(i))
Next
End If
Try
With crs
.DisplayToolbar = True
.HasExportButton = False
.HasRefreshButton = False
.HasToggleParameterPanelButton = False
.PrintMode = CrystalDecisions.Web.PrintMode.ActiveX
.ToolPanelView = CrystalDecisions.Web.ToolPanelViewType.None
.ReportSource = rpt
.DataBind()
End With
Catch ex As Exception
Console.WriteLine(ex.Message)
ex = Nothing
Finally
sqlConn.Close()
dst.Dispose()
sqlConn = Nothing
dst = Nothing
End Try
End Sub
เป็นอะไรที่ทรมานสายตามากเลย
|
 |
 |
 |
 |
Date :
2010-06-30 09:50:43 |
By :
blurEyes |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
คือ อาการที่คุณว่ามาจะเกิดขึ้นเมื่อคุณสร้าง parameter ใน crystal report
แต่ตอนส่ง parameter เพื่อ generate report คุณให้ค่าไม่ครบค่ะ
มีกรณีเดียว ลองตรวจใน .RPT ดูค่ะว่ามี PARAMETER ชื่ออะไรบ้าง
แล้วที่คุณ ASSIGN ด้วย code ด้านบนมีอะบ้าง หาตัวที่ยังไม่ได้ assign
อาจเป็นไปได้ว่าใช้ชื่อผิดก็ได้ค่ะ
|
 |
 |
 |
 |
Date :
2010-06-30 10:01:42 |
By :
blurEyes |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอเป็นแบบ C# ด้วยครับ ยังทำการส่งค่าจากฟอร์ม ไปยัง crystal report ไม่ได้เลย
|
 |
 |
 |
 |
Date :
2010-07-05 14:23:45 |
By :
thaic |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เกลียดเกาหลีอะ
แต่เรียวขาของ snsd สวยมาก 

|
 |
 |
 |
 |
Date :
2010-07-05 15:40:53 |
By :
tungman |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
พอดีเจอปัญหาคล้ายๆกันค่ะ เลยขออนุญาตถามค่ะ ว่า code ด้านล่าง ผิดตรงไหนคะ พอเรียก crystal report แล้ว มันขึ้น popup enter parameter value ทั้งที่ใน parammeter ใน crystal report ก็ชื่อตรงกัน รบกวนด้วยคะ อดหลับอดนอน มึนมาหลายวันแล้ววว
Imports CrystalDecisions.Shared
Imports CrystalDecisions.CrystalReports.Engine
Public Class frmPreview
Dim Report As New CrystalReport1
Private Sub CrystalReportViewer1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CrystalReportViewer1.Load
With Report
Dim cryRpt As New ReportDocument
cryRpt.Load("E:\ABCProj\ABCProj\ABCProj\Preview.rpt")
Dim crParameterFieldDefinitions As ParameterFieldDefinitions
Dim crParameterFieldDefinition As ParameterFieldDefinition
Dim crParameterValues As New ParameterValues
Dim crParameterDiscreteValue As New ParameterDiscreteValue
crParameterDiscreteValue.Value = str1 ' -->ตรงนี้ ประกาศ ตัวแปร เป็น public ไว้ใน module ค่ะ, โดยรับค่ามาจากอีก form นึง
crParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields
crParameterFieldDefinition = crParameterFieldDefinitions.Item("SerialParam")
crParameterValues = crParameterFieldDefinition.CurrentValues
crParameterValues.Clear()
crParameterValues.Add(crParameterDiscreteValue)
crParameterFieldDefinition.ApplyCurrentValues(crParameterValues)
Dim CrystalReportViewer1 As New CrystalDecisions.Windows.Forms.CrystalReportViewer
CrystalReportViewer1.ReportSource = cryRpt
CrystalReportViewer1.Refresh()
End With
End Sub
End Class
|
 |
 |
 |
 |
Date :
2011-08-23 11:02:00 |
By :
เนย |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Imports System.Data
Imports System.Data.SqlClient
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Dim strFormula As [String], ReptName As [String]
Dim cryRpt As New ReportDocument()
Dim crtableLogoninfos As New TableLogOnInfos()
Dim crtableLogoninfo As New TableLogOnInfo()
Dim crConnectionInfo As New ConnectionInfo()
Dim pfields As New ParameterFields()
Dim CrTables As Tables
Dim dt As DataTable
Dim prForWho, prCusAddr, prEmpName, strConnString, strSQL, cmdQuotRept As String
Private Sub FrmQuotation_ViewReport_Load(sender As Object, e As EventArgs) Handles MyBase.Load
If UserSelectValue <> Nothing Then
If ds.Tables.Contains("BasicInfoReport") Then ds.Tables.Remove("BasicInfoReport")
Dim daBasicInfoReport As New SqlDataAdapter("Select QuotID,IncVat,CusID From Quotation Where QuotID = '" & UserSelectValue & "'", cn)
daBasicInfoReport.Fill(ds, "BasicInfoReport")
ShowReport()
End If
End Sub
Private Sub FillParamReport()
prForWho = "สำหรับลูกค้า"
'------------- Customer Address
If ds.Tables.Contains("CustInfo") Then ds.Tables.Remove("CustInfo")
Dim daCustInfo As New SqlDataAdapter("Select * From Customer where CusID='" & ds.Tables("BasicInfoReport").Rows(0).Item("CusID") & "'", cn)
daCustInfo.Fill(ds, "CustInfo")
If ds.Tables("CustInfo").Rows.Count > 0 Then
prCusAddr = Nothing
If IsDBNull(ds.Tables("CustInfo").Rows(0).Item("CusAdd_No")) = False Then
prCusAddr &= ds.Tables("CustInfo").Rows(0).Item("CusAdd_No")
End If
If IsDBNull(ds.Tables("CustInfo").Rows(0).Item("CusAdd_Village")) = False Then
prCusAddr &= " หมู่บ้าน" & ds.Tables("CustInfo").Rows(0).Item("CusAdd_Village")
End If
If IsDBNull(ds.Tables("CustInfo").Rows(0).Item("CusAdd_Lane")) = False Then
prCusAddr &= " ซอย" & ds.Tables("CustInfo").Rows(0).Item("CusAdd_Lane")
End If
If IsDBNull(ds.Tables("CustInfo").Rows(0).Item("CusAdd_Moo")) = False Then
prCusAddr &= " หมู่" & ds.Tables("CustInfo").Rows(0).Item("CusAdd_Moo")
End If
If IsDBNull(ds.Tables("CustInfo").Rows(0).Item("CusAdd_Street")) = False Then
prCusAddr &= " ถนน" & ds.Tables("CustInfo").Rows(0).Item("CusAdd_Street")
End If
If IsDBNull(ds.Tables("CustInfo").Rows(0).Item("CusAdd_Tumbon")) = False Then
prCusAddr &= " แขวง" & ds.Tables("CustInfo").Rows(0).Item("CusAdd_Tumbon")
End If
If IsDBNull(ds.Tables("CustInfo").Rows(0).Item("CusAdd_Amphur")) = False Then
prCusAddr &= " เขต" & ds.Tables("CustInfo").Rows(0).Item("CusAdd_Amphur")
End If
If IsDBNull(ds.Tables("CustInfo").Rows(0).Item("CusAdd_Province")) = False Then
If ds.Tables.Contains("CusProvince") Then ds.Tables.Remove("CusProvince")
Dim daCusProvince As New SqlDataAdapter("Select * From Provinces where ProvinceID =" & ds.Tables("CustInfo").Rows(0).Item("CusAdd_Province") & "", cn)
daCusProvince.Fill(ds, "CusProvince")
If ds.Tables("CusProvince").Rows.Count > 0 Then
prCusAddr &= Chr(13) & "จังหวัด" & ds.Tables("CusProvince").Rows(0).Item("ProvinceName")
End If
End If
If IsDBNull(ds.Tables("CustInfo").Rows(0).Item("CusAdd_PostCode")) = False Then
prCusAddr &= " " & ds.Tables("CustInfo").Rows(0).Item("CusAdd_Postcode")
End If
Else
prCusAddr = "-"
End If
If ds.Tables.Contains("InfoEmp") = True Then
If ds.Tables("InfoEmp").Rows.Count > 0 Then
prEmpName = ds.Tables("InfoEmp").Rows(0).Item("EmpName")
End If
End If
End Sub
Private Sub ShowReport()
cmdQuotRept = Nothing
cmdQuotRept = "SELECT dbo.Quotation.QuotID, dbo.Quotation.CusID, dbo.Customer.CusFname, dbo.Customer.CusLname, "
cmdQuotRept &= " " & "dbo.Customer.CusAdd_No, dbo.Customer.CusAdd_Village, dbo.Customer.CusAdd_Lane, dbo.Customer.CusAdd_Moo, "
cmdQuotRept &= " " & "dbo.Customer.CusAdd_Street, dbo.Customer.CusAdd_Tumbon, dbo.Customer.CusAdd_Amphur, dbo.Provinces.ProvinceName, "
cmdQuotRept &= " " & "dbo.Customer.CusAdd_Postcode, dbo.Customer.Contact_No1, dbo.Customer.VatID, dbo.QuotationDetail.ProductID, "
cmdQuotRept &= " " & "dbo.QuotationDetail.ProductName, dbo.QuotationDetail.ProductPrice, dbo.QuotationDetail.ProductUnit, "
cmdQuotRept &= " " & "dbo.QuotationDetail.QTY, dbo.QuotationDetail.TotalPrice AS [QuotDet_TotalPrice], dbo.QuotationDetail.IsGroupPro, dbo.Quotation.CountList, "
cmdQuotRept &= " " & "dbo.Quotation.TotalPrice AS [Quot_TotalPrice], dbo.Quotation.Discount, dbo.Quotation.AmountPrice, "
cmdQuotRept &= " " & "dbo.Quotation.IncVat, dbo.Quotation.VatPrice, dbo.Quotation.NetPrice, dbo.Quotation.CharPrice, "
cmdQuotRept &= " " & "dbo.Quotation.WarDesc, convert(varchar,dbo.Quotation.RowCreatedDate,103) as RowCreatedDate, dbo.Quotation.StandDate, convert(varchar,dbo.Quotation.ExpiredDate,103) as ExpiredDate,dbo.AppsStatus.AppStatName as [PaidType]"
cmdQuotRept &= " " & "FROM dbo.Quotation "
cmdQuotRept &= " " & "LEFT JOIN dbo.AppsStatus "
cmdQuotRept &= " " & "ON dbo.Quotation.PaidType = dbo.AppsStatus.AppStatValue "
cmdQuotRept &= " " & "LEFT JOIN dbo.QuotationDetail "
cmdQuotRept &= " " & "ON dbo.Quotation.QuotID = dbo.QuotationDetail.QuotID "
cmdQuotRept &= " " & "LEFT JOIN dbo.Customer "
cmdQuotRept &= " " & "ON dbo.Quotation.CusID = dbo.Customer.CusID "
cmdQuotRept &= " " & "LEFT JOIN dbo.Provinces "
cmdQuotRept &= " " & "ON dbo.Customer.CusAdd_Province = dbo.Provinces.ProvinceID"
cmdQuotRept &= " " & "Where dbo.Quotation.QuotID = '" & UserSelectValue & "'"
If ds.Tables.Contains("MyDataTable_Quotation") Then ds.Tables.Remove("MyDataTable_Quotation")
Dim daMyDataTable_Quotation As New SqlDataAdapter(cmdQuotRept, cn)
daMyDataTable_Quotation.Fill(ds, "MyDataTable_Quotation")
dt = ds.Tables("MyDataTable_Quotation")
Try
cryRpt.Load(ReportServerPath & "\" & ReptName)
crConnectionInfo.ServerName = SVName
crConnectionInfo.DatabaseName = DBName
crConnectionInfo.UserID = USLogin
crConnectionInfo.Password = UPLogin
CrTables = cryRpt.Database.Tables
For Each CrTable As CrystalDecisions.CrystalReports.Engine.Table In CrTables
crtableLogoninfo = CrTable.LogOnInfo
crtableLogoninfo.ConnectionInfo = crConnectionInfo
CrTable.ApplyLogOnInfo(crtableLogoninfo)
Next
cryRpt.SetDataSource(dt)
FillParamReport()
cryRpt.SetParameterValue("ForWho", prForWho)
cryRpt.SetParameterValue("CusAddr", prCusAddr)
cryRpt.SetParameterValue("EmpName", prEmpName)
Me.crViewer.ReportSource = cryRpt
Me.crViewer.Refresh()
Catch ex As Exception
MessageBox.Show(ex.Message, "พบข้อผิดพลาดขณะดึงข้อมูล กรุณาติดต่อผู้ดูแลระบบ", MessageBoxButtons.OK, MessageBoxIcon.Error)
Me.Dispose()
End Try
End Sub
End Class
|
 |
 |
 |
 |
Date :
2014-03-28 05:59:01 |
By :
นิรนาม |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|