Autor Thema: Link einfügen  (Gelesen 2106 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