Adobeform: Teilformular ein-/ausblenden abhängig vom Belegtyp

Getting started ... Alles für einen gelungenen Start.
6 Beiträge • Seite 1 von 1
6 Beiträge Seite 1 von 1

Adobeform: Teilformular ein-/ausblenden abhängig vom Belegtyp

Beitrag von meocon (ForumUser / 38 / 1 / 0 ) »
Guten Tag zusammen,

ich habe ein Bestellformular mit Adobeform entwickelt. Am Anfang gibt es nur das Feld Liefertermin bei Bestellformular. Nun gibt es weitere Anforderung. Das gleiche Formular soll auch für Kontrakt gelten und an dem Feld Liefertermin soll jetzt Laufzeit stehen. Ich habe das Feld Liefertermin im Teilformular1 und das Feld Laufzeit im Teilformular2 zugeordnet. Ich möchte erreichen: wenn das eine Bestellung (Belegtype = 'F' ) ist dann Teilformular1, das das Feld Liefertermin enthält, sichtbar und das Teilformular2 unsichtbar ist und umgekehrt wenn das ein Kontrakt (Belegtyp= 'K') ist, dann Teilformular2 aktiv und Teilformular1 inaktiv
Teilformular.JPG
. Dann habe ich einen Skipt-Befehl geschrieben, aber es hat nicht geklappt. Beide Teilformularen zeigen immer an:

//Skipt für Teilformular1, wo das Feld Liefertemin von Bestellung steht data.Main.HEADER_INFORMATION.ORDER_INFORMATION.LIEFERTERMIN_LABEL::ready:form - (FormCalc, client)

if ( HEADERINFO == "F" ) "F für Bestellung
then $.parent.presence = "visible"
else
$.presence = "hidden"
endif

//Skipt für Teilformular2, wo das Feld Laufzeit vom Kontrakt steht data.Main.HEADER_INFORMATION.ORDER_INFORMATION.LIEFERTERMIN_LABEL::ready:form - (FormCalc, client)

if ( HEADERINFO == "K" )
then $.parent.presence = "visible"
else
$.presence = "hidden"
endif

Ich glaube meine skipt Befehl ist falsch.

Vielen Dank für Eure Hilfe.

meocon

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


Re: Adobeform: Teilformular ein-/ausblenden abhängig vom Belegtyp

Beitrag von Aba ( / / 0 / 3 ) »
Hallo,

ich vermute mal, dass der Zugriff auf die Variable Headerinfo nicht richtig ist. Ist das eine Variable aus dem Kontext?
Dann kannst du eigentlich auf der Ebene des Teilformulars im initialize und mit formcalc einfach folgendes einfügen:
z.B. bei Teilformular 2:

Code: Alles auswählen.

if (xfa.record.HEADERINFO.value == "K") then
   $.presence = "visible"
else
   $.presence = "hidden"
endif
Da wo jetzt HEADERINFO steht, musst du den Variablennamen, der den Belegtyp enthält, einsetzen. Wichtig ist, dass du das in Großbuchstaben schreibst. Kann sonst sein, dass der das nicht richtig erkennt.
Wenn du den Code auf der Ebene des Teilformulars einfügst, blendet er alle darunterliegenden Objekte mit aus (reine Texte können nicht per Skripting ausgeblendet werden).

Hoffe das hilft dir.
aba

Re: Adobeform: Teilformular ein-/ausblenden abhängig vom Belegtyp

Beitrag von meocon (ForumUser / 38 / 1 / 0 ) »
Aba hat geschrieben:
19.05.2020 15:09
Hallo,

ich vermute mal, dass der Zugriff auf die Variable Headerinfo nicht richtig ist. Ist das eine Variable aus dem Kontext?
Dann kannst du eigentlich auf der Ebene des Teilformulars im initialize und mit formcalc einfach folgendes einfügen:
z.B. bei Teilformular 2:

Code: Alles auswählen.

if (xfa.record.HEADERINFO.value == "K") then
   $.presence = "visible"
else
   $.presence = "hidden"
endif
Da wo jetzt HEADERINFO steht, musst du den Variablennamen, der den Belegtyp enthält, einsetzen. Wichtig ist, dass du das in Großbuchstaben schreibst. Kann sonst sein, dass der das nicht richtig erkennt.
Wenn du den Code auf der Ebene des Teilformulars einfügst, blendet er alle darunterliegenden Objekte mit aus (reine Texte können nicht per Skripting ausgeblendet werden).

