Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: giochips am 29.08.08 - 14:13:15

Titel: Rückgabewert von GetItemValue
Beitrag von: giochips am 29.08.08 - 14:13:15
Hallo,
mal ne Frage zur... wie soll ich´s nennen... "Programmiereleganz".

Die Rückgabewerte von z.B. GetItemValue sind Arrays. Wenn ich jetzt aber davon ausgehen kann, dass keine Mehrfachwerte in den Feldern stehen/stehen können, wie benutze ich dann die Rückgabe, z.B. für einen Vergleich? Einfach auf das erste Feld im Array zugreifen?:

If Rückgabewert(0)="" Then...

Macht ihr das auch so? Oder gehts auch eleganter?

Gruß
Marco
Titel: Re: Rückgabewert von GetItemValue
Beitrag von: jBubbleBoy am 29.08.08 - 14:20:05
Geschmackssache, ich mach es immer so:
if doc.feldname(0) = "Wert" then

Viele Wege führen nach Rom ;)
Titel: Re: Rückgabewert von GetItemValue
Beitrag von: giochips am 29.08.08 - 14:32:56
Ja, ok!!
Ich zielte aber eher darauf ab direkt den ersten Feldwert mit ...(0) anzusprechen. Es gibt also keine Funktion aus einem Array das erste Feld zu nehmen, die restlichen Felder zu verwerfen und dadurch einfach aus dem Array einen einfachen String zu machen. So dass man im weiteren Verlauf des Scripts einfach mit einem String arbeiten kann.
Fand es nur ein bißchen... unelegant... einfach immer ...(0) anzuhängen.

Haarspalterei gell??  ;D
Titel: Re: Rückgabewert von GetItemValue
Beitrag von: jBubbleBoy am 29.08.08 - 14:48:01
Das hab ich jetzt nicht verstanden ???
Eine Funktion ... feldname(0) oder getItemVaue("feldname")(0) machen doch genau das was du willst! Man kann es noch komplizierter machen, z.B. so:
getFirstItem("feldname").Values(0)
Titel: Re: Rückgabewert von GetItemValue
Beitrag von: muenzpraeger am 29.08.08 - 14:48:25
Dann mach doch einfach

Code
Dim vRueckgabewert As Variant
Dim strRueckgabewert As String

vRueckgabewert = docThis.getItemValue("MeinFeld")
strRueckgabewert = vRueckgabewert(0)

If strRueckgabewert="" Then...

Wenn man es so haben möchte...
Titel: Re: Rückgabewert von GetItemValue
Beitrag von: jBubbleBoy am 29.08.08 - 14:50:05
5 Zeilen für eine Zeile Code ... nicht schlecht  ::)
Titel: Re: Rückgabewert von GetItemValue
Beitrag von: muenzpraeger am 29.08.08 - 14:54:25
Wenn man bedenkt, wie viele "(0)" man sich dadurch sparen kan...  ::)

Ich persönlich favorisiere ja "strRueckgabewert = docThis.MeinFeld(0)". Aber dann kommt ja das gewünschte getItemValue gar nicht mehr vor... ;)

VG,
René
Titel: Re: Rückgabewert von GetItemValue
Beitrag von: jBubbleBoy am 29.08.08 - 15:02:52
an (0) kommt man leider nicht vorbei, es sei denn macht das ganze über
getFirstItem("feldname").text
dann werden aber auch die restlichen Werte im Array ausgegeben. Ich mag es lieber kompakt und arbeite mit den Feldern anstatt Variablen dafür zu deklarieren.

Und eine Zeile, wie:
if doc.feldname(0) = "1" then
ist besser und schneller gelesen als 5 Zeilen Code oder gar noch mehr.
Titel: Re: Rückgabewert von GetItemValue
Beitrag von: giochips am 29.08.08 - 15:43:21
Ich habs auch gerne kompakt und so wenig Variablen wie möglich und nötig!!

Also meine Frage ob ihr das (zwangsläufig) genauso macht wie ich, ist damit auch beantwortet!!  :D

Gruß an Alle
Marco
Titel: Re: Rückgabewert von GetItemValue
Beitrag von: cebolina am 29.08.08 - 15:54:10
ob du
if doc.feldname(0) = "1" then
oder
if doc.GetItemValue("feldname")(0)
schreibst ist egal.
Beide Versionen führen zu einem richtigen Ergebnis

Irgendwo habe ich mal gelesen, dass die Variante doc.GetItemValue "richtiger" wäre.
Warum das so sein soll, kann ich dir aber nicht sagen.

Gruß
Stefan

Titel: Re: Rückgabewert von GetItemValue
Beitrag von: muenzpraeger am 29.08.08 - 16:03:05
Den goldenen Weg gibt es m. E. eh nicht. Bei 'nem kleinen Script sollte man durchaus direkt auf das Item mittels doc.feldname(0) gehen.

Bei großen Scripten und dem Einsatz von eigenen Functions und Klassen bevorzuge ich persönlich lieber den Weg über Variablen. Damit man nach ein paar Monaten auch noch erkennen kann, ob man da jetzt Text, Variant oder sonstwas übergibt.

Ist aber zum Glück Ansichtssache.

HTH
René
Titel: Re: Rückgabewert von GetItemValue
Beitrag von: jBubbleBoy am 29.08.08 - 16:06:34
doc.feldname(0) geht leider nicht immer, z.B.
doc.$UpdatedBy(0)
kann man nicht speichern, dafür muss man
doc.~$UpdatedBy(0)
schreiben, weitere Einschränkungen sind mir nicht bekannt ;)