Autor Thema: NotesItem.Values  (Gelesen 3270 mal)

Offline stitze

  • Aktives Mitglied
  • ***
  • Beiträge: 226
  • Geschlecht: Männlich
    • kleisterbande
NotesItem.Values
« am: 16.03.05 - 10:44:09 »
Moin,

also folgende Sachlage:

Ich habe in einer Maske ein verstecktes Feld, in welchem Mehrfachwerte zugelassen sind, in dem speicher ich Daten in folgender Form ab

[String]~~~[String]
[String]~~~[String]
usw...

Jetzt möchte ich diese Daten verarbeiten und habe mir deshalb eine NotesItem Objekt deklariert

Dim item As NotesItem
Set item = NotesDocument.GetFirstItem( "ItemName" )

Dann wollte ich die Daten über folgende Methode durchlaufen und verarbeiten

Forall v In item.Values
     'Verarbeitung
End Forall

Jedoch bekomme ich nicht jeden einzelnen Wert in v zurück sondern ein Variant mit allen Werte, das ist aber nicht das was ich möchte, ich möchte jeden Datensatz einzelnd verarbeiten.

Was hab ihc falsch gemacht, wo steckt der Fehler?

Mit freundlichen Grüßen

stitze
When i loaded my cap gun , i'm ready for action.

Saying that Java is nice because it works on all OS's is like saying anal sex is nice because it works on all genders.

klaussal

  • Gast
Re: NotesItem.Values
« Antwort #1 am: 16.03.05 - 10:49:05 »
Mehrfachwerte werden nicht durch "~" getrennt.

Offline stitze

  • Aktives Mitglied
  • ***
  • Beiträge: 226
  • Geschlecht: Männlich
    • kleisterbande
Re: NotesItem.Values
« Antwort #2 am: 16.03.05 - 10:50:49 »
Die drei tilden Trennen auch nicht die Mehrfachwerte, sondern den Datensatz an sich.

Also im konkreter zu werden

[Bezeichnung]~~~[Nummer]
usw...
When i loaded my cap gun , i'm ready for action.

Saying that Java is nice because it works on all OS's is like saying anal sex is nice because it works on all genders.

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: NotesItem.Values
« Antwort #3 am: 16.03.05 - 10:54:38 »
Hi,

versuch's mal damit.

Code
Function Word (sourceString As String, separator As String, number As Integer) As String

searchString$=SourceString & separator 'add one separator to catch also the last substring

For i% = 1 To number
pos%=Instr(searchString$, separator)
If pos%=0 Then Exit For
substring$=Left(searchString$,pos%-1)
searchString$=Mid(searchString$, pos%+1)
Next

If pos% > 0 Then
Word=substring$
Else
Word=""
End If

End Function



Forall v In item.Values
     'Verarbeitung
     Wert1 = Word(Cstr(v(0)), "~~~",1)
     Wert2 = Word(Cstr(v(0)), "~~~",2)
End Forall


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re: NotesItem.Values
« Antwort #4 am: 16.03.05 - 10:58:23 »
Ich würde nicht die Symptome bekämpfen, sondern die Ursache :)

Warum speicherst du in einem Feld, dass Mehrfachwerte zulässt,
mehrere Werte in einem?

*edit*
oh, hab ich missverstanden. hab deine weiterführende Erklärung erst jetzt gelesen. Überlest einfach mein Zeug.
« Letzte Änderung: 16.03.05 - 11:00:08 von Thomas Völk »
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline stitze

  • Aktives Mitglied
  • ***
  • Beiträge: 226
  • Geschlecht: Männlich
    • kleisterbande
Re: NotesItem.Values
« Antwort #5 am: 16.03.05 - 10:59:47 »
Mh, ja das würde funktionieren, thx, aber ich würde das ja lieber über eine Notes Funktion machen. Wie unterscheidet Notes denn dann Mehrfachwerte von normalen Feldern, wenn nicht jeder Wert in nem "v" zurückgegeben wird. Das ist irgendwie unlogisch  ???
When i loaded my cap gun , i'm ready for action.

Saying that Java is nice because it works on all OS's is like saying anal sex is nice because it works on all genders.

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: NotesItem.Values
« Antwort #6 am: 16.03.05 - 11:00:45 »
Ich würde nicht die Symptome bekämpfen, sondern die Ursache :)

Warum speicherst du in einem Feld, dass Mehrfachwerte zulässt,
mehrere Werte in einem?

Für bestimmte Probleme brauchst du manchmal solche Stunts. Ich das selbst schon so gemacht.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline stitze

  • Aktives Mitglied
  • ***
  • Beiträge: 226
  • Geschlecht: Männlich
    • kleisterbande
Re: NotesItem.Values
« Antwort #7 am: 16.03.05 - 11:01:53 »
zu Thomas:

weil ich ne Tabelle dynamisch erzeugen möchte und mir da irgendwie helfen muss und so wollte ich jede zeile sozusagen in einem mehrfachwert speichern und jeden spaltenwert halt mit ~~~ getrennt speichern, und darin sehe ich auch nicht das problem, das problem ist, wie eben schon gesagt das es sowas wie mehrfachwerte gibt ich die aber nicht vernünftig druchlaufen kann.
When i loaded my cap gun , i'm ready for action.

Saying that Java is nice because it works on all OS's is like saying anal sex is nice because it works on all genders.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: NotesItem.Values
« Antwort #8 am: 16.03.05 - 11:04:35 »
Dim vValue As Variant
Dim iLoop As Integer

vValue = NotesDocument.ItemName

For iLoop = 0 to Ubound (vValue)
    'Verarbeitung
Next

HTH,
Bernhard

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: NotesItem.Values
« Antwort #9 am: 16.03.05 - 11:37:41 »
Ich bin da doch dafür, dass man mal die Ursachen untersucht und nicht das Symptom umgeht. Schliesslich soll es sich ja um ein Feld mit Mehrfachwerten handeln, und da funktioniert die Sache mit dem Forall perfekt. Sprich, offensichtlich werden die Daten nicht als Multivalue, sondern als Singlevalue abgespeichert. Da wir aber davon nicht wissen, wie das tatsächlich gemacht wird, geht die Frage an den Autor zurück, wie wird denn das Feld befüllt?
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: NotesItem.Values
« Antwort #10 am: 16.03.05 - 11:43:43 »
Mh, ja das würde funktionieren, thx, aber ich würde das ja lieber über eine Notes Funktion machen. Wie unterscheidet Notes denn dann Mehrfachwerte von normalen Feldern, wenn nicht jeder Wert in nem "v" zurückgegeben wird. Das ist irgendwie unlogisch  ???

Wieso ist das unlogisch.

Klauss hat es ja schon geschrieben, [Bezeichnung]~~~[Nummer] das ist kein Mehrfachwert.

Wenn du die Option Mehrfachwerte zulassen für ein Feld setzt, kann du noch auswählen, wie die Mehrfachwerte getrennt werden, z.B. mit Semikolon, Komma usw.

Das wäre der Feldinhalt bei der Option Mehrfachwerte zulassen:
 
[Bezeichnung1]~~~[Nummer1]; [Bezeichnung2]~~~[Nummer2]; [Bezeichnung3]~~~[Nummer3]

Bei einer ForAll-Schleife würde v dir  bei den Durchläufen jeweils die entsprechenden Werte liefern.

1. Durchlauf -> [Bezeichnung1]~~~[Nummer1]
2. Durchlauf -> [Bezeichnung2]~~~[Nummer2]
3. Durchlauf -> [Bezeichnung3]~~~[Nummer3]

Die Trennung von Bezeicnung und Nummer musst du dann selbst machen, z.B. mit der Funktion Word.

Ich hoffe es ist jetzt etwas klarer geworden.


Axel



« Letzte Änderung: 16.03.05 - 12:19:11 von Axel »
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: NotesItem.Values
« Antwort #11 am: 16.03.05 - 11:50:19 »
Dazu noch ein paar Hintergrundinformationen:

Das Trennzeichen für Mehrfachwerte, das bei der Felddefinition bestimmt wird, gilt nur für Eingabe und Anzeige (und lässt sich dort ja sogar getrennt einstellen).

Sobald man auf das Item zugreift, werden einem die Mehrfachwerte als Array zurückgegeben und das eingestellte Trennzeichen ist nicht nur irrelevant, sondern sogar von LS aus nicht einmal zu bestimmen.

Was hier versucht wird, ist ein zweidimensionales Array in einem eindimensionalen zu speichern. Offensichtlich ist aber schon das misslungen und der Array hat 0 Dimensionen (bzw. kommt als Skalar zurück). Daher auch meine Frage, wie wurde das Feld/Item denn überhaupt befüllt, denn offensichtlich stimmt schon der Inhalt des Feldes nicht mit der Beschreibung überein.


*edit, um den Zusammenhang korrekt zu wahren
« Letzte Änderung: 16.03.05 - 13:16:28 von Semeaphoros »
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: NotesItem.Values
« Antwort #12 am: 16.03.05 - 12:21:03 »
Hi,

stimmt. War etwas missverständlich.

Ich hab's versucht etwas deutlicher zu machen.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: NotesItem.Values
« Antwort #13 am: 16.03.05 - 12:28:57 »
Danke Axel, die jetzige Version ist klar und mit dem Beispiel eigentlich nicht mehr falsch zu verstehen.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline stitze

  • Aktives Mitglied
  • ***
  • Beiträge: 226
  • Geschlecht: Männlich
    • kleisterbande
Re: NotesItem.Values
« Antwort #14 am: 16.03.05 - 13:40:00 »
Also ich habe die Daten nun erstmal per Hand eingegeben, heisst

String~~~String Enter
String~~~String Enter
usw...

Ich persönlich hab das Problem nun gelöst indem ich den Wert einfach nach Chr(13) + Chr(10) durchlaufe und mit die entsprechenden Werte mit Mid rauschneide und verarbeite.
Jedoch wurde ja oben beschrieben, dass es wahrscheinlich daran liegt, das die werte als single values gespeichert werden, klingt logisch und dürfte dann wohl auch die antwort auf meine frage sein.
Liegt das an der Handeingabe oder worauf muss ich da achten?
When i loaded my cap gun , i'm ready for action.

Saying that Java is nice because it works on all OS's is like saying anal sex is nice because it works on all genders.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: NotesItem.Values
« Antwort #15 am: 16.03.05 - 13:44:52 »
Es ist eindeutig kein Multi value. Hast Du den Haken gesetzt bei "Mehrfachwerte erlauben" ? Ist ENTER als Trennzeichen für die Eingabe angehakt ?

Ab gesehen davon: Tu kannst doch einfach herausfinden, ob es ein skalarer Wert oder eine Liste ist. In den Document properties steht bei diesem Feld entweder Text oder Textliste ...

Bernhard

PS: Insofern war mein Posting oben auch vertrottelt - es ist ja nur ein anderer Weg als Forall gewesen.
« Letzte Änderung: 16.03.05 - 13:47:37 von koehlerbv »

Offline stitze

  • Aktives Mitglied
  • ***
  • Beiträge: 226
  • Geschlecht: Männlich
    • kleisterbande
Re: NotesItem.Values
« Antwort #16 am: 16.03.05 - 13:53:37 »
Also der Datentyp ist eine Textliste, ich habe auch Mehrfachwerte in den Feldeigenschaften angekreuzt.
Mh, ich denke es lag daran, das ich Enter nicht als Feldtrennzeichen gesetzt habe, mh, naja woher sollte ich Boon das auch wissen  ;)

Danke das war die Antwort auf die ich den ganzen Morgen schon gewartet habe, meiner Meinung ging dahingegen auch die Frage, ärgerlich nur das ich den ganzen Morgen jetzt damit verbracht habe einen anderen weg zu finden, aber egal war ja alles nett gemeint, danke erstmal  ;D
When i loaded my cap gun , i'm ready for action.

Saying that Java is nice because it works on all OS's is like saying anal sex is nice because it works on all genders.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: NotesItem.Values
« Antwort #17 am: 16.03.05 - 13:57:59 »
Danke das war die Antwort auf die ich den ganzen Morgen schon gewartet habe ...

Genau das hatten aber Axel und Jens bereits explizit geschrieben ...

Bernhard

Offline stitze

  • Aktives Mitglied
  • ***
  • Beiträge: 226
  • Geschlecht: Männlich
    • kleisterbande
Re: NotesItem.Values
« Antwort #18 am: 16.03.05 - 14:20:14 »
Joa schon richtig, jedoch habe ich den Zusammenhang nicht gleich erkannt wie ich es verwenden sollte, ich würd sagen aneinander vorbei geredet. ::)
When i loaded my cap gun , i'm ready for action.

Saying that Java is nice because it works on all OS's is like saying anal sex is nice because it works on all genders.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz