Adobe Forms Seiten

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
8 Beiträge • Seite 1 von 1
8 Beiträge Seite 1 von 1

Adobe Forms Seiten

Beitrag von dkast (Specialist / 108 / 7 / 1 ) » 12.12.2017 10:25
Hallo,
ich bin ein absoluter Neuling in Sachen Adboe Forms und soll ein bestehendes Formular erweitern.
Auf dem urspünglichen Formular werden max. 24 Datensätze gedruckt (je nach dem wie die Datensätze gefüllt sind).
Nun erweitere ich diese Datensätze/Ausgabe aber so dass nur noch maximal 12 auf eine Seite passen.
Die restlichen, im schlimmsten Fall 12 Einträge, sollen auf der 2. Seite gedruckt werden.
Bisher existiert nur eine Seite und die 2. Seite (analog zu Seite 1 aufgebaut) soll auch nur gedruckt werden wenn sie benötigt wird.

Hat jemand einen anhaltspunkt für mich? Schön wäre natürlich wenn ich die Ausgabe der Seiten an eine Bedingung knüpfen könnte ähnlich wie bei den Smartforms.


Re: Adobe Forms Seiten

Beitrag von Lucyalison (Specialist / 196 / 34 / 16 ) » 12.12.2017 13:31
Hallo dkast,

wenn auf Deiner ersten Seite bzw. der bisher einzigen Seite die definiert ist wenn ich es richtig verstehe, bei Objekt->Masterseiten das Flag für 'Auftreten der Seite begrenzen' nicht gesetzt ist, würde Adobe forms das Ganze selbst regeln. D.h. das Mainfenster wird solange ausgegeben, bis alle Datensätze durch sind. Und wenn zwischenzeitlich das Ende des definierten Mainfensters erreicht ist, wird eine nächste Seite ausgegeben. Was ich nicht ganz verstanden habe ist warum Du die Ausgabe der Seiten an eine Bedingung knüpfen willst - was natürlich im Adobe forms auch gehen würde. Vielleicht kannst Du das noch ein bisschen ausführen?

Viele Grüsse
Nicola

Re: Adobe Forms Seiten

Beitrag von dkast (Specialist / 108 / 7 / 1 ) » 12.12.2017 14:19
Lucyalison hat geschrieben:Hallo dkast,

wenn auf Deiner ersten Seite bzw. der bisher einzigen Seite die definiert ist wenn ich es richtig verstehe, bei Objekt->Masterseiten das Flag für 'Auftreten der Seite begrenzen' nicht gesetzt ist, würde Adobe forms das Ganze selbst regeln. D.h. das Mainfenster wird solange ausgegeben, bis alle Datensätze durch sind. Und wenn zwischenzeitlich das Ende des definierten Mainfensters erreicht ist, wird eine nächste Seite ausgegeben. Was ich nicht ganz verstanden habe ist warum Du die Ausgabe der Seiten an eine Bedingung knüpfen willst - was natürlich im Adobe forms auch gehen würde. Vielleicht kannst Du das noch ein bisschen ausführen?

Viele Grüsse
Nicola
Erstmal danke für deine Antwort. Das Problem ist dass die ganzen Daten Tabelarisch ausgegeben werden, das heiß im Alten Formular 24 Felder in die "Tabelleninhalt" 1-24 geschrieben wurden.
Im neuen Formular sind nur noch 12 Plätze da für Tabelleneinträge 1 - 12. Die restlichen 13-25 müssen also auf eine neue Seite weichen. Diese neue 2. Seite ist dann quasi genau so aufgebaut wie Seite 1 nur eben dass da wo auf Seite 1 die Felder 1-12 verwendet wurden jetzt 13-24 verwendet werden.

Das Problem ist nun ich könnte hergehen und Seite 1 einfach kopieren und dann nur die Feldnamen ändern aber dann wird mir ja für den Fall das die Einträge 13- 24 nicht gefüllt sind eine leere Seite (bis auf das übliche Rahmenzeugs für die Tabelle) ausgegeben.

