通常将画面分成几个不同的显示区域,就是做几个不同的record,
每个record有不同的范围,如标题用一个record,中间内容一个record,最后function key一个record
每一record的范围是以行为单位的,即从哪一行开始,哪一行结束
该record的第一个元素所在位置的行为开始行,最后一个元素所在位置的行为结束行
该注意的是,每个元素前面有个不显示的控制位,准确的说开始行按第一个元素的控制位所在的行开始算
如果有多个record组成一个画面,通常record要带OVERLAY属性
当在RPG程序里WRITE一个record时,如果这个record不带OVERLAY属性,
系统会先清屏,即将画面上已有的内容删除,然后输出当前record的内容.对于带OVERLAY属性的record,系统会先对属于此record范围的行清除内容。然后再输出
其内容
有个参数可以控制系统怎么清屏,CLRL,如果设定CLRL(*NO)则不清屏,
这就给我们的画面显示提供了更多的控制权,但遗憾的是CLRL不支持SFL
要两个subfile左右并列显示,用OVERLAY这条线就断了,后来就想用两个WINDOW
试了下,通常,window的显示与否由系统控制,用了USRRSTDSP就由程序来控制了
当画面上已经有一个window时,此时再write另一个window时,
默认系统会删除第一个window,然后输出第二个window(和record的处理类似)
对第二个window用了USRRSTDSP,则write第二个window时不会删除第一个window
将subfile嵌入window(坐标要重新定)
A R PNLC02 SFLCTL(PNLS02)
A WINDOW(6 02 10 30)