Link auf Ordner eines Firmeninternen Fileserver

Hallo,
wir arbeiten derzeit noch nicht mit einem angebundenen DMS und würden gerne für manche Projekte und Kunden einen Link zu Ordnern auf unserem Fileserver legen. ISt das möglich aus der Anwendung heraus zu verlinken und wenn ja wie am besten.
Besten Dank.

Hallo Frederik,

ich hoffe da ist was dabei, was gemeint ist.

(1) Speichert den Datensatz in eine *.crmshare Datei ab
(2) Dateiverweis für ein Projekt (hier kannst Du einen Ordner im Filesystem angeben)
(3) Dokumente die man mit einem Projekt verknüpfen kann (Zuordnung von Dateien(Dateiverweisen) in einem Projekt)

Viele Grüße aus dem Saarland

Also ich verstehe die Anfrage so, als soll zu Kontakten und/oder Projekten ein Filesystem-Ordner hinterlegt werden können. Ich würde das so machen:

Der Ansicht „Projekte“ ein Zeichenfeld der Länge 256 vom Typ „Zeichen“ hinzufügen und es „Path“ nennen (und als Alias „Pfad“). Dann das Feld in der Projekte-Eingabemaske wo platzieren. Dann dahinter zwei Schaltflächen vom Typ „Script-Direkt“.

Schaltfläche 1 bekommt ein „Ordner öffnen“-Symbol, keinen Text und als Tooltipp „Ordner auswählen“. Als Scriptcode sowas hier:

<!--#pragma keepeditmode--> 
set oInputForm = cRM.CurrentProject.ActiveViews.ActiveView.CurrentInputForm(0)	'0: expliziter Wechsel in den Bearbeiten-Modus
if not oInputForm is Nothing then
	sDir = cRM.DialogSelectDir("Verzeichnis auswählen", True, "", 0)
	if sDir <> "" then
		oInputForm.SetContentsByName "Path", sDir
	end if
end if

(Der Code wechselt in den Bearbeitenmodus, das kann je nach Berechtigung auch mal nicht klappen, daher der Check auf not oInputForm is Nothing, und erlaubt eine interaktive Ordnerauswahl und speichert den Pfad auf den gewählten Ordner in das Eingabefeld.)

Schaltfläche 2 bekommt ein „Fußspuren“ oder „Pfeil“–Symbol, keinen Text und als Tooltipp „Ordner öffnen“. Als Scriptcode sowas hier:

<!--#pragma keepeditmode-->
sDir = cRM.CurrentProject.ActiveViews.ActiveView.CurrentInputForm(2).GetContentsByName("Path")
if sDir <> "" then
	Set WshShell = CreateObject("WScript.Shell")
	WshShell.Run """" & sDir & """"
end if

(Der Code liest den aktuellen Wert aus „Path“ aus und startet den Explorer und öffnet den Pfad.)

image

Den Code kann man sicher noch hübscher machen und evtl. noch etwas Fehlerhandling einbauen, aber ich hoffe er demonstriert den Ansatz. :nerd_face:

EDIT/UPDATE: beim Script für Schaltfläche 2 noch das sDir in doppelte Anführungszeichen gepackt, damit auch Pfade mit Leerzeichen gehen.

Hallo Herr Eggstein,
super Anleitung - habe das Schriftfeld mit der Linkspeicherung erzeugt - die zweite Schaltfläche öffnet den Pfad dann korrekterweise.
Jetzt hat mich der Screenshot neugierig gemacht - wird das „Explorerfenster“ im ersten Beitrag in einem Container innerhalb von Combit geöffnet? Ich fürchte das ist nicht mit einem 2-Zeiler erklärbar :wink:

Viele Grüße

In der Tat kommt es hin und wieder zu ein paar Fehlern
Liegt es an der Länge (mehrere Unterordner, wobei insgesamt weniger als 265) oder an z.B. Umlauten?

fel

Danke.

Sind bei den problematischen Pfaden Leerzeichen im Pfad?

(daran hab ich nicht gedacht, dann muss man den ausgelesenen Pfad noch in doppelte Anführungszeichen einschließen, bevor man .Run aufruft)

WshShell.Run """" & sDir & """"

Jetzt hat mich der Screenshot neugierig

Der stammt von @Frank_Wietzel, vielleicht kannst du was dazu sagen - ich muss da grad passen. Was ich sagen kann: ein Container stellt N mit dem Datensatz relational verknüpfte Datensätze dar, für die Anzeige einer Ordnerstruktur ist er nicht gedacht.

Beim ersten Screenshot von uns:

(2) könnte man tatsächlich in 5 Zeilen packen

Dim shell
Dim oRecord
Set oRecord = crm.CurrentProject.ActiveViews.ActiveView.CurrentRecordSet.CurrentRecord

Set shell = CreateObject("Wscript.Shell")
shell.Run "cmd /K explorer.exe """&oRecord.GetContentsByName("DocumentPath")&""" & exit",0,True

Diese Zeilen würde es niemals bei uns durch die Codereview schaffen :wink: . Da finde ich das Beispiel von @beggstein schon besser.

Das könnte man jetzt auch noch alles erweitern mit, wenn der Order nicht da ist dann bitte anlegen, wenn der Ordner leer ist, dann einen Ordner aus den Filesystem auswählen lassen etc. pp. - dies würde den Rahmen hier sprengen.

(3) Ist tatsächlich der 1:N Container für die Dokumente in Projekte

Viele Grüße aus dem Saarland