Base: Formulare ohne Symbolleisten in einem Fenster

classic Classic list List threaded Threaded
14 messages Options
Gerhard Dittrich Gerhard Dittrich
Reply | Threaded
Open this post in threaded view
|

Base: Formulare ohne Symbolleisten in einem Fenster

Hallo zusammen!

Im Handbuch wird beschrieben, wie man in Base Symbolleisten ausblenden
kann. Das funktioniert auch wunderbar, wenn man ein Dokument öffnet über
einen Makros, der wie im Handbuch beschrieben gestartet wird (und zwar
über die Eigenschaften des Formularfensters: Extras → Anpassen →
Ereignisse → Dokument öffnen → Symbolleisten_Ausblenden

Wenn man jedoch beim Programmstart über ein Makros unmittelbar ein
ausgewähltes Formular öffnet (also man klickt nur auf den Ordner
name.odb) und das ausgewählte Formular öffnet, dann ist es nicht immer
so, dass die Symbolleisten ausgeblendet sind (abhängig vom Betriebssystem).

Sie SIND DANN NICHT IM FORMULAR AUSGEBLENDET, sondern in der Ebene
darüber (also dem allerersten Fenster von Base - Tabellen, Abfragen,
Berichte). Der Befehl "Wait" führt nicht weiter, zumindest nicht immer.

Das Problem liegt wohl in der Befehlszeile: oFrame =
StarDesktop.getCurrentFrame() ! WIE LAUTET der Befehl, um das Formular
(hier Frame) direkt, also über getByName aufzurufen?

Grüße
Gerhard


Muster-Makro aus dem Handbuch:

SUB Symbolleisten_Ausblenden
DIM oFrame AS OBJECT
DIM oWin AS OBJECT
DIM oLayoutMng AS OBJECT
DIM aElemente()
DIM i AS INTEGER
oFrame = StarDesktop.getCurrentFrame()
oWin = oFrame.getContainerWindow()
oWin.IsMaximized = true
oLayoutMng = oFrame.LayoutManager
aElemente = oLayoutMng.getElements()
FOR i = LBound(aElemente) TO UBound(aElemente)
     IF aElemente(i).ResourceURL =
"private:resource/toolbar/formsnavigationbar" THEN
     ELSE
     oLayoutMng.hideElement(aElemente(i).ResourceURL)
END IF
NEXT
END SUB


--
Liste abmelden mit E-Mail an: [hidden email]
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
Robert Großkopf Robert Großkopf
Reply | Threaded
Open this post in threaded view
|

Re: Base: Formulare ohne Symbolleisten in einem Fenster

Hallo Gerhard,

kannst Du mir einmal ein einfaches Beispiel dafür zuschicken. Ich teste
das gerne, habe zum Nachbauen aber im Moment nicht die große Lust.
>
> Das Problem liegt wohl in der Befehlszeile: oFrame =
> StarDesktop.getCurrentFrame() ! WIE LAUTET der Befehl, um das Formular
> (hier Frame) direkt, also über getByName aufzurufen?

Du hast doch das Makro zum Ausblenden weiterhin direkt an das Formular
gekoppelt, oder?

Gruß

Robert
--
Homepage: http://robert.familiegrosskopf.de
LibreOffice Community: http://robert.familiegrosskopf.de/map_3


--
Liste abmelden mit E-Mail an: [hidden email]
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
Gerhard Dittrich Gerhard Dittrich
Reply | Threaded
Open this post in threaded view
|

Re: Base: Formulare ohne Symbolleisten in einem Fenster

Hallo Robert,

hier ein Muster. Hier zuhause auf meinem Rechner mit LinuxMint
funktioniert die Sache.  (Ich muss mal auf Arbeit testen mit Windows).
Der Makro wirkt sicherlich eigenartig, weil er sich aus Unter-Makros
zusammen setzt, die hier keinen (Architektur-)Sinn haben. In "meinem"
Base sind mehrere Formulare, die in dem angehängten Beispiel
"Ausblenden.odb" nicht enthalten sind. Ich habe es so stehen lassen,
damit Du erkennen kannst, wie die Struktur des Makros ist.

Die einzelnen Makros sind deinem Handbuch entnommen.

Grüße
Gerhard

Am 28.06.19 um 20:13 schrieb Robert Großkopf:

> Hallo Gerhard,
>
> kannst Du mir einmal ein einfaches Beispiel dafür zuschicken. Ich teste
> das gerne, habe zum Nachbauen aber im Moment nicht die große Lust.
>> Das Problem liegt wohl in der Befehlszeile: oFrame =
>> StarDesktop.getCurrentFrame() ! WIE LAUTET der Befehl, um das Formular
>> (hier Frame) direkt, also über getByName aufzurufen?
> Du hast doch das Makro zum Ausblenden weiterhin direkt an das Formular
> gekoppelt, oder?
>
> Gruß
>
> Robert



--
Liste abmelden mit E-Mail an: [hidden email]
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
Hessler, Klaus-Michael Hessler, Klaus-Michael
Reply | Threaded
Open this post in threaded view
|

Re: Base: Formulare ohne Symbolleisten in einem Fenster

Hallo Gerhard,
> hier ein Muster. ...
falls Du die Mail nur an die Liste geschickt hast, musst Du den Anhang
auf einem frei zugänglichen Server bereitstellen; Datei-Attachments
werden in der Liste nicht übermittelt.

Ich verwende für solche Fälle gemäß der Empfehlung von Kuketz
<https://forum.kuketz-blog.de/viewtopic.php?t=890> die Seite
<https://transfer.sh/> https://transfer.sh/.

Gruß
Michael


--
Liste abmelden mit E-Mail an: [hidden email]
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
Gerhard Dittrich Gerhard Dittrich
Reply | Threaded
Open this post in threaded view
|

Base: Formulare ohne Symbolleisten in einem Fenster

Danke Klaus,

hier der Link

https://transfer.sh/ff8ZE/Ausblenden.odb

zum meinem kleinen Beispiel "Ausblenden von Symbolleisten".

Das Beispiel funktioniert (leider) bei Windows und Linux, wie ich
inzwischen feststellen musste.

Bei der "fehlerbehafteten" Base-Anwendung vollzieht sich das Ausblenden
nur auf der Startseite, aber nicht im Dokument (obwohl das Dokument per
Makro angesprochen wird und nicht die Startseite). Vielleicht hat es
damit zu tun, dass diese Base-Anwendung eine mysql-Datenbank auf einen
Server aufruft. Da dauert das Laden naturgemäß länger. Vielleicht liegt
es daran.

Grüße
Gerhard


--
Liste abmelden mit E-Mail an: [hidden email]
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
Robert Großkopf Robert Großkopf
Reply | Threaded
Open this post in threaded view
|

Re: Base: Formulare ohne Symbolleisten in einem Fenster

Hallo gerhard,

>
> Das Beispiel funktioniert (leider) bei Windows und Linux, wie ich
> inzwischen feststellen musste.
>
> Bei der "fehlerbehafteten" Base-Anwendung vollzieht sich das Ausblenden
> nur auf der Startseite, aber nicht im Dokument (obwohl das Dokument per
> Makro angesprochen wird und nicht die Startseite). Vielleicht hat es
> damit zu tun, dass diese Base-Anwendung eine mysql-Datenbank auf einen
> Server aufruft. Da dauert das Laden naturgemäß länger. Vielleicht liegt
> es daran.

Wie lädst Du denn die MySQL-Datenbank? Auch vorher per Makro ohne
Nutzereingabe des Passwortes?

Gruß

Robert
--
Homepage: http://robert.familiegrosskopf.de
LibreOffice Community: http://robert.familiegrosskopf.de/map_3


--
Liste abmelden mit E-Mail an: [hidden email]
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
Robert Großkopf Robert Großkopf
Reply | Threaded
Open this post in threaded view
|

Re: Base: Formulare ohne Symbolleisten in einem Fenster

Hallo Gerhard,

noch ein Hinweis: Versuche es einmal damit, dass Du beim Formular
"Ansicht wurde erzeugt" mit dem Makro verbindest. In Formularen wird
dieses Ereignis noch ausgegeben, direkt beim Öffnen von einer Base-Datei
leider nicht.

Gruß

Robert
--
Homepage: http://robert.familiegrosskopf.de
LibreOffice Community: http://robert.familiegrosskopf.de/map_3


--
Liste abmelden mit E-Mail an: [hidden email]
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
Gerhard Dittrich Gerhard Dittrich
Reply | Threaded
Open this post in threaded view
|

Re: Base: Formulare ohne Symbolleisten in einem Fenster

In reply to this post by Robert Großkopf
Hallo Robert,
die mysql-Datenbank wird per Makro geladen ohne Passworteingabe. Sie ist
für mehrere Benutzer eingerichten ("für unser Kulturhaus"). Die Trennung
der Nutzer erfolgt dabei gemäß Handbuch  "Filter - CONNECTION_ID()"

Grüße
Gerhard


Option Explicit




GLOBAl user_GL as STRING
PUBLIC iBetriebssystem AS INTEGER
GLOBAL stBrief_GL AS STRING
GLOBAL Bildschirmgroesse_GL  AS INTEGER
GLOBAL Druckgroesse_GL AS INTEGER

PUBLIC iMouseClick_GL AS INTEGER 'für Dialoge

rem ========== Startformular öffnen ==========
' Makro Start über Hauptdokument (erstes Dokument9 --> Dokument öffnen
SUB Startformular_oeffnen
    CALL  Tabelle_Filter_Connection_ID ' SUBroutine!
    DIM oController
    DIM oFILTER AS OBJECT
    DIM oFrame AS OBJECT
    oFrame = StarDesktop.getCurrentFrame()
    oController = ThisDatabaseDocument.CurrentController
    IF not ( oController.isConnected() ) THEN oController.connect() '
Connect to the database, if necessary
    wait 3000
    ThisDatabaseDocument.formdocuments.getbyname("pPerson").open
END SUB


SUB  Tabelle_Filter_Connection_ID
'On Error GoTo ExErrorHandler
    DIM oDatenquelle AS OBJECT
    DIM oVerbindung AS OBJECT
    DIM oSQL_Anweisung AS OBJECT
    DIM oAbfrageergebnis AS OBJECT
    DIM sSql AS STRING
    DIM maxfilterid AS INTEGER
    DIM connection_id AS INTEGER
    DIM idaa AS INTEGER
    DIM l_OS_Index AS INTEGER 'Betriebssystemabfrage
    DIM s_OS AS STRING 'Betriebssystemabfrage
    oDatenquelle = thisDatabaseDocument.CurrentController
    IF NOT (oDatenquelle.isConnected()) THEN oDatenquelle.connect()
    oVerbindung = oDatenquelle.ActiveConnection()
    oSQL_Anweisung = oVerbindung.createStatement()

' -------- SQL-Befehle --------------------
' --- Löschen von Filter-Zeilen, die älter als 20 Tage sind
     sSql = "DELETE FROM az.filter WHERE  DATEDIFF( `datum`, CURDATE( )
) < -20"
         oSql_Anweisung.executeUpdate(sSql)
     sSql = "SELECT min(idaa) FROM az.aaktenzeichen AS aaktenzeichen
WHERE SIGN( DATEDIFF( a_datum, CURDATE( ) ) + 1 ) > 0 ORDER BY idaa ASC"
         oAbfrageergebnis = oSQL_Anweisung.executeQuery(sSql)
            WHILE oAbfrageergebnis.next
             idaa = oAbfrageergebnis.getLong(1)
         Wend
    sSql = "DELETE FROM `filter` WHERE `connection_id` = CONNECTION_ID();"
         oSql_Anweisung.executeUpdate(sSql)
' DEFINITIONEN . Hinweis: Auch gibt es Einträge in die Tabelle Filter ->
Defaultwerte
    sSql = "REPLACE INTO filter (fil_lb_info, of_udate_sign,
fil_lb_anmeldung, connection_id, name, datum) VALUES( 0, 1,"+idaa+",
CONNECTION_ID(), USER(), CURRENT_TIMESTAMP())"
    oSQL_Anweisung.executeUpdate(sSql)

    sSql = "SELECT SUBSTRING_INDEX( USER(), '@', 1)"
       oAbfrageergebnis = oSQL_Anweisung.executeQuery(sSql)
            WHILE oAbfrageergebnis.next
             user_GL = oAbfrageergebnis.getString(1)
         Wend
REM ---------------------------------- DEFINITIONEN
' Bildschimgröße und Druckgröße
     IF user_GL     = "GDi" THEN
         Bildschirmgroesse_GL  = 125
         Druckgroesse_GL = 125
     ELSEIF user_GL = "Syl" THEN
         Bildschirmgroesse_GL  = 120
         Druckgroesse_GL = 95
     ELSEIF user_GL = "JKu" THEN
         Bildschirmgroesse_GL  = 110
         Druckgroesse_GL = 95
     ELSE
         print "User für Bildschirmgröße nicht festgelegt --> Makro start"
     END IF

     stDateiaufruf_3_GL = "/KULTUR" ' gilt für alle! Ausnahmen dann bei
den einzelnen Nutzern, z.B. GMi (siehe unten)
     stBrief_GL = user_GL
     IF user_GL     = "GTe" THEN
        stBrief_GL  = "GDi"
     ELSEIF user_GL = "LapVM" THEN
        stBrief_GL  = "LapVM"
     ELSEIF user_GL = "SGr" THEN
        stDateiaufruf_3_GL = "/Daten/KULTUR"
     END IF
' Betriebssystem anhand des verwendeten Fenster-Managers ermitteln
    l_OS_Index = GetGUIType()
    Select Case l_OS_Index
rem ------------------------------------------------- DEFINITIONEN
    Case 1
       ' Kennung für dieTask: 0
       iBetriebssystem = 0
    Case 3
       s_OS = "MacOS (in dieTask nicht definiert)" ' nicht definiert
       msgbox "Diese LibreOffice.org läuft unter: " & s_OS ,, "OOo
Makro: Betriebssystem ermitteln"
    Case 4
       ' Kennung für dieTask: 1
       iBetriebssystem = 1
    Case ELSE
    s_OS = "unbekannter Rückgabewert für Betriebssystem"
    msgbox "Diese LibreOffice.org läuft unter: " & s_OS ,, "Makro-Einträge"
END Select
Exit SUB
'ExErrorHandler:
'    MsgBox("Die Datenbank konnte nicht verbunden werden! Sie wird
geschlossen."+CHR$(13)+"Bitte 'dieTask' neu starten!", 48 + 0, "Info!")
'    ThisDatabaseDocument.Close(True)
END SUB


SUB PCName
DIM stPC1 AS STRING
DIM stPC2 AS STRING
stPC1 = Environ("HOME")  'HOME (Windows leer)
MsgBox "'" & stPC1 & "'" ,64,"Computername 1:"
stPC2 = Environ("USER")   '(Windows leer)
MsgBox "'" & stPC2 & "'" ,64,"Computername 2:"
END Sub

Am 30.06.19 um 10:12 schrieb Robert Großkopf:

> Hallo gerhard,
>> Das Beispiel funktioniert (leider) bei Windows und Linux, wie ich
>> inzwischen feststellen musste.
>>
>> Bei der "fehlerbehafteten" Base-Anwendung vollzieht sich das Ausblenden
>> nur auf der Startseite, aber nicht im Dokument (obwohl das Dokument per
>> Makro angesprochen wird und nicht die Startseite). Vielleicht hat es
>> damit zu tun, dass diese Base-Anwendung eine mysql-Datenbank auf einen
>> Server aufruft. Da dauert das Laden naturgemäß länger. Vielleicht liegt
>> es daran.
> Wie lädst Du denn die MySQL-Datenbank? Auch vorher per Makro ohne
> Nutzereingabe des Passwortes?
>
> Gruß
>
> Robert



--
Liste abmelden mit E-Mail an: [hidden email]
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
Gerhard Dittrich Gerhard Dittrich
Reply | Threaded
Open this post in threaded view
|

Base: Formulare ohne Symbolleisten in einem Fenster

In reply to this post by Robert Großkopf
Hallo Robert,

wenn ich den Makro mit "Ansicht wurde erzeugt" verbinde, dann friert das
Formular, was sich öffnen soll, ein. Ich muss dann Base neu starten.
Ich versuche mal, in die Richtung zu arbeiten, das zu öffnende Dokument
direkt zu adressieren.

oForm = thisComponent.Parent.FormDocuments
oDoc = oForm.getByName("pPerson").open

Im Base-Handbuch ist bei Symbolleisten ausblenden allerdings  die 
Zuweisung mit oFrame.
Ich muss schauen, ob das analog geht.

Ansonsten baue ich eine "Zwischenseite", also eine Menü-Seite, die sich
dann öffnet und auf der man die einzelnen Module auswählen kann,
anstelle sofort in ein Modul beim Programmstart zu gelangen.

Grüße
Gerhard


Am 30.06.19 um 10:31 schrieb Robert Großkopf:

> Hallo Gerhard,
>
> noch ein Hinweis: Versuche es einmal damit, dass Du beim Formular
> "Ansicht wurde erzeugt" mit dem Makro verbindest. In Formularen wird
> dieses Ereignis noch ausgegeben, direkt beim Öffnen von einer Base-Datei
> leider nicht.
>
> Gruß
>
> Robert



--
Liste abmelden mit E-Mail an: [hidden email]
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
Hessler, Klaus-Michael Hessler, Klaus-Michael
Reply | Threaded
Open this post in threaded view
|

Re: Base: Formulare ohne Symbolleisten in einem Fenster

In reply to this post by Gerhard Dittrich
Hallo Gerhard und Robert,
> Bei der "fehlerbehafteten" Base-Anwendung vollzieht sich das
> Ausblenden nur auf der Startseite, aber nicht im Dokument (obwohl das
> Dokument per Makro angesprochen wird und nicht die Startseite).
Ich habe jetzt die Ausblenden.odb heruntergeladen und verstehe das
Problem falsch oder kann es nicht nachvollziehen:

 1. odb im Explorer mit Doppelklick starten:
      * Formular öffnet, ohne Menuleiste (Datei  Bearbieiten, ...) und
        ohne Symbolleisten, d.h. weißen Blatt mit Text "leer" und dem
        Button.
 2. Formular schließen, Formular öffnen:
      * Verhalten und Anzeige wie unter 1.)
 3. In das Makro " Symbolleisten_Ausblenden_pPerson" ein MsgBox nach
    "WAIT 600" eingebaut (ich denke das ist das zitierte "Dokument"?)
      * Formular öffnet, mit Menuleiste, MsgBox erscheint, nach
        Bestätigung Verhalten und Anzeige wie unter 1.)

Wenn ich die erste Anfrage richtig verstehe, ist sind 1.) und 2.) doch
das gewünschte Verhalten?!

LibreOffice (Original ODF-Download) Version: 6.1.5.2, Build-ID:
90f8dcf33c87b3705e78202e3df5142b201bd805, CPU-Threads: 4;
BS: Linux 4.18; UI-Render: Standard; VCL: kde4; Gebietsschema: de-DE
(de_DE.UTF-8); Calc: group threaded
kUBUNTU 18.04

Gruß Michael


--
Liste abmelden mit E-Mail an: [hidden email]
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
Robert Großkopf Robert Großkopf
Reply | Threaded
Open this post in threaded view
|

Re: Base: Formulare ohne Symbolleisten in einem Fenster

Hallo Michael,

das Verhalten lässt sich ja bei der Beispieldatenbank nicht
nachvollziehen, da die keine Anbindung zu einer externen Serverdatenbank
hat. Deswegen funktioniert die interne Datenbank ja korrekt, bei mir mit
"Ansicht wurde erzeugt" anscheinend sogar flüssiger.

Gruß

Robert
--
Homepage: http://robert.familiegrosskopf.de
LibreOffice Community: http://robert.familiegrosskopf.de/map_3


--
Liste abmelden mit E-Mail an: [hidden email]
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
Robert Großkopf Robert Großkopf
Reply | Threaded
Open this post in threaded view
|

Re: Base: Formulare ohne Symbolleisten in einem Fenster

In reply to this post by Gerhard Dittrich
Hallo Gerhard,

ich habe das jetzt auch einmal getestet. Selbst bei einer
MySQL/MariaDB-Datenbank, zu der die Verbindung bereits besteht, wird
statt der Symbolleisten und des Menüs im Formular das Menü und die
Symbolleisten des übergeordneten Dokumentes (*.odb-Datei) ausgeblendet.
Teste ich noch einmal etwas mehr.

Gruß

Robert
--
Homepage: http://robert.familiegrosskopf.de
LibreOffice Community: http://robert.familiegrosskopf.de/map_3


--
Liste abmelden mit E-Mail an: [hidden email]
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
Gerhard Dittrich Gerhard Dittrich
Reply | Threaded
Open this post in threaded view
|

Base: Formulare ohne Symbolleisten in einem Fenster

In reply to this post by Hessler, Klaus-Michael
Hallo Michael,

umgekehrt soll es sein: die Symbolleisten von (hier) "pPerson" soll
ausgeblendet werden. Aber statt dessen werden die Symbolleisten von der
Startseite (also die Seite mit "Tabellen / Abfragen /Formulare /
Berichte" ausgeblendet (und die Symbolleisten vom Formular "pPersonen"
nicht).

Leider tritt in meiner Beispieldatei der unerwünschte Effekt nicht auf.
Ich vermute mal, dass das Laden von "Base" aufgrund der externen
Anbindung einer mysql-Datenbank mit vielen Feldern relativ lange (also
ein paar Milisekungen mehr)  dauert, so die Befehlszeile des Makros mit
"oFrame = StarDesktop.getCurrentFrame()" die Startseite ansteuert und
nicht das Formular "pPerson".

Zuhause habe ich einen Linuxrechner im Einsatz, auf dem zugleich der
mysql-Server installiert ist (also alles in einem Gerät). Da tritt
dieser Fehler nicht auf. Auf der Arbeit Windowsrechner mit Windows 7 und
10 und externen my-sql-Server: da treten der Fehler auf.

Grüße
Gerhard



Am 30.06.19 um 17:30 schrieb Hessler, Klaus-Michael:

> Hallo Gerhard und Robert,
>> Bei der "fehlerbehafteten" Base-Anwendung vollzieht sich das
>> Ausblenden nur auf der Startseite, aber nicht im Dokument (obwohl das
>> Dokument per Makro angesprochen wird und nicht die Startseite).
> Ich habe jetzt die Ausblenden.odb heruntergeladen und verstehe das
> Problem falsch oder kann es nicht nachvollziehen:
>
> 1. odb im Explorer mit Doppelklick starten:
>      * Formular öffnet, ohne Menuleiste (Datei  Bearbieiten, ...) und
>        ohne Symbolleisten, d.h. weißen Blatt mit Text "leer" und dem
>        Button.
> 2. Formular schließen, Formular öffnen:
>      * Verhalten und Anzeige wie unter 1.)
> 3. In das Makro " Symbolleisten_Ausblenden_pPerson" ein MsgBox nach
>    "WAIT 600" eingebaut (ich denke das ist das zitierte "Dokument"?)
>      * Formular öffnet, mit Menuleiste, MsgBox erscheint, nach
>        Bestätigung Verhalten und Anzeige wie unter 1.)
>
> Wenn ich die erste Anfrage richtig verstehe, ist sind 1.) und 2.) doch
> das gewünschte Verhalten?!
>
> LibreOffice (Original ODF-Download) Version: 6.1.5.2, Build-ID:
> 90f8dcf33c87b3705e78202e3df5142b201bd805, CPU-Threads: 4;
> BS: Linux 4.18; UI-Render: Standard; VCL: kde4; Gebietsschema: de-DE
> (de_DE.UTF-8); Calc: group threaded
> kUBUNTU 18.04
>
> Gruß Michael
>
>


--
Liste abmelden mit E-Mail an: [hidden email]
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
Gerhard Dittrich Gerhard Dittrich
Reply | Threaded
Open this post in threaded view
|

Re: Base: Formulare ohne Symbolleisten in einem Fenster: gelöst

In reply to this post by Robert Großkopf

Hallo Robert,

ich habe bei mir folgende Lösung gefunden: damit die Symbolleisten des
angesprochenen Formulars und nicht die des übergeordneten Menüs
(*.odb-Datei) ausgeblendet werden.
Man muss das Formular (Formularname hier bei mir in meiner Datenbank
"pPerson") explizit ansprechen (dann braucht man auch keine
wait-Kommandos mehr).
Also:
oForm = thisComponent.Parent.FormDocuments
oDoc = oForm.getByName("pPerson").open

Der gesamte Makro in meiner Datenbank

Grüße
Gerhard

SUB Symbolleisten_Ausblenden_pPerson
DIM oDrawpage AS OBJECT
DIM oForm AS  OBJECT
DIM oDoc AS OBJECT
oForm = thisComponent.Parent.FormDocuments
oDoc = oForm.getByName("pPerson").open
DIM oFrame AS OBJECT
DIM oWin AS OBJECT
DIM oLayoutMng AS OBJECT
DIM aElemente()
DIM i AS INTEGER
'oFrame = StarDesktop.getCurrentFrame() <- müsste wohl auch
funktionieren, dieses Kommando ist im Handbuch aufgeführt.
oFrame = Thiscomponent.currentcontroller.frame '<- dieses habe ich verwendet
ThisComponent.CurrentController.Frame.Title = "Person"
ThisComponent.CurrentController.ViewSettings.ZoomValue  =
Bildschirmgroesse_GL
oWin = oFrame.getContainerWindow()
oWin.IsMaximized = true
oLayoutMng = oFrame.LayoutManager
aElemente = oLayoutMng.getElements()
FOR i = LBound(aElemente) TO UBound(aElemente)
     IF aElemente(i).ResourceURL =
"private:resource/toolbar/formsnavigationbar" THEN
     ELSE
     oLayoutMng.hideElement(aElemente(i).ResourceURL)
     END IF
NEXT
END SUB

Am 30.06.19 um 19:28 schrieb Robert Großkopf:

> Hallo Gerhard,
>
> ich habe das jetzt auch einmal getestet. Selbst bei einer
> MySQL/MariaDB-Datenbank, zu der die Verbindung bereits besteht, wird
> statt der Symbolleisten und des Menüs im Formular das Menü und die
> Symbolleisten des übergeordneten Dokumentes (*.odb-Datei) ausgeblendet.
> Teste ich noch einmal etwas mehr.
>
> Gruß
>
> Robert



--
Liste abmelden mit E-Mail an: [hidden email]
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