Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: adminnaddel am 25.03.03 - 14:52:50

Titel: Schaltfläche zum HelpAboutDocument zwecksentfremden..
Beitrag 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
Titel: Re:Schaltfläche zum HelpAboutDocument zwecksentfremden..
Beitrag von: ata am 25.03.03 - 15:01:26
... 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
Titel: Re:Schaltfläche zum HelpAboutDocument zwecksentfremden..
Beitrag von: adminnaddel am 25.03.03 - 15:04:17
@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
Titel: Re:Schaltfläche zum HelpAboutDocument zwecksentfremden..
Beitrag von: ata am 25.03.03 - 15:07:29
... es gibt keinen Grund warum nicht - probier einfach aus - try & error ist oft der schnellste Weg - bevor man sich mit Theorie aufhält...

ata
Titel: Re:Schaltfläche zum HelpAboutDocument zwecksentfremden..
Beitrag von: adminnaddel am 25.03.03 - 15:23:40
@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
Titel: Re:Schaltfläche zum HelpAboutDocument zwecksentfremden..
Beitrag von: adminnaddel am 25.03.03 - 15:57:37
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
Titel: Re:Schaltfläche zum HelpAboutDocument zwecksentfremden..
Beitrag von: ata am 25.03.03 - 18:53:48
... 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