Chris,
I know you can do this with concurrent program parameters (which are a special case of a descriptive flexfield structure).
However, this might work:
Assuming your current setup is:
Seg 16, value set = SEG16_VSET
Seg 17 value set = SEG17_VSET
then you need to introduce a dummy 'control' segment between the two, so make the display sequence like this:
Seg16 (as before)
Seg17 (dummy segment, called e.g. 'IS_NEXT_SEG_REQUIRED'
Seg18 (used to be Seg17)
Seg17 should be enabled but not displayed, and should be set up like this:
Value set = PER_CHAR
Default type = SQL
Default value = "select '1' from dual where :$FLEX$.SEG16_VSET:NULL IS NULL"
Enabled = Yes
Displayed = No
Seg18 is as before, apart from the valueset SEG17_VSET should now contain:
Validation Type = Table
Where clause = "WHERE :$FLEX$.PER_CHAR = '1'
AND... <other criteria as before>"
Try it on a suitable dev environment of course, and see if it works. As I said, I can vouch for it working with conditionally enabling/disabling concurrent program parameters.
_________________________
L&K
CT
Remember: A dog is for life, not just for Christmas... unless you're in Korea