[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Jul 2006
    Beiträge
    8
    hallo hans-joachim,
    mir ist gerade was aufgefallen (auf's hirn schlag') ...
    gehe ich recht in der annahme, das die hex-codes bereits im ascii-format sein müssen ? d.h. wenn ich die variable aus dem programm befülle, dass ich dann selbst (z.b. mit QDCXLATE) dafür sorgen muss, dass die daten konvertiert werden ?

    das dürfte dann die lustigen zeichen in meinem ausdruck erklären ....

    sigi

  2. #2
    Registriert seit
    Jul 2002
    Beiträge
    218
    hi sigi

    eigentlich nicht

    a 1 1dft(X´1B.......tralala') TRNSPY
    a Field 60 +1Spacea(1)
    +1Dft(X'1B45') TRNSPY /* PCLENDE /*

  3. #3
    Registriert seit
    Jul 2002
    Beiträge
    218
    hi sigi

    eigentlich nicht

    a 1 1dft(X´1B.......tralala') TRNSPY
    a Field 60 +1Spacea(1)
    +1Dft(X'1B45') TRNSPY /* PCLENDE /*

  4. #4
    Registriert seit
    Jul 2006
    Beiträge
    8
    hi hans-joachim,
    X'1B45' steht doch für Esc E
    45 ist aber der ascii-hexwert.

    ich hatte in meinem beispielen die ebcdic-hexwerte verwendet

    und wenn ich mir jetzt nicht mühe machen will, für die ganzen pcl-commandos die richtigen hexwerte herauszuknobeln hatte ich eben gedacht, ich nehme einen string, schreibe z.b.
    "Esc (s30v2p305h24720T" hinein und lasse diesen mit QDCXLATE in ascii umsetzen.

  5. #5
    Registriert seit
    Jul 2002
    Beiträge
    218
    Zitat Zitat von sigiK
    hi hans-joachim,
    X'1B45' steht doch für Esc E
    45 ist aber der ascii-hexwert.

    ich hatte in meinem beispielen die ebcdic-hexwerte verwendet

    und wenn ich mir jetzt nicht mühe machen will, für die ganzen pcl-commandos die richtigen hexwerte herauszuknobeln hatte ich eben gedacht, ich nehme einen string, schreibe z.b.
    "Esc (s30v2p305h24720T" hinein und lasse diesen mit QDCXLATE in ascii umsetzen.

    also ich habe das, was ich brauchte (bis auf barcode) alles 1b45 usw.
    benutzt.
    doch bevor ich mein abitur in pcl gemacht habe, bin ich dann doch lieber auf dds zurückgegangen (bei mir ging es ja )

  6. #6
    Registriert seit
    Jul 2006
    Beiträge
    8
    irgendetwas mache ich wohl noch falsch - kann mir jemand helfen ?

    hier die DDS meines PRTF (leider etwas gestaucht):
    A 1 2'Barcode-Test EAN128 - Anfang'
    A
    A* '~ ( s 7 2 V 4 P 1 0 5 H 2 4 7 2 0 T'
    A 10 2DFT(X'1B287337325634503130354832343-
    A 7323054')
    A TRNSPY
    A
    A* MUSTERBARCODE
    A +1'0003700147000000236910678425193219'
    A
    A 35 2'Barcode-Test EAN128 - Ende'

    der drucker ist als 3812 mit *LAN und TRANSFORM(*YES) konfiguriert - muss evtl. hier etwas geändert werden ?

    danke im voraus
    sigi

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Wichtig ist tatsächlich, dass das gesamte Feld mit TRNSPY in ASCII ausgegeben werden muss !
    Zusätzlich ist auch RPLUNPRT(*NO) erforderlich, da sonst x'1B' in x'20' ersetzt wird.

    Eine Trennung in 2 Felder, 1 für x'1B' und der Rest funktioniert nicht, da jedes DDS-Feld einzeln von Hosttransform in eigene ESC's gepackt wird.

    Ich wüsste nicht, dass DFT bei PRTF's funktioniert.
    Normalerweise gibts halt nur Textkonstanten oder Felder. DFT gilt nur bei DSPF's.

    Für die Umwandlung EBCDIC-ASCII kannst du QDCXLATE mit der Tabelle QUSRSYS/QASCII verwenden da nur nicht variante Zeichen (A-Z und 0-9) als Barcode gedruckt werden müssen.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  8. #8
    Registriert seit
    Jul 2006
    Beiträge
    8

    Thumbs up

    nun ist land in sicht (fehler war vor dem bildschirm ):

    es funktioniert wie von jajonowak beschrieben:
    - ESC-sequenz in ASCII-Hex mit TRNSPY ausgeben
    - nutzdaten als normales feld
    - DFT geht übrigens auch bei PRTF

  9. #9
    Registriert seit
    Aug 2004
    Beiträge
    63

    ASCII

    Natürlich muss man ASCII Hex angeben! Sonst wäre es ja nicht transparent.

    Es ist u.a. notwendig, eine String-Umsetzung nach HEX zu schreiben, die EBCDIC->ASCII umsetzt. Da gibt es z.B. das genannte API. Alle Steuersequenzen sind aber am besten hart-codiert anzugeben - wie das besagte 1B45. 1B ist das ESC-Zeichen für ASCII. Da wird nix umgesetzt. Soll es ja auch nicht!!!

    Ebcdic-Zeichen wird kein (nicht IBM) Laserdrucker verstehen.

    Gruß
    M.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •