Zum Inhalt springen

Datenstempel - Zahlenwert in If Abfrage auf Nachkommastellen "fixieren"


Matteo

Frage

Geschrieben

Hi,

 

ich habe versucht mit dem folgenden Code einzurichten, dass der Wert aus einem Datenbank-Feld nur angezeigt wird, wenn er nicht 0 ist.

 

#WS_IF(('Pset-LH-Tueren_kurz'.'li.Br.'=0); ''; 'Pset-LH-Tueren_kurz'.'li.Br.')#m

Leider kriege ich es aber hier nicht mehr hin, zu fixieren, dass die Zahl immer 2 Nachkommastellen haben soll. GEHT DAS überhaupt?

 

es hilft leider nicht, #m_2_0# hinten anzuhängen (wird bei der auswahl der IF Funktion nicht angeboten)

Türstempel-TEst.zip

MacBook Pro 16" - macOS 13 - Ventura - 2,3 GHz 8-Core Intel Core i9, 16GB RAM, AMD Radeon Pro 5500M 8 GB VRAM

Vectorworks 2022 - SP6

Vectorworks 2023 - SP6

11 Antworten auf diese Frage

Empfohlene Beiträge

Geschrieben (bearbeitet)

Hallo @Matteo

eine Möglichkeit ist die Funktion WERT() zu nutzen ... damit kannst du Nachkommastellen definieren...
Die Einheit muss dann "händisch" dahinter geschrieben werden...
 

#WS_WERT(IF(('Pset-LH-Tueren_kurz'.'li.Br.'=0); ''; 'Pset-LH-Tueren_kurz'.'li.Br.'))##prec_2#m


ggf gibt es noch weitere Möglichkeiten....


Liebe Grüße

Bearbeitet von Viktor Frank

BIM Consultant

ComputerWorks Deutschland

Geschrieben

wo hast Du denn das mit dem 

#prec_2#

her? Hast Du Dir das selbst ausgedacht? ;-D

  • Lachen 1

MacBook Pro 16" - macOS 13 - Ventura - 2,3 GHz 8-Core Intel Core i9, 16GB RAM, AMD Radeon Pro 5500M 8 GB VRAM

Vectorworks 2022 - SP6

Vectorworks 2023 - SP6

Geschrieben

Generell arbeite ich nach der Brute-Force-Methode  🫠

Mir fällt auch gerade auf, dass #prec_2# bereits reicht um die nachgestellten Nullen zu generieren...
Die Funktion WERT() wird dann garnicht mehr gebraucht...

Ich hab das aus der Funktion WERT().... weil ich noch im Kopf hatte dass sich hier die Nachkommastellen definieren lassen...

somit wäre nun
 

#WS_IF(('Pset-LH-Tueren_kurz'.'li.Br.'=0); ''; 'Pset-LH-Tueren_kurz'.'li.Br.')##prec_2#m


Deine entsprechende Formel 🙂


Liebe grüße !

  • Like 2
  • Lachen 1

BIM Consultant

ComputerWorks Deutschland

Geschrieben

wenn du im Dropdown einen Zahlenwert (z.B. ein Parameter der Tür) auswählst der keine Einheiten hat, und zwei Kommastellen auswählst, wird das auch so in die Formel eingefügt. Es gibt da sehr viele Möglichkeiten, die leider nicht alle immer gut dokumentiert sind.

Bildschirmfoto 2024-03-15 um 10.04.19.png

  • Like 2

Vectorworks Design Suite 2024, 2025, 2026

M1 Pro MacOS 15.7

www.unlimited.co.at

Geschrieben

@unlimited naja, das ist ein Datenbankwert, Typ Zahl (also mit Nachkommastellen) der wird mir automatisch nur mit soviel Nachkommastellen wie nötig angezeigt.

vor 24 Minuten schrieb Viktor Frank:

Generell arbeite ich nach der Brute-Force-Methode  🫠

irgendwas eintippen und hoffen, dass es klappt? 😄 Oder ChatGPT fragen?

MacBook Pro 16" - macOS 13 - Ventura - 2,3 GHz 8-Core Intel Core i9, 16GB RAM, AMD Radeon Pro 5500M 8 GB VRAM

Vectorworks 2022 - SP6

Vectorworks 2023 - SP6

Geschrieben (bearbeitet)
vor 11 Minuten schrieb Matteo:

irgendwas eintippen und hoffen, dass es klappt?

Das war eher als Scherz zu sehen 🙂

Meist denke ich über die entsprechenden Datentypen nach, welche als Rückgabewerte aus den Formeln resultieren...
Die IF-Funktion kann theoretisch verschiedene Datentypen (Text, Zahl, Boolean) zurückgeben... daher besteht hier keine direkte Option zu Wert-Formatierung im Datenstempelmenü. Macht ja auch Sinn.