Mit der Bedingung würde ich prüfen ob die Einträge 13-24 vorhanden sind und wenn nicht auch keine 2. Seite drucken.

Ich hoffe ich konnte es gut genug erklären.

Re: Adobe Forms Seiten

Beitrag von a-dead-trousers (Top Expert / 3559 / 118 / 926 ) » 12.12.2017 16:11
Gehe ich recht in der Annahme, dass du mit "Tabelle" einen starren Raster meinst, in dem die Werte eingtragen werden?
Wenn ja, verlagere diesen Raster auf die Masterseite und gib deine Daten im Hauptbereich einfach tabellarisch OHNE Rahmenlinie aus. Sobald nicht genug Platz ist, bricht das Formular automatisch um und erzeugt weitere Seiten. Die Tabellenzeilen in dieser Ausgabe müssen natürlich der Zeilenhöhe auf dem Raster entsprechen.
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.

ECC: 6.07
Basis: 7.40

Re: Adobe Forms Seiten

Beitrag von Lucyalison (Specialist / 196 / 34 / 16 ) » 12.12.2017 17:40
Du kannst auch in der Schnittstelle abfragen ob es mehr als 12 Einträge gibt und wenn nicht die 2.Seite ausblenden.
Hier ein Beispiel mit Formcalc bei form ready:

if ($record.GV_NEXTPAGE <> "X") then
$.presence = "hidden"
Endif


Aber generell sind so 'hard codierte' Sachen eher unschön. Wenn Dir das von den Daten her möglich ist, würde ich einen Loop über eine Tabelle machen und Adobe forms die Steuerung der Seite überlassen. Dann müsstest Du allerdings das starre Raster aufgeben.

Viele Grüsse
Nicola

Re: Adobe Forms Seiten

Beitrag von dkast (Specialist / 108 / 7 / 1 ) » 13.12.2017 07:15
a-dead-trousers hat geschrieben:Gehe ich recht in der Annahme, dass du mit "Tabelle" einen starren Raster meinst, in dem die Werte eingtragen werden?
Wenn ja, verlagere diesen Raster auf die Masterseite und gib deine Daten im Hauptbereich einfach tabellarisch OHNE Rahmenlinie aus. Sobald nicht genug Platz ist, bricht das Formular automatisch um und erzeugt weitere Seiten. Die Tabellenzeilen in dieser Ausgabe müssen natürlich der Zeilenhöhe auf dem Raster entsprechen.
Ja da liegst du richtig. Nur ganz versthe ich deinen Vorschlag noch nicht. Soll ich das Raster mit den 12 Spalten usw. auf die Masterseite schieben und dann auf der Normalen Seite 1 im Hauptbereich meine Daten einfach so reinwerfen?
Hiewrachie aktuell:
Masterseite:
darunter Seite 1
darunter unbenannt - Inhaltsbereich (komplett leer)
auf gleicher Ebene mit der Masterseite: unbenannt - teilformular (Seite 1)
darunter erfolgt die Ausgabe meiner Daten ohne Loop (die 24 um die es geht)

Habe ich dann nicht wieder genau das gleiche Problem mit meinen Daten? Oder soll ich versuchen sie als Loop auszugeben? Ich hätte vielleicht erwähnen sollen das die Daten nicht von oben nach unten sondern von links nach rechts gedruckt werden. Und wie genua ist das mit dem Überlaufen der Seite? Angenommen ich Loope über meine Interne Tabelle mit 24 Einträgen und schreibe diese in meine ersten 12 Felder woher weiß das Formular dann dass auf der nächsten Seite Datensatz 13 da hinkommen soll wo 1 ist oder wird da eine 2. Seite angelegt mit den entsprechenden Feldern die dann auch nur bei Überlauf gedruckt wird?
Zuletzt geändert von dkast am 13.12.2017 08:20, insgesamt 1-mal geändert.

Re: Adobe Forms Seiten

