⟵ zur Projektübericht

Motivation

Der ADFC-Stormarn e.V. verwendet Klebeetiketten zur Codierung von Fahrrädern.

EIN-Code Etikett

Auf diesen Etiketten ist ein EIN-Code (Eigentümer-Identifizierungs-Nummer) aufgedruckt, die es der Polizei, den Fundbüros und dem ADFC erlauben, den Eigentümer eines Fahrrads zu ermitteln. Eine über aufgeklebte Etikett angebrachte Plombierfolie schützt dieses vor dem Ablösen.

ADFC EIN-Code-Etikett aufgeklebt

Dieses Verfahren eignet sich auch für andere Gegenstände, wie Kameras, Fahrrad-Akkus, Kinderwagen, Pferdesättel, etc.

Die Codier-Aktionen finden häufig j.w.d. statt und nicht immer gibt es dort einen verlässlichen Zugang zum Internet. Die Daten zur Generierung der EIN-Codes werden deshalb in einer lokal zur Verfügung stehenden SQLite-Datenbank abgelegt.

Diese Seite beschreibt den Funktionsdialog Listendruck, der es erlaubt Daten aus einer CSV-Datei einzulesen, zu selektieren und Etiketten zu drucken.


In­halts­ver­zeich­nis

Funktionsdialog Listendruck

Format der Excel-Tabelle

Implementierung

Entwurf

Funktionsprinzip

Hilfsfunktionen

ClearPersonData

FillPersonData

FillPersonList

Initialisierung

Dateiauswahl

Filterauswahl

Datensatzauswahl


Funktionsdialog Listendruck

Der Kopf des Dialogbildschirms wird von einer Aktionsleiste gebildet. Deren Implementierung und Funktion ist im Kapitel ActionBar beschrieben. Die Funktionen zum Etikettendrucken sind im Kapitel Klebeetikett drucken dokumentiert.

Screenshot Funktionsdialog Listendruck

Format der Excel-Tabelle

Die verwendete Excel-Tabelle zur Datenerfassung hat folgenden Aufbau:

Aufbau der Excel-Tabelle

Die Tabelle muss zur Weiterverarbeitung als CSV-Datei gespeichert werden:

Aufbau der CSV-Datei

Je nach verwendetem Programm zur Erstellung der CSV-Datei kann es sein, dass die einzelnen Spaltenwerte in Anführungszeichen eingefasst sind. Diese werden von der Einleseroutine entfernt, ebenso Leerzeichen am Beginn und am Ende des Textes.

Für weitere Details siehe CSV-Datei einlesen

Implementierung

Entwurf

Entwurf des Funktionsdialogs Listendruck

Funktionsprinzip

Nach Antippen der Schaltfläche cmdLoad startet eine Dialogfolge zur Auswahl einer CSV-Datei. Die ausgewählte Datei wird von der Extension UrsCsvReader eingelesen und aufbereitet. Die eingelesen Daten werden gefiltert in die Listview-Komponente übertragen. Wird eine Zeile ausgewählt, werden die dazugehörenden Daten in den Label-Komponenten darunter angezeigt und die Schaltfläche zum Drucken des Etiketts freigegeben.

Einmal ausgewählte Daten können in der Extension UrsCsvReader abgelegt werden. Von dort können sie bei einem neuen Aufruf des Dialogs wieder abgerufen und der vorherige Zustand wieder hergestellt werden.

Hilfsfunktionen

Die Anzeige der Adressdaten wird an mehreren Stellen benötigt. Das Befüllen der Felder wird deshalb über eine Prozedur implementiert.

ClearPersonData

Die Prozedur ClearPersonData löscht die Adressdatenfelder:

Adressdatenfelder löschen

FillPersonData

Die Prozedur FillPersonData befüllt die Adressdatenfelder mit den in den Extension hinterlegten Adressdaten. Wenn Adressdaten ausgewählt wurden, kann die Schaltfläche zum Etikettendruck frei gegeben werden.

Adressdatenfelder befüllen

FillPersonList

Die Liste der Adressdaten wird befüllt.

Adressdatenliste befüllen

Initialisierung

Bei der Initialisierung des Screen werden der ausgewählte Drucker, der Etikettendruckzähler, die geladenen Daten und die ausgewählten Adressdaten wieder hergestellt.

Initialisierung Screen Listendruck

Dateiauswahl

Das Auswählen und Auslesen der Datei erfolgt über die Extension UrsCsvReader. Nach dem Einlesen der Datei, werden die gelesenen Daten angzeigt:

Dateiauswahl

Filterauswahl

Wenn über ListPicker-Komponente ein Filterwert ausgewählt wurde, wird die Liste der Adressdaten aktualisiert.

Filterauswahl

Datensatzauswahl

Nach der Selektion eines Datensatzes in der ListView-Komponente ListCodes werden die Adressdatenfelder aktualisiert.

Datensatzauswahl