Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: adminnaddel am 25.03.03 - 14:52:50
-
Hallo liebe gemeinde,
ich weiß gar nicht so richtig wie ich das Problem beschreiben kann und soll, deshalb fange ich jetzt mal einfach an.
Schon einmal hat ich mich fürchterlich mit dem Problem der HelpAboutDocuments anderer Db rumgeschlagen. Aber der erfolg gab recht.
Nun muß das Script ein bisschen umgeschrieben werden, aber wie?
Bisher war die Funktion, daß man eine Schaltfläche betätigt hat, welche eine Variable mit Server und Path der NSF in die Notesini geschrieben hat. Gleichzeitig wurde ein Script gestartet welches sich genau die Angaben holte und mir das AboutDocument über eine kleine Umleitung in einer Form präsentierte.
Jetzt aber gibt es keine Variable die sich das Script ziehen kann.
Doch dafür aber hat jedes Dokument, von wo übrigens auch jetzt die Schaltfläche betätigt wird, ein Feld Servernamen, ein Feld Pathnamen, ReplId...und so weiter.
Damit kann man doch bstimmt etwas anfangen, oder.
Ich denke da so an Path und Server statt aus der Notesini aus den gefüllten Feldern der Doc. Das muß doch klappen, glaube ich zumindestens.
Ich stelle mal das Original Script zur Verfügung und vielleicht kann mir ja einer weiterhelfen, in welchen Bereichen ich die Werte aus den Felder einsetzen muß und vor allem, wie :'(
Dim session As New notessession
Dim uiws As New notesuiworkspace
Dim uidoc As notesuidocument
Dim ndb As notesdatabase
Dim aboutdoc As notesdocument
Dim aboutbody As notesitem
Dim database As notesdatabase
Dim mydoc As notesdocument
' Meine aktuelle Datenbank
Set database = session.CurrentDatabase
' Notes-INI-Variable mit dem Namen der DB
db = session.GetEnvironmentString("HRMPortal")
' Gewählte DB holen
Set ndb = New NotesDatabase("lnmvs403",db)
' About-Dokument holen
If ndb Is Nothing Then
Set aboutdoc = Nothing
Else
Set aboutdoc = ndb.getdocumentbyid("FFFF0002")
End If
' Neues Dokument für die Anzeige
Set mydoc = New NotesDocument(database)
' Maske und Überschrift
mydoc.Form = "About"
mydoc.DB = db
mydoc.Server = "lnmvs403"
' Inhalt
If aboutdoc Is Nothing Then
mydoc.BodyN = "Über diese Datenbank ist nichts bekannt !"
Else
Set aboutbody = aboutdoc.GetFirstItem("$BODY")
Call aboutbody.CopyItemToDocument(mydoc,"Body")
End If
' Sichern
Call mydoc.save(True,True)
' Anzeigen
Call uiws.SetTargetFrame("Main")
Set uidoc = uiws.EditDocument( False,mydoc,True)
' Müll
Call mydoc.remove(True)
Grüße an alle da draußen
-
... nach der Initialisierung des Body-Item würde ich noch dessen Existenz sicherstellen, und das es vom Typ RichText ist...
... kann es sein, daß du beim Remove von MyDoc Probleme hast? Du versuchst das instanzierte Dokument im Backend zu löschen...
ata
-
@ata
ne, keine Problems...alles wunderbar! Funktionieren tut die Sache Prima, doch nur wenn man halt ein paar Variablen mitschickt, die mir nun so nicht mehr zur Verfügung stehen.
Kann man den mit Script nur einen Wert nur aus einem RichTextField auslesen, oder geht das auch mit anderen Feldern?
Grüße
-
... es gibt keinen Grund warum nicht - probier einfach aus - try & error ist oft der schnellste Weg - bevor man sich mit Theorie aufhält...
ata
-
@Ata und @All
ich wußte ich werde nicht verstanden. :-\
Ja wie soll ich den Anfangen, weiß gar nicht wie ich den Path aus dem Documentenfeld auslesen kann?
Grüße
-
ich möchte meinen Ausführungen noch mal entgegen kommen.
ich denke mit dem Ansatz:
textValue$ = notesUIDocument.FieldGetText( [ fieldName$ ] )
könnte ich mir doch die Variable zum umsetzen aus dem Feld holen, oder?
Grüße
-
... um Werte aus einem Dokument zu lesen versuche ich die Methode von dir nach Möglichkeit zu vermeiden. Wenn es irgendwie geht verwende ich die Backend-Klasse, un da gibt es dann verschiedene Ansätze...
Dim vValue As Variant
' # Einlesen in ein Array
vValue = doc.Feldname
' # oder...
vValue = doc.GetItemValue("Feldname")
' # => vValue(0) enthält den ersten Wert...
... es gibt noch die NotesITem-Klasse, mit der man ebenso noch Werte auslesen kann...
... in der Notes-Hilfe findest du alles erforderliche
ata