GEVITAS CopyScan Formular mit QRCode

Aus GEVITAS
Version vom 24. Januar 2016, 16:37 Uhr von Gevitas (Diskussion | Beiträge) (Inhalt des QRCodes festlegen)
Wechseln zu: Navigation, Suche

1 Allgemeines

GEVITAS ScanCopy geht davon aus, dass die Datei-Namen der gescannten Formulare bestimmte Codierungen beinhalten. Diese ermöglichen es, die Dateien in die vorgesehenen Ordner zu verschieben und Datei-Verknüpfungen in der Datenbank (z.B. zu einem bestimmten Auftrag, einem Kontakt usw.) herzustellen.

Am Einfachsten ist es dabei, auf dem Formular einen QRCode unterzubringen, der die Codierung beinhaltet.

Das geht mit FastReport ganz einfach. Wie, wird hier beschrieben.


2 Das Formular

So könnte ein Formular mit einem QRCode aussehen:

GevitasCopyScan Formular Beispiel.png

In diesem Formular befindet sich im Fuss (auf jeder Seite) ein QRCode, der die oben beschriebene Codierung beinhaltet.

Die Software des Dokumenten-Scanners muss diesen QRCode erkennen und daraus den Dateinamen des Dokuments erstellen.


3 Designer öffnen

Starten Sie REFLEX und öffnen einen Auftrag oder einen Lieferschein, je nachdem, welches Formular Sie ändern wollen.

Klicken Sie auf Drucken. Das Druckfenster für das ausgewählte Formular wird angezeigt. Klicken Sie auf den Button Desginer.

  • Sie benötigen das Zugriffsrecht "ReportDesigner", um den Designer öffnen zu können!


4 QRCode einfügen

Navigieren Sie zu dem Bereichen, in den der QRCode eingefügt werden soll, z.B. den PageFooter (Seitenfuß).

Klicken Sie in der Objekt-Symbolleiste links auf das Objekt Barcode, wählen "QRCode" aus und fügen das Objekt an der gewünschten Stelle ein.

Beispiel:

GevitasCopyScan Formular Designer 01.png


Im Objekt-Inspektor links kann man die Eigenschaften für das QRCode-Objekt einstellen. Die wichtigsten Eigenschaften sind:

Eigenschaft Erklärung
BarProperties Fehler-Toleranz (low, medium, high):
ErrorLevels
Die Fehler-Toleranz sollten Sie mind. auf ecM (Medium) stellen. Das vergrößert zwar den QRCode, erhöht aber die Lese-Sicherheit.
PixelSize
Pixel-Größe je Einheit. Je weniger Pixel, desto kleiner wird der Code, aber auch schlechter lesbar. Standard: 4.
BarType Für QRCode auf "bcCodeQR" stellen.
ShowText Text anzeigen:
True
Der Klartext des Codes wird unten angezeigt.
False
Der Klartext des Codes wird nicht angezeigt. Dies ist die empfohlene Einstellung.
Text Der Text, der im QRCode steht. Dieser wird per Code bestimmt, s.u.
Zoom Hiermit kann man die Größe des Objekts einstellen. Standard ist 1, empfehlenswert ist 0,7. Wenn Sie den Zoom einstellen, führen Sie unbedingt Leseversuche durch. Dazu genügt ein handelsübliches Smartphone mit einer entsprechenden App.


Hinweis
Die Größe des Objekts ergibt sich automatisch aus dem Inhalt! Im Gegensatz zu anderen Objekten können Barcode-/QRCode-Objekte nicht einfach durch Ziehen mit der Maus in der Größe geändert werden.


5 Inhalt des QRCodes festlegen

Der Inhalt des QRCodes wird nicht fest angegeben, sondern beim Ausführen des Reports dynamisch festgelegt.

Dazu wird ein sog. "Ereignis" genutzt. Ein Ereignis ist ein Code (also eine Art von Programmierung), mit der man den Inhalt des QRCodes festlegen kann.

Um den Code einzugeben (oder zu ändern), klicken Sie das QRCode-Objekt einmal an. Dann klicken Sie im Objekt-Inspektor links auf "Ereignisse" und darin doppeklicken Sie auf das Ereignis "OnBeforePrint". Dieses Ereignis wird abgearbeitet, bevor das QRCode-Objekt gedruckt (oder angezeigt) wird.

Geben Sie diesen Code ein:

procedure Barcode2D1OnBeforePrint(Sender: TfrxComponent);
begin
  Barcode2D1.Text :=  ' Packliste F(PL)'
                      + ' ANR(' + IntToStr(<AuftragsKopf."AuftrNr">) + ')'
                      + ' AS(' + IntToStr(<Page>) + ')'
                      + ' GS(' + IntToStr(<TotalPages>) + ')'
                      + ' D(' + FormatDateTime('yyyymmdd',<Date>) + '_'
                      + FormatDateTime('hhmmss',<Time>) + ')';
end;

Dieser Code legt den Inhalt des QRCode ("Barcode2D1.Text") fest.


Die einzelnen Bestandteile:

  Barcode2D1.Text :=  ' Packliste F(PL)'

Dieses Formular ist eine Packliste (Ladeliste). Deshalb wird die Codierung "F(PL" verwendet.

Einzelheiten zur Codierung stehen hier.


                      + ' ANR(' + IntToStr(<AuftragsKopf."AuftrNr">) + ')'

Dieser Code für die Auftragsnummer <AuftragsKopf."AuftrNr"> in den Text ein. Da dieses Feld ein Zahlenfeld, muss man es in einen Text ("String") umwandeln. Dazu wird die Funktion IntToStr verwendet. Die wandelt eine Zahl in einen Text um.


                      + ' AS(' + IntToStr(<Page>) + ')'

Trägt die aktuelle Seitennummer <Page> in den Text ein. <Page> ist eine interne Variable, die von FastReport zur Verfügung gestellt wird.


                      + ' GS(' + IntToStr(<TotalPages>) + ')'

Trägt die Gesamt-Seitenanzahl <TotalPages> in den Text ein. <TotalPages> ist eine interne Variable, die von FastReport zur Verfügung gestellt wird.


                      + ' D(' + FormatDateTime('yyyymmdd',<Date>) + '_'
                      + FormatDateTime('hhmmss',<Time>) + ')';

Trägt das Datum un die Uhrzeit in den Text ein. Da nicht die Standard-Darstellung "TT.MM.JJJJ" verwendet werden soll, wird die Funktion FormatDateTime verwendet. <Date> und