Autor Thema: Link einfügen  (Gelesen 2158 mal)

LuCypher

  • Gast
Link einfügen
« am: 04.05.05 - 13:46:46 »
Hallo

Mein Problem ist folgendes:

Ich soll für einen Kunden eine Anwendung erstellen über die er auf andere Datensätze zugreifen kann.
Diese sollen aber, wegen der Grösse, nicht im Notes-Dokument gespeichert werden, sondern dort nur als Link vom Benutzer eingetragen werden.
Bei jeder Möglichkeit die mir bis jetzt eingefallen ist, wird entweder das Zielobjekt doch im Notesdokument gespeichert oder es gibt keinen Benutzerdialog über den der Endanwender dann die Links selber eintragen kann.

Vielen Dank schonmal

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Link einfügen
« Antwort #1 am: 04.05.05 - 13:52:06 »
Willkommen im Forum, Lichtträger ...  ;)

Standarddialog für so etwas gibt es tatsächlich nicht, es sei denn, der Endbenutzer trägt seine Links vollständig "von Hand" ein (über Erstellen, Hotspot). Um Dir einen Lösungsweg aufzuzeigen, brauchen wir aber mehr Informationen: Was sind das für Datensätze und wo liegen die (Applikation und/oder Dateityp und/oder Speicherort).
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

LuCypher

  • Gast
Re: Link einfügen
« Antwort #2 am: 04.05.05 - 15:01:20 »
Handelt sich um grössere ASCII-Dateien und Firmeninteren Formate, die im Haus auf einem Server liegen. Um Fehler auszuschliessen, ist die händische Eingabe und Umwandlung in einen Hotspot nicht unbedingt das beste. Dachte da eher an sowas wie den "Datei öffnen"-Dialog, der dann den Pfad hinterlässt.

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Link einfügen
« Antwort #3 am: 04.05.05 - 20:33:28 »
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


LuCypher

  • Gast
Re: Link einfügen
« Antwort #4 am: 09.05.05 - 09:27:28 »
Danke für den Verweis auf den anderen Topic... wäre genau das was ich brauche. Nur leider geht der Link mit dem Beispiel nicht mehr (Nicht verwunderlich nach 2 Jahren)

Jemand aus der Firma hat mir aber ein Script geschickt mit dem ich über den Standard-Windows-Datei-öffnen-Dialog den Pfad als String zurückgeben kann:

Code
Declarations
Const BIF_RETURNONLYFSDIRS = 1
Const BIF_DONTGOBELOWDOMAIN = 2
        Const BIF_BROWSEINCLUDEFILES  = &H4000
Const MAX_PATH = 260
Private Type BrowseInfo
hWndOwner      As Long
pIDLRoot       As Long
pszDisplayName As Long
lpszTitle      As String
ulflags        As Long
lpfnCallback   As Long
lParam         As Long
iImage         As Long
End Type
Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
Declare Function SHGetPathFromIDList Lib "shell32" (Byval pidList As Long, Byval lpBuffer As String) As Long
Sub get_folder(filepath As String)
Dim lpIDList As Long
Dim sBuffer As String *260
Dim szTitle As String
Dim temp As String
Dim endpath As String
Dim tBrowseInfo As BrowseInfo
tbrowseinfo.lpszTitle = "Bitte den Zielordner wählen"
tBrowseInfo.ulflags = BIF_BROWSEINCLUDEFILES
lpIDList = SHBrowseForFolder(tBrowseInfo)
If (lpIDList) Then
SHGetPathFromIDList lpIDList, sBuffer
temp = Left(sBuffer, Instr(sBuffer, Chr(0)) - 1)
endpath = "\"
filepath$ = temp
If Not Right$(filepath$,1) = endpath Then
filepath$ = temp + endpath
End If
Else
End
End If
End Sub

Aufruf dann über

Code
Call get_folder(filepath$)

Ich hoff das tut dann das was ich will ;)

LuCypher

  • Gast
Re: Link einfügen
« Antwort #5 am: 09.05.05 - 10:18:32 »
Es tut....


...aber doch nicht so ganz!

Vielleicht fehlt mir einfach die Erfahrung oder ich stell mich heute einfach nur blöd an:

Ich hab das ganze jetzt in eine Aktion gepackt. Er holt sich auch den Pfad  richtig.... nur wie bekomm ich den Pfad aus der variable filepath$ die ich über die Call-Anweisung bekomm in ein Textfeld?

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Link einfügen
« Antwort #6 am: 09.05.05 - 11:15:03 »
FieldSetText Methode
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

LuCypher

  • Gast
Re: Link einfügen
« Antwort #7 am: 10.05.05 - 12:03:01 »
Ok.... meine Lösung:

Declarations:
Code
Const BIF_DONTGOBELOWDOMAIN = 2
Const BIF_RETURNONLYFSDIRS = 1
Const BIF_BROWSEINCLUDEFILES  = &H4000
Const MAX_PATH = 260
Private Type BrowseInfo
hWndOwner      As Long
pIDLRoot       As Long
pszDisplayName As Long
lpszTitle      As String
ulflags        As Long
lpfnCallback   As Long
lParam         As Long
iImage         As Long
End Type
Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
Declare Function SHGetPathFromIDList Lib "shell32" (Byval pidList As Long, Byval lpBuffer As String) As Long

Get Folder Klasse

Code
Sub get_folder(filepath As String)
Dim lpIDList As Long
Dim sBuffer As String *260
Dim szTitle As String
Dim temp As String
Dim endpath As String
Dim tBrowseInfo As BrowseInfo
tbrowseinfo.lpszTitle = "Bitte den Zielordner wählen"
tBrowseInfo.ulflags = BIF_BROWSEINCLUDEFILES
lpIDList = SHBrowseForFolder(tBrowseInfo)
If (lpIDList) Then
SHGetPathFromIDList lpIDList, sBuffer
temp = Left(sBuffer, Instr(sBuffer, Chr(0)) - 1)
endpath = "\"
filepath$ = temp
If Not Right$(filepath$,1) = endpath Then
filepath$ = temp + endpath
End If
Else
End
End If
End Sub

Und das auslösende Click-Event

Code
Sub Click(Source As Button)
Dim workspace As New NotesUIWorkspace
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim item As NotesItem
Dim doc As NotesDocument
Set uidoc = ws.CurrentDocument
Set doc = uidoc.Document
filepath$ = ""
Call get_folder(filepath$)
Set item = doc.GetFirstItem("txtSAV")
item.AppendToTextList(filepath$)
uidoc.FieldSetText "txtSAV",item.Text
Call uidoc.Refresh
End Sub

Das ganze wird dann in ein Textfeld geschrieben und dort als Mehrfachwert behandelt.

Ist es möglich, direkt bei der Eingabe des Pfades diesen in einen Link umzuwandeln der auf die entsprechende Adresse verweist?

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz