HotLinks mit verschiedenen Funktionen!

Hallo Forum,

ich möchte in einem View verschiedene Funktionen intergrieren, die alle mit der eigenen HotLink-Funktion funktionieren. Z.B. möchte ich Bilder, Word-Dokument und Excel-Tabellen aufrufen, was ich mit verschiedenen Scripten (dank eurer Hilfe!) schon geschafft habe. Alle diese Funktionen arbeiten mit dem HotLink. Nun aber wäre es schön, wenn Bilder, Dokument und Tabellen mit einem eigenen HotLink (evtl. eine andere Farbe, und nur diesem, zu öffnen wären. Ich habe schon probiert eigene Button zu erstellen, wobei ich die Einstellungen des üblichen HotLinks übernommen habe. So lässt sich natürlich aber jedes mit jedem HotLink öffnen, außer den verschiedenen Icons hat sich nichts geändert. Wie bringe ich nun jedem einzelnen HotLink bei, dass er nur die für ihn bestimmte Anwendung öffnet? Geht das überhaupt und wie kopiert man Werkzeuge?

Gruß Carsten
Hallo Carsten,

du musst wohl erst einmal das programmieren, was dir die Hotlink-Funktion eigentlich abnimmt:

1. Geometrie selektieren (Siehe Systemskript View.SelectPoint)
2. Suche den Inhalt (Pfad und Dateiname) aus dem betreffenden Feld raus (Variable SELF im Hotlink-Skript).

Danach beginnt dann der eigentliche Hotlink-Code, der das betreffende Dokument oeffnet. Fuer jedes Feld erstelltst du ein eigenes Skript. Die Skripte funktionieren unabhaengig voneinander, da du ja in jedem Skript ein anderes Feld angibst.

Hoert sich nach ein wenig Arbeit an.

Frohes Schaffen und gutes Gelingen dabei

Uwe.Lange(at)DB-GIS.de
Um ein Dokument nur mit einer bestimmten Anwendung zu öffnen kannst Du die Erweiterung des Dokumentes untersuchen:

dateiname = Feldinhalt.AsFileName
erweiterung = dateiname.GetExtension
if (erweiterung = 'doc') then
System.Execute("C:\Programme\Microsoft Office\Office\winword.exe "++theVal)
end
Hallo Heinz,

die Idee finde ich sehr gut, leider scheitert sie an der Umsetzung.

Ich haben deinen Text ins Script geschrieben, nun kommt aber die Fehlermeldung beim Kompilieren "Unbekanntes Objekt: Feldinhalt"

Gruß Carsten
Hallo Carsten

Das obige sollte eigentlich nur als Beispiel dienen für dein Script. Irgendwo in deinem Script muss eine schon eine Variable für die zu öffnende Datei sein (Vermutung). Ich habe diese Variable "Feldinhalt" genannt.

Gruß Heinz.
Hallo HeinzJ,

ich möchte mit diesem Script eine Powerpoint-Präsentation öffnen und eben nur diese. Wo muss ich denn nun die Dateierweiterung einfügen?

theVal = SELF

' Prüfen, ob der Wert des Feldes ungleich Null ist
if (not (theVal.IsNull)) then

' Wenn die im Feld angegebene Datei existiert,
' Bild zeigen
if (File.Exists(theVal.AsFileName)) then

' Pfad zur Programmdatei des Explorer
' verwenden funktioniert aber auch ohne Pfad
System.Execute("C:\Programme\MSOffice 2000\Office\powerpnt.exe "++theVal)

else

' Wenn die Datei nicht existiert, Benutzer
' informieren

MsgBox.Warning("Datei "+theVal+" nicht gefunden.","Hot Link")

end

end


Gruß Carsten
Hallo Carsten

Vielleicht so (s.u).

Gruß Heinz

PS. wenn Dein Projekt läuft, hast du ja vielleicht Lust, ein entsprechendes Beispielprojekt im GISWiki zu posten.

http://www.giswiki.de

'-------------------------------------
theVal = SELF

' Prüfen, ob der Wert des Feldes ungleich Null ist
if (not (theVal.IsNull)) then

' Wenn die im Feld angegebene Datei existiert,
' Bild zeigen
if (File.Exists(theVal.AsFileName)) then

Erweiterung = theVal.AsFileName.GetExtension

if (Erweiterung = "ppt") then
System.Execute("C:\Programme\MSOffice 2000\Office\powerpnt.exe "++theVal)
end

else

' Wenn die Datei nicht existiert, Benutzer
' informieren

MsgBox.Warning("Datei "+theVal+" nicht gefunden.","Hot Link")

end
end
Hallo HeinzJ,

vielen Dank noch einmal für die Mühe.

Werde demnächst mal bei giswiki.de posten.

Gruß Carsten