-
Subfile - Feld anzeigen
Hallo!
Wir haben ein Programm in dem über einen Subfile Daten erfasst werden.
Es soll eine zweite Version geben, bei der ein zusätzliches Feld im Record angezeigt wird. (in der gleichen Zeile)
Derzeit ist SFLINZ / SFLRNA sowie SFLSIZ(999) definiert, da auch mehrere hundert Datensätze mittels DFÜ übernommen werden können.
Wenn man die Ausgabe des Feldes mittels Indikator steuert wird es bei automatisch erstellten Records nicht angezeigt.
Alle 999 Records leer Auszugeben kommt nicht in Frage, da bei Enter sämtliche Daten geprüft werden müssen, und es dem User nicht zuzumuten ist, dass jedes mal 999 Records eingelesen werden müssen.
Wir würden es außerdem gerne vermeiden einen zusätzlichen Record zu definieren, da es bereits zwei unterschiedliche Records gibt und wir dann bei vier wären.
Hat jemand eine Idee?
Danke für eure Hilfe.
mfg
Chris
-
Felder in der Subfile lassen sich mit BZ nur steuern, wenn SFLSIZ=SFLPAG ist, also kein automatisches Blättern erfolgt.
Und was SFLSIZ=999 angeht so hat dies die selben Auswirkungen wie SFLSIZ = SFLPAG + 1 !
Einzige Ausnahme:
Wenn SFLINZ aktiv ist (mit BZ) werden automatisch SFLSIZ leer Sätze eingefügt.
Es können unabhägig davon jedoch bis 9999 Sätze geschrieben werden.
-
ich weiß nicht ob das bei dynamischen subfile funktioniert, müßte aber eigentlich:
A ATRFLD 1A P
A DBFELD R O 7 3DSPATR(&ATRFLD)
im programm atrfld vor und nach dem write sfl setzen
hex20=normal
hex27=nondisplay
-
Solche Sachen sind mit Vorsicht zu geniessen, da es zu Abbruch führt wenn SFLINZ verwendet wird. In deisem Fall kommt da nämlich X'40' in das Feld.
Und was die BZ-Steuerung angeht, so kann man sicherlich mit DSPATR(ND) dieses erreichen, einzig Überlagerung von Feldern in einer automatischen SFL geht nicht.
Durch Verwendung von "NXX____DSPATR(ND)" kann auch SFLINZ das Feld verschwinden lassen, da eben dann die BZ aus ist. Man muss hier also nur umgekehrt denken.
-
Danke für eure bisherigen Antworten.
Der Controler ist derzeit definiert:
A N92 SFLDSP
A N92 SFLDSPCTL
A 92 SFLINZ
A SFLRNA
A SFLSIZ(0999)
A SFLPAG(0001)
Das Feld ist im Record derzeit so definiert:
A ARTIKELNR 30A B 14 6
A N55 DSPATR(ND PR)
Über einen Parameter wird an das Programm übergeben, ob das Feld angezeigt werden soll oder nicht.
Wenn das Feld nicht angezeigt werden soll, ist alles Okay.
Wenn das Feld angezeigt werden soll, wird es nur bei Records angezeigt welche mit WRITE SFLRCD ausgegeben werden, bei den übrigen durch SFLINZ initialisierten jedoch nicht.
Wie bereits gesagt, wollen wir vermeiden dass wir einen dritten u. vierten Record anlegen, da es bereits absehbar ist, das noch weitere Felder auf diese Weiße angezeigt werden sollen.
Außerdem wollen wir vermeiden, alle 999 Records mit WRITE auszugeben. Da in der Check-Routine bereits auf diverse Files zugegriffen werden muss. Und es dem User nicht zuzumuten ist, dass die Routine durch das einlesen der 999 Records bei jedem Enter noch länger dauert.
Vielen dank für eure Bemühungen.
mfg Chris
-
An Stelle des SFLINZ kann man auch selber leere Sätze erstellen, dies geht fast genauso schnell und du kannst die BZ setzen
clear sflrec
eval *in55 = *on
do 999
write sflrec
enddo
oder
clear sflrec
eval *in55 = *off
do 999
write sflrec
enddo
-
[off topic]
wenn's richtig variabel sein soll, geht doch nix über die gute alte selbstgemachte SLN - "Subfile"
[/off topic]
-
Das mit
clear sflrec
eval *in55 = *on
do 999
write sflrec
enddo
oder
clear sflrec
eval *in55 = *off
do 999
write sflrec
enddo
war mir klar.
Wollte es nur vermeiden, da ja dann beim Prüfen des Subfiles mit READC immer alle 999 Records eingelesen u. upgedated werden müssen.
eine Möglichkeit ohne alle Records selber zu schreiben gibt es dann wohl nicht, oder?
Oder kann man bei READC angeben, dass nur Sätze mit Daten überhaupt eingelesen werden?
Dank für eure Hilfe...
Falls es wirklich keine andere Möglichkeit gibt, dann sagt mir das bitte einfach, und ich gebe Ruhe. :-)
-
Mit BZ und SFLNXTCHG kann beim Write der Modi-Schalter gesetzt werden.
BZ=*ON => READC liest
BZ=*OFF => READC überliest
Dies gilt auch beim Update.
-
Zitat von Fuerchau
Solche Sachen sind mit Vorsicht zu geniessen, da es zu Abbruch führt wenn SFLINZ verwendet wird. In deisem Fall kommt da nämlich X'40' in das Feld.
Und was die BZ-Steuerung angeht, so kann man sicherlich mit DSPATR(ND) dieses erreichen, einzig Überlagerung von Feldern in einer automatischen SFL geht nicht.
Durch Verwendung von "NXX____DSPATR(ND)" kann auch SFLINZ das Feld verschwinden lassen, da eben dann die BZ aus ist. Man muss hier also nur umgekehrt denken.
Hallo. Verstehe ich das richtig?
Eine Überlagerung von Feldern ist in einer Subfile nicht möglich?
Ich suche nämlich eine Möglichkeit je nach Bezugszahl Feld A oder Feld B anzuzeigen.
-
Dies geht, wenn du wie oben beschrieben, SFLSIZ und SFLPAG identisch hältst und das Blättern ausprogrammierst.
Similar Threads
-
By Anette in forum NEWSboard Programmierung
Antworten: 7
Letzter Beitrag: 24-07-06, 20:52
-
By Rico in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 06-07-06, 16:25
-
By becama in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 12-05-06, 19:46
-
By jogisarge in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 10-05-06, 16:26
-
By Margit Bester-Helfrich in forum NEWSboard Programmierung
Antworten: 18
Letzter Beitrag: 13-08-04, 10:29
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks