AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
28.03.20 - 18:21:19
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Domino 8 und frühere Versionen
| |-+  ND7: Entwicklung (Moderatoren: eknori, koehlerbv)
| | |-+  @isset() für temporäre Variable - wie realisieren?
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: @isset() für temporäre Variable - wie realisieren?  (Gelesen 3162 mal)
jww
Aktives Mitglied
***
Offline Offline

Geschlecht: Männlich
Beiträge: 178


« am: 28.06.13 - 17:40:52 »

Hallo,

wahrscheinlich stehe ich mit beiden Füssen gerade fest auf dem Schlauch und was ich brauche ist total einfach ... ich find's aber nicht.


Für Felder gibt's @isAvailable, um zu prüfen ob ein Feld da ist oder nicht, und wenn man einen Default Wert setzen will, ist's noch einfacher, da nimmt man einfach DEFAULT xyz := ...

Aber wie geht das bei temoporären Variablen (also keine Felder), die man in einer Formel benutzt?

Hintergrund:
Ich habe Formelteile (die in einem Feld stehen), welche ich mit @eval() an anderer Stelle in eine Formel einbinde - quasi als "sub" oder "function" Ersatz.

Nun kann es, je nach Stelle der Verwendung, sein, dass eine Variable, sagen wir "_place" gesetzt ist ( von der Formel, die das sub per @eval() benutzt) oder eben nicht:

Variante 1: _place = "hier"; @eval( mycode );

Variante 2:  @eval( mycode );


Nun wollte ich gerne in der sub (welche im Feld mycode als Text steht)  folgende (Teil-)Formel realisieren:

__place := @if( @isset( __place ) ; __place; __place_default );

kann mir jemand das "missing piece" - @isset() - verraten?

1000 Dank





Gespeichert

Notes ist klasse - und ab und an zum auf den Mond schiessen.
Peter Klett
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 2656



« Antworten #1 am: 28.06.13 - 18:16:02 »

Reicht es nicht aus, auf "leer" zu prüfen?

__place := @if(  __place != "" ; __place; __place_default );

bzw. falls es nicht Text ist (z.B. eine Zahl)

__place := @if( @Text (__place) != "" ; __place; __place_default );
Gespeichert
jww
Aktives Mitglied
***
Offline Offline

Geschlecht: Männlich
Beiträge: 178


« Antworten #2 am: 29.06.13 - 12:09:57 »

hmm. Stimmt. Zu einfach!

Wäre nicht darauf gekommen, dass eine nicht deklarierte Variable schlicht gleich "" ist ... und selbst ein numerischer Wert in __place  keinen Fehler wirft bei

@if( __place = "" ...

Danke für den "heads up"!

p.s.: Ich muss wohl anfangs irgendwie was falsch gemacht haben ...  nun geht nämlich auch @isavailable auf eine Variable. Keine Ahnung, warum das ursprünglich nicht funktioniert hat ... scheinbar ist's der Ort, wo ich diese Formeln Verwende: URL und Computet Text. Die geben einfach gar nix aus, wenn eine Formel "in die Büsche geht".
 
Gespeichert

Notes ist klasse - und ab und an zum auf den Mond schiessen.
Peter Klett
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 2656



« Antworten #3 am: 29.06.13 - 12:27:02 »

Den Feldnamen in Anführungszeichen zu setzen

@IsAvailable ("Feldname") -> falsch

@IsAvailable (Feldname) -> richtig

wäre eine (sehr wahrscheinliche) Fehlerursache. Gibt wohl niemanden, der nicht darauf schon mal hereingefallen wäre ...
Gespeichert
jww
Aktives Mitglied
***
Offline Offline

Geschlecht: Männlich
Beiträge: 178


« Antworten #4 am: 29.06.13 - 21:07:39 »

Die Anführungszeichen können es ziemlich sicher gewesen sein. Ich progge inzwischen sehr viel PHP und anderem und es gibt fast keine Sprache, wo man derartige Referenzen ohne die Hochkomma verwendet ... hat mir seinerzeit, als ich viel Notes programmiert hab, schon misfallen.

Anyhow, es tut nun ja. Danke nochmals!
Gespeichert

Notes ist klasse - und ab und an zum auf den Mond schiessen.
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: