Hallo,
> ANMERKUNG:
> Ich selbst habe bei einem MAKRO im Kontext mit dem Öffnen einer CALC-Datei das Problem, wenn ich
> den "Folder Picker Betriebs System" auswähle, dass das MAKRO einfriert, nicht aber, wenn ich den
> "Folder Picker Open Office" auswähle. Nicht aber bei früheren LO-Versionen. Vielleicht besteht ja
> ein Zusammenhang zu obigem Problem, dass die BASIC-MAKRO-Picker nicht mehr 100%ig funktionieren,
ist
> aber nur eine vage Vermutung:
> ' Folder Picker Betriebs System:
> Const FPBS = "com.sun.star.ui.dialogs.FolderPicker"
> ' Folder Picker Open Office:
> Const FPOO = "com.sun.star.ui.dialogs.OfficeFolderPicker"
Das Problem habe ich auch, es tritt seit Version 6.1 auf, vgl.:
Bug 123502 - crash: use of "com.sun.star.ui.dialogs.FolderPicker" service from java seems to cause
crashes since LO 6.1
https://bugs.documentfoundation.org/show_bug.cgi?id=123502
Irgendetwas stimmt mit dem System-Folder Picker nicht mehr..
Wenn Du ein ein einfaches Basic Makro Demo hast, füge es bitte dem issue bei.
Gruß
Oliver
Am 31.03.2019 um 12:15 schrieb OoOHWHOoO:
Hallo,
ich habe diesbezüglich auch mal ein wenig getestet:
[1] Mit "Hidden" und "False" friert LO bei "MsgBox ("FileOperation: NACH
StarDesktop.loadComponentFromURL")" ein (s.u.).
[2] Mit "Hidden" und "True" friert LO bei "MsgBox ("NACH FileOperation")" ein (s.u.).
In beiden Fällen hat "soffice.bin" eine CPU-Auslastung von zirka 25%.
Bei diesen Zeilen ( >>>>> ) habe ich das Makro modifiziert (s.u.).
Testumgebung: LO 6.2.2.2 (x64) @ Windows 7 Home Premium 64-bit.
Eine Erklärung für das oben geschilderte Verhalten habe ich leider nicht.
ANMERKUNG:
Ich selbst habe bei einem MAKRO im Kontext mit dem Öffnen einer CALC-Datei das Problem, wenn ich
den "Folder Picker Betriebs System" auswähle, dass das MAKRO einfriert, nicht aber, wenn ich den
"Folder Picker Open Office" auswähle. Nicht aber bei früheren LO-Versionen. Vielleicht besteht ja
ein Zusammenhang zu obigem Problem, dass die BASIC-MAKRO-Picker nicht mehr 100%ig funktionieren, ist
aber nur eine vage Vermutung:
' Folder Picker Betriebs System:
Const FPBS = "com.sun.star.ui.dialogs.FolderPicker"
' Folder Picker Open Office:
Const FPOO = "com.sun.star.ui.dialogs.OfficeFolderPicker"
Grüße
Hans-Werner :-))
[3] Makro-Modifikationen
Option Explicit
>>>>> Private oDlgM as Object ' das Modell des Dialogs
>>>>> Private oDlg as Object ' Dialogfenster
>>>>> Private oMod as Object ' nimmt jeweils das Modell der Objekte auf (Textfeld)
>>>>> Private oMod1 as Object ' nimmt jeweils das Modell der Objekte auf (Button)
>>>>> Private oMod2 as Object ' nimmt jeweils das Modell der Objekte auf (Button)
>>>>> Private oMod3 as Object ' nimmt jeweils das Modell der Objekte auf (Button)
>>>>> Private oWin as Object
>>>>> Private oListener1 as Object
>>>>> Private oListener2 as Object
>>>>> Private oListener3 as Object
>>>>> Private oControl1 as Object
>>>>> Private oControl2 as Object
>>>>> Private oControl3 as Object
REM Deklaration der Variablen
>>>>> Private oDocW as Object ' Writer-Dokument
>>>>> Private oDocC as Object ' Calc-Dokument (wird versteckt geöffnet)
:
:
Sub Dateidialog
On Error GoTo ErrorHandler
MsgBox "Der nachfolgende Dateidialog fordert sie zum Öffnen dieser Datei auf:" & chr(10) &
_
">>> Kopfzeilen_Texte.ods <<<" & chr(10) & _
"Wählen Sie zunächst den korrekten Pfad zu dieser Datei aus." ,64,"Hinweis"
' Filepicker (Datei-Dialog)
sUrl = FileOpenDialog ("Bitte wählen Sie eine Calc-Datei aus!")
if sURL = "" then
Msgbox "Sie haben den Dateidialog abgebrochen!" & chr(10) & _
"Starten Sie das Programm erneut und wählen eine Calc-Datei aus!", 48, "Fehler:
Anwender hat Dateiauswahl abgebrochen!"
exit sub
end if
sExt=getFileNameExtension(sURL)
' Fehlermeldung für den Fall, dass kein Calc-Dokument ausgewählt wurde
if sExt <> "ods" then
MsgBox("Bitte wählen Sie ein Calc-Dokument aus!" & chr(10) & _
"Das Programm wird beendet!" & chr(10) & chr(10) & _
"Starten Sie das Programm erneut.", 48, "Fehler: Dateiauswahl")
exit sub
end if
REM Calc-Datei im Hintergrund öffnen
>>>>> MsgBox ("VOR FileOperation")
FileOperation
>>>>> MsgBox ("NACH FileOperation")
' MsgBox "Error " & Err & ": " & Error$ & " (line : " & Erl & ")"
'oCC.getFrame().getContainerWindow().setVisible(True)
Exit Sub
REM ErrorHandler für den Fall, dass im Dateidialog auf "ABRUCH" geklickt wurde
ErrorHandler:
'MsgBox "Error " & Err & ": " & Error$ & " (line : " & Erl & ")"
Msgbox "Sie haben den Dateidialog abgebrochen!" & chr(10) & _
"Starten Sie das Programm erneut und wählen eine Calc-Datei aus!", 48, "Fehler:
Anwender hat Dateiauswahl abgebrochen!"
End Sub
REM
════════════════════════════════════════════════════════════════════════════════════════════════════════
REM Calc-Datei im Hintergrund öffnen
REM Dateioperation: Datei öffnen und auslesen
Sub FileOperation
'oCC.getFrame().getContainerWindow().setVisible(False)
' Eigenschaften
>>>>> Dim myFileProperties(0) As New com.sun.star.beans.PropertyValue
' Dokument im Hintergrund öffnen
>>>>> myFileProperties(0).Name = "Hidden"
>>>>> myFileProperties(0).Value = False
REM
-------------------------------------------------------------------------------------------------------
' Datei im Hintergrund öffnen
>>>>> MsgBox ("FileOperation: VOR StarDesktop.loadComponentFromURL")
>>>>> sURL = ConvertToURL(sURL)
>>>>> oDocC = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, myFileProperties())
>>>>> MsgBox ("FileOperation: NACH StarDesktop.loadComponentFromURL")
'mri oDocC
' Daten aus Tabelle einlesen und in die Arrays verteilen
' mArray1() = Daten für die linke Seite (gerade Seitenzahl)
mArray1()=oDocC.Sheets().getByName("KopfZeilenTexte").getCellRangeByName("A1:B10").getDataArray()
' mArray2() = Daten für die rechte Seite (ugerade Seitenzahl)
mArray2()=oDocC.Sheets().getByName("KopfZeilenTexte").getCellRangeByName("A11:B20").getDataArray()
REM
-------------------------------------------------------------------------------------------------------
' Calc-Datei korrekt schließen
CALL CloseDocC
End Sub
--
Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.