Domino 9 und frühere Versionen > Entwicklung

verknüpfung per docid berrechnen

(1/2) > >>

nsm:
hallo leute,

ich habe ein kniffliges problem, da ich leider kein script kann.

ich habe ein feld in dem die DocumentUniqueID eines anderen doc´s errechnet wird.
nun würde ich gerne in ein rtf feld eine verknüpfung per script einfügen lassen.

wer hat einen (ausführlichen) tip für mich?

danke
nsm

Rob Green:
Notes Help:

This script creates a new mail memo. In the Body item of the memo, the script places a link to each document in the Boots folder in the test.nsf database. Each link is followed by a tab, the Subject item of the document being linked to, and a carriage return.
Dim session As New NotesSession
Dim db As New NotesDatabase("", "test.nsf")
Dim view As NotesView
Dim newDoc As NotesDocument
Dim rtitem As NotesRichTextItem
Dim doc As NotesDocument
Set view = db.GetView( "Boots" )

Set newDoc = New NotesDocument( db )
'hier macht Notes das neue Doc "auf"

Set rtitem = New NotesRichTextItem( newDoc, "Body" )
'es erstellt ein Feld namens Body,vom Typ RT

Set doc = view.GetFirstDocument
While Not ( doc Is Nothing )
 Call rtitem.AppendDocLink( doc, db.Title )
'im Body Feld wird ein Doclink erzeugt zum fokussierten Doc (set doc=view.getfirst....), als Kommentar erscheint der Titel der DB, wenn der User später auf den Link gehen würde (schwebend)

 Call rtitem.AddTab( 1 )
 Call rtitem.AppendText( doc.Subject( 0 ) )
 Call rtitem.AddNewLine( 1 )
 Set doc = view.GetNextDocument( doc )
Wend
newDoc.Subject = _
"Here are links to all docs in the Boots folder"
newDoc.SendTo = "Lauri Nodwell"
Call newDoc.Send( False )

Glombi:
Hi,
hier eine Möglichkeit: Das ganze wird im QueryClose gemacht:

'Annahme: Feld mit DocumentUniqueID heisst DocID:

'(Declarations)
DocIsSaved as integer

'PostOpen
DocIsSaved = false

'QuerySave
DocIsSaved = true

'QueryCLose
dim session as NotesSession
dim db as NotesDatabase
dim doc as NotesDocument
dim linkdoc as NotesDocument
dim rtitem as NotesRichTextitem

set doc = Source.Document
set session = New NotesSession
set db  = session.CurrentDatabase

if doc.InsertDocLink(0) <> "1" then

set linkdoc = db.GetDocumentByUNID(doc.DocID(0))


if not linkdoc is nothing then
Set rtitem = New NotesRichTextItem( doc, "Body" )
call rtitem.AppendDocLink(doc,"")
doc.InsertDocLink = "1"
call doc.Save(false,true,true)
end if

end if

####################

Du solltest dann noch das Feld InsertDocLink - Bearbeitbar, versteckt mit Vorgabewert "0" in die Maske bauen. Dieses Feld triggert dann, ob der Doklink eingesetzt werden soll.
Im QueryClose ist das sinnvoll, da Änderungen an RT Items erst nach dem Speichern und Neuladen sichtbar werden.

Gruß
Andreas

nsm:
haoo rob green,

danke für den tip, nur will ich kein neues doc erstellen,
sondern das ganze in einem doc ausführen lassen.

genauer gesagt:

ich erstelle frm_auftrag mit einem rtf_link (masken funktion).
in dieser make wähle ich dann einen vertrag dazu aus.
nun wird in feld  A die vertragsnummer und in feld B
die eindeutige id (berrechnet auf grundlage von A)
eingetragen.

nun erstelle ich einen einsatz auf grundlage des auftrags.
dem einsatz wird wieder ein link zum auftrag automatisch
über die maskenfunktion eingefügt.

ims feld C wird die vertragsnummerID aus frm_auftrag übergeben.

nun wollte ich einen link von einsatz zum vertrag.

danke nsm

nsm:
hallo andreas,

ich habe das script eingebaut.
es wird mri auch ein doclink erstellt, allerdings verweist
der auf das aktuelle doc und nicht auf den vertrag

dank nsm

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln