Autor Thema: DocLink im Frontend einfügen nach Auswahl  (Gelesen 4814 mal)

Offline jofa

  • Senior Mitglied
  • ****
  • Beiträge: 265
  • Geschlecht: Männlich
  • try and error !Y!
DocLink im Frontend einfügen nach Auswahl
« am: 04.07.03 - 12:10:30 »
Hi @all,

ich habe folgendes Problem,
ich möchte in einem RichTextFeld einen DocLink zu einem anderen Dokument einfügen. Das Script läuft soweit auch und erzielt im Debugger keinen Fehler und belegt die Felder korrekt, dennoch wird der DocLink nicht gespeichert.

Hier mein Script:

---snip---
Sub Click(Source As Button)
   
   Dim session As New notessession
   Dim db As NotesDatabase
   Set db = session.CurrentDatabase
   
   Dim docUNID As String  
   
   Dim ws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Set uidoc = ws.CurrentDocument 'get the frontend doc
   
   Dim backendDoc As NotesDocument
   Set backendDoc = uidoc.Document 'get the backend doc
   
   Dim rtitem As NotesRichTextItem
   Set rtitem = backendDoc.GetFirstItem( "T_Vert1" )
   
   
   Dim docPick As New NotesDocument( db )
   
   Dim vStringArray As Variant
   Dim tname As String
   Dim vname As NotesItem
   Dim nname As NotesItem
   
   vStringArray = ws.PickListStrings(PICKLIST_CUSTOM, False, db.Server, db.FilePath, "ID", "Vertretung", "Bitte wählen Sie eine Vertretung aus.", 5, "")
   
   tname = Fulltrim(vStringArray(0))
   
'   Set view   = db.GetView("ID")
   
   Set tdoc   = db.GetDocumentByUnId(tname)
   
   Set vname   = tdoc.Getfirstitem("T_Vorname")
   Set nname   = tdoc.Getfirstitem("T_Name")
   
   
   Msgbox tname & ": " & vname.Text & " " & nname.Text
   
   backendDoc.RemoveItem( "T_Vert1" )
   
   Set rtitem = New NotesRichTextItem( backendDoc, "T_Vert1")
   Call rtitem.AppendDocLink( tdoc, vname.Text & " " & nname.Text, vname.Text & " " & nname.Text)
   
   
   Call backendDoc.Save( True, True) ', True )
   
   Call uidoc.Refresh(True)
   
'   Call uidoc.Close
   

End Sub
---snap---

Hat von Euch einer einen Tip ?

Gruss JoFa
--
MAINTANACE FREE ---
Impossible to fix. ;-)
ca. 110 Server unter Win32 und Linux ab 5.0.9a bis R6.5.5dt.
Clients: 5.0.9a, 5.0.10, 5.0.11, 5.0.12, 6.0.1CF1, 6.0.2CF2, 6.5, 6.5.1, 6.5.2, 6.5.3, 6.5.4, 6.5.5, 7.0.

Offline jofa

  • Senior Mitglied
  • ****
  • Beiträge: 265
  • Geschlecht: Männlich
  • try and error !Y!
Re:DocLink im Frontend einfügen nach Auswahl
« Antwort #1 am: 04.07.03 - 12:47:23 »
ich habs:

---snip---
Sub Click(Source As Button)
   
   Dim session As New notessession
   Dim db As NotesDatabase
   Set db = session.CurrentDatabase
   
   Dim docUNID As String  
   
   Dim ws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Set uidoc = ws.CurrentDocument 'get the frontend doc
   
   Dim backendDoc As NotesDocument
   Set backendDoc = uidoc.Document 'get the backend doc
   
   Dim rtitem As NotesRichTextItem
   Set rtitem = backendDoc.GetFirstItem( "T_Vert2" )
   
   
   Dim docPick As New NotesDocument( db )
   
   Dim vStringArray As Variant
   Dim tname As String
   Dim vname As NotesItem
   Dim nname As NotesItem
   
   vStringArray = ws.PickListStrings(PICKLIST_CUSTOM, False, db.Server, db.FilePath, "ID", "Vertretung", "Bitte wählen Sie eine Vertretung aus.", 5, "")
   
   tname = Fulltrim(vStringArray(0))
   
   Set tdoc   = db.GetDocumentByUnId(tname)
   
   Set vname   = tdoc.Getfirstitem("T_Vorname")
   Set nname   = tdoc.Getfirstitem("T_Name")
   
'   Msgbox tname & ": " & vname.Text & " " & nname.Text
   
   backendDoc.RemoveItem( "T_Vert2" )
   
   Set rtitem = New NotesRichTextItem( backendDoc, "T_Vert2")
   Call rtitem.AppendDocLink( tdoc, vname.Text & " " & nname.Text, vname.Text & " " & nname.Text)
   Call backendDoc.Save( True, True) ', True )
   
   backendDoc.saveoptions="0"
   
   Call uidoc.close
   Set uidoc=ws.editdocument(True,backendDoc,False)
   Call uidoc.GotoField("T_Vert2")
   
   
End Sub
---snap---

GRuss JoFa
--
MAINTANACE FREE ---
Impossible to fix. ;-)
ca. 110 Server unter Win32 und Linux ab 5.0.9a bis R6.5.5dt.
Clients: 5.0.9a, 5.0.10, 5.0.11, 5.0.12, 6.0.1CF1, 6.0.2CF2, 6.5, 6.5.1, 6.5.2, 6.5.3, 6.5.4, 6.5.5, 7.0.

Offline cash

  • Aktives Mitglied
  • ***
  • Beiträge: 138
Re: DocLink im Frontend einfügen nach Auswahl
« Antwort #2 am: 17.04.07 - 13:00:35 »
soetwas will ich auch machen... Komme aber garnicht klar.

Ich habe in einer Maske eine Schaltfläche (Picklist) wenn man dort drauf klictk und sich ein Dokument aus der Ansicht ID aussucht wird die Dok_ID aus Spalte 3 per Prompt ausgegeben (vorher in Variabe _ID geschrieben. Wie kriege ich es hin das in der aktuellen Maske durch diese Dok_ID ein DokLink in das Feld DocLink erzeugt wird??

Cash

Offline dirk_2909

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.173
  • Geschlecht: Männlich
  • Expand your Notes Client with ECM functionality..
    • d.velop
Re: DocLink im Frontend einfügen nach Auswahl
« Antwort #3 am: 17.04.07 - 13:12:58 »
Hallo

Wenn in einem Textfeld (!!) ein Dokumentlink angezeigt werden soll, muss in dem Feld die entsprechende DocumentUniqueID gespeichert sein! NICHT als Text!

Tipp:
ab Version 6 kannst Du mit einem @DBLookUp die DocumentUniqueID zurückgeben lassen !

Hinweis:

Bitte keine uralt Threads wieder aufmachen!!!  :-P
Erstelle einen neuen !
Dirk

[IBM CLP R5]
[IBM CAD 6/6.5]
[IBM CAD 7]
[IBM CAD 8]


"Nein!! … Es genügt nicht Mails in einen anderen Ordner oder Datenbank zu verschieben, um sie zu archivieren!"

   
Disclaimer:
Ich Antworte nach besten Wissen und Gewissen. Sollte sich jemand durch meine Antwort persönlich angegriffen fühlen, ist dies nicht meine Absicht!
Ich bin auch nur ein Mensch, der Fehler machen kann. ....

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: DocLink im Frontend einfügen nach Auswahl
« Antwort #4 am: 17.04.07 - 13:53:48 »
So wie es hier beschrieben ist gar nicht. Das funktioniert nämlich nur mit RT Feldern und der unten beschriebenen Umwandlung mit AppendDoclink.

Außerdem ist ein DOCLink ein ganz spezielles Feld vom Typ NoteRef wie sich jeder überzeugen kann der mal mit einem Linksklick auf ein Dokument geht in dem ein berechnetes Feld mit @DocumentUniqueID drinsteht.

Das lässt sich auch mit keinem Tool bearbeiten. Weder mit ScanEz von Ytria noch mit NoteMan.

Aber was man mit dem Feld machen kann ist es als NotesItem in ein anderes Feld hineinzukopieren.
Also ist die Vorgehensweise diese:
Im Ursprungsdokument ein berechnetes Feld Link2Myself haben das schlicht und einfach nur die @DocumentUniqueID empfängt.
Und dann bei der Übergabe ein copyitem.
Fertig ist die Laube.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline dirk_2909

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.173
  • Geschlecht: Männlich
  • Expand your Notes Client with ECM functionality..
    • d.velop
Re: DocLink im Frontend einfügen nach Auswahl
« Antwort #5 am: 17.04.07 - 14:19:38 »
Zitat
So wie es hier beschrieben ist gar nicht.

Dem kann ich nicht zustimmen!

Wenn man in einem normalen Textfeld eine UniversalID speichert, dann wird im UI in dem Feld eine Dokumentverknüpfung zu dem Dokument mit der entsprechenden UNID angezeigt !!

Wie das jetzt in dem speziellen Fall umgesetzt werden kann/sollte muss der Entwickler entscheiden.

Ein Beispiel:
Eine Maske vom Typ "Dokument" mit berechneten Textfeld "LinklDocID" - Formel: @DocumentUniqueID
Eine Maske vom Typ "Antwort" - dort ein Textfeld (!) berechnet beim Anlegen -> "LinklDocIDMutter" - Formel: LinklDocID ; zusätlich im ANtwortdok. ein TEXTfeld , berechnet zur Anzeige "tmpLinkMutter" Formel: LinklDocIDMutter

Wenn ich mit der Antwortmaske ein Dokument erstelle, wird in dem Feld "tmpLinkMutter" eine Verknüpfung zum Hauptdokument angezeigt.


Dirk

[IBM CLP R5]
[IBM CAD 6/6.5]
[IBM CAD 7]
[IBM CAD 8]


"Nein!! … Es genügt nicht Mails in einen anderen Ordner oder Datenbank zu verschieben, um sie zu archivieren!"

   
Disclaimer:
Ich Antworte nach besten Wissen und Gewissen. Sollte sich jemand durch meine Antwort persönlich angegriffen fühlen, ist dies nicht meine Absicht!
Ich bin auch nur ein Mensch, der Fehler machen kann. ....

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: DocLink im Frontend einfügen nach Auswahl
« Antwort #6 am: 17.04.07 - 14:27:22 »
Und wo ist jetzt der Unterschied zwischen deiner und meiner Lösung Dirk?  ???

Bezogen auf das Script (das nur für RTItems gültig ist) und die Aussage von Cash der das in einem normalen Textfeld haben wollte bleib ich bei meiner Aussage. Das geht so nicht.

Deine Lösung ist richtig für direktes Erstellen mit Vererbung. Aber wenn du dir das was da rauskommt genauer anschaust, dann wirst du feststellen, das deine vererbten Felder eben nicht mehr vom Typ Text sondern vom Typ NoteRef sind.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline dirk_2909

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.173
  • Geschlecht: Männlich
  • Expand your Notes Client with ECM functionality..
    • d.velop
Re: DocLink im Frontend einfügen nach Auswahl
« Antwort #7 am: 17.04.07 - 14:43:34 »
 :(  Thomas Du hast Recht .. habe Dein Posting zu halbherzig gelesen  :'( sorry  :D

Hatte irgendwie noch ein anderen Thread im Kopf  :-:

..Wird Zeit, dass ich das Projekt beende.

Asche über mein Haupt!!!

Zitat
dann wirst du feststellen, das deine vererbten Felder eben nicht mehr vom Typ Text sondern vom Typ NoteRef sind.
..das habe ich festgestellt  ;D
In meinem Posting habe ich den Typ nur so angegeben, wie er auch im Designer angegeben werden kann, und nicht wie er angespeichert wird ..


Sorry nochmal für meine "Halbherzigkeit"


Dirk

[IBM CLP R5]
[IBM CAD 6/6.5]
[IBM CAD 7]
[IBM CAD 8]


"Nein!! … Es genügt nicht Mails in einen anderen Ordner oder Datenbank zu verschieben, um sie zu archivieren!"

   
Disclaimer:
Ich Antworte nach besten Wissen und Gewissen. Sollte sich jemand durch meine Antwort persönlich angegriffen fühlen, ist dies nicht meine Absicht!
Ich bin auch nur ein Mensch, der Fehler machen kann. ....

Offline cash

  • Aktives Mitglied
  • ***
  • Beiträge: 138
Re: DocLink im Frontend einfügen nach Auswahl
« Antwort #8 am: 18.04.07 - 16:23:44 »
es muß ja kein Textfeld sein! Habe mal das Script probiert mit einen Richtextfeld aber da ich mich mit Script eigetlich garnicht auskenne schaffe ich es nicht den o. g. Script anzupassen....


Cash

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz