Code in SAP Forms funktioniert unzuverlässig

Alles Rund um SAP®.
2 Beiträge • Seite 1 von 1
2 Beiträge Seite 1 von 1

Code in SAP Forms funktioniert unzuverlässig

Beitrag von DeathAndPain (Top Expert / 1880 / 240 / 407 ) »
Hallo zusammen,

ich gebe es zu: von SAP Forms habe ich noch so gut wie keine Ahnung. Nun soll ich ein Problem in einer bereits vorhandenen SAP Form (Transaktion SFP) finden, die irgendwer irgendwann mal gebaut hat. Und zwar ist die Sache die, dass bei der Dokumentausgabe auf jeder Seite am linken Rand zwei Striche angedruckt werden sollen. Bei der letzten Seite sollen es aber vier Striche sein.

Wie ich festgestellt habe, ist die Sache dergestalt realisiert, dass in der Form zwei Elemente mit jeweils zwei Strichen fest eingebaut sind. Das eine der beiden Elemente ist fix und wird immer angedruckt (daher stets mindestens zwei Striche auf dem Blatt). Das andere Element im Prinzip auch, jedoch ist es mit folgendem Coding (FormCalc) versehen:

Code: Alles auswählen.

data.DIM_ASSIGNMENT.DIM_ASSIGNMENT_DATA.STAR_TIM_NO_DATA.STAR_TIM_NO_DATA_DATA.STAR_FORM_DATERANGES.STAR_FORM_DATERANGES_DATA.Header.Barcodes[1]::initialize - (FormCalc, client)
var curp = $layout.page ( ref ( $ ) )
var totalp = $layout.pageCount()
if ( curp ne totalp ) then
$.presence = "hidden"
endif

data.DIM_ASSIGNMENT.DIM_ASSIGNMENT_DATA.STAR_TIM_NO_DATA.STAR_TIM_NO_DATA_DATA.STAR_FORM_DATERANGES.STAR_FORM_DATERANGES_DATA.Header.Barcodes[1]::ready:layout - (FormCalc, client)
var curp = $layout.page ( ref ( $ ) )
var totalp = $layout.pageCount()
if ( curp ne totalp ) then
$.presence = "hidden"
endif
Ich interpretiere die Felder curp als "current page" und totalp als "total number of pages". Damit würde sich aus obenstehendem Coding ergeben, dass die anderen beiden Striche auf "hidden" gesetzt und dementsprechend nicht angedruckt werden, wenn die aktuelle Seite eine andere als die letzte Seite ist. Die Frage ist nun: weshalb funktioniert das fast immer, aber in seltenen Einzelfällen nicht? In diesen Einzelfällen werden die beiden Striche auch auf der letzten Seite nicht gedruckt. Das "hidden" wird dann anscheinend also gesetzt, obwohl es sich um die letzte Seite handelt. Bei einem mir vorliegenden Beispiel hatte das Dokument drei Seiten. Die letzte Seite war auch nicht vollständig gefüllt. Alle drei Seiten hatten nur zwei Striche.

Hat irgend jemand eine Idee, woran das liegen könnte und/oder wie man eine zuverlässige Lösung finden könnte?

Vielen Dank!

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Code in SAP Forms funktioniert unzuverlässig

Beitrag von a-dead-trousers (Top Expert / 4367 / 220 / 1173 ) »
Das Problem dürfte der Zeiptunkt sein, an dem du das Script ausführst. Solange noch nicht alle Seiten einmal durch den "Layout:ready" durch sind, könnte sich die Gesamtanzahl ändern und somit die Prüfung ein falsches Ergebnis liefern. Du musst für dein Script einen späteren Zeitpunkt wählen an dem sich die Aufteilung nicht mehr ändert. Probier im Scriptfenster die Zeitpunkte im Dropdown durch.
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.18
Basis: 7.50

Seite 1 von 1

Vergleichbare Themen

1
Antw.
1594
Views
Adobe Forms QR-Code
von Chaos81 » 30.08.2021 18:20 • Verfasst in ABAP® für Anfänger
3
Antw.
691
Views
QR-Code in adobe forms
von L0w-RiDer » 04.07.2022 14:40 • Verfasst in ABAP® für Anfänger
8
Antw.
1013
Views
Adobe Forms Größe Ausdruck QR-Code
von sapdepp » 03.03.2023 10:14 • Verfasst in ABAP® für Anfänger
7
Antw.
3395
Views
Wie funktioniert der Z-Operator?
von DeathAndPain » 14.09.2017 18:10 • Verfasst in ABAP® für Anfänger
5
Antw.
16805
Views
OK-Code
von TomTom » 18.11.2005 13:28 • Verfasst in ABAP® für Anfänger

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.