INKEY()函数妙用一例 安徽 宁 青 1994-01-07 一、XSSJ.PRG程序清单 CLEAR STORE" "TO Y,N,R,D,F,M DATE=DTOC(DATE()) N=SUBSTR(DATE,7,2) Y=IIF(SUBSTR(DATE,1,1)="0","0"+SUBSTR(DATE,2,1),SUBSTR(DATE,1,2)) R=IIF(SUBSTR(DATE,4,1)="0","0"+SUBSTR(DATE,5,1),SUBSTR(DATE,4,2)) SHIJIAN="19"+N+"年"+Y+"月"+R+"日" @20,10 SAY SHIJIAN SHU="日一二三四五六" YE=STR(DOW(DATE())) Q=VAL(YE)*2-1 W=SUBS(SHU,Q,2) XQX="星期"+W @20,36 SAY XQX TIME=TIME() D=IIF(SUBSTR(TIME,1,1)="0","0"+SUBSTR(TIME,2,1),SUBSTR(TIME,1,2)) F=IIF(SUBSTR(TIME,4,1)="0","0"+SUBSTR(TIME,5,1),SUBSTR(TIME,4,2)) M=IIF(SUBSTR(TIME,7,1)="0","0"+SUBSTR(TIME,8,1),SUBSTR(TIME,7,2)) DFM=D+"点"+F+"分"+M+"秒" @20,58 say dfm RETURN 二、XSSJ.PRG程序的调用 笔者在编制固定资产管理系统时,在菜单选择时调用了这个小程序,于是在屏幕的第20行将持续显示日期、星期和时间,在静止的菜单屏幕上给人以动感。现举一例如下: DO WHILE .T. CLEAR SET COLOR TO W/R,W/B @ 3,15 SAY" " @ 4,15 SAY" 合 肥 铝 厂 " @ 5,15 SAY" " @ 6,15 SAY" 固定资产管理系统 " @ 7,15 SAY" " @ 8,15 SAY" 1.数据输入 2.数据查询 " @ 9,15 SAY" " @10,15 SAY" 3.数据修改 4.报表打印 " @11,15 SAY" " @12,15 SAY" O.退出 " @13,15 SAY" " @14,15 SAY" 你的工作选择:---------------- " @15,15 SAY" " SET COLOR TO G/,W/B I=O @ O,O SAY CHR(14)+"RO]" DO WHILE I<48.OR.I>52 DO XSSJ I=INKEY(1) ENDDO @ O,O SAY CHR(14)+"R1]" I=VAL(CHR(I)) Y="EXIT DO GDSR DO GDCX DO GDXG DO GDDY" P=SUBSTR(Y,I*8+1,8) &P ENDDO RETURN 该程序安排了一个循环,它等待用户按一个键,变量I是一个计数器,它的值是数值型的,如果不按键,则将不断地将I赋值为0,同时显示时间,当用户键入选择时,它对INKEY()函数发生作用,于是I的值就不再为0了,显示程序XSSJ.PRG退出循环,然后,程序检测用户的输入,如果输入的是数字0到4,则根据不同的选择,分情况处理。否则返回DO WHILE重新执行循环,重新键入正确的选择。