[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    May 2006
    Beiträge
    16

    Feldkonstaten in CL-programmen mit DSPF

    Hallo,
    wir wollen einen Teil unserer green-screen
    anwendung mehrsprachig gestalten, da wir nur ein DSPF für mehrere Länder verwenden wollen! Da sind wir auf das Problem mit CL und DSPF gestoßen! Nun die Frage:
    Wie kann man einem Feld eines DSPF variabel einen Wert zuweisen ?
    z.B. variables Feld aus Tabelle Y1F01 wird dem Wert "Hauptmenü" zugewiesen, Y1F02 = "Beginn", usw.!

    Vielleicht hat jemand eine Lösung parat!

    Danke

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Hierzu eignet sich am Besten ein MSGF.
    In der DSPF werden die Textkonstanten per MSGID aus der MSGF zur Laufzeit geladen.

    Durch unterschiedliche Sprach-MSGF's (Sprachlib oder per OVRMSGF) ist die Steuerung doch sehr einfach.

    Zu deiner eigentlichen Frage:
    In CLP geht das gar nicht, da du nur 1 Datei im CLP öffnen kannst.
    Schreibe ein kleines RPG-Programm, dass die nötigen Aufgaben durchführt.

    Im CLP dann eben:
    call loadtext parm('ID1' &text)
    chgvar &dspf1 &text
    call loadtext parm('ID2' &text)
    chgvar &dspf2 &text
    :

    Wie du siehst ganz schön aufwändig.

    Da lob ich mir schon eher die MSGF, zumal ich das Ergebnis mit STRSDA OPTION(3) direkt betrachten kann.
    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
    May 2006
    Beiträge
    16
    danke, habe ich verstanden !
    Wir haben eben die ganzen Werte in einer Tabelle abgelegt ! Da mit den MSG-Konstanten ist auch eine Möglichkeit!

    Bei Deinem Beispiel übergibst Du beim
    Program "loadtext" jedoch fix den Feldnamen! Das wollte ich jedoch variabel machen! Ist das auch möglich??

    D.h. ich lese mir alle Konstanten des DSPF variabel ein !

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Nein das geht leider nicht.
    Du kannst zwar per API die Feldnamen aus einer DSPF ermitteln (analog DSPFFD), aber wenn du dir dein CLP ansiehst, dann ist ja jede 'Konstante' eigentlich eine Variable, die durch DCLF automatisch definiert wird.

    Variablen in CLP kannst du nur per CHGVAR bzw. durch ein CALL-Programm füllen (dabei gibts nichts variables).

    Zu Laufzeit wird dann im SNDRCVF dann der interne Puffer aus den Inhalten zusammengstellt.

    Das selbe gilt auch für (ILE)RPG. Erst zur Laufzeit erfolgt die Pufferzusammenstellung.

    Bedenke auch, dass eine "Konstante" in mehreren Formaten vorkommen kann (was anderes macht da auch keinen Sinn), die Variable aber nur 1x vorhanden ist.

    MSGF ist da immer noch die flexibelste Variante und bestimmt auch leichter zu warten.
    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
    Jul 2003
    Beiträge
    338

    Red face

    Mit einem Programm die Quelle durchlesen und die Konstanten durch eine Variable ersetzen mit einer lfd. Nr., z.B.: $0001 etc.).

    Die ehemaligen konstanten Texte in einer Datei abspeichern: Index = DSPF-Name, Format-Name und obige lfd. Nr.

    Mit einem Programm die abgespeicherten Werte anzeigen und je nach Auswahl in eine andere Spache übersetzen.
    Die Übersetzung in eine andere Datei speichern oder in derselben Datei mit Sprachenschlüssel.

    Beim Progamm-Aufruf der Anwendung je nach Benutzer den Sprachenschlüssel ermitteln und die Variablen mit den Originaltexte oder den übersetzen Texten füllen.

    Evtl. berücksichtigen:
    Bei DSPF-Änderung:
    Abgespeicherte Texte müssen wieder per Programm in das DSPF zurückgesetzt werden können.


    Schwieriger wird es evtl. bei anderen Zeichensätzen, z.B.: polnisch etc.

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Man kann sich auch ein Klavier ....

    Ich weiß nicht, was gegen MSGF's spricht !?!
    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. Dynamisches SQL in einem CL erstellen
    By Sony in forum IBM i Hauptforum
    Antworten: 27
    Letzter Beitrag: 20-07-09, 21:48
  2. Programmbibliothek in einem Cobol oder CL Programm ermitteln
    By schatte in forum NEWSboard Programmierung
    Antworten: 19
    Letzter Beitrag: 10-01-07, 11:32
  3. Fehlerzeile in DSPF
    By Freezer in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 18-08-06, 08:11
  4. Übergabeparameter im CL Script
    By bo1 in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 23-06-06, 15:00
  5. WRKOBJLCK in CL Programmen
    By Herbie in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 02-08-04, 14:41

Berechtigungen

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