JAVA oder JavaScript?

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Benutzeravatar
MoD
*
Beiträge: 15
Registriert: Do, 16.12.2010 12:52

JAVA oder JavaScript?

Beitrag von MoD »

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
"Intelligent ist, wer weiß, wo er findet, was er nicht weiß"

http://www.try24.de
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: JAVA oder JavaScript?

Beitrag von Karolus »

Hallo
Kann man OOo Makros nur in JavaScript schreiben und ausführen? Oder auch in JAVA?
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/ )
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)
hol.sten
******
Beiträge: 871
Registriert: Fr, 18.11.2005 21:21

Re: JAVA oder JavaScript?

Beitrag von hol.sten »

MoD 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..
Es geht alles: JavaScript, Java, Beanshell, Python, OOo Basic

Für ein bissl' Beispielcode kannst du dir diese Beiträge ja mal anschauen:
MoD hat geschrieben:BASIC ist ja ne schiere Katastrophe.. Dokumentationen gibt es kaum und wenn, dann sind sie für spezielle Dinge unbrauchbar.
Die Dokumentation für andere Programmiersprachen ist aber auch nicht besser.
MoD hat geschrieben:Mit VBA funzt OOo ja auch nicht..
VBA ist ja auch Eigentum von Microsoft. Das wollten die mit Sicherheit nicht für eine Konkurrenz-Office-Suite rausrücken.
MoD hat geschrieben:Wer hat sich denn diesen Käse nur ausgedacht?
Star Division
MoD hat geschrieben:Was wäre so schwer daran gewesen einfach VBA zu benutzen? Dann hätten viele Anwender weniger Probleme..
VBA ist eben keine frei verfügbare Programmiersprache.
Benutzeravatar
MoD
*
Beiträge: 15
Registriert: Do, 16.12.2010 12:52

Re: JAVA oder JavaScript?

Beitrag von MoD »

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 :-?


Meine "eigentliche" Frage steht ja da oben ;) Also Java oder JavaScript. Danke für die Antwort..
"Intelligent ist, wer weiß, wo er findet, was er nicht weiß"

http://www.try24.de
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: JAVA oder JavaScript?

Beitrag von Stephan »

VBA ist ja auch Eigentum von Microsoft. Das wollten die mit Sicherheit nicht für eine Konkurrenz-Office-Suite rausrücken.
Und was wollen sie da nicht rausrücken? VBA ist umfangreich dokumentiert und kann deshalb funktionell von jedem nachimplementiert werden.
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
Benutzeravatar
MoD
*
Beiträge: 15
Registriert: Do, 16.12.2010 12:52

Re: JAVA oder JavaScript?

Beitrag von MoD »

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.
"Intelligent ist, wer weiß, wo er findet, was er nicht weiß"

http://www.try24.de
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: JAVA oder JavaScript?

Beitrag von Stephan »

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 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.

Das hingegen bloß bestimmte VBA-Makros ausgeführt würden wäre keine Besonderheit denn das jkann OOo ebenfalls.
Und wenn eh jeder VB nachschreiben könnte, dann frage ich mich, wieso es die OOo Leute nicht getan haben..
Augenscheinlich wEil keine Entwicklerkapazitäten dafür vorhanden sind und Prioritäten anders gesetzt sind als auf bevorzugter Implementierung von VBA-Funktionalität.
Aber wie gesagt: OOo KANN VBA-Makros ausführen (seit OOo 2.3), nicht alle aber inzwischen recht Viele.
Bei uns hier in der Verwaltung sind die Makros bislang die einzige Hürde die wir zur Umstellung von MSO auf OOo haben.
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).


Gruß
Stephan
Benutzeravatar
MoD
*
Beiträge: 15
Registriert: Do, 16.12.2010 12:52

Re: JAVA oder JavaScript?

Beitrag von MoD »

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 :shock:

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
"Intelligent ist, wer weiß, wo er findet, was er nicht weiß"

http://www.try24.de
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: JAVA oder JavaScript?

Beitrag von Stephan »

Aber vielleicht habe ich hier ja auch nur so Super-Sonder-Makros
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.
Deswegen würde es das ganze um einiges erleichtern, wenn die Sprache einfach die gleiche geblieben wäre.
StarBasic und VBA sind als Sprache ohnehin fast identisch (bestimmt zu 95%), lediglich die Objektmodelle unterscheiden sich.
Kannst Du Dich auch sehr leicht von überzeugen, denn mit einem

Code: Alles auswählen

Option VBASupport 1
im Kopf des jeweiligen Moduls kannst Du in OOo problemlos VBA verwenden, ledig setzen unterschiedliche Objektmodelle bei ZUgriff auf die jeweilige Applikation zwangsläufig Grenzen.



Gruß
Stephan
Benutzeravatar
MoD
*
Beiträge: 15
Registriert: Do, 16.12.2010 12:52

Re: JAVA oder JavaScript?

Beitrag von MoD »

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 :(
"Intelligent ist, wer weiß, wo er findet, was er nicht weiß"

http://www.try24.de
Benutzeravatar
MoD
*
Beiträge: 15
Registriert: Do, 16.12.2010 12:52

Re: JAVA oder JavaScript?

Beitrag von MoD »

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:

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
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
"Intelligent ist, wer weiß, wo er findet, was er nicht weiß"

http://www.try24.de
Antworten