一些程序由于其特殊性,需要在特定条件下给用户以提醒,避免不当使用。
如下是我的范例,供参考。
思路:在系统重要资料修改记录档(azo_file)中增加一条记录用于辨识是否提醒用户,可以根据移动日期azo03跟运行程序的日期对比来决定是否再次提醒,再根据cl_prompt()返回的「是」或「否」来决定下次是否提醒。
简略步骤 :
1. 检查azo_file的函数
FUNCTION i100_chk_azo()
DEFINE l_date LIKE type_file.dat
LET l_date = g_today - 30
LET g_i = 0
SELECT COUNT(*) INTO g_i
FROM azo_file
WHERE azo01 = g_prog
AND azo02 = g_user
AND azo03 >= l_date
AND azo06 = 'DO NOT REMIND IN 30 DAYS.'
RETURN g_i
END FUNCTION
2. 在程序加载时调用
IF i100_chk_azo() THEN
#有「最近30天不提醒」记录
ELSE
LET g_msg = '这个程序产出的结果有很多坑,使用时要特别注意。\n\n最近30天还要提醒吗?'
#此处也可将提醒文字写入ze_file,再用cl_getmsg(p_code, p_lang)调用。
IF cl_prompt(20,20,g_msg) THEN
#下次继续提醒
ELSE
INSERT INTO azo_file VALUES (g_prog, g_user, g_today, g_time, '', 'DO NOT REMIND IN 30 DAYS.', g_plant, g_legal)
IF SQLCA.sqlcode OR SQLCA.sqlerrd[3] = 0 THEN
CALL cl_err('insert azo', SQLCA.sqlcode, 1)
EXIT PROGRAM
END IF
END IF
END IF
没有评论:
发表评论