Autor Thema: Rückgabewert von GetItemValue  (Gelesen 3541 mal)

Offline giochips

  • Junior Mitglied
  • **
  • Beiträge: 85
  • Geschlecht: Männlich
Rückgabewert von GetItemValue
« 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
Woher soll ich wissen was ich denke, bevor ich gehört habe was ich sage??!!

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.290
  • Geschlecht: Männlich
Re: Rückgabewert von GetItemValue
« Antwort #1 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 ;)
Gruss Erik :: Freelancer :: KI-Dev, Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16 / OLI 2.0

--
Nur ein toter Bug, ist ein guter Bug!

Offline giochips

  • Junior Mitglied
  • **
  • Beiträge: 85
  • Geschlecht: Männlich
Re: Rückgabewert von GetItemValue
« Antwort #2 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
Woher soll ich wissen was ich denke, bevor ich gehört habe was ich sage??!!

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.290
  • Geschlecht: Männlich
Re: Rückgabewert von GetItemValue
« Antwort #3 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)
Gruss Erik :: Freelancer :: KI-Dev, Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16 / OLI 2.0

--
Nur ein toter Bug, ist ein guter Bug!

Offline muenzpraeger

  • Junior Mitglied
  • **
  • Beiträge: 59
  • Geschlecht: Männlich
Re: Rückgabewert von GetItemValue
« Antwort #4 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...
---------------------------------------------------------------

#moveOn

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.290
  • Geschlecht: Männlich
Re: Rückgabewert von GetItemValue
« Antwort #5 am: 29.08.08 - 14:50:05 »
5 Zeilen für eine Zeile Code ... nicht schlecht  ::)
Gruss Erik :: Freelancer :: KI-Dev, Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16 / OLI 2.0

--
Nur ein toter Bug, ist ein guter Bug!

Offline muenzpraeger

  • Junior Mitglied
  • **
  • Beiträge: 59
  • Geschlecht: Männlich
Re: Rückgabewert von GetItemValue
« Antwort #6 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é
---------------------------------------------------------------

#moveOn

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.290
  • Geschlecht: Männlich
Re: Rückgabewert von GetItemValue
« Antwort #7 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.
Gruss Erik :: Freelancer :: KI-Dev, Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16 / OLI 2.0

--
Nur ein toter Bug, ist ein guter Bug!

Offline giochips

  • Junior Mitglied
  • **
  • Beiträge: 85
  • Geschlecht: Männlich
Re: Rückgabewert von GetItemValue
« Antwort #8 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
Woher soll ich wissen was ich denke, bevor ich gehört habe was ich sage??!!

Offline cebolina

  • Senior Mitglied
  • ****
  • Beiträge: 386
  • Geschlecht: Männlich
Re: Rückgabewert von GetItemValue
« Antwort #9 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

Server: Lotus Domino 9.0.1FP4 HF70
Client: Release 9.0.1FP6

Offline muenzpraeger

  • Junior Mitglied
  • **
  • Beiträge: 59
  • Geschlecht: Männlich
Re: Rückgabewert von GetItemValue
« Antwort #10 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é
---------------------------------------------------------------

#moveOn

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.290
  • Geschlecht: Männlich
Re: Rückgabewert von GetItemValue
« Antwort #11 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 ;)
Gruss Erik :: Freelancer :: KI-Dev, Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16 / OLI 2.0

--
Nur ein toter Bug, ist ein guter Bug!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz