BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Zahl per Makro auf Minus setzen

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
Pensionär
Beiträge: 30
Registriert: So 20. Jun 2021, 11:52

Zahl per Makro auf Minus setzen

Beitrag von Pensionär » So 4. Jul 2021, 15:54

Guten Tag

Vielleicht hat mir jemand einen Tipp, ob es einen Makro für folgende Anwendung gibt.

Ich habe ein Feld mit dem Namen 'Betrag', nun möchte ich im Formular den Betrag ohne Minuszeichen eingeben und dann mit einer Schaltfläche, diesem Betrag ein Minus vor die Zahl setzen.

Leider konnte ich im Forum nichts finden und auch Google wusste keinen Rat.

Falls jemand ein Skript hätte, würde es mich sehr freuen.

Ich wünsche noch einen schönen Nachmittag.

Herzliche Grüsse
Markus

RobertG
Beiträge: 2735
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Zahl per Makro auf Minus setzen

Beitrag von RobertG » So 4. Jul 2021, 17:21

Hallo Markus,

meinst Du, dass das Betätigen einer Schaltfläche einfacher ist als das Minus direkt davor zu schreiben? Wenn ich das minus schon ersparen wollte, dann würde ich das Ganze beim Verlassen des Zahlenfeldes korrigieren.
Das Folgende dürfte vermutlich für ein einfaches Formularfeld passen

Code: Alles auswählen

SUB MinusSetzen(oEvent AS OBJECT)
	oFeld = oEvent.Source.Model
	loValue = oFeld.CurrentValue
	IF Sgn(loValues) = 1 THEN
		loValue = -1*loValue
		oFeld.BoundFiled.UpdateLong(loValue)
	END IF
END SUB
Das ist jetzt für Ganzzahlen gedacht (und nicht getestet).
Bei Dezimalzahlen müsste das wohl UpdateDouble() heißen. Da würde ich dann die Variable auch entsprechend als doValue bezeichnen. Aber die Definition der Variablen habe ich da ja sowieso außen vor gelassen.

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

Pensionär
Beiträge: 30
Registriert: So 20. Jun 2021, 11:52

Re: Zahl per Makro auf Minus setzen

Beitrag von Pensionär » Mo 5. Jul 2021, 21:53

Guten Abend Robert

Vielen Dank für Deine Unterstützung.

Ich kriege es leider nicht hin und wie Du es bereits erwähnt hast, ob es sich dadurch einfacher arbeiten lässt bleibt fraglich.

Was leider nicht geht, ist die Variante beim Verlassen des Feldes, weil ich beide Varianten eingebe (positive und negative Beträge). Darum der Schalter, oder wenn z. B. beim Listenfeld (Einnahmen/Ausgaben), die Option Ausgaben gewählt wurde, setzt sich das Betragsfeld ins Minus.

Aber es ist schon so eine super Sache und erleichtert mir die Arbeit.

Nochmals vielen Dank.

Und herzliche Grüsse
Markus

RobertG
Beiträge: 2735
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Zahl per Makro auf Minus setzen

Beitrag von RobertG » Di 6. Jul 2021, 07:59

Hallo Markus,

das genannte Makro setzt natürlich alles ins Minus, was in dem entsprechenden Feld steht.
Angenommen, das Feld in Deiner Tabelle heißt "Betrag" und der Button (oder das Markierfeld oder ...) steht in dem gleichen Formular:

Code: Alles auswählen

SUB MinusSetzen(oEvent AS OBJECT)
	oForm = oEvent.Source.Model.Parent
	doValue = oForm.getDouble(oForm.findColumn("Betrag"))
	IF Sgn(doValues) = 1 THEN
		doValue = -1*doValue
		oForm.UpdateDouble(oForm.findColumn("Betrag"), doValue)
	END IF
END SUB
Gruß

Robert
Zuletzt geändert von RobertG am Di 6. Jul 2021, 16:12, insgesamt 1-mal geändert.
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

Pensionär
Beiträge: 30
Registriert: So 20. Jun 2021, 11:52

Re: Zahl per Makro auf Minus setzen

Beitrag von Pensionär » Di 6. Jul 2021, 12:17

Grüezi Robert

Vielen Dank, dass Du Dich nochmals bemüht hast.

Das Resultat ist folgendes:
- Wenn ich es mit einer Schaltfläche (im gleichen Formular) anklicke passiert nichts.

- Den Makro anstossen im Makro bearbeiten bringt die Meldung:
BASIC-Laufzeitfehler. Argument ist nicht optional.

- Beim separaten ausführen über Makro ausführen erscheint das:
Ein Scripting Framework Fehler trat während der Ausführung vom Basic Skript Standard.Buchhaltung_oeffnen.MinusSetzen auf.
Meldung: wrong number of parameters!


Beste Grüsse
Markus

RobertG
Beiträge: 2735
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Zahl per Makro auf Minus setzen

Beitrag von RobertG » Di 6. Jul 2021, 16:18

Hallo Markus,

wenn das Makro nicht läuft, dann zeigt es mit der entsprechenden Zeile an, wo es nicht weiter geht. Vielleicht ist da die Zeile mit dem Update. Ich würde an Deiner Stelle einmal die zugrundeliegende Tabelle nehmen und zählen, an welcher Stelle denn das Feld "Betrag" liegt. Und dann

Code: Alles auswählen

oForm.UpdateDouble(Stelle aus der Datengrundlage, doValue)
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

An alle, die das LibreOffice-Forum nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten