Seriennummernausdruck hintereinander
Rolf Mettler
Hallo zusammenHabe bereits bei zwei Kunden das Problem, dass diese viele seriennummernpflichtige Artikel pro Zeile liefern (über 200). Die gängige Darstellungsmöglichkeit ist also nicht befriediegend ...
Variante 1 mit mehreren Kolonen: (schlecht weil von oben nach unten abgefüllt wird)
Artikel 1 Menge 8
SN 1 SN7
SN 2 SN8
SN 3
SN 4
SN 5
SN 6
Variante 2 mit 1 Kolone: (Schlecht weil viel zu lang)
Artikel 1 Menge 8
SN 1
SN 2
SN 3
SN 4
SN 5
SN 6
SN 7
SN 8
WUENSCHENSWERT:
Artikel 1 Menge 8
SN 1, 2, 3, 4, 5, 6, 7,8.
Könnt ihr dafür eine Querie machen?
Beste Grüsse
Rolf
Philipp Knecht
Die Lösung ist in den FAQ zu finden:http://www.swissaddon.ch/index.php?id=24&L=
Markus Rewak
Hallo Philipp,der Link funktioniert nicht. Kannst Du bitte nochmal posten wie man die Seriennummern horizontal darstellen kann.
Gruß
Markus
Markus Rewak
hat sich erledigt, Habe die FAQ gefunden.Philipp Knecht
Hi MarkusNeues Detail anstelle des Wiederholungsbereiches mit Textbox einfügen. Dann Value Property auf:
GetSerialNumbers(DocumentRow.DataItem.GetChildRows("RowRowSerialNumbers"))
setzen.
Im CommonScript des Templates:
Private Function GetSerialNumbers( rows As System.Data.DataRow()) As String
Dim res As String = ""
If rows.Length>0 Then
For Each r As System.Data.DataRow In rows
res &= r("IntrSerial") & "; "
Next
res = Left(res,Len(res)-2)
End If
Return res
End Function
hth
Sascha Balke
Mit einem neuen Detail-Bereich wird entsprechend der Seriennummeranzahl eine neue Zeile angedruckt. Das heißt, wenn 4 Seriennummer vorhanden sind, dann werden 4 Zeilen, mit jeweils 4 Seriennummerhintereinander angedruckt.Das ganze mit einem Header erstellt, funktioniert wunderbar.
"Seriennummer(n):" & GetSerialNumbers(DocumentRow.DataItem.GetChildRows("RowRowSerialNumbers"))
Wenn man das nun noch mit einem AdvancedText etwas "verschönern" möchte:
SerialNumber.text = ""
If (DocumentRow("Quantity") = "1,0") Then
SerialNumber.text = "" & "Seriennummer: " & ""
Else
SerialNumber.text = "" & "Seriennummern: " & ""
End If
SerialNumber.text = SerialNumber.text & GetSerialNumbers(DocumentRow.DataItem.GetChildRows("RowRowSerialNumbers"))
Gruß
Sascha
KaH
Hallo!Bei mir funktionierte das Script erst nicht. Erst nachdem ich den Aufruf
GetSerialNumbers(DocumentRow.DataItem.GetChildRows("RowRowSerialNumbers"))
In folgenden Aufruf geändert habe
GetSerialNumbers(DocumentRow.DataItem.Row.GetChildRows("RowRowSerialNumbers"))
konnte das Script ohne Fehlermeldungen aufgerufen werden.
Soweit ich das überblicken kann, gibt DataItem ein Objekt vom Typ DataRowView zurück. Die Methode getChildRows bezieht sich allerdings auf eine DataRow. Daher der Aufruf von DataRowView::Row damit ich die entsprechende DataRow-Instanz bekomme.
Viele Grüße
Kai
P.S.: Nur in Version 1.67 von CoreSuite Designer, in Version 1.72 ist die Änderungen, die ich vorgeschlagen habe, nicht mehr nötig.
Franz Leu
Hab den alten Thread eben entdeckt. Es tut fast das was ich will. Ich bekomme einen schönen Block von horizontal aufgelisteten Seriennummern. Nur macht er mir für jede vorhandene Seriennummer den ganzen Block nochmal.s1; s2; s3 (korrekt)
s1; s2; s3 (unnütze Wiederholung)
s1; s2; s3 (unnütze Wiederholung)
Was habe ich da wohl noch falsch?
Andreas Achleitner
header statt detail verwendet?Franz Leu
Super, das wars!Vielen Dank.
Natalia
Hello, I have to do a similar thing, could explain it in English, please?
Where do I write the function?
0
Please sign in to leave a comment.
Comments
0 comments