Smartforms Text bedingt ausgeben

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

Smartforms Text bedingt ausgeben

Beitrag von Tgut (ForumUser / 75 / 3 / 0 ) »
Ich habe eine Tabelle in Smartforms ausgegeben und im Kopfbereich Überschriften definiert. Diese sollen nur ausgegeben werden wenn ein bestimmtes Feld aus der Tabelle einen Wert enthält (Werte kommen aus einem PMD). Hab schon verschiedene Dinge im Reiter Bedingungen versucht aber es funktioniert nicht. Wie kann ich in Smartforms bewirken: Drucke den Text nur wenn das Feld in Workarea einen Wert enthält. Hab schon gesucht nix dazu gefunden.

Gruß
Tatjana

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


Re: Smartforms Text bedingt ausgeben

Beitrag von Lucyalison (Specialist / 262 / 51 / 26 ) »
Hallo Tatjana,

eigentlich funktioniert das mit den Bedingungen wunderbar, wir haben hier mehrere Formulare mit Bedingungen in der Überschrift. Daher müsste ich ein bisschen mehr darüber wissen was Du schon probiert hast. Also wo und wie definierst Du die Bedingung? Im Reiter Bedingungen oder unter Allgemeine Eigenschaften?
Bei dem Beispiel das ich jetzt auf die Schnelle gerade gefunden habe, wird in der Zeile der Tabelle vor dem Textfeld eine Alternative aufgerufen und nur bei True wird der Text ausgegeben. True wird dann angesteuert wenn bei den allgemeinen Eigenschaften in der Alternative ein bestimmtes Feld gefüllt ist.

Ich hoffe das hilft Dir weiter.

Viele Grüsse
Nicola

Re: Smartforms Text bedingt ausgeben

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
Du musst VOR der Ausgabe deiner Tabelle mit Hilfe eines Programm-Knotens die Tabelle nach dem Wert durchsuchen und dann eine globale Variable setzen wenn dieser gefunden wurde.
Wenn dann die Überschrift ausgegben werden soll, musst du in deren Bedingung nur auf die globale Variable abfragen.

Das ist klingt jetzt etwas umständlich, ist aber auch logisch, da zum Zeitpunkt der Ausgabe der Überschrift noch keine Zeile der Tabelle ausgegeben wurde und man daher auch nicht auf den Wert daraus abfragen kann.
Es gibt von SAPpress übrigens ein Buch zum Thema Smartforms wo die wichtigsten Funktionen beschrieben werden. So zum Beispiel auch wie man mit den Programm-Knoten umgeht.

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.18
Basis: 7.50

Re: Smartforms Text bedingt ausgeben

Beitrag von Lucyalison (Specialist / 262 / 51 / 26 ) »
Deine Lösung ADT wäre sicher sauberer im Smartforms zu erkennen ohne dass man sämtliche Zellen der Tabelle aufklicken muss um Coding zu finden. Und da bietet es sich an es in den Globalen Definitionen zu hinterlegen. Funktionieren tut es aber auch direkt vor der Textausgabe. Wenn ich vor dem Textelement Programmzeilen einfüge um dort vor Ort z.B. einen read table zu machen, würde es auch funktionieren. Es muss also nicht zwingend vor der Tabellenausgabe sein. Aber sauberer und schöner zu Lesen für die 'Nachwelt' ist ADTs Vorschlag.

Viele Grüsse
Nicola

Re: Smartforms Text bedingt ausgeben

Beitrag von Tgut (ForumUser / 75 / 3 / 0 ) »
Ich übergebe eine Tabelle (Table View) aus einem PMD. Der User kann nun in ein Feld etwas eintragen oder nicht.

Ich möchte nun lediglich prüfen ob der User etwas eingetragen hat, also ob in meiner internen Smartform-Tabelle oder im Smartform-Workarea (loop über internen Tabelle in WA) ein Wert im Feld steht oder ob es leer ist. Mehr eigentlich nicht. Wenn kein Wert drin steht soll eben der Text nicht ausgegeben werden.

Die Geschichte mit den Programmknoten werde ich mir mal näher anschauen. Wir haben ein Buch wobei das nicht immer hilfreich ist für unsere Aufgabenstellungen.

GRüße
Tatjana

Re: Smartforms Text bedingt ausgeben

Beitrag von Tgut (ForumUser / 75 / 3 / 0 ) »
Irgendwie klappt das nicht.

Ich habe einen Programmknoten angelegt mit folgendem Code:

Code: Alles auswählen.

data: l_Y000001700 like line of T_Y000001700.

read table T_Y000001700 into l_Y000001700.

if l_Y000001700-ZPPKPPROB is not initial.  
      G_KPP = 'true'.  
  elseif
      G_KPP = 'false'.    
endif.
T_Y000001700 ist dabei die Tabelle die ich aus dem PMD per Fuba an Smartforms übergebe. G_KPP ist die globale Variable die ich als Ausgabeparameter wieder zurück gebe. Ich habe im Text als Bedingung angegeben G_KPP = 'true'.

Trotzdem wird der Text angezeigt egal ob im PMD mein Feld leer ist oder nicht.

Woran könnt's hängen? Bin für jeden Tipp dankbar.

Grüße
Tatjana

Re: Smartforms Text bedingt ausgeben

Beitrag von Tgut (ForumUser / 75 / 3 / 0 ) »
Oftmals finde ich den Fehler wenn ich hier was rein schreibe (oder anderst gesagt manchmal sieht man den Wald vor lauter Bäumen nicht) muss heißen:

Code: Alles auswählen.


data: l_Y000001700 like line of T_Y000001700.


loop at  T_Y000001700 into l_Y000001700.

if l_Y000001700-ZPPKPPROB is not initial.
  
      G_KPP = 'true'.  
  elseif
      G_KPP = 'false'.
    
endif.    
endloop.    
Dann klappt es :-). Jetzt muss ich nur noch überlegen wie ich es haben will.

Danke an alle für den Input.

Grüße
Tatjana

Re: Smartforms Text bedingt ausgeben

Beitrag von Lucyalison (Specialist / 262 / 51 / 26 ) »
Oh - da habe ich noch etwas übersehen - was willst Du mit dem elseif? Das kann so eigentlich nicht funktionieren? Es muss if - else heissen....

Re: Smartforms Text bedingt ausgeben

Beitrag von Tgut (ForumUser / 75 / 3 / 0 ) »
Der Editor hat mir elseif vorgeschlagen und funktioniert auch so. Funktioniert aber auch mit else.

Grüße
Tatjana

Re: Smartforms Text bedingt ausgeben

Beitrag von Lucyalison (Specialist / 262 / 51 / 26 ) »
Das mag bei Deiner momentanen Datenkonstellation funktionieren, der Befehl ist aber so nicht korrekt. Bei Elseif fragst Du jetzt ab ob das Feld G_KPP den Wert 'false' enthält. Das ist etwas völlig anderes als bei else dem Feld G_KPP den Wert 'false' zuzuweisen.

Gruss
Nicola

Seite 1 von 1

Vergleichbare Themen

3
Antw.
1884
Views
Text bei Summieren ausgeben
von Gottschall » 27.05.2014 21:01 • Verfasst in ABAP® für Anfänger
13
Antw.
17511
Views
Daten als Text- oder XML-Datei aus SAP ausgeben
von lenhart08 » 17.09.2008 09:24 • Verfasst in ABAP® für Anfänger
4
Antw.
2280
Views
Adobe Forms - Formatierten Text in Tabelle ausgeben
von agarchow » 27.03.2018 13:52 • Verfasst in ABAP® Core
7
Antw.
11128
Views
Smartforms, Text drehen
von Andreas G » 12.01.2007 11:31 • Verfasst in ABAP® Core
6
Antw.
3192
Views
Smartforms Text Fehlt
von SaskuAc » 05.03.2018 06:41 • Verfasst in ABAP® Core

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 2 Tagen von Bright4.5 1 / 767
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2389
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8974