barcodescanner soll summieren

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

Pappamap
Beiträge: 3
Registriert: Sa, 14.02.2009 13:37

barcodescanner soll summieren

Beitrag von Pappamap »

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
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: barcodescanner soll summieren

Beitrag von F3K Total »

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:

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
Makro 2:

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
Vorgehen:
  • 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.
Funktioniert, habe ich mit meinem Scanner gerade ausprobiert.

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
Pappamap
Beiträge: 3
Registriert: Sa, 14.02.2009 13:37

Re: barcodescanner soll summieren

Beitrag von Pappamap »

Vielen Dank schonmal,
ich werde es morgen abend testen und berichten

Gruß
Markus
Antworten