JAVA oder JavaScript?
Moderator: Moderatoren
JAVA oder JavaScript?
Hallo!
So langsam bin ich wirklich durcheinander.
Kann man OOo Makros nur in JavaScript schreiben und ausführen? Oder auch in JAVA?
Die einen schreiben, dass es nur in JS geht, die anderen das es auch in JAVA funktioniert..
BASIC ist ja ne schiere Katastrophe.. Dokumentationen gibt es kaum und wenn, dann sind sie für spezielle Dinge unbrauchbar.
Mit VBA funzt OOo ja auch nicht..
Wer hat sich denn diesen Käse nur ausgedacht?
Was wäre so schwer daran gewesen einfach VBA zu benutzen? Dann hätten viele Anwender weniger Probleme..
LG
Ein zum einen genervter, zum andern verunsicherter Anwender..
MoD
So langsam bin ich wirklich durcheinander.
Kann man OOo Makros nur in JavaScript schreiben und ausführen? Oder auch in JAVA?
Die einen schreiben, dass es nur in JS geht, die anderen das es auch in JAVA funktioniert..
BASIC ist ja ne schiere Katastrophe.. Dokumentationen gibt es kaum und wenn, dann sind sie für spezielle Dinge unbrauchbar.
Mit VBA funzt OOo ja auch nicht..
Wer hat sich denn diesen Käse nur ausgedacht?
Was wäre so schwer daran gewesen einfach VBA zu benutzen? Dann hätten viele Anwender weniger Probleme..
LG
Ein zum einen genervter, zum andern verunsicherter Anwender..
MoD
Re: JAVA oder JavaScript?
Hallo
Einfache Dinge in VBA werden ebenfalls unterstützt.
Was war gleich nochmal deine konkrete Frage ?
Gruß Karo
Sowohl in Javascript als auch in Java darüberhinaus gehen auch Python und Beanshell ( siehe dazu die Beispiele im Programmordner unter → ~/Basis3.x/share/scripts/ )Kann man OOo Makros nur in JavaScript schreiben und ausführen? Oder auch in JAVA?
Einfache Dinge in VBA werden ebenfalls unterstützt.
Was war gleich nochmal deine konkrete Frage ?
Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Re: JAVA oder JavaScript?
Es geht alles: JavaScript, Java, Beanshell, Python, OOo BasicMoD hat geschrieben:Kann man OOo Makros nur in JavaScript schreiben und ausführen? Oder auch in JAVA?
Die einen schreiben, dass es nur in JS geht, die anderen das es auch in JAVA funktioniert..
Für ein bissl' Beispielcode kannst du dir diese Beiträge ja mal anschauen:
- [BeanShell] OOo Calc macro example: http://user.services.openoffice.org/en/ ... =45&t=1829
- [Java] OOo Writer and Calc macro examples: http://user.services.openoffice.org/en/ ... =45&t=1844
- [Java, BSH and JS Script examples] Display a message box: http://user.services.openoffice.org/en/ ... =45&t=2721
- [Java] Remote debugging of scripts in Java: http://user.services.openoffice.org/en/ ... =45&t=3145
- [Java] Send an email from an OOo Writer document: http://user.services.openoffice.org/en/ ... =45&t=3813
Die Dokumentation für andere Programmiersprachen ist aber auch nicht besser.MoD hat geschrieben:BASIC ist ja ne schiere Katastrophe.. Dokumentationen gibt es kaum und wenn, dann sind sie für spezielle Dinge unbrauchbar.
VBA ist ja auch Eigentum von Microsoft. Das wollten die mit Sicherheit nicht für eine Konkurrenz-Office-Suite rausrücken.MoD hat geschrieben:Mit VBA funzt OOo ja auch nicht..
Star DivisionMoD hat geschrieben:Wer hat sich denn diesen Käse nur ausgedacht?
VBA ist eben keine frei verfügbare Programmiersprache.MoD hat geschrieben:Was wäre so schwer daran gewesen einfach VBA zu benutzen? Dann hätten viele Anwender weniger Probleme..
Re: JAVA oder JavaScript?
Dann frage ich mich nur, wieso zum Beispiel IBM`s Lotus Symphony auch mit VBA Makros klar kommtVBA ist ja auch Eigentum von Microsoft. Das wollten die mit Sicherheit nicht für eine Konkurrenz-Office-Suite rausrücken.

Meine "eigentliche" Frage steht ja da oben

Re: JAVA oder JavaScript?
Und was wollen sie da nicht rausrücken? VBA ist umfangreich dokumentiert und kann deshalb funktionell von jedem nachimplementiert werden.VBA ist ja auch Eigentum von Microsoft. Das wollten die mit Sicherheit nicht für eine Konkurrenz-Office-Suite rausrücken.
Dann frage ich mich nur, wieso zum Beispiel IBM`s Lotus Symphony auch mit VBA Makros klar kommt
In welcher Version ist das der Fall? Meines Wissens kann Lotus Synphony bisher nicht einmal mit Starbasic umgehen und wenn es mit VBA besser umgehen könnte als OOo wäre das ja ein äußerst starkes Argument für Lotus Synphony.
Also, welche Version bitte?
Gruß
Stephan
Re: JAVA oder JavaScript?
Also ich habe hier Lotus Symphony 3.0.0 installiert und konnte bisher alle Makros, welche in Word, bzw Excel geschrieben wurden, ausführen. Ohne Probleme.. <-- das meinte ich 
Und wenn eh jeder VB nachschreiben könnte, dann frage ich mich, wieso es die OOo Leute nicht getan haben..
Bei uns hier in der Verwaltung sind die Makros bislang die einzige Hürde die wir zur Umstellung von MSO auf OOo haben.

Und wenn eh jeder VB nachschreiben könnte, dann frage ich mich, wieso es die OOo Leute nicht getan haben..
Bei uns hier in der Verwaltung sind die Makros bislang die einzige Hürde die wir zur Umstellung von MSO auf OOo haben.
Re: JAVA oder JavaScript?
Das muß ich mir dann ansehen, denn mir ist das unbekannt, wenn es stimmt wäre es eine REvolution und ich würde sofort zu Sympghony wechseln.Also ich habe hier Lotus Symphony 3.0.0 installiert und konnte bisher alle Makros, welche in Word, bzw Excel geschrieben wurden, ausführen. Ohne Probleme
Das hingegen bloß bestimmte VBA-Makros ausgeführt würden wäre keine Besonderheit denn das jkann OOo ebenfalls.
Augenscheinlich wEil keine Entwicklerkapazitäten dafür vorhanden sind und Prioritäten anders gesetzt sind als auf bevorzugter Implementierung von VBA-Funktionalität.Und wenn eh jeder VB nachschreiben könnte, dann frage ich mich, wieso es die OOo Leute nicht getan haben..
Aber wie gesagt: OOo KANN VBA-Makros ausführen (seit OOo 2.3), nicht alle aber inzwischen recht Viele.
Wow, dann seit ihr ja in einer äußerst günstigen Position, denn viele andere Anwender haben weitaus mehr Probleme als nur Makros. Probleme sehe ich dann überhaupt nicht, denn Makros sind ja praktisch immer umschreibbar (mache ich auch beruflich).Bei uns hier in der Verwaltung sind die Makros bislang die einzige Hürde die wir zur Umstellung von MSO auf OOo haben.
Gruß
Stephan
Re: JAVA oder JavaScript?
Also wie gesagt.. Lotus S kommt super mit den Makros klar, die OOo nicht ausführen kann. Aber vielleicht habe ich hier ja auch nur so Super-Sonder-Makros
Leider gibt es ja einige Menschen, die mit dem Umschreiben von einer in die andere Sprache (und dazu zähle ich mich auch leider) so ihre Probleme haben. Deswegen würde es das ganze um einiges erleichtern, wenn die Sprache einfach die gleiche geblieben wäre.
What ever.. ist nun mal nicht so.. mache ich es eben in Java.. irgendwie.. die kann man dann wenigstens auch für andere Dinge gebrauchen.
Schöne Weihnachten..
MoD

Leider gibt es ja einige Menschen, die mit dem Umschreiben von einer in die andere Sprache (und dazu zähle ich mich auch leider) so ihre Probleme haben. Deswegen würde es das ganze um einiges erleichtern, wenn die Sprache einfach die gleiche geblieben wäre.
What ever.. ist nun mal nicht so.. mache ich es eben in Java.. irgendwie.. die kann man dann wenigstens auch für andere Dinge gebrauchen.
Schöne Weihnachten..
MoD
Re: JAVA oder JavaScript?
Gib doch einfach einmal ein Beispiel von Dir was in Lotus S funktioniert und in OOo nicht. Für Viele hier wäre das allein deshalb interessant weil sie laufend die Entwicklung verfolgen, aber praktisch auch keine Zeit haben die Dinge immer wieder selbst austersten zu müssen, es hilft also enorm Code zu kennen von dem man weiß das er funktioniert oder nicht funktioniert, da man sowas leicht im Kopf abspeichern kann.Aber vielleicht habe ich hier ja auch nur so Super-Sonder-Makros
StarBasic und VBA sind als Sprache ohnehin fast identisch (bestimmt zu 95%), lediglich die Objektmodelle unterscheiden sich.Deswegen würde es das ganze um einiges erleichtern, wenn die Sprache einfach die gleiche geblieben wäre.
Kannst Du Dich auch sehr leicht von überzeugen, denn mit einem
Code: Alles auswählen
Option VBASupport 1
Gruß
Stephan
Re: JAVA oder JavaScript?
Hallo Stephan,
ich habe hier beispielsweise ein Dokument, welches aus dem Intranet gezogen wird und automatisch beim Öffnen in Word Name, Telnummer, Anschrift, Datum usw aus einer Textdatei ausließt und in die Vorlage einfügt.
Das Original ist in VBA geschrieben..
Werde das hier mal posten sobald ich wieder im Büro bin.
Jedenfalls funktioniert das in writer hinten und vorne nicht
ich habe hier beispielsweise ein Dokument, welches aus dem Intranet gezogen wird und automatisch beim Öffnen in Word Name, Telnummer, Anschrift, Datum usw aus einer Textdatei ausließt und in die Vorlage einfügt.
Das Original ist in VBA geschrieben..
Werde das hier mal posten sobald ich wieder im Büro bin.
Jedenfalls funktioniert das in writer hinten und vorne nicht

Re: JAVA oder JavaScript?
So.. nun bin ich auch mal wieder an dem Makro-Problem dran..
Folgendes:
aus dem Intranet wird eine Kopfbogen-Word-Vorlage geladen. In diese werden dann per VBA Makro automatisch der aktuelle Benutzer, Datum, Stellenzeichen, Emailadresse, Telefon, usw. was alles in einer Datei die auf den Server hinterlegt ist und regelmäßig aktualisiert wird, eingetragen.
Das Original in VBA sieht so aus:
Ich weiß ja das sich hier niemand die Mühe machen wird, mir das in BASIC umzuschreiben.. aber kann mir bitte wenigstens jemand sagen, ob es überhaupt möglich ist?
Bzw würde es mir jemand für ein kleines Endgeld umschreiben?
Gruß
MoD
Folgendes:
aus dem Intranet wird eine Kopfbogen-Word-Vorlage geladen. In diese werden dann per VBA Makro automatisch der aktuelle Benutzer, Datum, Stellenzeichen, Emailadresse, Telefon, usw. was alles in einer Datei die auf den Server hinterlegt ist und regelmäßig aktualisiert wird, eingetragen.
Das Original in VBA sieht so aus:
Code: Alles auswählen
'Aktualisierung der Bearbeiterinformation
'Vers. 1.0
Option Explicit
Private Declare Function GetUserName Lib "advapi32.dll" _
Alias "GetUserNameA" (ByVal lpBuffer As String, _
nSize As Long) As Long
Public Sub MAIN()
Dim Globuname As String
Dim L&, Ergebnis&, Fehler&
Dim User$, UserName$, Puffer$
Dim Str1 As String 'Benutzerkonto
Dim StartStr As String
Dim LenStr1
Dim x As Integer
Dim x2 As Integer
Dim y As Integer
Dim Back1 As String 'Nachname
Dim Back2 As String 'Vorname
Dim Back3 As String 'GZ
Dim Back4 As String 'Zimmer
Dim Back5 As String 'Telefonnummer
Dim Back6 As String 'EMail-Adresse
Dim Back7 As String 'Faxnummer
Dim Back8 As String 'Ort
Dim Back9 As String 'Plz
Dim Back10 As String 'Strasse
Dim Back(1 To 10) As String
Dim Datum As String
Dim Pfad As String
Datum = Left(Now, 10) 'aktuelles Datum einlesen.
User = Space(255)
L = 255
Ergebnis = GetUserName(User, L)
If Ergebnis <> 0 Then
UserName = Left(User, L - 1)
End If
Globuname = Trim$(UserName)
'If Len(Globuname) > 20 Then Globuname = Left$(Globuname, 20)
StartStr = (Len(Globuname))
Pfad = "p:\BeaInfo\bea.txt" 'Pfad zur Textdatei
Open Pfad For Input Access Read As #1 'Offnet die Textdatei zum lesen
'***Ermitteln des UserNames in der Textdatei
Do While Not EOF(1)
Line Input #1, Str1 'kompletten String einlesen
If Left(Str1, StartStr) = Globuname Then
Exit Do
End If
Loop
'***
Close #1
LenStr1 = Len(Str1) 'Stringlänge ermitteln
'***Name und Vorname durch Komma getrennt. Komma ermitteln
For x = x To LenStr1 - 1
y = 1
If Mid(Str1, StartStr + x, 1) = "," Then
Back1 = Mid(Str1, StartStr + 2, x - 2) 'Zeichen bis zum Komma zurückgeben
'Stop
StartStr = StartStr + x + 1 'Neuer Startwert für die 2. For-Schleife
'Stop
Exit For 'Nach Kommafund beenden
End If
Next x
'***
'*** 2. Schleife sucht nach Tabstopps und liest den bis dahin gefundenen String in eine Variable
For x = x To LenStr1 - 1
x2 = x2 + 1
If Mid(Str1, StartStr + x2, 1) = vbTab Then
y = y + 1
Back(y) = Mid(Str1, StartStr + 1, x2 - 1)
StartStr = StartStr + x2
x2 = 0
'Stop
'MsgBox Back(y)
'Exit For
End If
Next x
'Stop
'MsgBox Back1 + vbCrLf + Back(2) + vbCrLf + Back(3) + vbCrLf + Back(4) + vbCrLf + Back(5)
Selection.GoTo What:=wdGoToBookmark, Name:="Bearbeiter" 'Vor und Nachname
With Selection.Frames(1)
.Width = CentimetersToPoints(15.31)
End With
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
Selection.TypeText Text:=Back(2) + Chr(32) + Back1
Selection.GoTo What:=wdGoToBookmark, Name:="GZ" 'Geschäftszeichen
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
Selection.TypeText Text:=Back(3)
Selection.GoTo What:=wdGoToBookmark, Name:="Zimmer" 'Zimmer
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
Selection.TypeText Text:=Back(4)
Selection.GoTo What:=wdGoToBookmark, Name:="TelNr" 'Telefonnummer
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
Selection.TypeText Text:=Back(5)
Selection.GoTo What:=wdGoToBookmark, Name:="Email" 'Email-Adresse
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
Selection.TypeText Text:=Back(6)
Selection.GoTo What:=wdGoToBookmark, Name:="FaxNr" 'Fax-Nummer
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
Selection.TypeText Text:=Back(7)
Selection.GoTo What:=wdGoToBookmark, Name:="Plz" 'Plz und Ort
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
Selection.TypeText Text:=Back(9) + Chr(32) + Back(8)
Selection.GoTo What:=wdGoToBookmark, Name:="Strasse" 'Strasse
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
Selection.TypeText Text:=Back(10)
With Selection.Frames(1)
.Width = CentimetersToPoints(5.31)
End With
'***aktuelles Datum wird z.Z. nicht gewünscht.
'Selection.GoTo What:=wdGoToBookmark, Name:="Datum"
'Selection.TypeText Text:=Datum
'****9(0) durch 90 ersetzen
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "9(0)"
.Replacement.Text = "90"
End With
Selection.Find.Execute Replace:=wdReplaceAll
'9(0) durch 90 ersetzen****
Selection.GoTo What:=wdGoToBookmark, Name:="Start"
End Sub
Bzw würde es mir jemand für ein kleines Endgeld umschreiben?
Gruß
MoD