[NEWSboard IBMi Forum]
Seite 1 von 3 1 2 ... Letzte
  1. #1
    Registriert seit
    Apr 2008
    Beiträge
    83

    Question Verschiedene Sprachen über 5250-DSPF erfassen, in PF speichern und in PRTF ausgeben

    Moin,

    ich muss in einer DSPF Daten in den 24 Amtssprachen der EU erfassen, in einer PF abspeichern und in einer PRTF wieder ausgeben.

    System ist generell in Deutsch. Es geht nur um die eine Stelle in der Anwendung.

    Ich habe hier im Forum und im Internet schon verschiedenste Beiträge gelesen. Am sinnvollsten schienen mir Felder in DSPF, PF und PRTF mit CCSID 13488 und FONTNAME in der PRTF.

    Problem ist dann aber ja wohl die 5250-Emulation, die Zeichen nach der Codepage des Jobs anzeigt.

    Wie würdet ihr das lösen? Gibt es überhaupt eine Lösung?

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Bedingt richtig.
    Die Zeichen werden nach der eingestellten Codepage in der Emulation angezeigt.
    Zwischen 5250 und Job erfolgt nämlich keine Codewandlung.
    Steht dein Job z.B. auf 273 (Deutsch) und deine Sitzung auf 1147 (Französisch) nimmt der Job trotzdem an, die Daten würden in 273 bzw. 1141 erfasst.
    Dies führt immer gerne wieder zu wiederholten Datenänderungen zwischen Deutsch und Französisch.
    Wichtig ist also grundsätzlich, dass die Job-CCSID zur Terminal-Codepage passt.

    Kommen wir nun zu UCS2 (Unicode 13488).
    Hierbei übersetzt die CA-Sitzung nur zwischen 13488 und der Terminal-Codepage.
    Eine mehrsprachige (eigentlich mehrsprachräumige) Ein-/Ausgabe ist mit CA-5250 nicht möglich.

    Mangels Möglichkeiten bin ichnoch nicht dazu gekommen, die neue CA-Solutions (Java-basiert) auszuprobieren, ob die nun mit G(13488)-Feldern in der 5250 vernünftig umgehen kann.
    Hier steht ein Test wohl noch aus.

    Bzgl. der FONTNAME-Möglichkeit mit Unicode in der PRTF betrifft dies ausschließlich die PDF-Ausgabe!
    Ggf. unter Einsatz der PSF/400 und eines originalen IBM-AFPDS-Druckers (also ohne Hosttransform) könnte das auch funktionieren, aber wer hat das schon.
    Hosttranform (also WSCST) unterstützt das nicht. Hier wird dann eine Standardschrift im Drucker mit der eingestellten Codepage des Druckers ausgegeben.

    Für solche Art der Anwendung bietet sich tatsächlich nur eine ClientServer-Lösung mit z.B. Java oder .NET an.
    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

  3. #3
    Registriert seit
    Sep 2003
    Beiträge
    236
    Guten Tag Ottersberg,

    wie wäre es mit chgusrprf ? .
    Das Problem hatten wir in der Fibu bei dem Austausch der Daten mit dem Bankenserver.
    Bei der Gruppe der Buchhaltung habe ich dann die CCSID geändert.

    Vielleicht wären die anderen Parameter auch noch interessant für Euch.

    Gruss
    Thomas

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Das löst nicht das Problem der gleichzeitigen Anzeige mehrerer Sprachen in einer Sitzung.
    Man kann zwar über das USRPRF die CCSID des Job's anpassen.
    Allerdings muss man hier aufpassen, wenn der Job z.B. in 870 geändert wird und die PF in 273 ist, verhindert die DB das Öffnen der Datei wegen Inkompatibilität der CCSID's.
    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

  5. #5
    Registriert seit
    Apr 2008
    Beiträge
    83
    Moin,

    Zitat Zitat von Fuerchau Beitrag anzeigen
    Bedingt richtig.
    Die Zeichen werden nach der eingestellten Codepage in der Emulation angezeigt.
    Zwischen 5250 und Job erfolgt nämlich keine Codewandlung.
    Stimmt. Habe dort fälschlicherweise "Job" geschrieben.

    Zitat Zitat von Fuerchau Beitrag anzeigen
    Bzgl. der FONTNAME-Möglichkeit mit Unicode in der PRTF betrifft dies ausschließlich die PDF-Ausgabe!
    Habe ich vergessen. Muss nicht gedruckt werden im eigentlichen Sinne. Es soll ein PDF werden.

    Zitat Zitat von Fuerchau Beitrag anzeigen
    Für solche Art der Anwendung bietet sich tatsächlich nur eine ClientServer-Lösung mit z.B. Java oder .NET an.
    Das ist schade. Dann werden wir für diesen Spezialfall wohl eine ClientServer-Lösung erstellen müssen.
    Ich nehme an verschiedene DSPF mit festen CHRID scheitern auch wieder an der Codepage? Habe dazu noch nicht sehr viel gefunden. Lese noch.

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Was sich IBM mit der CHRID an der DSPF gedacht hat entzieht sich mir, da das Ganze etwas kompliziert wird.
    Entscheidend dafür ist erst mal die CHRID-Einstellung auf Feldebene in der DSPF.
    http://www.ibm.com/support/knowledge...mstdfchrid.htm
    Danach entscheidet der Jobwert CHRIDCTL.
    Erst wenn dieser (oder über die Hierarchie User->Sysval) letztendlich auf *JOBCCSID kommt, wird zwischen Terminal, DSPF und Job für das entsprechende Feld eine Codewandlung durchgeführt.
    Dies betrifft aber wiederum ausschließlich SBCS-Daten, also wiederum kein Unicode.
    Außerdem kann es dazu führen, dass wiederum bei Inkpompatiblität der beiteiligten CHRID's ein Öffnen der DSPF scheitert.
    Da es hier nun mal wieder um Codewandlung zwischen SBCS-CCSID's geht, ist auch hier eine gleichzeitige Darstellung bzw. Verarbeitung unterschiedlicher Sprachräume (Latin-1 bis Latin-16, ISO 8859) auf der 5250 nicht vorgesehen.

    Man sollte generell beherzigen, dass Job-CCSID und 5250-Hostcodepage zueinander passen müssen um korrekte Daten zu bekommen. Dann gibts auch keine Probleme mit dem (ausländischen) Nachbarn.
    Alles Andere verkompliziert die Sache nur.
    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

  7. #7
    Registriert seit
    Jan 2007
    Beiträge
    904
    Ich habe ein ähnliches Unicode-Problem über ein Web-Interface gelöst. Das läuft. 5250-Lösungen, auch mit der neuen CA-Solution (hab ich getestet), kannste wohl vergessen - vor allem wenn ihr ausschliesslich "deutsch" arbeitet.

    So wie ich es verstehe, musst du statischen Text welchen du an ein Dokument anhängst, verarbeiten.
    Wieso machst du nicht dafür für jede Sprache ein IFS-File, welches du dann mit UTF8 oder was auch immer einlesen kannst. Damit du das File in der Anwendung findest, kannste ja immer noch eine Tabelle mit Sprache/Ablageort erstellen. (Google: Klement IFS)

    Wäre jetzt ein Ansatz/Idee von mir.
    kf

  8. #8
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    Zitat Zitat von Ottersberg Beitrag anzeigen
    Moin,

    ich muss in einer DSPF Daten in den 24 Amtssprachen der EU erfassen, in einer PF abspeichern und in einer PRTF wieder ausgeben.

    System ist generell in Deutsch. Es geht nur um die eine Stelle in der Anwendung.

    Ich habe hier im Forum und im Internet schon verschiedenste Beiträge gelesen. Am sinnvollsten schienen mir Felder in DSPF, PF und PRTF mit CCSID 13488 und FONTNAME in der PRTF.

    Problem ist dann aber ja wohl die 5250-Emulation, die Zeichen nach der Codepage des Jobs anzeigt.

    Wie würdet ihr das lösen? Gibt es überhaupt eine Lösung?
    ... so ganz verstehe ich das noch nicht. Bei den Amtssprachen sind doch neben Deutsch u.a. Bulgarisch und Griechisch dabei und selbst für Spanisch brauche ich ja schon eine abweichende Tastatur und muss das auf einem Rechner erfassen, der in der jeweiligen Landessprache installiert ist und die passende Tastatur hat. Dann dürfte doch die Erfassung auch mit Terminal Emulation kein Problem sein und abspeichern kann man das dann in der Datenbank mit UTF8 oder UTF16 oder sogar im Unicode für Arme und Kranke (UCS2). Die Ausgabe über PDF sollte da auch kein wirkliches Problem sein, oder habe ich da was übersehen?

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Kommt immer drauf an, wie komplex man die Aufgabe versteht.
    Sicherlich kann ich die DPSF mit dem Typ G13488 die Eingabe und Ausgabe der Terminalcodepage in das Programm in UCS2 bekommen und mit der DB verwalten.
    Für alle Nicht-G-Felder gilt aber weiterhin, dass der Job in Terminal-CCSID sein muss und die Konvertierbarkeit von/zur DB gewährleistet sein muss.
    Dies funktioniert ausschließlich mit kompatiblen CCSID.
    Job 870 und DB 273 scheitert einfach, dann ist eben UCS2/Unicode erforderlich.

    Wenn ich dies beherzige und die gleichzeitige Darstellung von ost-/west-/sonstigen Sprachen nicht erforderlich ist, kann man das durchaus machen.
    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

  10. #10
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    ... selbst wenn ich die Daten transparent in die Datenbank schreibe (CCSID 65535) kann ich die nachgelagert im ViewLayer in Unicode darstelle, wenn ich in jedem Satz ein Sprachkennzeichen habe.

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  11. #11
    Registriert seit
    Apr 2008
    Beiträge
    83
    Zitat Zitat von camouflage Beitrag anzeigen
    So wie ich es verstehe, musst du statischen Text welchen du an ein Dokument anhängst, verarbeiten.
    Wieso machst du nicht dafür für jede Sprache ein IFS-File, welches du dann mit UTF8 oder was auch immer einlesen kannst. Damit du das File in der Anwendung findest, kannste ja immer noch eine Tabelle mit Sprache/Ablageort erstellen. (Google: Klement IFS)
    Danke für die Idee. Es sind aber leider ein paar zu viele Texte, als dass ich diese Lösung präferieren würde.



    Zitat Zitat von Fuerchau Beitrag anzeigen
    Kommt immer drauf an, wie komplex man die Aufgabe versteht.
    Sicherlich kann ich die DPSF mit dem Typ G13488 die Eingabe und Ausgabe der Terminalcodepage in das Programm in UCS2 bekommen und mit der DB verwalten.
    Für alle Nicht-G-Felder gilt aber weiterhin, dass der Job in Terminal-CCSID sein muss und die Konvertierbarkeit von/zur DB gewährleistet sein muss.
    Dies funktioniert ausschließlich mit kompatiblen CCSID.
    Job 870 und DB 273 scheitert einfach, dann ist eben UCS2/Unicode erforderlich.

    Wenn ich dies beherzige und die gleichzeitige Darstellung von ost-/west-/sonstigen Sprachen nicht erforderlich ist, kann man das durchaus machen.
    Wie kann man das machen?

    Ich kann das Programm so gestalten, dass immer nur eine Sprache erfasst werden kann. Die Sprache steht auch mit in der PF.

  12. #12
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Voraussetzung ist natürlich, dass die Jobumgebung zum User passt.
    Da kann man über die Spracheinstellung im USRPRF und Systemwerte entsprechende Einstellungen für die automatische Anpassung der Job-CCSID machen.
    Die 5250-Sitzung des Users muss dann ebenso der Sprache zugeordnet sein.
    Beispiel:
    User Deutsch = Job 273 = Codepage 1141
    User Französisch = Job 297 = Codepage 1147
    User Polnisch = Job 870 = Codepage 1153

    Alleine durch die Möglichkeit, dass der Job mal in 273/297 (Westeuropa) oder in 870 (Osteuropa) sein kann, darf die DB nicht mit 273 erstellt sein.
    Neutrale Zeichenfelder, also invariante Zeichen, sollten in 65535 erstellt werden (hier gibts aber ODBC-Probleme), alle anderen Zeichenfelder müssen in Unicode (UCS2/UTF16) erstellt werden.
    Dann kann man durchaus zwischen Unicode und DSPF (nicht Unicode) Daten austauschen.
    Wichtig ist natürlich, dass bei der falschen CCSID-Quelle (also deutschen Daten auf polnischen Sitzungen und umgekehrt) Verfälschungen passieren.
    Wenn du die Sprache in der PF hast, kannst du ja eine Änderung der Daten ablehnen, eine Anzeige wäre da unschädlich.

    Ein generelles Problem hast du natürlich mit dem Rest der Anwendung.
    Schließlich müssen sich alle Programme wärend der Sitzung so verhalten. Du kannst es nicht auf eine Datei beschränken.
    Sobald ein Programm in einer Umgebung (Job 870, Datei 273) aufgerufen wird, fällt der Open schon auf die Nase.
    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

Similar Threads

  1. verschiedene Jobs gleiche Datei, schreib / lese konflikt?
    By dibe in forum NEWSboard Programmierung
    Antworten: 20
    Letzter Beitrag: 25-02-16, 16:33
  2. Savefile in / auf virtuelles Bandlaufwerk speichern
    By DEVJO in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 11-09-15, 19:45
  3. Bildschirmanzeige als Text speichern
    By petzi-mg in forum NEWSboard Programmierung
    Antworten: 13
    Letzter Beitrag: 06-11-14, 08:51
  4. verschiedene ALTE Sachen...
    By HEMO in forum NEWSboard Server & Hardware Markt
    Antworten: 0
    Letzter Beitrag: 03-04-03, 15:20
  5. Druck Unterschriften über PRTF
    By alex in forum NEWSboard Drucker
    Antworten: 4
    Letzter Beitrag: 14-03-02, 18:26

Berechtigungen

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