Nein kein Profildokument. Es handelt sich um ein Personendokument aus einem Persönlichen Adressbuch das auf dem Server liegt.
Hab vom Kollegen eben den Beispiel Code bekommen
//DB is the Database where we save these Documents
Doc := Unassigned;
Doc := DB.getDocumentByUnid('unsere unid');
x:= 0;
Item := Unassigned;
Item := Doc.GetFirstItem('Categories');
vCategories := Item.Values;
while ((length(vCategories) > x) and (VarToStr(Doc.GetItemValue('LastName')[0]) = 'Mustermann')) do begin
if(vCategories[x] = 'Newsletter') then
vNewsletter := 'Newsletter'
x := x+1;
end;
if((AnsiContainsStr(vNewsletter, 'Newsletter')) and (qryAnpa.FieldByName('KATEGORIE').AsString <> 'Newsletter')) then begin
Doc.Categories := '';
x := 0;
while (length(vCategories) > x) do begin
if(vCategories[x] <> 'Newsletter') then
Item.AppendToTextList(vCategories[x]);
Inc(x);
end;
end
else if ((not AnsiContainsStr(vNewsletter, 'Newsletter')) and (qryAnpa.FieldByName('KATEGORIE').AsString = 'Newsletter')) then begin
Item := Doc.GetFirstItem('Categories');
Item.AppendToTextList('Newsletter');
end;
if(not Doc.Save(False, False)) then // Dokument speichern
raise Exception.Create('Fehler beim Speichern');
Wir wollen einen einfachen Abgleich bauen, sind aber noch am Anfang:
momentan möchten wird das Feld Categories erweitern mit der Kategorie "Newsletter" bzw. wollen wir diese Kategorie auch entfernen können. Das funktioniert auch wunderbar, nur wenn ich jetzt beispielsweise dieses Dokument danach mit Notes bearbeite, sprich die Kategorieen wieder veränder und das Dok speichere und mein Kollege startet das Programm wieder, bekommt er nur die werte des ersten Durchlaufs.
Edit:
Das Dokument im Notes hat wenn ich es im Notes prüfe die aktuellen werte die ich ihm gegeben habe.