Ich habe wahrscheinlich falsch zugeordnet question.Look ... Ich habe eine erstellte Crystal Report Dokument (Rechnung) ... dieses Dokument haben viele Parameter t.e. Name, Adresse, Telefon, Steuersatz und andere ... und an Datatable gebunden haben, was Informationen über Waren, Menge, Kosten und anderes beinhaltet ... das alles funktioniert gut ... und das mache ich mit diesem Code.
Dim rptobj As New rpt_Invoice ' my invoice sceleton
Using tblInvoice As New DataTable
'DataTable to bind
tblInvoice.Columns.Add("ANAME", GetType(String))
tblInvoice.Columns.Add("CNT", GetType(Double))
tblInvoice.Columns.Add("CNTSTR", GetType(String))
tblInvoice.Columns.Add("OUT_PR", GetType(Double))
For Each row As Datagridviewrow In rowCol
Dim Drow As Data.DataRow = tblInvoice.NewRow
Drow.Item("ANAME") = DBNullBug(row.Cells("ANAME").Value)
Drow.Item("CNT") = row.Cells("DECCNT").Value
Drow.Item("CNTSTR") = row.Cells("CNT").Value
Drow.Item("OUT_PR") = row.Cells("SOLD_PR").Value
tblInvoice.Rows.Add(Drow)
Next
'Params to pass
Dim RPTParams As New Hashtable
RPTParams.Add("NDS", OPT.Item.NDSValue)
RPTParams.Add("INVOICENUM", "")
RPTParams.Add("INVOICEHIMQ", "")
RPTParams.Add("KATPASHT1", "Director")
RPTParams.Add("KATPASHT2", "Accountant")
RPTParams.Add("VCHPASHT1", "Director")
RPTParams.Add("VCHPASHT2", "Accountant")
RPTParams.Add("ADATE", CDate(Now))
RPTParams.Add("INFO", "")
RPTParams.Add("ORDER_ID", Order_Id)
Dlg_RepPreview.STable = tblInvoice
Dlg_RepPreview.SParams = RPTParams
Dlg_RepPreview.rep = rptobj
Dlg_RepPreview.ShowDialog()
End Using
Und die Form als "Dlg_RepPreview" hat rep Variable (Report) und stabile (Datentabelle), wie SParams Hashtable (Hashtable mit Parametern).
auf dem Form_Load ich diesen Code
Private Sub Dlg_Rep_Load (ByVal Absender als Gegenstand, ByVal e As System.EventArgs) Griffe Me.Load RP_Viwer.ReportSource = rep 'RP_Viwer ist mein Report Wenn STable IsNot writen Nothing Then rep.SetDataSource (stable) 'Setup-Datenquelle End If For Each Param Wie ParameterField In rep.ParameterFields' Satz Parameterwerte Wenn SParams.ContainsKey (Param.Name.ToUpper) Dann rep.SetParameterValue (Param.Name, SParams (Param.Name.ToUpper)) Sonst rep.SetParameterValue (Param.Name, Param.DefaultValues ()) End If Next RP_Viwer.Zoom (75) RP_Viwer.Refresh() End Sub
in dieser Form i über eine Taste. Wenn der Benutzer auf diese Schaltfläche klickt, öffnet er das Dialogformular mit allen Parametern und Werten im Bericht (ohne Datenquelle). Benutzer können Parameterwerte (e.t.c Adresse, Telefon, Name) außer Datenquelle (e.t.c Waren, Menge, Kosten) ändern. Ich kann das nicht tun. Ich versuche Code etwas so einfach wie das:
rep.SetParameterValue(Param.Name, Param.value)
rep.Refresh()
RP_Viwer.Refresh()
aber dieser Code funktioniert nicht ... Wie kann ich ???
Was die Datenquelle für den Bericht ist. Gibt es eine Textdatei, von der der Bericht Daten abruft, oder stellt er eine Verbindung zu einer Datenbank her? –