Hallo,
wir möchten in unserer Schule einen Sponsoringlauf veranstalten, d.h. die Schüler laufen so viele Runden wie sie wollen oder können und jede Runde wird notiert.
Ich würde das gerne mit einem Barcodescanner machen. die Schüler erhalten vor dem Start einen Barcode und jedesmal wenn sie eine Runde gelaufen sind werden sie abgescannt und in der Schülerliste soll hinter ihrem Namen aufsummiert werden.
ist das möglich mit Calc?
vielen Dank für eure Hilfe
Markus
barcodescanner soll summieren
Moderator: Moderatoren
Re: barcodescanner soll summieren
Hi,
hatte mich letztens mit dem Erzeugen von Barcode128 Codes beschäftigt. Zum Testen ist deine Aufgabe genau richtig gewesen.
Anbei findest du eine Datei mit 300 Startnummern incl. Barcodes, sowie eine Calc-Datei mit zwei Makros.
Makro 1:
Damit die Makros laufen dürfen, stellst du unter Extras/Optionen/Openoffice.org oder LibreOffice.org/Sicherheit/Makrosicherheit mindestens die Stufe "Mittel" ein, dann wirst du beim Öffnen von Dokumenten gefragt, ob du Makros ausführen möchtest.
Gruß R
hatte mich letztens mit dem Erzeugen von Barcode128 Codes beschäftigt. Zum Testen ist deine Aufgabe genau richtig gewesen.
Anbei findest du eine Datei mit 300 Startnummern incl. Barcodes, sowie eine Calc-Datei mit zwei Makros.
Makro 1:
Code: Alles auswählen
Sub S_Startzeit
ocontroller = Thiscomponent.currentController
osheet = thiscomponent.sheets.getbyname("Läufer")
oForm = osheet.drawpage.forms.getbyname("Formular")
otxtScan = oForm.getbyname("txtScan")
otxtScanControl = ocontroller.getcontrol(otxtScan)
otxtScanControl.setfocus
oCellStartzeit = osheet.getcellbyposition(26,3)'AA4
oCellStartzeit.value = now()
end sub
- Speichert die Startzeit des Rennes in Zelle AA4
- Setzt den Cursor in das Scanfeld
Code: Alles auswählen
const BC_D = 14540253
const BC_OK = 10092390
Sub S_Add_Round(event)
If (event.KeyCode = 1280) Then
if event.source.Text >"" then
'If (oEvt.KeyCode = com.sun.star.awt.Key.RETURN) Then
dim nStartNumber as integer
nStartNumber = event.source.Text
osheet = Thiscomponent.sheets.getbyName("Läufer")
osheet.unprotect("")
d_Startzeit = osheet.getcellbyposition(26,3).value
ocell = oSheet.getcellbyposition(3,nStartNumber)
ocell.value = oCell.Value + 1
oTimerange = oSheet.getcellrangebyposition(4,nStartNumber,23,nStartNumber)
oSumCell = oSheet.getcellbyposition(24,nStartNumber)
dRoundsum = oSumCell.value
for i = 0 to 19
otimecell = oTimerange.getcellbyposition(i,0)
if otimecell.Type = com.sun.star.table.CellContentType.EMPTY then
if i = 0 then
otimecell.value = now() - d_Startzeit
else
otimecell.value = now()- d_Startzeit - dRoundsum
end if
exit for
end if
next i
osheet.protect("")
event.source.model.backgroundcolor = BC_OK
wait 200
event.source.model.backgroundcolor = BC_D
event.source.Text = ""
'msgbox "RETURN"
End If
end if
End Sub
- Zeigt die Startnummer des "gescanten" kurz im Scanfeld an
- Färbt das Scanfeld bei erfolgreichem Scan kurz grün ein
- erhöht die Rundenzahl desjenigen um 1 und
- schreibt die Rundenzeit des gescanten Läufers auf, es sind bis zu 20 Runden möglich.
- Schützt nachdem scannen des ersten Läufers das Tabellenblatt gegen manuelles Überschreiben
- Beim Start des Laufes einmal die Schaltfläche "Start des Rennes" anklicken
- danach nur noch die Läufer scannen.
- Soll der Blattschutz entfernt werden -> Extras/Dokument schützen -> Haken bei "Tabelle" entfernen
- Der Scanner muss auf "Return" eingestellt sein.
Damit die Makros laufen dürfen, stellst du unter Extras/Optionen/Openoffice.org oder LibreOffice.org/Sicherheit/Makrosicherheit mindestens die Stufe "Mittel" ein, dann wirst du beim Öffnen von Dokumenten gefragt, ob du Makros ausführen möchtest.
Gruß R
- Dateianhänge
-
- RundenZählerBarcode.ods
- (27.26 KiB) 83-mal heruntergeladen
-
- StartnummernCode128B_A4.zip
- (59.83 KiB) 78-mal heruntergeladen
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: barcodescanner soll summieren
Vielen Dank schonmal,
ich werde es morgen abend testen und berichten
Gruß
Markus
ich werde es morgen abend testen und berichten
Gruß
Markus