Beitrag von a-dead-trousers (Top Expert / 3559 / 118 / 926 ) » 13.12.2017 08:18
dkast hat geschrieben:Ja da liegst du richtig. Nur ganz versthe ich deinen Vorschlag noch nicht. Soll ich das Raster mit den 12 Spalten usw. auf die Masterseite schieben und dann auf der Normalen Seite 1 im Hauptbereich meine Daten einfach so reinwerfen?
Hiewrachie aktuell:
Masterseite:
darunter Seite 1
darunter unbenannt - Inhaltsbereich (komplett leer)
auf gleicher Ebene mit der Masterseite: unbenannt - teilformular (Seite 1)
darunter erfolgt die Ausgabe meiner Daten ohne Loop (die 24 um die es geht)

Habe ich dann nicht wieder genau das gleiche Problem mit meinen Daten? Oder soll ich versuchen sie als Loop auszugeben? Ich hätte vielleicht erwähnen sollen das die Daten nicht von oben nach unten sondern von links anch rechts gedruckt werden.
Genau, der (starre) Raster kommt auf die Masterseite und ist somit nur eine Art "Hintergrundbild"
In den Inhaltsbereich platzierst du ein Teilformular und setzt die Fließrichtung "Von Links nach rechts". Als Breite setzt du die Breite deines Rasters.
Darunter kommt ein weiteres Teilformular und "verknüpfst" es mit deiner Ausgabetabelle (mit dem ".DATA[*]" Zusatz) aus der Schnittstelle.
Weiters stellst du ein, dass es für jedes Datenelement wiederholt wird und gibst dem Teilformular die genaue Breite der Spalten in deinem Raster.
In diesem Teilformular kannst du dann deine Datenfelder wie gewohnt platzieren.

lg ADT
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.

ECC: 6.07
Basis: 7.40

Re: Adobe Forms Seiten

Beitrag von dkast (Specialist / 108 / 7 / 1 ) » 13.12.2017 09:06
Genau, der (starre) Raster kommt auf die Masterseite und ist somit nur eine Art "Hintergrundbild"
In den Inhaltsbereich platzierst du ein Teilformular und setzt die Fließrichtung "Von Links nach rechts". Als Breite setzt du die Breite deines Rasters.
Darunter kommt ein weiteres Teilformular und "verknüpfst" es mit deiner Ausgabetabelle (mit dem ".DATA[*]" Zusatz) aus der Schnittstelle.
Weiters stellst du ein, dass es für jedes Datenelement wiederholt wird und gibst dem Teilformular die genaue Breite der Spalten in deinem Raster.
In diesem Teilformular kannst du dann deine Datenfelder wie gewohnt platzieren.

lg ADT
Ich bin jetzt gerade dabei deinen Vorschlag umzusetzen und habe die 2 Teilformulare die du angesprochen hast erstellt. Nur wenn ich die Fließrichtung einstelle (Textfuss) kann ich keine Höhe mehr einstellen.
Ausserdem ist mir noch überhaupt nicht klar wie ich dem letzten Teilformular sage dass es alle Daten der Tabelle ausgibt(Wird Javescript benötigt?). Und reicht eignetlich nicht auch nur ein Teilformular nur für die Spaltenbreite? Und wi muss ich die Felder im letzten Formular binden?

Seite 1 von 1

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und besseren Inhalt:

Aktuelle Forenbeiträge

Last erzeugen im SAPGui?
vor 5 Stunden von tm987456 23 / 303
Neue Felder cji5
vor 9 Stunden von Rabea1103 1 / 23
Abap Karriere Tipps
vor 10 Stunden von Cargo2 5 / 168

Vergleichbare Themen

GELÖST - Adobe Forms - Download - Keine Seiten
von shimsham » 19.02.2019 09:17
Adobe Interactive Forms / Adobe Life Cycle Designer
von sap_inchen » 03.04.2018 12:24
Datumsformatierung Adobe forms
von Lucyalison » 17.07.2019 11:51
Steuerkommandos in Adobe Forms
von ewx » 16.08.2018 21:06
Schachtsteuerung in Adobe Forms
von a-dead-trousers » 13.04.2011 14:57