Seite 1 von 1
Externen Editor einbinden
Verfasst: So, 30.09.2012 16:17
von Luke78
Ist es möglich in OpenOffice (oder LibreOffice) Base einen externen Editor (z.B. Eclipse o.ä.) für die Entwicklung einzubinden?
Der interne Editor ist ja mit antiquiert noch freundlich beschrieben, und imho für komplexere Aufgabenstellungen eher ungeeignet.
Alternativ würde mich interressierne, ob es Erfahrungswerte gibt wie aufwendig eine Umwandlung von Access in OO Datenbanken mit hohem VBA Anteil sind.
Besten Gruß
Re: Externen Editor einbinden
Verfasst: So, 30.09.2012 17:04
von juetho
OO (in welcher Version auch immer) ist - wie schon der Name sagt - ein integriertes Programm für Büro-Aufgaben und kein Programmierer-Werkzeug.
Was willst du machen? Für Büro-Aufgaben ist OO geeignet; dann musst du aber auch mit den Mängeln leben. Oder willst du etwas programmieren? Dann musst du eine Programmierer-IDE wählen (wie Eclipse oder Notepad++), hast aber weder ein Textprogramm noch Tabellenkalkulation noch Präsentation usw., und es fehlt die grafische Benutzeroberfläche (GUI) für den Endanwender.
Sag mir, wo es die eierlegende Wollmilchsau gibt. Jürgen
Re: Externen Editor einbinden
Verfasst: So, 30.09.2012 17:19
von Luke78
Auch in Office Anwendungen kann man so Dinge wie Code Completion und Validierung einbauen. Bekommt ja sogar MicroDoof hin.
Und das hat auch nix mit Eier legender Wollmichsau sondern mit Anwendungskomfort zu tun.
Besten Gruß
Re: Externen Editor einbinden
Verfasst: So, 30.09.2012 18:15
von Karolus
Hallo
Luke78 hat geschrieben:Ist es möglich in OpenOffice (oder LibreOffice) Base einen externen Editor (z.B. Eclipse o.ä.) für die Entwicklung einzubinden?
Base ist die Datenbankkomponente in Aoo/Lo, meintest du
Basic?
Luke78 hat geschrieben:Der interne Editor ist ja mit antiquiert noch freundlich beschrieben, und imho für komplexere Aufgabenstellungen eher ungeeignet.
Da stimme ich vollkommen zu - und ergänze : Die Programmier
sprache selbst ist antiquiert und für komplexe Aufgabenstellungen vollkommen ungeeignet!
Ich benutze einen "externen" Editor für Python, und bin damit recht zufrieden,aber deine Frage zielt anscheinend auf VBA versus Basic ab.
Karolus
Re: Externen Editor einbinden
Verfasst: So, 30.09.2012 18:55
von Luke78
Ich meinte schon Base, quasi ob man im Entwicklungsprozess mit Base statt den internen Basic Editor, einen externen Basic Editor benutzen kann. Inklusive Debugging und sonstiger Anbindung.
Sind die Scripte irgendwo einzeln als Datei gespeichert? Dann könnte man ja zumindest fürs Entwickeln Eclipse o.ä nutzen und nur das Debugging intern lösen.
... und ja auch die Sprache ist antiquiert und nicht unbedingt schön, schien mir aber der schnellste Weg zum Ziel.
Muss ja nur ein paar Formulare Laufzeitbasiert gestalten und auswerten, aber das scheint nun doch schwieriger als gedacht, halt auch wegen der Schwächen des Editors.
Re: Externen Editor einbinden
Verfasst: So, 30.09.2012 19:07
von lorbass
Luke78 hat geschrieben:Sind die Scripte irgendwo einzeln als Datei gespeichert?
Im Benutzerverzeichnis → …/3/user/basic/*
Gruß
lorbass
Re: Externen Editor einbinden
Verfasst: So, 30.09.2012 20:34
von Stephan
Alternativ würde mich interressierne, ob es Erfahrungswerte gibt wie aufwendig eine Umwandlung von Access in OO Datenbanken mit hohem VBA Anteil sind.
Das kommt auf die Anforderungen an, die OO-'interne' Datenbank ist eher nur für einfachere Aufgaben geeignet, z.B. weil die Geschwindigkeit nur mäßig ist, man würde also bevorzugt eine zusätzliche Datenbank (z.B. MYSQL) nutzen und nur mit Base darauf zugreifen und in Base das Frontend entwickeln.
Der Code ist im Normalfall händisch zu konvertieren, was praktisch auf eine Mischung von Überarbeiten des bestehenden Codes und teilweiser Neuprogrammierung ist, der Zeitaufwand dafür ist ähnlich wie bei VBA.
Meine Erfahrungswerte sind das ich eine Access-DB mit umfangreichen Frontend nicht ohne Grund in eine Base-DB umwandeln würde sondern, für den üblichen Anwendungsfall Serienbriefe u.Ä. nur mit Base darauf zugreifen würde, was natürlich von den gegebenen Rahmenbedingungen abhängt, z.B. wäre ja Windows weiterhin als Betriebssystem nötig.
Der Grund nicht umzuwandeln sind in Praxis die Kosten bei der Umstellung des Frontends, die falls weiterhin Windows benutzt wird ja letztlich mit den Kosten einer Access-Lizenz konkurrieren müssen was in einer Vielzahl von Fällen heißt das die Umstellung unwirtschaftlich wäre, sofern es nicht weitere GRünde gibt die im konkreten Fall dafür sprechen.
Gruß
Stephan
Re: Externen Editor einbinden
Verfasst: Mo, 01.10.2012 13:24
von ejomi
Luke78 hat geschrieben:Ist es möglich in OpenOffice (oder LibreOffice) Base einen externen Editor (z.B. Eclipse o.ä.) für die Entwicklung einzubinden?
Soweit ich das beurteilen kann, läßt sich in OO keinen anderen Editor "einbinden". Ich selbst nutze für größere Projekte den
SciTE Script-Editor von Scintilla. Man kann bei diesem Editor die Syntax-Erkennung und Farb-Hervorheben (z.B. für STAR-BASIC) selbst zusammenbauen. Das ist zwar mit etwas Arbeit verbunden, danach hat man aber ein schönes Werkzeug, um exportierte .BAS-Dateien zu editieren.
Basic-Module lassen sich übrigens einzeln als Text-Datei über das Sybmol "BASIC speichern" exportieren. Diese Methode ist zwar etwas umständlich, hat aber den Vorteil, daß man immer eine absolut unverwüstliche Kopie seines Quellcodes archiviert hat falls mal OO hoffnungslos abschmiert!
Alternativ würde mich interressierne, ob es Erfahrungswerte gibt wie aufwendig eine Umwandlung von Access in OO Datenbanken mit hohem VBA Anteil sind.
Ich selbst habe früher sehr viel mit ACCESS gearbeitet und kann berichten, daß die Umstellung von VBA nach STAR-BASIC doch ganz erheblich ist und man viele Dinge völlig neu lernen muß! Theoretisch soll OO zwar syntaxkompatibel mit VBA sein, in der Praxis trifft das aber nur auf einfache Funktionen zu.
Verfügt man bereits über eine umfangreiche Sammlung diverser VBA-Hilfsroutinen (z.B. für einfache Berechnungen usw.), dann lassen sich diese relativ problemlos in STAR-BASIC konvertieren - auch wenn man vielleicht die eine oder andere mathematische Operation vermisst. Dagegen müssen aber komplexere Programmstrukturen (z.B. für Datebank-Abfragen oder Datensatz-Manipulationen) völlig neu programmiert werden. VBA unter ACCESS arbeitet z.B. mit Recordsets und ähnlichen, ganz speziell für die ADO-Schnittstelle ausgelegten Befehlen, die OO-Basic überhaupt nicht kennt. Dazu kommt, daß OO mit Unterformularen völlig anders umgeht als man es von ACCESS gewohnt ist. In den ACCESS-Formularen findet man mehr Steuerelemente und grafische "Schmankerl" als in OO. Die Darstellung von Bildern aus einer Datenbank in der Listenansicht von Tabellen ist nicht möglich. Die Ansteuerung von Formular-Steuerelementen und deren Inhalte funktioniert unter OO völlig anders als unter ACCESS. Man vermisst viele Konstanten, an die man sich unter VBA gewöht hatte und auch die Variablen-Deklarationen funktionieren nicht immer erwartungsgemäß (z.B. ist eine globale Variablen-Typisierung nicht möglich).
Dies sind nur einige Beispiele - ich könnte hier eine ganze Liste von Unterschieden aufzählen!
Kurz: Was im wesentlichen übernommen werden kann ist nur die SQL-Syntax von Abfragen und vielleicht noch kleine Libraries von selbst geschriebenen Hilfsroutinen - alles andere muß neu programmiert werden ... und das kann dauern!!
Gruß: ejomi
Re: Externen Editor einbinden
Verfasst: Mo, 01.10.2012 13:56
von Stephan
Theoretisch soll OO zwar syntaxkompatibel mit VBA sein, in der Praxis trifft das aber nur auf einfache Funktionen zu.
StarBasic ist fast völlig syntaxkompatibel zu VBA, nur heißt eben syntaxkompatibel nicht das die APIs beider Programme kompatibel sind, denn die machen nicht die Syntax der jeweiligen Sprache aus.
In einem Ausdruck wie:
Code: Alles auswählen
x = ThisComponent.Sheets.getByName("Tabelle1").getCellRangeByName("A1:A10").FormulaLocal
besteht die Syntax quasi nur aus <Variable> = <Wert>, in gedanklicher Erweiterung sind auch die Punkte als 'Trenner' noch 'Syntax' sowie die Art der Übergabe von Namen in den Klammern, deutlich nicht zur Syntax gehören hingegen ThisComponent, Sheets, getByName, getCellRangeByName, FormulaLocal, die leiten sich alle vom OOo-API ab.
Das diese Unterscheidung sinnvoll ist wird schon dadurch deutlich das Du ja keinesfalls festgelegt bist z.B. VBA nur für MS Office zu verwenden, sondern Du kannst per VBA genauso auch OOo steuern, wobei die Syntax von VBA natürlich die Gleiche bleibt, allein wird der Code sich von anderem VBA-Code unterscheiden da Du zwangsläufig das OOo-API nutzen mußt.
Die Syntax, sowohl von StarBasic als auch VBA, besteht aus ca. 150 'Ausdrücken', die Du Dir für Starbasic [1] weitgehend vollständig unter der OOo-Hilfe unter der Überschrift "Alphabetische Liste der Funktionen, Ausdrücke und Operatoren" ansehen kannst, mehr StarBasic, als Sprache, gibt es nicht.
Eine Übersicht über das OOo-API gibt hingegen die sog. IDL-Referenz:
http://www.openoffice.org/api/docs/comm ... le-ix.html
Gruß
Stephan
Re: Externen Editor einbinden
Verfasst: Mo, 01.10.2012 15:06
von ejomi
Stephan hat geschrieben:... nur heißt eben syntaxkompatibel nicht ...
... ach ja, Stephan - daß Du aber auch immer noch Deinen Senf drunterschmieren mußt!
Die Ursprungsfrage von Luke78 war unmißverständlich: nämlich wie aufwendig eine Umwandlung von Access in OO Datenbanken mit hohem VBA Anteil sind.
Dein Schlauschwatz, daß nämlich STAR-BASIC zu VBA doch syntaxkompatibel aber es die APIs wiederum nicht sind, läuft doch auf die wesentliche Aussage hinaus: die Programme sind eben
NICHT kompatibel, Punkt!
Fein, daß Du dann auch noch zur Verdeutlichung die API-Referenz verlinkst: Nichts von dem, was man dort liest findet man in irgendwelchen ACCESS-Programmen ... Fazit: man muß aufwendig umprogrammieren - und nur das wollte Luke78 wissen!
Ach ja, da war ja noch was:
Code: Alles auswählen
x = ThisComponent.Sheets.getByName("Tabelle1").getCellRangeByName("A1:A10").FormulaLocal
... was hat'n das mit Datenbanken zu tun? Dieser Ausdruck liest lediglich einen Zellbereich einer Tabellenkalkulation aus. Du meinst woll, weil in Tabellenkalkulation das Wort "Tabelle" vorkommt, hätte das was mit "Datenbank" zu tun

!
Jetzt zeige ich Dir mal den Unterschied zwischen den Code-Varianten
Erst mal VBA:
Code: Alles auswählen
IDNr = 1
Criteria = "ID = " & IDNr
Set mDB = CurrentDb
Set mRST = mDB.OpenRecordset("Meine Datenbank", dbOpenDynaset)
mRST.FindFirst Criteria
If mRST.NoMatch Then
MsgBox "Ident-Nr " & CStr(IDNr) & " nicht gefunden!", vbOKOnly + vbCritical, "Suchergebnis"
Else
MsgBox "Ident-Nr " & CStr(IDNr) & " ist vorhanden", vbOKOnly + VbInformation, "Suchergebnis"
End If
mRST.Close
Set mRST = Nothing
Set mDB = Nothing
Das gleiche jetzt mal in STAR-BASIC:
Code: Alles auswählen
IDNr = 1
sSQL = "SELECT ID FROM ""Meine Datenbank""" WHERE ID = " & CStr(IDNr) & ";"
If ThisComponent.ImplementationName = "SwXTextDocument" Then
oDataSource = ThisComponent.Parent.CurrentController
Else
oDataSource = ThisComponent.CurrentController
Endif
If NOT (oDataSource.isConnected()) Then oDataSource.connect()
oConnection = oDataSource.ActiveConnection()
resultSet = oConnection.executeQuery(sSQL)
resultSet.Next
LastRec = resultSet.isLast
If LastRec = FALSE Then
MsgBox "Ident-Nr " & CStr(IDNr) & " nicht gefunden!", MB_OK + MB_ICONSTOP, "Suchergebnis"
Else
MsgBox "Ident-Nr " & CStr(IDNr) & " ist vorhanden", MB_OK + MB_ICONINFORMATION, "Suchergebnis"
EndIf
oConnection.dispose
Beide Codes machen das gleiche - aber außer der MsgBox (und selbst die hat noch unterschiedliche Konstanten) ist aber auch so GARNICHTS vergleichbar, gelle?
Gruß:
ejomi
Re: Externen Editor einbinden
Verfasst: Mo, 01.10.2012 15:35
von juetho
ejomi hat geschrieben:Dein Schlauschwatz
Musste das wirklich sein?! Du selbst hast doch gesagt:
ejomi hat geschrieben:Theoretisch soll OO zwar syntaxkompatibel mit VBA sein, in der Praxis trifft das aber nur auf einfache Funktionen zu.
Stephan hat das etwas ausgeführt, dass StarBasic nicht nur syntaxkompatibel "sein soll", sondern weitgehend "ist", dass das aber für die Praxis kaum eine Rolle spielt. Was die Auswirkungen bei einer möglichen Umstellung VBA/StarBasic betrifft, habt ihr ziemlich das Gleiche gesagt (übrigens Stephan zuerst). Falls ihr euch irgendwann einmal über den Weg gelaufen seid und unsympathisch gefunden habt, müsst ihr das hier nicht ausbreiten.

Jürgen
Re: Externen Editor einbinden
Verfasst: Mo, 01.10.2012 15:42
von ejomi
juetho hat geschrieben:Musste das wirklich sein?!
.... nein, natürlich nicht und ich entschuldige mich hier ausdrücklich in aller Öffentlichkeit dafür
Ich neige gelegentlich zu englischem Sarkasmus, der aber leicht mißverstanden werden kann.
Im Übrigen kenne ich Stephan nicht und habe auch selbstverständlich überhaupt nichts gegen ihn.
Ich hoffe, die Situation hiermit etwas entspannt zu haben - bleibe aber in der Sache nach wie vor hart!
Gruß: ejomi
Re: Externen Editor einbinden
Verfasst: Mo, 01.10.2012 15:59
von Stephan
Dein Schlauschwatz, daß nämlich STAR-BASIC zu VBA doch syntaxkompatibel aber es die APIs wiederum nicht sind, läuft doch auf die wesentliche Aussage hinaus: die Programme sind eben NICHT kompatibel, Punkt!
Und warum schreibst Du das dann dann nicht so hin und gut? Ja, das wäre schon alles gewesen, und Du hättest von mir garnichts gehört, denn ich habe nicht Deine Person kritisiert sondern einen Satz den ich inhaltlich für falsch hielt.
Sorry, nur ich bin nun einmal der Meinung es ist besser den Fragenden die Dinge so zu erklären wie sie sind anstatt sie mit Halbwissen auszustatten.
"Halbwissen" soll hier auch keine Provokation sein sondern nur Ausdruck davon das ich weiß das manche Dinge nicht so einfach sind, man sich aber bemühen kann/muß sie richtig zu erklären, statt auszuweichen. Für mich ist das der Unterschied zwischen Netz und Fisch, denn ich denke eigentlich das Forum sollte ein Ort sein wo Antworten den Frager nicht nur kurzfristig helfen, sondern auch sein allgemeines Verständnis fördern.
Ich hatte mich bemüht die Dinge nicht in der Theorie hängen zu lassen sondern auf die Praxis verwiesen und da ist es eben so
das ich mit VBA auf MS Office und auf OOo zugreifen kann und obwohl die Sprache ansich dabei genau gleich ist, denn die ist VBA, sieht der Code doch völlig unterschiedlich aus, weil ich gezwungen bin unterschiedliche Objektmodelle zu nutzen.
Das sich hingegen ein VBA-Access-Code von einem StarBasic-Base-Code unterscheiden muß ist doch garkeine Frage, sondern ohnehin einsichtig (nur eben resultieren die Unterschiede nicht aus der Syntax der Sprachen, das war ja genau meine Kritik).
Gruß
Stephan
Re: Externen Editor einbinden
Verfasst: Mo, 01.10.2012 16:05
von Stephan
.... nein, natürlich nicht und ich entschuldige mich hier ausdrücklich in aller Öffentlichkeit dafür
das ist nicht nötig
Ich hoffe, die Situation hiermit etwas entspannt zu haben - bleibe aber in der Sache nach wie vor hart!
Dann mußt Du das tun.
Ich habe jetzt nochmal klargestellt worum es mir ging, und mehr kann ich dazu irgendwie nicht sagen.
Gruß
Stephan