Hallo zusammen,
ich stehe glaube ich gerade etwas auf der Leitung :-( Wir haben ein Rechnungsformular, welches immer 5 Postionstypen nacheinander druckt. Und diese 5 Positionen hätte ich gerne auf einer Seite. Jetzt ist ja Seitenschutz in einer Tabelle etwas knifflig. Ich habe daher gar keine Tabelle angelegt, sondern nur Teilformulare:
Items.JPG
Also das Teilformular ITEM soll zusammenbleiben und bei Seitenüberlauf komplett auf der nächsten Seite gedruckt werden. Grundsätzlich hatte ich gehofft, dass es ausreicht, dass das Häkchen für den Seitenumbruch nicht gesetzt ist, aber das wird ignoriert. Auch 'nicht trennen' funktioniert nicht. Ich hatte jetzt an einen bedingten Seitenumbruch gedacht, weiss aber ehrlich gesagt nicht wie ich das im Javascript programmieren könnte. Im Prinzip müsste ich etwas programmieren wie 'wenn der Platz nicht mehr für 5 Zeilen reicht, dann erzeuge einen Seitenumbruch'. Die Positionen sind immer einzeilig, es kann also nicht vorkommen, dass es noch einen variablen Positionstext gibt. Hat jemand von Euch da eine Idee?
Viele Grüsse
Nicola
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Hi.
Die Einstellungen der Knoten die über ITEM vorkommen sind auch zu berücksichtigen. Also bei ITEM darf der Seitenüberlauf nicht aktiv sein, bei den darüberliegenden schon und diese sollten zudem "Textfluss" aktiviert haben und nicht "Position". Aber wenn ich die Icons auf den Knoten richtig interpretiere, hast du das bereits für die Tabelle gemacht. Wie schaut es mit den restlichen Knoten darüber aus?
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.
Der Seitenüberlauf ist bei folgenden Teilformularen aktiv:
ITEM_TABLE
ITEMS
Das sollte eigentlich passen. Ich habe HEADER noch zu Textfluss geändert, das hat leider nichts genützt. Allerdings ist dort der Seitenüberlauf nicht aktiv, da HEADER zweizeilig ist und ich da natürlich keinen Seitenüberlauf haben möchte.
Und wie sieht es bei den Knoten darüber aus? Also dem über ITEM_TABLE.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.
Stimmt, hast du natürlich völlig recht. Sonst würde der LCD bereits meckern.
Ich hab ja auch schon mal soetwas ähnliches gebaut. Wenn ich meinen Aufbau mit deinem vergleiche, habe ich aber das "Seitenumbrüche im Inhalt zulassen" auf der Knotenebene von ITEMS ein- bzw. ausgeschalten" (per Javascript '...keep.intact = "contentArea";')
Ist, wenn man so nachdenkt, ja auch logisch. Der Knoten ITEMS ist ja derjenige der eine "Zeile" deiner Items repräsentiert und wiederholt wird. Wenn man sich zudem das Javascript mit dem Hinweis "contentArea" anschaut wird es meines Erachtens noch klarer: Es ist immer der Knoten der seine Kinder zusammenhalten muss, nicht die Kinder sich selbst.
EDIT: In Javascript steuert man eigentlich genau das Gegenteil von "Seitenumbrüche im Inhalt zulassen" und auch in der XML-Ansicht des Formulars ist das so. Warum Adobe die Funktion in der Design-Ansicht aber genau andersherum anbietet ist mir ein echtes Rätsel.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.
Ich habe keep.intact = "contentArea";' jetzt mal bei form.ready ITEMS eingebaut. Das zeigt leider ein sehr unschönes Phänomen - die Tabellenzeilen werden auf wundersame Weise multipliziert und durcheinander gewürfelt. Als Beispiel - der erste Block auf der Rechnung sieht eigentlich so aus:
- Überschrift
- Mwst KZ 2 6.82
- Mwst KZ 1 14.74
- Rundungsvorteil -0.01
- Subtotal 21.55
D.h. die Zeilen Subtotal und Rundungsvorteil sind vertauscht (da gibt es in der Schnittstelle eine Sortierung Abap-seitig und er wiederholt die Gruppierung praktisch für jede einzelne Zeile und füllt total unsinnig die Werte dazu ab. Natürlich gibt es bei dem Kunden keinen Rundungsvorteil von 14.74 CHF ;-) Das spannende ist - dass die zerschossene Tabellendarstellung auch nach Entfernen des Script Codings bestehen bleibt. Da das Formular noch nicht transportiert ist, hatte ich eine Version runtergeladen bevor ich das ausprobiert habe, also wirklich passiert ist nichts. Aber so richtig kann man Adobe manchmal auch nicht verstehen :-(
Es kann doch nicht sein, dass sich das nicht lösen lässt! Ich hatte schon daran gedacht, die Tabellenzeilen zu einem Fliestext zusammenzusetzen und es dem Formular wie ein Textbaustein zu übergeben. Aber ich weigere mich noch diesen umständlichen Weg zu gehen :-(
Das 'keep.intact = "contentArea";' muss auch in den untergeordneten Knoten ITEM, ZKGX usw. gesetzt sein.
(Entspricht "Seitenumbrüche im Inhalt zulassen = leer")
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.
Funktioniert leider nicht - dann habe ich das gleiche Ergebnis wie vorher; die Tabelle bleibt sauber sortiert, aber er macht den Seitenumbruch mitten in den Positionen. Also das Formular verhält sich genau so, als wären die Häkchen bei 'Seitenumbrüche im Inhalt zulassen' nicht gesetzt (was das Script ja auch bedeutet wenn ich Dich richtig verstehe)
Sicherheitshalber - ich habe es bei form.ready so definiert:
$.keep.intact = "contentArea";
Bei allen Teilformularen ab ITEMS abwärts.
Ich kann es nicht glauben, dass das nicht irgendwie gehen soll....