Wie e. für jeden Datensatz verschiedenen Hyperlink erzeugen?

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

bullgard4
Beiträge: 9
Registriert: Sa, 16.10.2010 20:13

Wie e. für jeden Datensatz verschiedenen Hyperlink erzeugen?

Beitrag von bullgard4 »

Hallo Liste,

ich habe in OO.o Base 3.2.1 einen Druckknopf erzeugt. Wenn ich auf ihn klicke, erscheint in meinem Standard-Internetbrowser die Webseite, deren Adresse ich für diesen Druckknopf einprogrammiert habe.
Mein Ziel ist es aber, diese Adresse je nach aufgerufenem Datensatz zu variieren. Unter MS-Access konnte man zu diesem Zweck ein Feld vom Typ »Hyperlink« deklarieren und anschließend in dieses Feld die betreffenden Hyperlinkadressen eintragen. Man brauchte dann nur in dieses Feld zu klicken. Unter Base 3.2.1 gibt es keinen Felddatentyp »Hyperlink". Wie erzeugt man in Base 3.2.1 einen für jeden Datensatz verschiedenen funktionierenden Hyperlink in einem Formular?
Man müßte im Dialogfenster "Hyperlink" einen Softlink in das das Feld »Target« eintragen können, der auf das betreffende URI-Textfeld im aktuellen Datensatz verweist.

bullgard4
Benutzeravatar
herz4
****
Beiträge: 145
Registriert: Mi, 29.09.2010 13:41

Re: Wie e. für jeden Datensatz verschiedenen Hyperlink erzeugen?

Beitrag von herz4 »

Ich glaube, ich habe es auch hier aus dem Forum:

Code: Alles auswählen

oSer = createUNOService("com.sun.star.system.SystemShellExecute")
oSer.execute(Link,,0)
Mit diesen Basic-Befehlen kannst Du Dein System veranlassen, den angemeldeten Standardbrowser mit der Seite Link zu öffnen!
Hilft's?
LinuxMint 13 maya, LibreOffice 4.1 mit externer HSQLDB 2.3.2
bullgard4
Beiträge: 9
Registriert: Sa, 16.10.2010 20:13

Re: Wie e. für jeden Datensatz verschiedenen Hyperlink erzeugen?

Beitrag von bullgard4 »

Ich habe in der Integrierten Entwicklungsumgebung "OpenOffice.org Basic" als zweite Zeile eingetragen
'oSer.executable(val(uri),,0)'.
Wenn ich auf die Schaltfläche »Run BASIC« klicke, dann meldet ein Fenster: "Basic runtime error. An exception occurred. Type: com.sun.star.systemShellExecuteException
Message: Resource temporarily not available. OK"
Ich habe ein Textfeld in meiner Datei mit dem Namen "uri".
Ich vermute, daß das Konstrukt val(uri) nicht den gewünschten Wert (den String des Tabelleneintrags) liefert. Vielleicht muß es auch str$(uri) heißen? (Oh, oh, ich habe alle BASIC-Befehle vergessen!) Für heute bin ich zu müde, das aufzuklären.
hfr
**
Beiträge: 37
Registriert: Mo, 09.07.2007 14:42
Wohnort: München

Re: Wie e. für jeden Datensatz verschiedenen Hyperlink erzeugen?

Beitrag von hfr »

Hallo bullgard4,

ich verwende folgende OOBase Sub für einen Schaltknopf, der einen 'Link' (Textfeld) im aktuellen Browser ausführt (es ginge auch durch Klicken im Feld selber, das dann aber weniger leicht zu ändern wäre):

Code: Alles auswählen

Sub Hyperlink_ausfuehren

	'Generell im Formular "Datenbank.odb" - "Formularname" 
	'oFormMain: Im Formularnavigator oberstes Item "Formularname Hauptformular_Name_im_Formular"
	'oFormSub: Im Formularnavigator betroffenes Item "Formularname Unterformular_Name_im_Formular"
	'oFeld: Im betroffenen Item der Feld-Inhalt von "TextfeldMitLink_Name_im_Unterformular"

	oFormMain = thisComponent.drawPage.forms.getByName( "Hauptformular_Name_im_Formular" )
	oFormSub = oFormMain.getByName( "Unterformular_Name_im_Formular" )
	oFeld = oFormSub.getByName( "TextfeldMitLink_Name_im_Unterformular" )
	
	starten = createUnoService("com.sun.star.system.SystemShellExecute")
	starten.execute( ConvertToUrl( oFeld.getText().getString() ), "", 0)

End Sub 'Hyperlink_ausfuehren'
MfG
Benutzeravatar
herz4
****
Beiträge: 145
Registriert: Mi, 29.09.2010 13:41

Re: Wie e. für jeden Datensatz verschiedenen Hyperlink erzeugen?

Beitrag von herz4 »

@bullgard4

hfr hat hier oben erklärt, wie man ein Textfeld etwa mit dem Link ausliest.

@hfr

Ich gebe den Link so ein, wie er auch im Browser (bei mir Firefox) zum Seitenaufruf eingegeben wird. Das kann "http://..." sein oder auch nur "www. ...". Ganz egal.
In Deinem

Code: Alles auswählen

ConvertToUrl( oFeld.getText().getString() )
halte ich ConvertToUrl() demnach für nicht nötig/hilfreich/gängig(?) und verstehe gar nicht den Syntax getText als auch getString - ich meine, nur eins braucht's?!
LinuxMint 13 maya, LibreOffice 4.1 mit externer HSQLDB 2.3.2
Antworten