Progress的Buffer有两个,一个是Record Buffer, 一个是Display Buffer.
只有把数据从Database中读取到Record Buffer中,才可以进行下一步的操作;只有把数据读取到Display Buffer中,才能显示出来给用户看.
[@more@]使用Find, For each等语句可以把数据从database中读取出来放到Record Buffer中.此时可以使用display语句把Record buffer的数据读入Display buffer并显示出来.
用update语句可以修改record buffer中的值. 比如:
Find first pt_mstr no-error.
Update pt_part pt_desc1.
在这里,update语句会先把找到的pt_part和pt_desc1的值读入Display buffer,然后显示在界面上,等待用户输入,一旦用户输入结束,会自动把值写回到record buffer.
修改record buffer的值还可以使用set语句, 比如:
set pt_part pt_desc1.
它和update的区别就是set语句不会回显原值. 即: update = display + set.它会接受用户输入并写回record buffer.
如果仅仅是从界面上接受用户的输入(即只是把用户输入的值放入display buffer而不是record buffer),可以使用prompt-for语句,比如:
prompt-for pt_part.
它仅仅是让用户输入一个值,并不会真正修改pt_part的原值.
assign语句的作用是把display buffer的值写回到record buffer中.
所以 update = display + set = display + prompt-for + assign.
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/182208/viewspace-915635/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/182208/viewspace-915635/