Date: prev next · Thread: first prev next last
2019 Archives by date, by thread · List index


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.