Hallo,
ich habe ein berechnetes Feld (Mehrfachwerte), in welches Namen eingetragen werden (per Button).
Jetzt habe ich ein LS Button, der das Feld durchsuchen soll und den Names des aktullen Notes Users entfernen soll, sofern dieser in der Liste enthalten ist.
Wenn ich mir im Debugger den Ablauf anschaue, ist alles OK, aber im wenn ich mir dann das Ergebis anschaue, steht im Feld ein komischer Wert, die wie folgt aussieht: "튈ǽ튈ǽ퉘ǽ홀Ҹ"
Was ist denn hier kaputt?
Hier der LS Code:
Set nam = New NotesName(s.UserName)
Set item = doc.GetFirstItem("confirmed_worker")
anz = 0
Forall value In item.Values
teilnehmer(item.Values(anz)) = item.Values(anz)
anz = anz + 1
End Forall
If Iselement(teilnehmer(nam.Common)) Then
Erase teilnehmer(nam.Common)
End If
Call doc.ReplaceItemValue("confirmed_worker",teilnehmer)
Call doc.Save(True,False)
teilnehmer ist eine Liste. Soviel ich weiss, kann man Listen nicht in Felder speichern.. das was da bei Dir im Feld landet sind wahrscheinlich Pointer- Adressen oder sonstwas... Du musst Deine Liste erst wieder in ein Array wandeln, bevor Du das einem Feld zuweisen kannst...
Oder Du schreibst den Code so um, dass gar keine Liste verwendet wird...
varTeilnehmer = doc.GetItemValue("confirmed_worker")
varTeilnehmer = FullTrim( replace( varTeilnehmer , nam.Common , "" ) )
call doc.ReplaceItemValue( "confirmed_worker" , varTeilnehmer )
EDIT: Ich habe die Version übersehen: in R5 gab es Replace noch gar nicht...
Dann musst Du doch mit einer For- Schleife durch:
Dim teilnehmerNew() as String
varTeilnehmer = doc.GetItemValue("confirmed_worker")
k = 0
For i = 0 to ubound( varTeilnehmer )
If varTeilnehmer(i) <> nam.Common then
redim preserve teilnehmerNew(k) as String
teilnehmerNew(k) = varTeilnehmer(i)
k = k + 1
End If
Next