Hello,
On numerous occasions, I've been fighting error CPD7817 (SFLPAG too big for screen size) when dealing with the large screen size *DS4 for display files.
Example DDS found here:
https://leela.pocnet.net/~poc/SXLAAPUSDF.dds
I've made it self-contained (no external references) and shows the behavior described below.
I'm using DSPSIZ(*DS4 *DS3) as global keyword, to make all record formats assume *DS4 as default size. Even if I set DSPSIZ(*DS4) only, the condition persists.
MAINSFL + MAINCTL is a SFL with two lines per record. This "two liner" works absolutely fine on 24×80, as I've used this capability before.
This time, I need the horizontal space, because I want to display three long fields in one line. As soon as I set SFLPAG to ≥ 6, CPD7817 is emitted as compile error. Setting SFLPAG to 6 makes the SFL end in line 18, which is smaller than 24 — I've guessed that there might be some hard coded "> 24 line" code in the DDS parser? But apparently that isn't the culprit. 🤷♂️
I tested something else: I commented the 'ATTR_xS' fields (in MAINSFL, for screen line 8). Now I can set SFLPAG to 17, which makes the SFL end in line 23. If I set SFLPAG(18), I'm again faced by CPD7817, because the SFL now ends in line 24, but the display is set to *DS4 (27×132). Have I probably hit a bug? 🤔
Even more mysterious is that even if you hit CPD7817, SDA complains about an error but displays the "wrongly" defined SFL just fine and correctly! 😮
Am I doing something wrong here? Any ideas on this?
Thanks!
Hint: Maybe you know that you can "preview" screens in SDA? Just type 17 on the OPT field in WRKMBRPDM beneath the DSPF member, and type 12 beneath the record format you want to preview.
:wq! PoC
As an Amazon Associate we earn from qualifying purchases.