Feldtyp Hyperlink

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

greenhorn100
Beiträge: 3
Registriert: Sa, 22.08.2009 19:03

Feldtyp Hyperlink

Beitrag von greenhorn100 »

Ich suche dringend nach einer Möglichkeit, in einer Tabelle ein Feld zu definieren, welches es später - egal ob auf Ebene der Tabelle oder eines Formulares - zulässt, einen Hyperlink auf ein Dokument innerhalb des Netzwerkes einzutragen. Bei MS-Access gibt es diese Funktion und ich kann mir nicht vorstellen, dass es bei OpenOffice Base nicht möglich ist. Wäre sehr froh um Hinweise, wo ich diese Funktion finde.
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Feldtyp Hyperlink

Beitrag von komma4 »

greenhorn100 hat geschrieben:ich kann mir nicht vorstellen, dass es bei OpenOffice Base nicht möglich ist.
Ich schon.

Es gibt bei HSQLDB keinen Feldtyp HYPERLINK, und bei BASE keine "Funktion", welche nur URLs zulässt.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
greenhorn100
Beiträge: 3
Registriert: Sa, 22.08.2009 19:03

Re: Feldtyp Hyperlink

Beitrag von greenhorn100 »

Schade, aber vielen Dank für Deinen Bescheid, so verliere ich wenigstens keine Zeit mehr zum Suchen.
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Feldtyp Hyperlink

Beitrag von clag »

Hallo Leutz,

da habe ich wohl ein ähnliches Problem, ich mich mit BASE noch nicht tiefgehend auseinandergesetzt habe möchte ich die SuperUser mal fragen

ich habe hier eine sehr große Tabelle als Datenbank > 20.000 Zeilen und jeder Datensatz hat einen Hyperlink der auf eine Datei bzw Ordner zeigt
da CALC aber immer zäher wird dachte ich daran jetzt BASE zu nutzen aber wie mein Vorredner habe ich noch keine BASE Erfahrung und noch nichts gefunden wie man einen Hyperlink o.ä. einbauen könnte.
Ist das in BASE absolut ausgeschlossen oder kann "man" da eventuell mit einem Makro nachhelfen oder irgend wie anders ?

den link als Text in ein Feld zu schreiben ist ja kein Problem aber dann das anlicken/aufrufen der Adresse, geht da was ?

schonmal Danke vorweg für verbrauchte DenkKalorien :)
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Feldtyp Hyperlink

Beitrag von komma4 »

Die fehlende Funktionalität habe ich mit dem folgenden kleinen Skript nachgebaut.

Ein Formular zu der DB-Tabelle mit dem Assistenten erstellt.
Den BASIC-Code in einem Modul eines Formulars gespeichert [Formular>Bearbeiten>Extras>Makros>Makros verwalten>OpenOffice.org Basic...>[Formularname]>Neu]
Eine Schaltfläche auf dem Forumular erstellt und das Makro dem Ereignis "Beim Auslösen" zugewiesen.

[die Namen des Formulars, und des Textfeldes müssen natürlich an die bei Euch genutzten Namen angepasst werden]

Code: Alles auswählen

oForm = ThisComponent.Drawpage.Forms.getByName( "MainForm" )
oFeld = oForm.getByName( "txthyperlink" )
starten = createUnoService("com.sun.star.system.SystemShellExecute")
starten.execute( ConvertToUrl( oFeld.getString() ), "", 0)
Funktioniert hier unter Linux sowohl mit Datei***- als auch Internet-Adressen. Diese können mit oder ohne Protokollnamen (file:// bzw. http://) vorhanden sein.

***die dem MIME-Typ zugehörende Anwendung wird geöffnet, bei Internetadressen wird der Standardbrowser genutzt


Edit: es kann auch das Ereignis "Maustaste gedrückt" des Textfeldes selbst genutzt werden; in Verbindung mit den Textfeld-Schrift-Eigenschaften Schriftfarbe "blau" und "Unterstrichen>Einfach" sieht es schon wieder wie Hyperlinks aus :)

Have fun!
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Feldtyp Hyperlink

Beitrag von clag »

Hi komma4,

da hast du mir ja wieder Hoffnung gemacht :)
dann werde ich da mal loslegen.
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: Feldtyp Hyperlink

Beitrag von eBayer »

