-
Beispiel Subfile Positioning
Hallo Peter,
vielleicht hilft Dir diese Beispiel weiter:
Subfile Positioning
Hey, Ted:
I have several RPG IV programs that display a subfile in a work-with-like display. Users enter option numbers in the option field that begins each subfile record. When a user selects a subfile record, the system usually displays another display format in order to handle the request. When the subfile is redisplayed, the first page of the subfile is shown. How can I position the subfile to the page that contains the selected subfile record?
-- Patrick
You need to add the Subfile Record Number (SFLRCDNBR) keyword to your display files. Use this keyword with a four-digit, hidden, zoned-decimal field. The value in this field tells the system which page of a subfile to display. Update this field every time an option is processed. Initialize this field to the number one (1) every time you reload the subfile in order to avoid a run-time error. I recommend you use the CURSOR option to position to the record whose relative record number matches the value in the hidden field.
Here is a short RPG IV program and display file you can play with in order to understand this technique. When you run this program, use option 5 to display more information about a record. (Don’t worry--you don't need a database file; the program displays some dummy data.) When the subfile is redisplayed, you will see the page containing the last selected subfile record.
Here is display file CD1102D:
* To compile:
* CRTDSPF FILE(xxx/CD1102D) +
* SRCFILE(xxx/QDDSSRC) SRCMBR(CD1102D)
A CF03(03)
A DSPSIZ(24 80 *DS3)
A R SFL SFL
A OPT 1 B 6 3
A DTA 5 0O 6 8
A R CTL SFLCTL(SFL)
A SFLDSP
A SFLDSPCTL
A SFLSIZ(16)
A SFLPAG(15)
A POSRRN 4S 0H SFLRCDNBR(CURSOR)
A 5 3'Opt Data '
A DSPATR(UL)
A R SCRN
A NUM 5 0B 4 5
A ALPHA 28 O 4 15
Here is RPG program CD1102R:
* To compile
* CRTBNDRPG PGM(xxx/CD1102R) +
* SRCFILE(xxx/QRPGLESRC) SRCMBR(CD1102R)
Fcd1102d cf e workstn sfile(sfl:rrn)
D rrn s 4 0
D c c 'ABCDEFGHIJKLMNOPQRSTUVWXYZ7890-
D 1234567890abcde'
* fill the subfile with dummy data
C for rrn = 1 to 45
C eval dta = rrn
C write sfl
C endfor
* display the subfile
C eval posrrn = 1
C exfmt ctl
C dow not *in03
C exsr dosfl
C exfmt ctl
C enddo
C*
C eval *inlr = *on
* process subfile options
C dosfl begsr
C readc sfl
C dow not %eof(cd1102d)
C if opt = '5'
C exsr show
C z-add rrn posrrn
C eval opt = *blank
C update sfl
C endif
C readc sfl
C enddo
C endsr
* display the data
C show begsr
C*
C eval num = dta
C eval alpha = %char(num) + '='
C + %subst(c:num:1)
C exfmt scrn
C*
C endsr
-- Ted
Similar Threads
-
By Anette in forum NEWSboard Programmierung
Antworten: 7
Letzter Beitrag: 24-07-06, 21:52
-
By borwegen in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 30-06-06, 10:04
-
By steven_r in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 22-05-06, 14:56
-
By JonnyRico in forum NEWSboard Programmierung
Antworten: 14
Letzter Beitrag: 30-03-06, 13:33
-
By Toschie in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 08-06-05, 15:21
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