Anmelden

View Full Version : QR-Code z.T. unvollständig



ubas
17-05-16, 13:33
Hallo zusammen,

ich bin schon am verzweifeln. Erzeuge über eine AFPDS-PRTF einen Barcode 32 mit einem Link der eine varable Länge hat. So wie der Wert der Variablen DELIVERY 10 Zeichen beinhaltet ist alles ok und der Barcode verfügt über den kompletten Link. Ist DELIVERY jedoch nur 8 oder 9 Zeichen lang, schneidet der Barcode den Link ab Stelle 64 ab. Woran kann das liegen?

PRTF *AFPDS RPLUNPRT=*NO

A BC23 120A 5BARCODE(32 X'02' (*WIDTH 0.010))
A 25'QR-CODE'

RPG
FDrubarcp O E PRINTER OFLIND(*IN01

D Funktion s 9a

C eval %subst(Funktion:1:1) = X'C0'
C eval %subst(Funktion:2:1) = X'01'
C eval %subst(Funktion:3:1) = X'00'
C eval %subst(Funktion:4:1) = X'02'
C eval %subst(Funktion:5:1) = X'00'
C eval %subst(Funktion:6:1) = X'00'
C eval %subst(Funktion:7:1) = X'00'
C eval %subst(Funktion:8:1) = X'00'
C eval %subst(Funktion:9:1) = X'00'
C eval BC23 = Funktion +
C 'http://www.sendungsnutzervergabe' +
C '.de/index.php?delivery=1234567890' +
C '&sender=4002' +
C '&receiver=4210' +
C '&lang=de'

Fuerchau
17-05-16, 14:24
Verwende beim Zusammenbauen die Funktion %TRIM().
Links vertragen selten ein Leerzeichen.
Ansonsten muss man z.B. Sonderzeichen in der Unicode-Notation einbetten, Blank entspricht dann "%20".

ubas
17-05-16, 14:58
Verwende beim Zusammenbauen die Funktion %TRIM().
Links vertragen selten ein Leerzeichen.
Ansonsten muss man z.B. Sonderzeichen in der Unicode-Notation einbetten, Blank entspricht dann "%20".

Tja, nur ist in meinem Beispiel nicht ein Blank vorhanden. Habe auch festgestellt, das wenn die Zifferfolge über 8 und ungerade ist der QR-Code durch ein Scannprogramm überhaupt nicht gelesen werden kann. Ich vermute das es mit den Hexwerten die zum Schalten verwendet werden zusammenhängt. Hatte das Barcode 32 Beispiel auch aus dem Netz gezogen.

Fuerchau
17-05-16, 15:19
Du hast wohl das Problem, dass du fix 120 Zeichen definierst.
Damit werden natülich jede Menge Leerzeichen im Datenstrom mit generiert.
Rechne mal die genaue Anzahl aus und da der variable Teil wohl nur DELIVERY ist, reichen ggf. wenige Formate aus.
Ich hatte mal bei Code39 auch variable Längen und musst hier 30 Satzformate (Länge 1 bis 30) definieren und wahlweise ansteuern.

ubas
18-05-16, 15:30
So, habe deinem Rat gefolgt und 15 verschieden Große Felder in der PRTF definiert die je nach Länge bezugszahlmäßig ausgegeben werden. Funktioniert auch super bei der Zeichenfolge '1', '12', '123' u.s.w.. Nur bei '12345678' wird die URL abgeschnitten. Ersetze ich dann '12345678' durch 'AAAAAAAA' funktioniert es wieder. Versteh einer wer's will, ich versteh es nicht. Die Ziffernfolge '123456789' geht dann auch wieder. Ich liebe diese Dinge vom Typ "Geht, geht nicht!".

Fuerchau
18-05-16, 15:35
Hier http://goqr.me/de/ kann man sich QR-Codes generieren lassen.
Vergleich doch mal die Ergebnisse.
Gibts eine Erklärung für deinen Hex-Header?
Ggf. ist da doch was falsch oder sogar unnötig.