OOo 1.1.3->2.1: Database Browser öffnen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: OOo 1.1.3->2.1: Database Browser öffnen

von Birdy27 » Di, 03.04.2007 09:57

Danke

Das hilft mir nur bei Text Dokumenten in denen Feldbefehle verwendet wurden.

Leider habe ich das gleiche Problem auch bei Tabellen und Tet Dokumenten ohne Feld Befehle.
OpenOffice markiert bei diesen auch, welche Datenbank für dieses Dokument zuletzt verwendet wurde.

Gibt es alternativ einen weg direkt festzulegen, welche Datenbank im Browser angezeigt wird?

Grüße
Christoph

von hawkhunter2002 » Do, 29.03.2007 20:37

Hallo Christoph,

ich bin mir jetzt nicht sicher ob ich das richtig verstanden habe, aber vielleicht hilft dir dieser Link.

http://www.dannenhoefer.de/faqstarbasic ... l#Zweig265


Gruß

Hawk

von Birdy27 » Mi, 28.03.2007 15:55

Danke!

Vielleicht kann mir jemand die Frage über einen Umweg beantworten:
Wie kann ich die Verknüpfte DatenQuelle des aktuellen Dokumentes festlegen?

(Dann öffnet der DataSourceBrower automatisch die richtie quelle ;-)

Grüße
Christoph

von hawkhunter2002 » Mi, 28.03.2007 13:44

Hallo Christoph,
zu deinen Fragen

zu 1. weiß ich nicht :roll:

zu 2. aus Andrew Pitonyak's Makrosammlung verwende ich folgenden Code

Code: Alles auswählen

Function OOoVersion() As String
'Retrieves the running OOo version
'Author : Laurent Godard
'e-mail : listes.godard@laposte.net
'
Dim oSet, oConfigProvider
Dim oParm(0) As New com.sun.star.beans.PropertyValue
Dim sProvider$, sAccess$
sProvider = "com.sun.star.configuration.ConfigurationProvider"
sAccess = "com.sun.star.configuration.ConfigurationAccess"
oConfigProvider = createUnoService(sProvider)
oParm(0).Name = "nodepath"
oParm(0).Value = "/org.openoffice.Setup/Product"
oSet = oConfigProvider.createInstanceWithArguments(sAccess, oParm())
OOOVersion=oSet.getByName("ooSetupVersion")
End Function
Die Funktion gibt einen String zurück den du dann auswerten kannst.

z.B.

Code: Alles auswählen

Function atLeastOOO21()
Dim rueck as Boolean
	if val(OOoVersion()) >= 2.1 Then
		rueck = true
	else
		rueck = false	
	end if
	atLeastOOO21() = rueck		
End Function
Hier teste ich ob ich mindestens die Version 2.1 habe


Gruß Hawk

von Birdy27 » Mi, 28.03.2007 11:03

Hallo,

der Teil des öffnens klappt (deiner natürlich auch).
Schuld an den doppelten Einträgen ist der Aufruf der Initialize Methode.
Diese Methode hat bisher dafür gesorgt, dass die richtige Tabelle angezeigt wird.
Ich benötige jetzt offensichtlich einen anderen Weg, der
entweder: optimaler weise auch unter OOo 1.1.3 funktioniert
oder: mir erlaubt eine Verzweigung nach OOo Version erlaubt.

1. Wie kann ich die Tabelle auswählen, die im DataBrowser dargestellt wird?
2. Gibt es einen Weg die OOo Version zu ermittln?

Grüße
Christoph

Datenbankbrowser

von moritz » Di, 27.03.2007 18:01

Hallo,
Bei mir wird unter OO2.1 der Datenbankbrowser so angezeigt.

document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ViewDataSourceBrowser"
args1(0).Value = true
dispatcher.executeDispatch(document, ".uno:ViewDataSourceBrowser", "", 0, args1())

Die richtige Datenbank wird automatisch angezeigt, wenn man vorher in dieser Datenbank gearbeitet hat, z.B. eine SQL- Abfrage kreiert hat.
Moritz

OOo 1.1.3->2.1: Database Browser öffnen

von Birdy27 » Di, 27.03.2007 17:00

Hallo,

wir steigen hier gerade von OOo 1.1.3 nach OOo 2.1 um und ich stehe vor einer ganzen Menge auftretender Probleme. Hier ist einer davon:
Die Folgende Funktion öffnete den Database Browser und zeigte die Daten der Tabelle Firmen.Adressen von der Quelle Adressen an.

Code: Alles auswählen

Sub openAdressen
    Dim url As new com.sun.star.util.URL
    Dim params(2) as new com.sun.star.beans.PropertyValue
   
    cntrlr = ThisComponent.getCurrentController()
    frame1 = StarDesktop.getCurrentFrame()
    url.Complete = ".component:DB/DataSourceBrowser"
    dispatcher = frame1.queryDispatch(url, "_beamer", 12)
    dispatcher.dispatch(url, DimArray())
    frame2 = frame1.findFrame("_beamer", 4)
    oObj = frame2.getController()
    params(0).Name = "DataSourceName"
    params(0).Value = "Adressen"
    params(1).Name = "CommandType"
    params(1).Value = com.sun.star.sdb.CommandType.TABLE
    params(2).Name = "Command"
    params(2).Value = "Firmen.ADRESSEN"
    oObj.initialize(params())
end sub 
Jetzt öffnet sich zwar der Beamer, aber
1. wird jetzt jede Quelle doppelt angezeigt (sowohl "Adresse" also auch die "Bibliopgraphy") und Firmen.Addressen wird nicht automatisch angezeigt Adressen ist nichmal aufgeklappt.
Warum erscheinen die Quellen doppelt?
Wie kann ich dafür sorgen, das die Inhalte automatisch argestellt werden?

Grüße
Christoph[/code]

Nach oben