Daher habe ich nach einer Funktion gesucht, welche eindeutig eine Zahl zurückgibt und damit auch entsprechend der Zahlen formatierbar ist... nämlich WERT().

Dass das Anhängsel #prec_2# auch ohne die Funktion WERT() funktioniert, war dann tatsächlich etwas raten...

der Rückgabewert deiner speziellen IF-Funktion ist ein Datenbankwert vom Typ Zahl. ..

Also hatte ich da so eine Vermutung dass es auch so funktioniert...


Was du mit #m_2_0# versucht hattest, funktioniert nur für Datenfelder, welche als "Objektmaß" (Subtype zu Zahl) gekennzeichnet sind.... somit kann dann direkt eine entsprechende Einheitenwandlung stattfinden.

Vectorworks Datenbanken bieten diese Datentyp in der Version 2023 noch nicht an.
In der Version 2024 kamen neue Datentypen für eigene Datenbanken hinzu:

image.png.e952b93beb8aa5e4d8fad7dd6c13eb26.png


Diese lassen dann die oben genannten Formatierungen und Konvertierung von Flächen/Volumen/Längen-Einheiten zu.


Also nur Brute-Force war es dann doch nicht 🙂

Liebe Grüße

Bearbeitet von Viktor Frank
  • Like 2

BIM Consultant

ComputerWorks Deutschland

Geschrieben (bearbeitet)
#WS_IF(('Pset-LH-Tueren_kurz'.'li.Br.'=0); ''; (VERKETTEN(('Pset-LH-Tueren_kurz'.'li.Br.'); 'm')))##prec_2#

war mein nächster Versuch. Wenn die lichte Breite = 0 steht noch son verlorenes "m" rum... ach, wenn perfekt nicht immer mal wieder so kompliziert wäre, da funktioniert das mit den Nachkommastellen natürl wieder nicht (bei ner String-Variable, die aus dem Verketten Befehl entsteht auch etwas viel verlangt)

Bearbeitet von Matteo

MacBook Pro 16" - macOS 13 - Ventura - 2,3 GHz 8-Core Intel Core i9, 16GB RAM, AMD Radeon Pro 5500M 8 GB VRAM

Vectorworks 2022 - SP6

Vectorworks 2023 - SP6

Geschrieben (bearbeitet)

Wenn du das erreichen willst, musst du die Einheit "m" bereits in der IF-Funktion abbilden und dort auch die Formatierung machen...

Du kannst keinen Zurückgegeben Text (2m) dann noch mit Nachkommastellen formatieren ...

Daher gehe diesen weg:

 

#WS_IF('Pset-LH-Tueren_kurz'.'li.Br.'=0; ''; TXT('Pset-LH-Tueren_kurz'.'li.Br.'; Meters; TrailingZero; Units))#



Im Kern ist hier dann die Funktion TXT() die richtige ... die hat viele optionale Parameter zu Formatierung von Einheiten, Nachgestellter Angabe der Einheit, Vor und Nachgestellte nullen etc
https://developer.vectorworks.net/index.php/Worksheet_Functions/de#Text
Wichtig ist, dass der Startwert in der Dokumenteneinheit ist... Da die Funktion TXT() von der Dokumenteneinheit in eine Zieleinheit Kovertiert...

Liebe Grüße

Bearbeitet von Viktor Frank
  • Like 2

BIM Consultant

ComputerWorks Deutschland

Geschrieben (bearbeitet)
#WS_IF(('Pset-LH-Tueren_kurz'.'li.Br.'=0); ''; 'Pset-LH-Tueren_kurz'.'li.Br.')##prec_2##WS_IF(('Pset-LH-Tueren_kurz'.'li.Br.'=0); ''; 'm')#

so, also einmal in ner If Bedingung den Zahlenwert mit 2 Nachkommastellen und einmal die Einheit m.

Das funktioniert. 😄

Bearbeitet von Matteo
  • Like 1

MacBook Pro 16" - macOS 13 - Ventura - 2,3 GHz 8-Core Intel Core i9, 16GB RAM, AMD Radeon Pro 5500M 8 GB VRAM

Vectorworks 2022 - SP6

Vectorworks 2023 - SP6

Geschrieben (bearbeitet)

@Matteo

gerne 🙂

Wie gesagt würde mit Version 2024 und dem entsprechenden Datentyp der eigenen Datenbank die formatierung einfach auch mit
#m_2_0# funktionieren.

 

Bearbeitet von Viktor Frank
  • Like 1

BIM Consultant

ComputerWorks Deutschland

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden
  • Forenstatistik

    • Themen insgesamt
      26,4Tsd
    • Beiträge insgesamt
      137,1Tsd
×
×
  • Neu erstellen...