PDA

View Full Version : S/36 Format und Hidden Felder



Tonazzo
06-06-14, 23:54
Hallo Kollegen,

ich habe eine Frage bezüglich S/36 Formate. Unabhängig der Möglichkeit Format und Programm zu konvertieren hier meine Frage:

Kann ich in einem S/36 Format Hidden Felder anlegen?

Vielen Dank im Voraus.

Viele Grüße

Fuerchau
07-06-14, 12:19
HIDDEN Felder gibt es nur in SQL-TABLES (ich glaube ab V6), wobei die per Native-IO wohl nicht hidden bleiben, und in DSPF's (DSPATR(ND)).

Tonazzo
09-06-14, 00:55
Hallo Fuerchau,

danke für die Antwort.
Aber habe ich die jetzt richtig verstanden - wenn ich reine S36 Formate (keine Dateien) nehme, kann ich Hidden-Felder definieren - wie in "AS/400 DSPF's"?!?

Ich muss nämlich in einer ur-alten S/36 Anwendung eine Änderung machen.

Viele Grüße

Fuerchau
09-06-14, 11:12
Ich nehme mal an, du meinst "intern" beschriebene Dateien.
Per DSPFFD hat die Datei nur 1 Feld.

Du kannst an bestehende PF's per CHGPF mit Sourceangabe Felder hinten dranhängen ohne das Programme davon betroffen sind.
Du musst nur den LVLCHK(*NO) für die PF und alle abhängigen LF's einschalten.

Bevorzugt solltest du nur CHAR-Felder nehmen, bei anderen Typen sollte zumindest das Programm, dass Daten per WRITE erstellt die korrekte Struktur kennen und die Felder initialisieren.

Das selbe gilt natürlich für interne Dateien.

Hintergrund:
Beim Open enthält jede Datei einen internen Puffer in der korrekten Länge.
RPG überträgt zwischen Puffer und Feld. Was also zur Laufzeit nicht bekannt ist wird nicht berücksichtigt.

Tonazzo
09-06-14, 21:46
Hallo Fuerchau,

irgendwie verstehen wir uns nicht :)
Ich meine nicht Tables (PF) - ich rede von Bildschirmdateien (DSPF36)

Fuerchau
10-06-14, 08:12
Wozu benötigst du in DSPF's "hidden" Felder?
Dies macht nur wirklich Sinn in Subfiles.
Dort definierst du dann ein "H" für Hidden (Statt O oder B) und lässt Zeile/Spalte weg.
Ansonsten verwendet man Programmvariablen.

Joe
11-06-14, 08:46
Wenn Du "Pseudo"-Subfiles verwendest (Zeilenweises ausgeben entsprechend einer Subfile)
musst du das Feld mit dem Attribut (ND) definieren oder wie Fuerchau schon schreibt, als Programmvariable verwenden.

Fuerchau
11-06-14, 09:27
Wenn eine Subfile nicht angezeigt wird, sind Attribute nicht relevant.
DSPATR(ND) belegt ansonsten den Platz auf dem Bildschirm.
Überlagerungen (mit BZ) sind nur in festen Subfiles (SFLSIZ=SFLPAG) erlaubt.
Ansonsten gibt es eben H-Felder in der Subfile.

Tonazzo
12-06-14, 22:50
OK - Vielen Dank für die Antworten.

Viele Grüße