Seite 1 von 1
Zahl per Makro auf Minus setzen
Verfasst: So 4. Jul 2021, 15:54
von Pensionär
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
Re: Zahl per Makro auf Minus setzen
Verfasst: So 4. Jul 2021, 17:21
von RobertG
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
Re: Zahl per Makro auf Minus setzen
Verfasst: Mo 5. Jul 2021, 21:53
von Pensionär
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
Re: Zahl per Makro auf Minus setzen
Verfasst: Di 6. Jul 2021, 07:59
von RobertG
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
Re: Zahl per Makro auf Minus setzen
Verfasst: Di 6. Jul 2021, 12:17
von Pensionär
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
Re: Zahl per Makro auf Minus setzen
Verfasst: Di 6. Jul 2021, 16:18
von RobertG
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