Fettdruck dynamisch setzen

SFP..SAPscript (Transaktion SE71)..Smartforms (TA Smartforms).. Interactive Forms..Transaktion EFRM)..SIFBA..IAF..AIF..SIFBA - SAP_Interactive_Forms_based_on_Adobe // LÖSUNGSANSÄTZE aber AUCH FÜR "NORMALE" PDFs VERWENDBAR ;-)
Captain_Chaos
Beiträge: 14
Registriert: 13.02.2013, 07:14

Fettdruck dynamisch setzen

Beitrag von Captain_Chaos » 22.05.2013, 11:05

Ich habe folgendes (hoffentlich einfaches) Problem:

Beim Andruck einer Tabelle möchte ich, wenn eines der Tabellenfelder einen bestimmten Wert hat, alle Felder dieser Datenzeile fett angezeigt bekommen. Geht so etwas?

Gruß
Captain_Chaos

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

Fettdruck dynamisch setzen

Beitrag von armine » 22.05.2013, 16:05

Es geht. Dazu mußt du nur allen betroffenen Feldern ein "[font=courier new]DiesesFeld.font.weight = "bold";[/font]" mitgeben.
Zurück geht’s mit "[font=courier new]DiesesFeld.font.weight = "normal";[/font]"

vg armine


Captain_Chaos
Beiträge: 14
Registriert: 13.02.2013, 07:14

Fettdruck dynamisch setzen

Beitrag von Captain_Chaos » 30.05.2013, 12:41

Hallo,

danke ... funktioniert (fast) ... aber: in der Spalte, in der die relevante Information steht, kann ich nun den Fettdruck anwenden. Wie bekomme ich es aber hin, dass die Erkenntnis, dass die Zeile relevant ist, auch auf nachfolgenden Felder der Zeile überträgt?

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

Fettdruck dynamisch setzen

Beitrag von armine » 30.05.2013, 13:19

Dazu mußt du nur allen betroffenen Feldern ein "[font=courier new]DiesesFeld.font.weight = "bold";[/font]" mitgeben.
Am Einfachsten erledigst du das mit einer Schleife. Schau mal in der Hilfe nach "resolveNode".

Captain_Chaos
Beiträge: 14
Registriert: 13.02.2013, 07:14

Fettdruck dynamisch setzen

Beitrag von Captain_Chaos » 04.06.2013, 10:05

Hallo,

ich habe das jetzt entsprechend umgesetzt ... und es funktioniert auch teilweise:

Code: Alles auswählen

if ( $.rawValue == "/559" ) then
this.font.weight = "bold"
this.resolveNode("Überweisung.Betrag").font.weight = "bold"
this.resolveNode("Überweisung.Währung").font.weight = "bold"
else
this.font.weight = "normal"
this.resolveNode("Überweisung.Betrag").font.weight = "normal" 
this.resolveNode("Überweisung.Währung").font.weight = "normal"
endif 
 
Das aktuelle Feld wird geändert genauso wie auch des Feld 'Betrag'. Die 'Währung' allerdings wird nicht geändert. Wobei 'nicht geändert' auch nicht richtig ist, da das Feld grundsätzlich mit Fettdruck definiert ist, d.h. das Script setzt das Feld Währung auf 'normal'.

Ich bin ratlos ...

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

Fettdruck dynamisch setzen

Beitrag von armine » 04.06.2013, 10:39

Lieber Captain_Chaos,

überlege mal, ob die 'Währung' nicht auch 'normal' definiert werden kann oder ein 'if' das Problem löst.
Wenn bereits 'fett", lass 'Währung' in Ruhe, sonst ...

Du könntest natürlich dein Formular – oder nur die Tabelle – mit einer genauen Angabe der Anforderung auch hochladen. Dann wäre mit dem Raten schnell Schluss.

vg armine

Captain_Chaos
Beiträge: 14
Registriert: 13.02.2013, 07:14

Fettdruck dynamisch setzen

Beitrag von Captain_Chaos » 04.06.2013, 11:13

Tja ... das geht wohl nicht .. das Formular ist im SAP-System abgelegt. Lade ich es herunter (XML-File) und öffne es dann mit dem Designer, kommt es zum Fehler ... also der Weg ist versperrt.

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

Fettdruck dynamisch setzen

Beitrag von armine » 04.06.2013, 11:33

Geht nicht? Siehe http://www.acronaut.de/forum47/2364.html 1. Beitrag von anform.

Captain_Chaos
Beiträge: 14
Registriert: 13.02.2013, 07:14

Fettdruck dynamisch setzen

Beitrag von Captain_Chaos » 04.06.2013, 12:20

Ja ... so geht's

Anbei das abgespeckte Formular mit der fraglichen Tabelle.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

Fettdruck dynamisch setzen

Beitrag von armine » 04.06.2013, 13:48

So richtig hilfreich ist die Datei mangels Daten nicht. Das kannst du schon beim Öffnen mit Acrobat oder Reader feststellen. Wie du siehst, siehst du nichts.

Aus der Struktur schließe ich, dass nichts dagegen steht, in "Währung" den Schriftschnitt auf "normal" zu setzen.
Sollte diese Annahme falsch sein, dann kannst du dir mit
[font=courier new]if (this.resolveNode("Überweisung.Währung").font.weight == "normal") then
[/font][font=courier new][font=courier new]    [/font]this.resolveNode("Überweisung.Währung").font.weight = "bold"
endif[/font]
behelfen.

Da alle Felder im gleichen Teilformular stecken muss das auch gehen:
[font=courier new]data.Lohnart::initialize - (FormCalc, server)

if ($ == "/559" ) then
    Lohnartentext.font.weight = "bold" 
    Betrag.font.weight = "bold"
    Währung.font.weight = "bold" // default == "normal"
else
    Lohnartentext.font.weight = "normal"   
    Betrag.font.weight = "normal" 
    Währung.font.weight = "normal"
endif [/font]

Bei der Bankleitzahl verwendest du ein Textfeld. Wenn du ein Num. Feld verwenden würdest, wären die entsprechenden Fehlermeldungen weg.

Steht "Speichern" absichtlich auf "Manuell"?

Antworten