[Frage] Report - verkettete Daten aus Enumeration-Attributen werden in (*) ausgegeben


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@)

Anhänge (3)

Typ: image/jpeg
99-mal heruntergeladen
Größe: 225,72 KiB
Typ: image/jpeg
52-mal heruntergeladen
Größe: 234,11 KiB
Typ: image/jpeg
40-mal heruntergeladen
Größe: 221,11 KiB

Leider stecke ich auch bei einem anderen Problem fest:
Oben angeführte Version 1B funktioniert prinzipiell (abgesehen von den Runden Klammern), nur dauert die Generierung des Reports bei Testfall 9800 Bauteilen relativ lange, zumal diese Formel nur bei wenigen Bauteilen relevant ist.

Um die Generierung des XAC-files zu beschleunigen, soll
VERKETTEN((_IF_(@2272@.eq."<>")""_ELSE_@2272@);"/";(_IF_(@2273@.eq."wie Platte")""_ELSE_@2273@);"/";(_IF_(@2274@.eq."<>")""_ELSE_@2274@);"/";(_IF_(@2275@.eq."<>")""_ELSE_@2275@))
nur dann ausgeführt werden, wenn
_IF_(@2267@.eq."SONDERBEARBEITUNG")
ansonsten soll das Feld leer bleiben:

_IF_(@2267@.eq."SONDERBEARBEITUNG")
(
VERKETTEN(
(_IF_(@2272@.eq."<>".or.@2272@.eq."ohne_Kante")""_ELSE_@2272@)
;"/";
(_IF_(@2273@.eq."wie Platte")""_ELSE_@2273@)
;"/";
(_IF_(@2274@.eq."<>".or.@2274@.eq."ohne_Bearbeitung")""_ELSE_@2274@)
;"/";
(_IF_(@2275@.eq."<>".or.@2275@.eq."ohne_Gehrung")""_ELSE_@2275@)
)
)
_ELSE_""

ergibt:
_IF_(@2267@.eq."SONDERBEARBEITUNG")(VERKETTEN((_IF_(@2272@.eq."<>")""_ELSE_@2272@);"/";(_IF_(@2273@.eq."wie Platte")""_ELSE_@2273@);"/";(_IF_(@2274@.eq."<>")""_ELSE_@2274@);"/";(_IF_(@2275@.eq."<>")""_ELSE_@2275@))_ELSE_""

Leider funktioniert das nicht.
Welchen Fehler habe ich hier beim verschachteln gemacht?

_IF_(@2267@.eq."SONDERBEARBEITUNG")"AUSFÜHREN"_ELSE_""
funktioniert natürlich, wenn anstatt "AUSFÜHREN" die Verkettung von oben eingfügt wird, klappt es nicht mehr.

Vielen Dank!
LG Günther

Wenn ich in meinem Excel verketten eingebe, kommt ein Ausrufezeichen an der funktion!

Auszug aus Hilfe von Excel

VERKETTEN-Funktion

Verwenden Sie VERKETTEN, also ein der Textfunktionen, um zwei der mehr Zeichenfolgen zu einer Zeichenfolge zu verbinden.

Wichtig: In Excel 2016, Excel Mobile und Excel für das Web wurde diese Funktion durch die Funktion CONCAT ersetzt. Obwohl die Funktion VERKETTEN aus Gründen der Abwärtskompatibilität weiterhin verfügbar ist, sollten Sie ab jetzt die Verwendung von TEXTKETTE in Betracht ziehen. Der Grund: Möglicherweise steht VERKETTEN in künftigen Excel-Versionen nicht mehr zur Verfügung.

Syntax: VERKETTEN(Text1;[Text2];...)

Beispiel:

◾=VERKETTEN("Die Flusspopulation der ";A3;" ";A2;" beträgt ";A4;"/km.")

◾=VERKETTEN(B2;" ";C2)

Argumentname

Beschreibung

text1 (erforderlich)

Das erste zu verknüpfende Element. Bei dem Element kann es sich um einen Textwert, eine Zahl oder einen Zellbezug handeln.

Text2, ... (optional)

Weitere zu verknüpfende Textelemente. Sie können bis zu 255 Elemente mit insgesamt bis zu 8.192 Zeichen verknüpfen.

Beispiele

Zum Verwenden dieser Beispiele in Excel kopieren Sie die Daten in der folgenden Tabelle, und fügen Sie sie in Zelle A1 eines neuen Arbeitsblatts ein.

Namenlos gezeichnet in vollem Bewusstsein - ignorant, in eigen Augen vermutlich höflich, dennoch unhöflichst, unfreundlichst wer einen/viele vermutete - sich von alters erschließende Namen nennt.
08.01.2024 - Gegen Bauernsperren! -> Boykott der direktverkaufenden Bauern - kauft nicht mehr direkt bei Bauern!

guck am besten im Report Designer auf der Linken Seite wo alle Attribute und Formeln aufgelistet sind, unter den Namen "Langtext" wie in der
bdvenlinea


Verwendung von Cookies:
Um die Webseite optimal gestalten und fortlaufend verbessern zu können, verwendet Allplan Cookies.
Durch die weitere Nutzung der Webseite erklären Sie sich mit der Verwendung von Cookies einverstanden.  -  Mehr Informationen

Schließen