Schaltfläche als Zahleneingabe

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

dcssd
***
Beiträge: 50
Registriert: Mi, 10.03.2010 13:12

Schaltfläche als Zahleneingabe

Beitrag von dcssd »

Hallo ich plante über mehrere Schaltflächen eine Eingabe einer zweistelligen Zahl.

Also Aufbau wie bei einem Taschenrechner, MA drückt die Zahl und sie wird hinterlegt.

Was sich am Anfang relativ einfach umzusetzen lies, wird nun doch irgendwie schwierig für mich.
Im Bild anbei der vorab-Aufbau, dessen was umgesetzt werden soll.

Hinterlegt ist gerade ein Makro, was in L34 die 1 schreibt, beim drücken der eins.
Dann ist mir aufgefallen, wie gehe ich weiter vor, wenn die "11" gedrückt werden soll, anschließend kam mir sogar die Frage, wie setz ich es um, dass es die "21" sein soll.


Vielleicht hat von euch sowas wer ja schon einmal umgesetzt oder eine Idee, vielleicht hänge ich ja gerade nur gerade irgendwo und eigentlich ist es einfach.

Danke im Voraus
mfg dece
Dateianhänge
schaltfläche.png
schaltfläche.png (9.47 KiB) 4559 mal betrachtet
Toxitom
********
Beiträge: 3768
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: Schaltfläche als Zahleneingabe

Beitrag von Toxitom »

Hallo dcssd (komischer Namen;)).

hab das Thema verschoben in Makros... da passt es besser hin.

Hier sind die beiden Makros, die du braucht (könnte man auch in einem zusammenfassen;)):

Code: Alles auswählen

sub Schalter(oevent)
  Anzeige(oEvent.source.model.label)
end sub

sub Anzeige(n)
  oCell = thisComponent.sheets(0).getCellrangeByName("A3")
  
  sZellInhalt = cStr(oCell.value)
  sZellInhalt = sZellInhalt & n
  oCell.value = cInt(sZellInhalt)

end sub
Das Makro "Schalter" verknüpfst Du mit jeder Schaltfläche (Aktion bestätigen).

DAs Makro "Anzeige" ändert den WErt in der Zielzelle - musst Du halt für Dich anpassen.

Denke aber, Du solltest Dich zunächst mit den Grundlagen der Makro-Techniken beschäftigen... Variablen, Typen, Funktionen, etc. Dann wird das schon was;)

VG
Tom
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
dcssd
***
Beiträge: 50
Registriert: Mi, 10.03.2010 13:12

Re: Schaltfläche als Zahleneingabe

Beitrag von dcssd »

Hallo Toxitom,

erstmal vielen Dank für die Hilfe.

Der Name entstand durch auf die Tastatur hauen, hat aber nichts mit dem Forum hier zu tun, begleitet mich seit jeher. :)

Also das hat funktioniert und läuft nun nach meinen Wünschen.
Alle anderen Makros im Hintergrund funktionieren auch.

Allerdings sehen die ein wenig anders aus, als der von dir erstellte. :lol:
Wahrscheinlich müsste ich mich mit den von dir genannten Grundlagen beschäftigen.

Auch wenn das jetzt vielleicht ein wenig blöd ist, weil es bestimmt einige Dokumentationen darüber gibt, kannst du eine Empfehlen?

Noch einmal vielen Dank und einen schönen Tag noch!
Toxitom
********
Beiträge: 3768
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: Schaltfläche als Zahleneingabe

Beitrag von Toxitom »

Hey,
...weil es bestimmt einige Dokumentationen darüber gibt, kannst du eine Empfehlen..
*grins*... klar. Schau einfach in meine Signatur. Hihi.

Ansonsten: Einfach ->> hier schauen.

VG
Tom
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
dcssd
***
Beiträge: 50
Registriert: Mi, 10.03.2010 13:12

Re: Schaltfläche als Zahleneingabe

Beitrag von dcssd »

Ok,
werde ich mir mal als Abendlektüre günnen.

Doch noch ein winziges Problem hätte ich.

Aktuell sieht der letzte Schritt, welcher mit Makro hinterlegt ist so aus, dass die beschriebenen Zellen wieder gelöscht werden und das "Dokument" geleert wird.

anschließend soll der Cursor wieder in das Textfeld "EAN" gelegt werden.

Code: Alles auswählen

dim args13(0) as new com.sun.star.beans.PropertyValue
args13(0).Name = "ToPoint"
args13(0).Value = "$B$1"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args13())
dispatcher.executeDispatch(document, ".uno:ClearContents", "", 0, Array())

dim args14(0) as new com.sun.star.beans.PropertyValue
args14(0).Name = "Nr"
args14(0).Value = 1

dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args14())

end sub
So sieht aktuell das ende aus, die Tabelle 1 ist komplett gesperrt, das Textfeld ist auf Tabelle4 verlinkt.
Das Textfeld heißt "ean"

geht das?
Danke schonmal
Antworten