Liebe Profis,
ich muss im Report die Werte aus 4 Attributen in einem DataField verketten, wobei jede Abfrage mit einer IF-Bedingung belegt ist.
Alle 4 Attribute entsprechen Integer-Typen.
Die Standardwerte von 3 Attributen müssen geschützt sein (der User darf keine Freitexte definieren), weshalb als Steuerungsart nur Enumeration verwendet werden kann.
Wenn man die Steuerungsart Enumeration auswählt, ist der Datentyp standardmäßig integer, belässt man dies so, sieht der user jedoch keine Auswahlwerte im Attribut am Bauteil, durch Versuche kann man dies ändern, wenn man den Datentyp nachträglich auf Enumeration ändert.
Etwas Doku habe ich hier gefunden:
https://campus.allplan.com/at/forum/themen/topic/topics/cad-listen-reports-variables-beschriftungsbild/benutzerattribute-erklaerung-datentypen.html
Versuchsweise wurden 2 Varianten ausgewählt:
1A mit "Verkettung" durch +
1B mit VERKETTEN und ;
2A und 2B sind ident, lediglich sind die IF-Bedingungen NICHT jeweils in (*) gesetzt.
SOLL: jeder der 4 Werte soll mit einem "/" getrennt werden, wird durch die IF-Bedingungen kein Text "" je Wert ausgegeben, sollen dennoch obligatorisch die 3 Trenn-"/" ausgegeben werden.
Das Problem ist nun, dass die /// nur in den Varianten 1A und 1B (jede IF-Bedingung in runder Klammer) korrekt ausgegeben werden, auch die Ausgabe von Werten ist korrekt, jedoch werden die Werte aus den 3 "Enumeration"-Attributen in eine runde Klammer gesetzt.
Bei den Varianten 2A und 2B fehlen die ///, mit Werten funktioniert 2A gar nicht, 2B würde korrekt ausgeben (ohne Runde Klammern), jedoch löst diese Variante 2B einen Syntax-Fehler aus.
Kann man dem script 1A oder 1B einen Befehl hinzufügen, welcher die Werte NICHT in runder Klammer ausgibt?
Achtung: Attribut @2274@ sieht als Standwert "4|Nut+Fase (SPA-roh)" vor, diese Runde Klammer aus dem Standard-Wert sollte dabei nicht verloren gehen, leider benötigt die Optimierungs-Software diese wordings genau so.
Vielen Dank für die Hilfestellung.
LG G.K.
hier die Formeln aus dem Screenshot:
Kante_Links1A:
(_IF_(@2272@.eq."<>")""_ELSE_@2272@)+"/"+(_IF_(@2273@.eq."wie Platte")""_ELSE_@2273@)+"/"+(_IF_(@2274@.eq."<>")""_ELSE_@2274@)+"/"+(_IF_(@2275@.eq."<>")""_ELSE_@2275@)
Kante_Links1B:
VERKETTEN((_IF_(@2272@.eq."<>")""_ELSE_@2272@);"/";(_IF_(@2273@.eq."wie Platte")""_ELSE_@2273@);"/";(_IF_(@2274@.eq."<>")""_ELSE_@2274@);"/";(_IF_(@2275@.eq."<>")""_ELSE_@2275@))
Kante_Links2A:
_IF_(@2272@.eq."<>")""_ELSE_@2272@+"/"+_IF_(@2273@.eq."wie Platte")""_ELSE_@2273@+"/"+_IF_(@2274@.eq."<>")""_ELSE_@2274@+"/"+_IF_(@2275@.eq."<>")""_ELSE_@2275@
Kante_Links2B:
VERKETTEN(_IF_(@2272@.eq."<>")""_ELSE_@2272@;"/";_IF_(@2273@.eq."wie Platte")""_ELSE_@2273@;"/";_IF_(@2274@.eq."<>")""_ELSE_@2274@;"/";_IF_(@2275@.eq."<>")""_ELSE_@2275@)