Seriennummernausdruck hintereinander

Rolf Mettler

Hallo zusammen



Habe 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 Markus



Neues 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

Comments

0 comments

Please sign in to leave a comment.

Didn't find what you were looking for?

New post