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
Wie e. für jeden Datensatz verschiedenen Hyperlink erzeugen?
Moderator: Moderatoren
Re: Wie e. für jeden Datensatz verschiedenen Hyperlink erzeugen?
Ich glaube, ich habe es auch hier aus dem Forum:
Mit diesen Basic-Befehlen kannst Du Dein System veranlassen, den angemeldeten Standardbrowser mit der Seite Link zu öffnen!
Hilft's?
Code: Alles auswählen
oSer = createUNOService("com.sun.star.system.SystemShellExecute")
oSer.execute(Link,,0)
Hilft's?
LinuxMint 13 maya, LibreOffice 4.1 mit externer HSQLDB 2.3.2
Re: Wie e. für jeden Datensatz verschiedenen Hyperlink erzeugen?
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.
'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.
Re: Wie e. für jeden Datensatz verschiedenen Hyperlink erzeugen?
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):
MfG
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'
Re: Wie e. für jeden Datensatz verschiedenen Hyperlink erzeugen?
@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 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?!
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() )
LinuxMint 13 maya, LibreOffice 4.1 mit externer HSQLDB 2.3.2