Zum Inhalt springen

Datenstempel - Zahlenwert in If Abfrage auf Nachkommastellen "fixieren"


Empfohlene Beiträge

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

Link zu diesem Kommentar

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
Link zu diesem Kommentar

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

Link zu diesem Kommentar

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
Link zu diesem Kommentar

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 Update 4.1

MacOS 12.7

www.unlimited.co.at www.livingpool.at

Link zu diesem Kommentar

@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

Link zu diesem Kommentar
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
Link zu diesem Kommentar
#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

Link zu diesem Kommentar

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
Link zu diesem Kommentar
#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

Link zu diesem Kommentar

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
      23,5Tsd
    • Beiträge insgesamt
      121Tsd
×
×
  • Neu erstellen...