Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: geissbock am 29.07.04 - 11:40:53
-
Hallo,
hab hier die Verantwortung für eine DB übernommen in der ein Richtext-Feld zur Aufnahme von massenweise Text und Attachments missbraucht wurde. Nun legt Notes ja intern, wohl ab einer gewissen Größe, mehrere Richtextfelder gleichen Namens in dem Dokument an. Jetzt kommt was kommen musste: In dem Feld sollen nun wieder manche Sachen editiert werden. Lesen ist ja noch kein Problem, da zeigt Notes ja alles an, aber editieren lässt sich scheinbar nur das erste Feld der vielen gleichnamigen. Jemand ne Idee, wie ich den ganzen Klumpatsch aus dem Feld wieder raus bekomme?
Thanx
geissbock
-
Das habe ich jetzt nicht ganz verstanden was Du schreibst.
Notes-intern erzeugt Notes bei Attachments $File-Items. Sollte Dich aber in der Regel nicht interessieren, denn es gibt ja wohl nur ein Attachment-Feld mit gleichem Namen, und darauf kannst Du programmatisch zugreifen.
Was genau willst Du machen?
Du schreibst:
Jetzt kommt was kommen musste, in dem Feld sollen nun wieder manche Sachen editiert werden. Lesen ist ja noch kein Problem, da zeigt Notes ja alles an, aber editieren lässt sich scheinbar nur das erste Feld der vielen gleichnamigen.
Was meinst Du damit?
Du hast doch nur 1 Richtextfeld oder?
-
Hallo,
nein eben nicht! In den Eigensschaften des Dokuments taucht das Richtextfeld x-mal mit unterschiedlichem Inhalt auf. Hab jetzt auch den Code gefunden, über den die Sachen da reingeschrieben wurden. Häng ich unten mal an. Demnach soll er doch den Inhalt in dem Feld fd_searches anhängen. Aber eben dieses Feld gibt es laut den Dokumenteneigenschaften in den Dokumenten mehrfach mit unterschiedlichem Inhalt und ich komm editiermässig nur an den Inhalt des ersten Feldes dran. Scheinabr legt Notes ein neues Feld gleichen Namens an, wenn der Inhalt des ersten eine gewisse Größe überschrietet. Hab ich schon mal irgendwo gelesen, aber wie kommt man an die Sachen wieder ran. Hoffe, ich hab mich jetzt etwas klarer ausgedrückt und irgendwer weiß Rat.
Danke und hier der Import-Code:
Sub Initialize
Dim session As New NotesSession
Dim workspace As New NotesUIWorkspace
Dim maildb As NotesDatabase
Dim projectdb As New NotesDatabase ("","")
Dim collection As NotesDocumentCollection
Dim uidoc As NotesUIDocument
Dim projectdoc As Notesdocument
Dim maildoc As Notesdocument
Dim rtitemmail As Variant
Dim rtitemproject As Variant
Set maildb=session.CurrentDatabase
Set projectdb = New Notesdatabase( "Server","DB.nsf" )
Set uidoc = workspace.CurrentDocument
If uidoc.EditMode = True Then
Call uidoc.save
End If
Set maildoc = uidoc.Document
Set rtitemmail = maildoc.GetFirstItem("Body")
Set collection = workspace.PickListCollection(1, True,_
"Server","DB.nsf","all_num","My Dialog", _
"Please select a document.")
Set projectdoc = collection.GetFirstDocument
pj=projectdoc.fd_pnr
Set rtitemproject = projectdoc.GetFirstItem( "fd_searches" )
If ( rtitemmail.Type = RICHTEXT And _
rtitemproject.Type = RICHTEXT ) Then
Call rtitemproject.AddNewLine(1)
Call rtitemproject.AppendRTItem( rtitemmail )
Call projectdoc.Save(False, True)
End If
Msgbox "Recherche erfolgreich an Projekt "+ Cstr(pj(0)) + " angehängt."
End Sub
-
Das mit den mehrfachen Richtextfeldern gibt es anscheinend auch woanders. Auch dort noch keine Lösung.
http://www.atnotes.de/index.php?board=7;action=display;threadid=17262
Ciao
Don Pasquale
-
Mal zur Begriffsreinheit: In beiden Threads wird das Wort "Feld" verwirrlich falsch verwendet.
Es gibt in jedem Falle nur ein einziges RT-Feld gleichen Namens, nämlich in der entsprechenden Maske.
Im Dokument werden dann bei "Datenüberlauf" mehrere Richtext-Items angelegt. Normalerweise passiert das für den User völlig transparent, sprich man merkt davon nix. Im per Maske angezeigten Dokument erscheint immer noch nur ein Feld und das kann sowohl angezeigt wie auch in seiner Gänze editiert werden. Wenn dem nicht so ist, liegt ein Fehler oder ein bestechliches (korruptes) Dokument vor.
Geissbock: kannst Du mal erzählen, wie es sich äussert, dass man scheinbar nur einen Teil des RT-Inhaltes editieren kann?
Beim andern Thread ist es ja offensichtlich so, dass es im Notes-Client geht hingegen im Browser nicht.
-
Hallo,
danke für die Begriffsklarstellung, hast Du natürlich vollkommen recht mit. Ist auch alles richtig, Sehe den gesamten Inhalt des Feldes sowohl im Lese- als auch im Editiermodus. Wenn ich jedoch in dem Feld etwas ändern möchte, kann ich das nur in dem Inhalt des ersten Items, wie ich den Dokumenteigenschaften entnommen hab. Sobald ich weiter unten im Feld und damit in einem der späteren Icons editieren möchte. verabschiedet sich Notes ohne Fehlermeldung. Nur keine Rückmeldung mehr. Gibts per Script die Möglichkeit die verschiedenen Items auzulesen und meinetwegen in mehrere Dokumente oder ein Dokument mit mehreren Richtextfeldern zu pasten, damit ich an den Inhalt wieder ran komme?
Thanx noch mal
Geissbock
-
Keine Ahnung, ob es da Möglichkeiten zum Flicken gibt. Manchmal hilft ein Kopieren des Dokumentes in ein neues. Was Du hier beschreibst, sieht nach Datenbestechlichkeit aus .......
-
???
Na da scheint ja guter Rat teuer zu sein. Das mit dem Kopieren hab ich schon versucht, hat nix gebracht. Un irgendwie betrifft das alle Dokumente der Datenbank, scheint also eher doch ein systematisches Problem zu sein, wenn man so viel Kram in ein Richtextfeld packt. Na dann versuch ich mal mit nem Script die Sachen anzupacken, aml sehen was passiert.
-
Je mehr man reinpackt, desto grösser die Chance, dass es schief geht, vorallem wenn dann noch OLE und Bilder und so zeugs eine Rolle spielt. Aber vielleicht ist ja die Maske korrupt, erstell doch die mal neu (bzw. kopiere sie). Und dann natürlich die üblichen Geschichten, Fixup, Compact, neue Replik, neue Datenbank, Schablone wechseln und zurückwechseln und so