QAD系统内主要有三类程序:维护程序,报表程序,查询程序。Progress程序一般都有比较固定的模式。
一、维护类程序模板。
{mfdtitle.i} /* 程序头,全局变量定义等,标准QAD的程序都需要加载此文件 */
define variables. /* 变量定义 */
form with frame a. /* frame定義,維護畫面內容 */
setFrameLabels(frame a:handle). /* 畫面標簽設置 */
Mainloop:
repeat:
prompt-for … editing: /*通常输入關鍵字段 */
{mfnp.i ……} /* 按上下鍵前后显示记录功能盤 */
end.
/* 记录的增改删处理 */
assign global…
find …
/* 在记录表中查询此条记录 */
if not available … /* 如果不存在此记录,则新增一条记录 */
{mfmsg.i 1 1} /* 类似mfmsg的子程序,都是信息提示类 */
create … /* 创建记录*/
assign … /* 给记录赋值 */
end.
Status = stline{2}.
update go-on (F5 or Ctrl-D) /* 继续维护剩余字段 */
if F5 or CTRL-D then do: /* 判断是否按了删除键,一般为F5或者Ctrl + D */
del-yn = yes.
{mfmsg01.i 11 1 del-yn} /* 刪除的處理 */
end.
End.
Status input.
二、报表类程序的模板。
{mfdtitle.i} /* 頭文件,必須要有*/
define variables. /* 变量定义 */
form
……
with frame a side-labels width 80. /*报表输入画面,限定输入参数,为一个frame */
setFrameLabels(frame a:handle).
{wbrp01.i}
repeat:
……. /* 报表输入参数的控制 */
if c-application-mode <> ‘web’ then update…… with frame a. /* 更新输入内容*/
{wbrp06.i &command = update &fields = ” ……” &frm = “a”}
bcdparm = “”.
{mfquoter.i part }
{mfquoter.i part1 }
{mfquoter.i effdate}
{mfquoter.i effdate1 }
……….
end.
{mfselbpr.i “printer” 132} /* 选择打印机的子程序 */
for each… /* 根据输入参数在相关表中查询记录 */
display
{mfrpchk.i} or {mfrpexit..i} /* 报表结束 */
end.
{mfrtrail.i} or {mftr0801.i} or {mfreset.i} /* 报表结束、打印结束等 */
end.
三、查询类程序模板。
{mfdtitle.i}
/* 头文件 */
define variables. /* 变量定义 */
form
……
with frame a side-labels width 80. /* frame 定义 */
repeat:
…… /* 输入参数控制 */
{mfselprt.i “terminal” 80 }
for each [selection criteria]
display …
{mfrpchk.i} (max page)
end.
{mfreset.i} (scroll output)
{mfmsg.i 8 1}
end.
因篇幅问题不能全部显示,请点此查看更多更全内容