❤️ Helfen Sie noch heute, unser LibreOffice Forum zu erhalten! ❤️
Unterstützen Sie das LibreOffice-Forum und helfen Sie uns, unser Ziel für 2025 zu erreichen!

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱


❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

[gelöst] Schaltfläche lässt sich nicht mehr umbenennen

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
Acco
Beiträge: 94
Registriert: Fr 31. Jan 2014, 16:41

[gelöst] Schaltfläche lässt sich nicht mehr umbenennen

Beitrag von Acco » Fr 26. Aug 2016, 14:47

Liebe LO Freunde,

mit einem Makro möchte ich in einem Formular einer eingebetteten Datenbank eine Schaltflächen-Beschriftung ändern.
In LO 4.1.6.2 funktioniert das einwandfrei, jetzt in LO 5.1.4.2 nicht mehr.

Hier der Makroauszug:

Code: Alles auswählen

oSBrief = oSubForm.getByName("SF_SBrief")
oSBrief.label = "Brief" + chr(13) + "starten"
xray oSBrief
Xray liefert unter der Eigenschaft "Label" richtigerweise "Brief starten" (als Zweizeiler, wie es sein soll).
Nur die Beschriftung der Schaltfläche ändert sich nicht.

Ich habe nirgends einen Hinweis gefunden, das da bei LO etwas geändert wurde. Daher bitte ich um eure Hilfe, ob es möglicherweise ein Bug ist, oder doch nur ein Fehler von mir.

Gruß acco
Zuletzt geändert von Acco am Fr 26. Aug 2016, 21:28, insgesamt 2-mal geändert.
openSUSE Tumbleweed - LibreOffice 24.8.2.1

RobertG
* LO-Experte *
Beiträge: 2888
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Schaltfläche lässt sich nicht mehr umbenennen

Beitrag von RobertG » Fr 26. Aug 2016, 15:22

Hallo Acco,

ich habe eine sehr ähnliche Konfiguration: OpenSUSE 42.1, 64bit und LO 5.1.5.2. Dort funktioniert das Umschalten des Labels ohne Probleme. Allerdings weiß ich nicht den Code rund um Deinen Auszug. Ich habe es so probiert:

Code: Alles auswählen

SUB Schaltflaeche(oEvent AS OBJECT)
	oSBrief = oEvent.Source.Model
	oSBrief.label = "Brief" + chr(13) + "starten"
END SUB
... und das an die Schaltfläche mit "Aktion ausführen" gehängt. Sobald die Schaltfläche geklickt wird ändert sich die Beschriftung.

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

Acco
Beiträge: 94
Registriert: Fr 31. Jan 2014, 16:41

Re: Schaltfläche lässt sich nicht mehr umbenennen

Beitrag von Acco » Fr 26. Aug 2016, 17:28

Hallo Robert,

danke für die schnelle Antwort. Dein Code funktioniert. Ich habe ihn in einem neuen Formular ausprobiert, in dem es nur die Schaltfläche gibt.

Allerdings interessiert mich, wieso der von mir verwendete Code nicht mehr funktioniert. Hier ist er komplett. Er ist an Optionsfelder gebunden unter "Aktion ausführen".

Code: Alles auswählen

SUB RechFelder_unsichtbar
	DIM oDoc AS OBJECT
	DIM oForm AS OBJECT
	DIM oSubForm AS OBJECT
	DIM oRechNr_sichtbar AS OBJECT
	DIM oRechNr_Beschrift_sichtbar AS OBJECT
	DIM oBF_letztRechNr_sichtbar AS OBJECT
	DIM oController AS OBJECT	
	DIM oRechNr_View AS OBJECT	
	DIM oRechNr_Beschrift_View AS OBJECT
	DIM oBF_letztRechNr_View AS OBJECT
	DIM nOptFeld_1 AS INTEGER
	DIM nOptFeld_2 AS INTEGER
	DIM nOptFeld_3 AS INTEGER		 	
	
	oDoc = ThisComponent
	oForm = oDoc.Drawpage.Forms.getByName("MainFormKurs")
	oSubForm = oForm.getByName("SubFormSerienbrief")

' Optionsfeld "Was wird geschrieben" auslesen	
	nOptFeld_1 = oForm.getByName("OptFeld_1").currentvalue
	nOptFeld_2 = oForm.getByName("OptFeld_2").currentvalue
	nOptFeld_3 = oForm.getByName("OptFeld_3").currentvalue
	
	IF nOptFeld_1 = 1 THEN sBriefauswahl = "zzRechnung_A5.ott"
	IF nOptFeld_2 = 1 THEN sBriefauswahl = "zzRechnung_ A4.ott"
	IF nOptFeld_3 = 1 THEN sBriefauswahl = "zzBrief_A4.ott"

' Formularfelder unsichtbar machen, wenn keine Rechnung geschrieben wird
	oRechNr_sichtbar = oForm.getByName("formRechNr")
	oRechNr_Beschrift_sichtbar = oForm.getByName("BFRech")
	oBF_letztRechNr_sichtbar = oForm.getByName("BF_letztRechNr")
	oController = oDoc.getCurrentController()
	oRechNr_View = oController.getcontrol(oRechNr_sichtbar)
 	oRechNr_Beschrift_View = oController.getcontrol(oRechNr_Beschrift_sichtbar)
	oBF_letztRechNr_View = oController.getcontrol(oBF_letztRechNr_sichtbar) 	
 
	IF sBriefauswahl <> "zzBrief_A4.ott" THEN
 	'Felder sichtbar machen
		oRechNr_View.Visible = True
 		oRechNr_Beschrift_View.Visible = True
 		oBF_letztRechNr_View.Visible = True 	
 		
' bis hierher funktioniert alles, nur die Beschriftung in LO 5.1... nicht mehr
  
 		' Beschriftung Schaltfläche ändern
 		oSubForm.getByName("SF_SBrief").label = "Rechnung" + chr(13) + "starten"
    Else
    'Felder unsichtbar machen
		oRechNr_View.Visible = False
 		oRechNr_Beschrift_View.Visible = False
		oBF_letztRechNr_View.Visible = False 		
		
' auch hier funktioniert es nicht mehr
 		' Beschriftung Schaltfläche ändern
 		oSubForm.getByName("SF_SBrief").label = "Brief" + chr(13) + "starten" 		
    End If
END SUB
Falls Du Zeit und Muße hast mal drüberzugucken freu ich mich.

Gruß acco
openSUSE Tumbleweed - LibreOffice 24.8.2.1

RobertG
* LO-Experte *
Beiträge: 2888
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Schaltfläche lässt sich nicht mehr umbenennen

Beitrag von RobertG » Fr 26. Aug 2016, 18:29

Hallo Acco,

ich habe das in einer Datenbank nachgebaut: 3 Optionsfelder im Hauptformular, einen Button ins Unterformular. Das Ändern des Buttoninhaltes geht.

Mich irritiert etwas die unterschiedliche Benennung der Optionsfelder. Wenn ich das damit zusammen baue, dann schalten die Felder ja nicht zurück, wenn ich auf ein zweites Optionsfeld gehe. Ich kann also jede Option maximal einmal drücken - anschließend sind alle Optionen ausgelöst.

Richtig zum Laufen habe ich das nur gebracht, indem ich das auslösende Object abgefragt habe und davon dann den RefValue, nicht also CurrentValue oder auch State. Aber auch mit der anderen Variante änderte sich, wie beschrieben, die Schrift auf dem Button.

Die Unsichtbarschaltungen habe ich nicht mit rein genommen.

Gruß

Robert
Dateianhänge
Neue Datenbank.odb.zip
3 Optionsfelder ändern Label auf Button
(10.29 KiB) 193-mal heruntergeladen
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

Acco
Beiträge: 94
Registriert: Fr 31. Jan 2014, 16:41

Re: Schaltfläche lässt sich nicht mehr umbenennen

Beitrag von Acco » Fr 26. Aug 2016, 21:23

Hallo Robert,

vielen Dank für Deine Hilfe. Dein Code funktionierte erstmal nicht, dann aber prima. Und meiner auch.

Folgendes ist der Grund:
Von der Schaltfläche die jetzt per Makro umbenannt werden soll, habe ich aus Bequemlichkeit seinerzeit eine Kopie gemacht, mit neuem Titel versehen, sowie mit einem anderen Makro belegt. Weil ich diese neue Funktion doch nicht brauchte, habe ich diese Schaltfläche damals auf unsichtbar geschaltet - und vergessen.

Der Name der beiden Schaltflächen ist aber identisch geblieben. Nun das verblüffende was ich nicht verstehe:
In LO 4.1... wird die gewünschte Schaltfläche geändert, in LO 5.1.... jedoch die Unsichtbare. Die gleichnamige sichtbare Schaltfläche blieb unverändert. Mit löschen der überflüssigen Schaltfläche war das Problem behoben. Sehr kurios das.

Gelernt habe ich trotzdem was über Optionsfelder, dafür nochmals Dank.

Gruß acco
openSUSE Tumbleweed - LibreOffice 24.8.2.1

RobertG
* LO-Experte *
Beiträge: 2888
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: [gelöst] Schaltfläche lässt sich nicht mehr umbenennen

Beitrag von RobertG » Sa 27. Aug 2016, 09:32

Hallo Acco,

ich muss noch einmal überprüfen, ob da tatsächlich ein Unterschied besteht. Als ich zuerst Dein Makro mit Optionsfeldern umsetzen wollte las das Makro grundsätzlich nur den Wert des ersten Feldes aus - weil bei kombinierten Optionsfeldern eben alle gleich lauten. Ist ja bei Datenbankbezug auch kein Problem: Alle Felder beschicken das gleiche Datenfeld. Ohne Bezug auf ein Datenfeld sorgt das hingegen für Verwirrung. Nur: Was ist ein Bug, und was wäre korrekt?

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

Acco
Beiträge: 94
Registriert: Fr 31. Jan 2014, 16:41

Re: [gelöst] Schaltfläche lässt sich nicht mehr umbenennen

Beitrag von Acco » Sa 27. Aug 2016, 12:55

Hallo Robert,

als Bug würde ich es nicht bezeichnen, der Code macht was er soll.

Einzig weshalb er immer nur eine der gleichnamigen Schaltflächen umbenennt und dazu je nach LO- Version eine andere, ist mir nicht einleuchtend. Naja, "it's not a bug, it's a feature" hat an anderer Stelle mal eine von mir nicht sonderlich geschätzte Softwareschmiede behauptet.

Gruß acco
openSUSE Tumbleweed - LibreOffice 24.8.2.1


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.



Antworten