Autor Thema: Listenindex lesen und schreiben...  (Gelesen 2475 mal)

Offline CLI_Andreas_Schmidt

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 668
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
    • Lotus Notes & Domino Schulung und Entwicklung
Listenindex lesen und schreiben...
« am: 23.03.08 - 16:41:03 »
Hi @dev,

schlage mich mal wieder mit netten Listenfunktionen rum und da ist mir folgendes passiert.

var = doc.feld(Listenposition-1) --> geht

doc.feld(Listenposition-1) = var --> geht nicht. --> illegal use of property

warum nicht ?
Viele Grüße

Andreas.Schmidt@lotus-schmidt.de

Offline WildVirus

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 658
  • Geschlecht: Männlich
Re: Listenindex lesen und schreiben...
« Antwort #1 am: 23.03.08 - 20:03:11 »
Hallo Andreas,

ich kenne es nur so, dass als erstes der Feldinhalt in einen temporären Array geholt wird, darin wird gearbeitet. Ganz am Schluss kommt dann doc.Feldname = Array, sprich ich schreibe das neue Array ins Feld.

Innerhalb eines Arrays geht Array(Listenposition-1) = "what ever" problemlos, direkt in eine Position eines Feldes zu schreiben geht nicht.

Hintergrund ist m.E., dass in Feldern keine Arrays, sondern Listen gespeichert werden. Textlisten, Zahlenlisten, etc. Klingt wie wenn es das selbe wäre, aber in der Hilfe steht bei getitemvalue z.B. dass aus "Number or number list" bei getitemvalue ein "Array of doubles" wird. Für die Maschinensprachler ist es wohl ein Unterschied.

Habe mich so an diese "Macke"  ;) gewöhnt, dass ich immer so verfahre, ohne groß nachzudenken. Gehört inzwischen zu den Basics, wie z.B. ne saubere Fehlerbehandlung

Schönen Abend noch,
Axel

Glombi

  • Gast
Re: Listenindex lesen und schreiben...
« Antwort #2 am: 25.03.08 - 13:48:20 »
doc.feld(...)
ist die sog. Extended Class Syntax. Damit kann man das normalerweise zu verwendene ReplaceItemValue abkürzen.

Aus der Designer Hilfe:
"Extended class" syntax
You can also change an item's value using the NotesDocument "extended class" syntax, which eliminates the need for ReplaceItemValue.

For example, you have the following script:
Dim item As NotesItem
Set item = doc.ReplaceItemValue _
( "Subject", "Update on stock options" )
Call doc.Save( False, True )

You can achieve the same result by doing the following:
doc.Subject = "Update on stock options"
Call doc.Save( False, True )

Andreas

Offline WildVirus

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 658
  • Geschlecht: Männlich
Re: Listenindex lesen und schreiben...
« Antwort #3 am: 25.03.08 - 20:22:23 »
Hallo Andreas,

ich glaube das kennt er.

Sein Verständnisproblem liegt an der Nichtnutzbarkeit von doc.Feldname(Index) = Wert

Hast Du ein Array mit einem UBound von z.B. 4, so funktioniert ein Array(2) = Wert problemlos und ändert den 3. von 5 Werten. Bei einem LBound von 0 ausgehend  ;)

Hast Du die Werte aber nicht in einem Array, sondern in einem Feld, so kommt es bei doc.Feldname(2) = Wert zu dem genannten Fehler.

Schönen Abend wünscht
Axel

Glombi

  • Gast
Re: Listenindex lesen und schreiben...
« Antwort #4 am: 25.03.08 - 20:37:41 »

Offline CLI_Andreas_Schmidt

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 668
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
    • Lotus Notes & Domino Schulung und Entwicklung
Re: Listenindex lesen und schreiben...
« Antwort #5 am: 26.03.08 - 14:04:37 »
Danke für die Beiträge,

ich habe es tatsächlich über eine Array-Variable gelöst. Das ist ja auch nicht so schwer aber,

genau wie WildVirus schon gut erkannt hat,

habe wirklich kein Verständnis dafür, das man eine Variable über den einfachsten Weg auslesen kann und dann sich Krücken bauen muss um das Selbe wieder zurückzuschreiben.

;D

Viele Grüße

Andreas.Schmidt@lotus-schmidt.de

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: Listenindex lesen und schreiben...
« Antwort #6 am: 26.03.08 - 14:05:59 »
... es gibt schlimmeres -  ;)

Toni
Grüßle Toni :)

Offline joringel

  • Aktives Mitglied
  • ***
  • Beiträge: 105
  • Geschlecht: Männlich
Re: Listenindex lesen und schreiben...
« Antwort #7 am: 26.03.08 - 18:39:42 »
Zitat
...Krücken bauen muss...

Das ist m.E. eine Frage der Sichtweise. Aus einer anderen Perspektive ist ein Feld in einem Dokument ein nun mal ein-dimensionales Array. Dann lass es uns auch so behandeln. Hierfür zusätzliche Funktionen in LotusScript einzubauen, hätte was von 'doppelt gemoppelt', ich persönlich mag schlanke Sprachen.

Für den Produktiveinsatz sind vor dem Setzen von Einträgen in Feldern Fehlerabfragen nötig - ist das Feld von dem Typ, den ich reinschreiben will? - wieviele Einträge hat das Feld, schreibe ich über die Grenzen hinaus?, sodaß dieses vorherige Einlesen in ein Array vom Aufwand her auch nicht mehr ins Gewicht fällt.

Nebenbei wäre es eine nette Übung, sich hierfür mal eine Klasse (oder Funktion?) zu schreiben, sowas wie: SetDocFieldValueAt(doc, fieldname, index, value) ;-)

Gruß
Peter
Nenne nie einen Server 'Lokal'...

Offline CLI_Andreas_Schmidt

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 668
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
    • Lotus Notes & Domino Schulung und Entwicklung
Re: Listenindex lesen und schreiben...
« Antwort #8 am: 01.04.08 - 12:10:42 »
Gute Idee.

wenn ich Zeit habe, dann mach ich das mal ferdisch.


;D   und poste das hier in Forum.
Viele Grüße

Andreas.Schmidt@lotus-schmidt.de

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Listenindex lesen und schreiben...
« Antwort #9 am: 01.04.08 - 12:19:22 »
... und poste das hier in Forum.

Da bin ich aber sehr gespannt.
Zu beachten ist dann (u.a.) dieses:
Für den Produktiveinsatz sind vor dem Setzen von Einträgen in Feldern Fehlerabfragen nötig - ist das Feld von dem Typ, den ich reinschreiben will? - wieviele Einträge hat das Feld, schreibe ich über die Grenzen hinaus?, sodaß dieses vorherige Einlesen in ein Array vom Aufwand her auch nicht mehr ins Gewicht fällt.
Wenn das nicht beachtet wird, würde ich auf eine Veröffentlichung tunlichst verzichten.

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz