❤️ Helfen Sie noch heute, unser LibreOffice Forum zu erhalten! ❤️
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Formularfeld sichtbar schalten
Re: Formularfeld sichtbar schalten
360 km ? Schade.
Ich habe mal versucht die letzten beiden Datenbanken zu kombinieren. Klappt auch erst mal, leider wird der Farbenstatus der Buttons falsch angezeigt.
Beispiel:
Wenn die Felder einzeln aufgedeckt werden, wird beim anschließenden Umschalten des Datensatzes der Farbenstatus falsch angezeigt. Kannst du noch mal rüberschauen ?
			
			
							Ich habe mal versucht die letzten beiden Datenbanken zu kombinieren. Klappt auch erst mal, leider wird der Farbenstatus der Buttons falsch angezeigt.
Beispiel:
Wenn die Felder einzeln aufgedeckt werden, wird beim anschließenden Umschalten des Datensatzes der Farbenstatus falsch angezeigt. Kannst du noch mal rüberschauen ?
- Dateianhänge
- 
			
		
		
				- Englisch-Grundwortschatz3.zip
- (23.64 KiB) 302-mal heruntergeladen
 
Re: Formularfeld sichtbar schalten
So, das kostet jetzt mindestens eine Kiste ...
Gruß R
			
			
							Code: Alles auswählen
Sub Navigieren (oEvent)
   oButton = oEvent.source.model
   oDrawpage = ThisComponent.Drawpage
   oForm = oDrawpage.Forms.getByName("MainForm")
   IF oButton.Label = "DE-ANZEIGEN-ALLES" then
       oButton.Label = "NÄCHSTE KARTE"
       oButton.BackgroundColor = 16763904 'Orange
       for i = 0 to oForm.Count - 1
           oFeld = oForm.getByindex(i)
           if oFeld.tag = "AN_AUS" then oFeld.enableVisible = true
           if oFeld.Name ="EINZELBUTTON" then
               oFeld.Label = "DE-AUSBLENDEN"
               oFeld.BackgroundColor = 16763904 'Orange
           endif
       next i
   ELSE 
       oButton.Label = "DE-ANZEIGEN-ALLES"
       oButton.BackgroundColor = 52224 'Grün 3
       for i = 0 to oForm.Count - 1
           oFeld = oForm.getByindex(i)
           if oFeld.tag = "AN_AUS" then oFeld.enableVisible = false
           if oFeld.Name ="EINZELBUTTON" then
               oFeld.Label = "DE-ANZEIGEN"
               oFeld.BackgroundColor = 52224
           endif
       next i
       if oform.islast then
           if msgbox ("Das war die letzte Karte,"+chr(13)+"nochmal von vorne beginnen",292,"Letzter Datensatz") = 6 then
               oform.first
               exit sub
             else
               exit sub
           endif
       endif
       oForm.next
   ENDIF
end sub
Sub UnsichtbarAnAus (oEvent)
   oButton = oEvent.source.model
   sFields = oButton.tag
   aFields = split(sFields,";")
   oDrawpage = ThisComponent.Drawpage
   oForm = oDrawpage.Forms.getByName("MainForm")
   IF oButton.Label = "DE-ANZEIGEN" THEN
       oButton.Label = "DE-AUSBLENDEN"
       oButton.BackgroundColor = 16763904 'Orange
       for i = 0 to 1
           oFeld = oForm.getByName(aFields(i))
           oFeld.enableVisible = true
       next i
   ELSE
       oButton.Label = "DE-ANZEIGEN"
       oButton.BackgroundColor = 52224 'Grün 3
       for i = 0 to 1
           oFeld = oForm.getByName(aFields(i))
           oFeld.enableVisible = false
       next i
   END IF
   nCount = 0
   for i = 0 to oForm.Count - 1
       oFeld = oForm.getByindex(i)
       if oFeld.NAME = "EINZELBUTTON" then
           if oFeld.Label = "DE-AUSBLENDEN" then nCount = nCount + 1
       endif
   next i
   oButton = oForm.getbyname("GESAMTBUTTON")
   if nCount = 4 then
       oButton.Label = "NÄCHSTE KARTE"
       oButton.BackgroundColor = 16763904 'Orange
   else
       oButton.Label = "DE-ANZEIGEN-ALLES"
       oButton.BackgroundColor = 52224 'Grün 3     
   endif
end sub- Dateianhänge
- 
			
		
		
				- Englisch-Grundwortschatz3.zip
- (23.52 KiB) 232-mal heruntergeladen
 
Windows 11: AOO, LO Linux Mint:  AOO, LO
						Re: Formularfeld sichtbar schalten
Uiiii .... das war wohl eine Menge Arbeit am Code. Jetzt ist aber auch gut .... nochmals vielen Dank für deine Mühe. 
Bei Eigenschaften "Schaltfläche" von DE-ANZEIGEN-ALLES sehe ich nur "fokussieren bei Klick". Das automatische Fokussieren (ohne Mausklick) direkt nach dem Start der Datenbank auf DE-ANZEIGEN-ALLES ist wohl nicht möglich, oder ? Wenn das jetzt wieder umfangreich wird am code rumzubasteln, lasse es bitte. Ich bin hochzufrieden mit der Datenbank.
Jetzt werde ich mal anfangen 800 Karteikarten mit über 1400 Begriffen zu füllen. Das wird lustig
Gruß Gundo
			
			
			
									
									
						Bei Eigenschaften "Schaltfläche" von DE-ANZEIGEN-ALLES sehe ich nur "fokussieren bei Klick". Das automatische Fokussieren (ohne Mausklick) direkt nach dem Start der Datenbank auf DE-ANZEIGEN-ALLES ist wohl nicht möglich, oder ? Wenn das jetzt wieder umfangreich wird am code rumzubasteln, lasse es bitte. Ich bin hochzufrieden mit der Datenbank.
Jetzt werde ich mal anfangen 800 Karteikarten mit über 1400 Begriffen zu füllen. Das wird lustig

Gruß Gundo
Re: Formularfeld sichtbar schalten
Habs hinbekommen.
			
			
			
									
									
						Code: Alles auswählen
Sub FokusSetzen
oDoc = ThisComponent
oDocView = oDoc.getCurrentController()
oForm = oDoc.drawpage.forms(0) 
oFeld = oForm.getByName("GESAMTBUTTON")
oDocView.getControl(oFeld).setFocus()
End Sub Re: Formularfeld sichtbar schalten
Moin,
das geht auch ohne Makro, indem die Schaltfläche die Aktivierungsreihenfolge 1 bekommt und der automatische Kontrollelementefokus eingeschaltet wird:Gruß R
			
			
							das geht auch ohne Makro, indem die Schaltfläche die Aktivierungsreihenfolge 1 bekommt und der automatische Kontrollelementefokus eingeschaltet wird:Gruß R
- Dateianhänge
- 
			
		
		
				- Englisch-Grundwortschatz3.zip
- (23.16 KiB) 258-mal heruntergeladen
 
Windows 11: AOO, LO Linux Mint:  AOO, LO
						Re: Formularfeld sichtbar schalten
Hallo,
Hab's korrigiert und noch einige Buttons integriert. Diese Datenbank erhält sicher keinen Schönheitspreis, ist aber für meine Bedürfnisse wunderbar zu gebrauchen.
Wüßte nicht was da noch fehlen könnte.
Gruß Gundo
			
			
							Hab's korrigiert und noch einige Buttons integriert. Diese Datenbank erhält sicher keinen Schönheitspreis, ist aber für meine Bedürfnisse wunderbar zu gebrauchen.
Wüßte nicht was da noch fehlen könnte.
Gruß Gundo
- Dateianhänge
- 
			
		
		
				- Englisch-Grundwortschatz-Final.zip
- (27.14 KiB) 224-mal heruntergeladen
 
Re: Formularfeld sichtbar schalten
Mhmmm .... ist das eigentlich möglich über einen Button eine Audiodatei abzuspielen ?
Man klickt also einen Button an, und die dort verlinkte z.B. MP3-Datei wird abgespielt. Geht das überhaupt ?
Gruß Gundo
EDIT: Ist wohl möglich: http://de.openoffice.info/viewtopic.php ... 60#p244476 aber in meinem Fall kaum praktikabel.
EDIT2: Oder doch. Bei diesem Beispiel wird ein Feld ausgelesen und die Datei geöffnet/ausgeführt. Hab ich jedenfalls so verstanden:
D.h. man müßte nur einen Button erstellen der ein bestimmtes Feld ausliest (Makro) und dann die Audiodatei abspielt. Und wenn die MP3-Datei mit einem Player verknüpft ist sollte das doch funktionieren. Ob' s praktikabel ist ... mal sehen. Ich versuch's mal.
			
			
			
									
									
						Man klickt also einen Button an, und die dort verlinkte z.B. MP3-Datei wird abgespielt. Geht das überhaupt ?
Gruß Gundo
EDIT: Ist wohl möglich: http://de.openoffice.info/viewtopic.php ... 60#p244476 aber in meinem Fall kaum praktikabel.
EDIT2: Oder doch. Bei diesem Beispiel wird ein Feld ausgelesen und die Datei geöffnet/ausgeführt. Hab ich jedenfalls so verstanden:
Code: Alles auswählen
SUB DateiOeffnen
	DIM vaDoc
	DIM Arg()
	DIM stUrl AS STRING
	DIM oDoc AS OBJECT
	DIM oDrawpage AS OBJECT
	DIM oForm AS OBJECT
	oDoc=thisComponent
	oDrawpage=oDoc.Drawpage
	oForm=oDrawpage.Forms.getByName("Formular")
	oFeld=oForm.getByName("Feld")
	stUrl = ConvertToUrl(oFeld.getCurrentValue())
	vaDoc = StarDesktop.loadComponentFromURL(stUrl, "_blank", 0, Arg())
END SUBRe: Formularfeld sichtbar schalten
Hallo Gundo,
Audiodateien abspielen ist möglich. Allgemein allerdings über
Schau dazu im Handbuch das Kapitel "Aufruf von Anwendungen zum Öffnen von Dateien" an.
Gruß
Robert
			
			
			
									
									Audiodateien abspielen ist möglich. Allgemein allerdings über
Code: Alles auswählen
oShell = createUnoService("com.sun.star.system.SystemShellExecute")
oShell.execute(stPfad,,0)
Gruß
Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
						https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: Formularfeld sichtbar schalten
Hallo Robert,
So hab ich das verstanden:
Das auszulesende Feld heißt also "play 1". Der entsprechende Button löst dieses Script aus. Im Feld steht der komplette Pfad zur mp3-Datei: 
Die Verknüpfung im System (Linux Mint 18.1) ist vorhanden. Trotzdem funktioniert es nicht. Es tut sich nichts wenn der Button angeklickt wird. Ich würde auch gerne den Kommandozeilenplayer mpg312 minimalisiert verwenden. Der muß ja auch dann auch hier im Script eingetragen werden. Wie geht das denn ?
Gruß Gundo
EDIT:
Gut, aber ich kapier noch nicht wie wie man den Inhalt von dem Feld "play 1" übergibt.
EDIT2:
Jetzt hab ich es ...
			
			
			
									
									
						So hab ich das verstanden:
Code: Alles auswählen
SUB Link_oeffnen
    DIM oDoc AS OBJECT
    DIM oDrawpage AS OBJECT
    DIM oForm AS OBJECT
    DIM oFeld AS OBJECT
    DIM oShell AS OBJECT
    DIM stFeld AS STRING
    oDoc = thisComponent
    oDrawpage = oDoc.Drawpage
    oForm = oDrawpage.Forms.getByName("MainForm")
    oFeld = oForm.getByName("play 1")
    stFeld = oFeld.Text
    IF stFeld = "" THEN
        EXIT SUB
    END IF
	oShell = createUnoService("com.sun.star.system.SystemShellExecute")
	oShell.execute(stFeld,,0)
END SUBCode: Alles auswählen
/home/user/Dokumente/test.mp3Gruß Gundo
EDIT:
Code: Alles auswählen
Shell(Pathname, Windowstyle, Param,bSync)EDIT2:
Jetzt hab ich es ...
Code: Alles auswählen
shell("/usr/bin/mpg321", 1,stFeld)Re: Formularfeld sichtbar schalten
Hallo Gundo,
Du hast aus dem Handbuch einen Teil nicht mit eingebunden:
Das macht dann aus
Gruß
Robert
			
			
			
									
									Du hast aus dem Handbuch einen Teil nicht mit eingebunden:
Code: Alles auswählen
stFeld = convertToUrl(stFeld)
Code: Alles auswählen
/home/user/Dokumente/test.mp3Code: Alles auswählen
file:///home/user/Dokumente/test.mp3Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
						https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:
Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.