Hoffe das hilft dir.
aba
Vielen Dank aba für deine schnelle Antwort. Ich habe die ganze Zeit rumprobiert, auch mit deine Skript Befehl (Im Kontext gibt es HEARDERINFO nicht, sondern HEADERTEXT und BSTYP ist ein Feld davon):
if ( xfa.record.HEADERTEXT.BSTYP == "F" ) ….

aber leider es hat nicht geklappt. Ich habe trace gemacht und die Meldung "HEADERTEXT is unknow" bekommen. Aber HEADERTEXT steht im Kontext.

Eigentlich ich muss ganzen Teilformular nicht ein- und ausblenden. Mein Ziel ist nur das Feld Liefertermin ist bei der Bestellung sichtbar und das Feld Laufzeit unsichtbar, und wenn ein Kontrakt ist dann ist Laufzeit sichtbar, Liefertermin unsichtbar. Beide Felder sind kann man sagen überlappt miteinander. Wie kann man das Problem lösen?

Viele Grüße

meocon

Re: Adobeform: Teilformular ein-/ausblenden abhängig vom Belegtyp

Beitrag von a-dead-trousers (Top Expert / 4286 / 214 / 1142 ) »
Im Kontext nützt dir die Variable gar nichts.
Du musst sie in ein (augeblendetes) Feld des Formulars verknüpfen.
(Zumindest hat das bei mir immer nur so funktioniert)
Erreichbar ist sie dann unter "data." und dem Pfad bis zum Feld vergleichbar mit deinem "data.Main.HEADER_INFORMATION.ORDER_INFORMATION.LIEFERTERMIN_LABEL"
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

Re: Adobeform: Teilformular ein-/ausblenden abhängig vom Belegtyp

Beitrag von Aba ( / / 0 / 3 ) »
Im Kontext gibt es HEARDERINFO nicht, sondern HEADERTEXT und BSTYP ist ein Feld davon):
if ( xfa.record.HEADERTEXT.BSTYP == "F" ) ….
Wenn Headertext bspw. eine Struktur ist und Bstyp ein Feld davon, würde ich sagen, dass du sie per "-" ansprechen musst. Und da du ja den Wert davon haben möchtest, musst du ".value" dahinter schreiben (so hatte es zumindest bei mir funktioniert).
Im Kontext nützt dir die Variable gar nichts.
Du musst sie in ein (augeblendetes) Feld des Formulars verknüpfen.
(Zumindest hat das bei mir immer nur so funktioniert)
Bei mir hat das die letzten Mal komischerweise auf beide Weisen funktioniert. Ich habe da auf eine globale Variable aus dem Kontext zugegriffen. Ich weiß nicht, ob das vielleicht nur mit globalen Variablen und nicht mit normalen Importparametern funktioniert.

Folgende Benutzer bedankten sich beim Autor Aba für den Beitrag:
a-dead-trousers


Re: Adobeform: Teilformular ein-/ausblenden abhängig vom Belegtyp

Beitrag von a-dead-trousers (Top Expert / 4286 / 214 / 1142 ) »
Aba hat geschrieben:
20.05.2020 07:28
Im Kontext nützt dir die Variable gar nichts.
Du musst sie in ein (augeblendetes) Feld des Formulars verknüpfen.
(Zumindest hat das bei mir immer nur so funktioniert)
Bei mir hat das die letzten Mal komischerweise auf beide Weisen funktioniert. Ich habe da auf eine globale Variable aus dem Kontext zugegriffen. Ich weiß nicht, ob das vielleicht nur mit globalen Variablen und nicht mit normalen Importparametern funktioniert.
Das muss ich mir das nächste Mal, wenn ich im LC unterwegs bin, genauer anschauen.
Wie gesagt hat das bei mir (damals) mit "xfa.record" nie richtig geklappt. Aber vielleicht hat sich da ja inzwischen was verbessert. Man kann ja nie wissen.
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

4
Antw.
646
Views
ADOBEFORM: Formular mit dynamischem Dateiname speichern
von meocon » 03.07.2020 12:23 • Verfasst in ABAP® für Anfänger
0
Antw.
871
Views
Mitarbeiter abhängig von VKORG
von gs3rr4 » 15.07.2014 12:18 • Verfasst in ABAP® für Anfänger
0
Antw.
1359
Views
Lieferant abhängig von Einkaufsorganisation
von said1980 » 26.02.2006 10:28 • Verfasst in ABAP® für Anfänger
1
Antw.
2486
Views
Abstimmkonten für Kreditoren abhängig
von Margarete » 27.03.2017 11:18 • Verfasst in Financials
1
Antw.
208
Views
Zwei ALV abhängig voneinander machen
von retsch » 13.05.2023 13:56 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

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.