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.)
![]()
Den Code kann man sicher noch hübscher machen und evtl. noch etwas Fehlerhandling einbauen, aber ich hoffe er demonstriert den Ansatz. ![]()
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 ![]()
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?

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
. 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
Gut. Das Thema mit den Links ist bei uns schon im Einsatz. Wenn ich eine Verlinkung (Datenfeld) die z.B. in der Ansicht Firmen erstellt wurde auch in der Ansicht Projekte nutzen möchte muss ich sicher dieses Datenfeld “global” anlegen oder verknüpfen. Jetzt erwarte ich hier keine stepbystep Anleitung aber ein Verweis auf die richtige Stelle in der Doku würde mir schneller weiterhelfen. Dankeschön.
Ich kenne Ihre Solution nicht, daher muss ich fragen: Wie ist bei Ihnen die Verbindung zwischen „Projekten“ und „Firmen“? Das „Path“-Datenfeld in Firmen (ich verstehe es so dass Sie obige „Path“-Lösung in „Firmen“ implementiert haben) wird ja vermutlich ja für jede Firma unterschiedlichen Inhalt haben. Woher sollte das Projekt, auf dem ein Nutzer gerade sich befindet, wissen, für welche Firma das Datenfeld gelesen und der hinterlegte Ordner geöffnet werden soll? Da muss es bei Ihnen ja irgendeine Beziehung zwischen Projekt und Firma geben. Wie schaut die aus?
In unserer Large-Solution können einem Projekte ja N Kontakte (die wiederum jeweils mit „ihrer“ Firma 1:1 verknüpft sind) zugordnet werden. Hier würde irgendwie nur der aktuell im Container ausgewählte Datensatz Sinn ergeben, dass man dessen Firmen.„Path“-Feld öffnen will.
Meinen Sie sowas?

