[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Jan 2013
    Beiträge
    6

    [RPGLE] Textfeld sinnvoll trennen

    Hallo,

    ich habe versucht zu dem Thema etwas zu finden, war aber erfolglos, deshalb stelle ich hier einmal meine Frage:

    Ich habe ein Textfeld von 250 Zeichen. Dieses möchte ich sinnvoll, also leserlich in 5 Textfelder aufteilen.

    Mit Sinnvoll meine ich das Wörter nicht getrennt ( abgehackt ) werden.

    Dieses Lösung hätte ich gerne in RPGLE

    Danke für die Hilfe im Voraus

    Panther

  2. #2
    Registriert seit
    Jun 2001
    Beiträge
    1.975

    cntfld und wrdwrp

    Schlüsselwort CNTFLD(50) macht den Zeilenumbruch, --> Anzeige 5 Zeilen a 51 Byte
    Schlüsselwort WRDWRAP sorgt für den Wortumbruch. (immer wenn in die 51 was geschrieben wird)

    Leider werden beide Schlüsselwörter nicht in allen Emulationen sauber unterstützt (Erweiterter 5250 Datenstrom)

    Vor dem Feld, das mit CNTFLD versehen wird, müssen 2 Byte leer sein.

    Robi
    Last edited by Robi; 11-01-13 at 09:09. Grund: mehr infos
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  3. #3
    Registriert seit
    Jan 2013
    Beiträge
    6
    Hallo Robi,

    danke für Deine Antwort.

    Was ich aber meinte ist folgendes:

    Ich kann im Programm, intern, eine Datenstruktur mit den 5 Textfeldern hinterlegen.

    Hier wird dann aber gnadenlos getrennt, der Text wird abgeschnitten.

    Das möchte ich aber so nicht.

  4. #4
    Registriert seit
    Jun 2001
    Beiträge
    1.975
    Entweder hab ich dich noch nicht verstanden oder du hast meine Lösung noch nicht ausprobiert.

    1 Textfeld 250 Byte,
    Anzeige: 5 Zeilen a 51 Byte,
    Eingabe: geschriebenes Wort geht bis 51, 101, 151, 201
    Ausgabe (auch am BS) Wort in neuer Zeile

    Robi
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  5. #5
    Registriert seit
    Jun 2001
    Beiträge
    1.975
    Oder hast du gar keinen Bildschirm?
    dann mußt du, wenn %substr(textfeld250: 51:1 <> ' ')
    bei dem Blank davor trennen.
    Das mußt du programmieren
    Robi
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  6. #6
    Registriert seit
    Jan 2013
    Beiträge
    6
    Keine Ausgabe im BS, sondern nur eine interne Lösung in einem Programm ist gemeint.

    Panther

  7. #7
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Hilft Dir vielleicht der folgende Link weiter:
    Wrapping Free Form Text

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  8. #8
    Registriert seit
    Jan 2013
    Beiträge
    6
    Hallo B.Hauser,

    danke für die Antwort. Leider hat mir das nicht weitergeholfen.

    Robi hat schon richtig geantwortet:

    Oder hast du gar keinen Bildschirm?
    dann mußt du, wenn %substr(textfeld250: 51:1 <> ' ')
    bei dem Blank davor trennen.
    Das mußt du programmieren
    Robi
    Allerdings frage ich mich, wie ich das mit den 5 Textfeldern lösen soll.

    Panther

  9. #9
    Registriert seit
    Jun 2001
    Beiträge
    1.975
    Schätze wir beide werden uns heute nicht mehr einig !
    Der link von Birgitta ist doch super.
    Damit geht das, (was ich glaube das du willst)

    Robi
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  10. #10
    Registriert seit
    Jan 2012
    Beiträge
    1.120
    Hallo Panther,

    hast du dir den Sourcecode des WrapText-Programms (Link von Birgitta) mal angesehen? Vielleicht ist dir unklar, wie man das Programm verwenden kann. Aus meiner Sicht ist das nach folgendem Prinzip möglich:

    Also, du hast 1 großes Textfeld mit 250 Zeichen Länge:
    D text S 250A

    Als Ergebnis möchtest du den Text in 5 Textfelder von z.B. 78 Zeichen Länge haben, richtig?
    D text1 S 78A
    D text2 S 78A
    D text3 S 78A
    D text4 S 78A
    D text5 S 78A

    Dann musst du dir nur ein großes Ergebnistextfeld definieren (So groß wie alle gewünschten Ergebnistextfelder zusammen (also 5 mal 78):
    tempText S 390A

    Dann rufst du die WrapText Procedure auf:
    tempText = WrapText(text:78);

    Jetzt musst du nur noch dein temporäres Ergebnis in deine 5 gewünschten Felder übertragen:
    text1 = %subst(tempText:1:78);
    text2 = %subst(tempText:79:78);
    text3 = %subst(tempText:157:78);
    text4 = %subst(tempText:235:78);
    text5 = %subst(tempText:313:78);

    Fertig!

    Die andere im Link beschriebene Möglichkeit, die Procedure WrapText für eine UDTF zu nutzen, geht natürlich auch. Aber so müsste es rein im RPG funktionieren, denke ich.

    Gruß,
    Dieter

  11. #11
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Wenn man sich eine Datenstruktur mit den 5 (oder wieviel auch immer) Text-Feldern als Unterfelder (mit fixer Länge definiert), braucht man noch nicht einmal einen %SUBST!

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  12. #12
    Registriert seit
    Jan 2013
    Beiträge
    6
    Hallo dschroeder,

    vielen Dank für die Antwort.

    Das ist fast genau das, was ich benötige.

    Mir fehlt hier aber etwas wichtiges; ich Zitiere mich einmal :

    Ich habe ein Textfeld von 250 Zeichen. Dieses möchte ich sinnvoll, also leserlich in 5 Textfelder aufteilen.

    Mit Sinnvoll meine ich das Wörter nicht getrennt ( abgehackt ) werden.
    Panther

Similar Threads

  1. iSeries Navigator - Verbindung trennen
    By USDAVIS in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 19-01-12, 14:03
  2. SQL -- trennen von Vorname Nachname
    By cicero22 in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 14-10-05, 06:24
  3. Verbindung PC zu AS/400 trennen!
    By c_kinkel in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 15-07-05, 09:16
  4. SQL CLI Apis: Datenbankverindung trennen
    By sim in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 30-08-04, 07:30
  5. Mehrzeiliges Textfeld
    By JoergHamacher in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 24-08-04, 12:21

Berechtigungen

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