Hallo Komma,
das hat mich auch interessiert und ich habe es gleich mal in ein ooBase-Formular eingebaut.
Klappt hervorragend und nimmt damit allen den Wind aus den Segeln, die bisher bemängelten, daß ein Datentyp "Hyperlink" fehlt.
Allerdings muß für ooBase die folgende Zeile geändert werden:
starten.execute( ConvertToUrl( oFeld.getString() ), "", 0)
nach:
starten.execute( ConvertToUrl( oFeld.text ), "", 0)

Gruß eBayer
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Feldtyp Hyperlink

Beitrag von komma4 »

eBayer hat geschrieben:Allerdings muß für ooBase die folgende Zeile geändert werden
Korrekt.

Sobald ein einfaches Textfeld mit weiteren Schriftattributen ausgestattet ist geht .getString() nicht mehr.


Allerdings empfehle ich dann,

Code: Alles auswählen

starten.execute( ConvertToUrl( oFeld.getText().getString() ), "", 0)
zu nehmen.

.getText() gibt ein Textobjekt zurück (keine Ahnung, warum das trotzdem funktioniert).
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: Feldtyp Hyperlink

Beitrag von eBayer »

Du kannst Dir den Inhalt des Controls entweder mit der Methode gettext() oder über die unter Properties verfügbare Eigenschaft "text" holen.
Übrigens.... auf die gleiche Weise kannst Du aus ooBase heraus auch eMails versenden. Es wird automatisch das konfigurierte Mailprogramm gestartet.
Gruß eBayer
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Feldtyp Hyperlink

Beitrag von komma4 »

eBayer hat geschrieben: oder über die unter Properties verfügbare Eigenschaft "text"
Entschuldige***, das ist nur eine Pseudo-Eigenschaft... die intern auf die Methode umgesetzt wird. Deshalb nehme ich lieber die Methode.

Und Mails kannst Du mit einer mail-URL nicht "verschicken", sondern nur an den Mail-Editor beim Aufruf übergeben.


***bin da vielleicht etwas pingelig, aber ist mir lieber, bevor irgendwer auf falsche Fährten gelockt wird.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
therealfassi
*
Beiträge: 15
Registriert: Di, 15.09.2009 12:31

Re: Feldtyp Hyperlink

Beitrag von therealfassi »

Hallo,

bin neu bei ooBase (umgestiegen von Papyrus). Import der DB hat auch problemlos geklappt. Habe jetzt aber auch das Problem, dass ich ein Hypertextfeld benötige (DVD-DB mit Link zur IMDB). Habe für das Feld "IMDB" im Formular "DVD" folgendes Makro eingefügt:

Code: Alles auswählen

oForm = ThisComponent.Drawpage.Forms.getByName( "DVD" )
oFeld = oForm.getByName( "IMDB" )
starten = createUnoService("com.sun.star.system.SystemShellExecute")
starten.execute( ConvertToUrl( oFeld.getString() ), "", 0)
Bekomme nun die Fehlermeldung:

Type:com.sun.star.container.NoSuchElementException


Muss leider zugeben, dass ich nicht die geringste Ahnung von BASIC habe. Schade, dass ein Feld mit Verweis zu einer externen Datei hier nicht so einfach funktioniert wie in Papyrus (System ist Linux Mint und Papyrus läuft nur unter Wine, da klappt die Übergabe nicht. Will aber eh weg von den Wndows-Programmen).
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Feldtyp Hyperlink

Beitrag von komma4 »

Willkommen im Forum.
therealfassi hat geschrieben:Bekomme nun die Fehlermeldung:
Bei welcher Code-Zeile?

:!: Die Namen sind case-sensitive
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
therealfassi
*
Beiträge: 15
Registriert: Di, 15.09.2009 12:31

Re: Feldtyp Hyperlink

Beitrag von therealfassi »

Danke für die fixe Antwort.

In folgender Codezeile:

Code: Alles auswählen

oForm = ThisComponent.Drawpage.Forms.getByName( "DVD" )
Das Formular heißt tatsächlich "DVD".
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Feldtyp Hyperlink

Beitrag von komma4 »

Nein.

Dein Formular heisst MainForm ... und hat den (sichtbaren) Namen "DVD"
(es sei denn, Du hast die Formular-Eigenschaft geändert. Sichtbarer "Name" (Formular-Übersicht) <> interner Name !)

Probiere es mal so.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: Feldtyp Hyperlink

Beitrag von eBayer »

Hallo, hoffentlich unterliegst Du keinem Irrtum.......
Wichtig ist nicht der Name in der IDE, sondern der im Formular vergebene Name, den Du unter den Eigenschaften des Formulars ggf. ändern kannst!
Gruß eBayer
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Antworten