INKEY()函数妙用一例
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重新执行循环,重新键入正确的选择。