Nächster Datensatz
Rafael Stalder
Hallo Zusammen,kann mir jemand sagen, ob es einen Befehl gibt, bei dem man einem Feld den Wert des nächsten Datensatz geben kann, um z.B. den aktuellen und den nächsten Datensatz miteinander zu vergleichen.
Wem das Programm Crystal ein Begriff ist, der hat sicher schon gesehen, dass dies dort mit dem Befehl next() funktioniert, dies scheint aber bei SwissLD nicht möglich zu sein?!
Danke schon im Voraus
Gruss
Philipp Knecht
Hallo RafaelDa es bei den Daten um reguläre .NET DataTables handelt kann man dies sicher scripten. (Eine Hilfsfunktion im CommonScript anlegen)
Eventuell können wir ja auch eine Hilfsfunktion im LayoutHelper einbauen die das vereinfacht.
hth
Philipp Knecht
Hi RafaelDie folgende Funktion dürfte Dir weiterhelfen:
[quote]Private Function GetNextText(dataBand As PerpetuumSoft.Reporting.DOM.DataBand, field As String) As Object
Dim drv As System.Data.DataRowView = dataBand.DataItem
Dim dv As System.Data.DataView = drv.DataView
Dim LineNum As Integer = dataBand.LineNumber
If LineNum < dv.Count Then
drv = dv.Item(LineNum)
Return drv.Item(field)
Else
Return ""
End If
End Function
Du kannst sie ins CommonScript kopieren.
Aufruf via: GetNextText(DocumentRow,"ItemCode") am Beispiel Marketingdokument DocumentRow
Tipp: Falls du den Ausdruck in der letzten Zeile des Datenbandes gar nicht anzeigen willst einfach mit DocumentRow.IsLastLine abfragen...
hth
Rafael Stalder
Danke viel mals, es hat funktioniert.Ist der Befehl gleich, wenn man statt Texte eine Zahl erhalten möchte, also ist der Befehl dann immer noch GetNextText() ? oder lautet er dann anderst?
Gruss Rafael
Philipp Knecht
Hi RafaelIn diesem Falle würde ich die Funktion kopieren und in GetNextNum umbenennen und am Schluss einfach Return 0 anstelle Return "" einfügen.
hth
Rafael Stalder
Ok, auch das hat funktioniert. Danke viel mals für die HilfeGruss Rafael
Rafael Stalder
Ok, auch das hat funktioniert. Danke viel mals für die HilfeGruss Rafael
Rafael Stalder
Hallo,ich habe noch ein Problem.
Es scheint bei dieser Methode nicht möglich zu sein, auf ein untergeordnetes Datenband zuzugreifen.
Ich möchte die nächste QueryGroup auslesen, aber folgende Methoden haben allesammt nicht funktoniert:
GetNextText(DocumentRow,"QryGroup")
GetNextText(DocumentRow.RowRowItems,"QryGroup")
GetNextText(RowRowItems,"QryGroup")
wie muss ich das korrekt schreiben, ist es überhaupt möglich auf ein untergeordnetes zuzugreifen.
Ich möchte am Datenband nichts ändern, da sonst eine andere Methode im gleichen GenerateScript nicht mehr funktionieren würde.
Danke schon im Voraus.
Gruss
Philipp Knecht
Hallo RafaelErster Parameter ist ein DataBand (DocumentRow ist z.B. eins...) und deshalb ist das so nicht möglich.
Denk dir eine Query aus welche ausgehend von der aktuellen Zeile die nächste bringt. Dann bist du frei im Holen der Daten ist aber nicht mehr soperformant (Speziell bei vielen Zeilen)
Bsp.
LD.QueryData ("SELECT TOP 1 ItemCode FROM RDR1 WHERE VisOrder > " & DocumentRow("VisOrder") & " AND DocEntry = " & DocumentRow("DocEntry"))hth
Teresa Grün
Hallo zusammen,
genau die gepostete Funktion löst bei mir an der Stelle
Dim drv As System.Data.DataRowView = dataBand.DataItem
eine Cast Exception aus: Unable to cast object of type 'PerpetuumSoft.Reporting.Data.Groupping.ElementsGroup' to type 'System.Data.DataRowView'. Check the FieldType of the used Column.
Irgendwelche Ideen? Bei den anderen scheint die Funktion ja so funktioniert zu haben :/
0
Please sign in to leave a comment.
Comments
0 comments