Verkaufsstücklistenartikel (BOM-Components) auf Belegen nicht anzeigen.
Guten Tag,
wir haben unsere Stücklistenartikel so eingestellt, dass diese nicht auf Belegen angedruckt werden sollen. Der einzige Beleg wo diese tatsächlich nicht angedruckt werden ist das Angebot. Allerdings verbraucht der "unsichtbare" Artikel weiterhin Platz auf dem Beleg. Dadurch kommt es zu jeder Menge Whitespace / unregelmäßigen Lücken zwischen Stücklistenartikeln und Artikeln ohne Stückliste. Wie lässt sich Zeile mittels Script entfernen, so das der Artikel nicht nur nicht sichtbar ist, sondern auch keinen Platz verbraucht?
Im Kundenauftrag, Lieferschein und Ausgangsrechnung werden die Stücklistenartikel bzw. die Komponenten dennoch angedruckt, obwohl in der Stückliste der Haken gesetzt ist, diese nicht anzudrucken. Woran könnte das liegen und was kann man tun, damit einheitlich auf keinem Beleg diese Komponenten mit angedruckt werden, noch den Platz dafür verbrauchen?
Im Layout Designer ist für das Objekt: DocumentRowDetailBOMComponent:Header
Die Property Visible auf False gesetzt und unter Bindings für die Property Visible folgende Codezeile hinterlegt:
DocumentRow("TreeType") = "I" And _
Not LayoutUtilities.ShowBOMComponents(DocumentRow("ItemCode"), false)
Hat jemand eine Idee wie wir diese Probleme lösen können?
Mit freundlichen Grüßen
Manuel Ketisch
-
Hallo Manuel,
ich kann Eure Dokument-Struktur nicht ganz nachvollziehen. Vielleicht reicht es aber den Header/Detail bei Can Shrink auf True zu stellen.
Gruß Lothar
0 -
Hallo Lothar,
wir sind ein Dienstleistungsunternehmen und arbeiten mit verschiedenen Herstellern zusammen. Einer davon hat ein sehr komplexes Artikelsystem. Dieses 1:1 zu übernehmen, würde für uns den Rahmen sprengen. Deswegen arbeiten wir mit Verkaufsstücklisten, um uns selbst das arbeiten mit diesen Artikeln zu erleichtern. Daher müssen diese Komponenten, welche in den Verkaufsstücklisten enthalten sind, auch nicht auf Belegen angezeigt werden.
Bezüglich der "CanShrink" Eigenschaft hatte ich bereits die gleiche Vermutung. Leider funktioniert das nicht. Ich vermute mal, das liegt daran, das der Komponentenartikel immer noch auf dem Beleg "vorhanden" ist, auch wenn er durch die Egenschaft "Visible" = false nicht sichtbar ist. Weil er jedoch nach wie vor noch vorhanden ist, kann die Zeile nicht "schrumpfen" bzw. kleiner werden als sie ist, weil der unsichtbare Artikel das verhindert. Ich müsste es also irgendwie hinbekommen, das die BOM Zeile gar nicht erst generiert wird. Für Artikel die keine Verkaufsstückliste enthalten, wird diese Zeile ja auch nicht generiert. Irgendwo müsste ich da also mit einem script eingreifen können, welches bei der Beleggenerierung verhindert das die BOM Zeile hinzugefügt wird.
Ich weiß nur nicht so recht wo ich da ansetzen muss. Das in meinem obigen Post beschriebene script steht in der Render Property, ist also nur dafür verantwortlich ob der BOM Artikel sichtbar ist oder nicht. Jedoch löst das nicht das Problem, dass die BOM Zeile weiterhin generiert wird.
Gruß Manuel
0 -
Hallo Manuel,
wenn ich dich richtig verstehe ist das Visible-Flag auf einer TextBox. Diese TextBox ist in einem Header.
Sind in dem Header noch andere TextBoxen, bei denen der Wert bei einer Bedingung "nur" leer gemacht wird wie
Pseudo: IIF(Value>100, dann "" ansonsten value)
Sind alle TextBoxen mit CanShrink versehen?
Kannst du das VisibleFlag auf den Header anstatt auf die TextBox legen?
Gruß Lothar
0 -
Hallo Lothar,
der Beleg ist folgendermaßen aufgebaut:
Es gibt den Header "DocumentRowDetailBOMComponent".
Dieser hat in den Render Properties die Property CanShrink = True und Visible = False
In den Bindings gibt es nochmal die Render Properties. Hier ist für die Visible Property ein script hinterlegt:
DocumentRow("TreeType") = "I" and _
Not LayoutUtilities.ShowBOMComponents(DocumentRow("ItemCode"), false)Innerhalb des Headers befinden sich Textboxen, deren CanShrink Properties sind jeweils True und für Visible False. Wobei diese ja übergeordnet bereits durch den Header gesteuert werden.
Das alles hilft leider nicht, die BOM Zeile die im Beleg generiert wird zu unterbinden.
Ich habe mal zwei Bilder angehängt, um mal aufzuzeigen worum es genau geht.
Bild 1: Ohne kommentar damit man die Lücke besser sieht
Bild 2: Der rot eingerahmte Bereich ist die BOM Zeile
Gruß Manuel
0 -
Hallo Manuel,
wenn Stücklistenkomponenten generell nicht benötigt werden, kannst Du dann im Datenband keinen Filter setzen? Also bei FilterExpressionDocumentRow("TreeType") = "I"
oder was auch immer ausgegeben werden soll.
Gruß
Daniel0
Please sign in to leave a comment.
Comments
5 comments