玉管通地理,朱笔点天文
        欢迎光临文天软件之家
 
全站搜索
联系方式


网 址:文天软件之家

    www.jh-lzf.com

联系人:文天(刘中甫)

邮 箱:jh-lzf@21cn.com

地 址:湖北·武汉

    中国石化·江汉油田

    石油工程技术研究院

    信息中心

  

天气信息
新闻详情
方便、快捷的范围选择表
来源:━━━━《软件报》1996合订本(第42期)作者:刘中甫网址:http://www.jh-lzf.com浏览数:1

方便、快捷的范围选择表

  在记录显示、检索及删除时都要用到范围(scope)子句。特别是在进行记录删除时,范围的指定是相当重要的,否则有可能删去了有用的记录,而要删除的记录却没删去。在数据库操作中,当前记录号是随时变化的,因此运行下面的程序时,最好每次都先定位记录,再选择范围形式。运行此程序后,要用到范围子句的命令必须加上 &scope_s, 如list &scope_s等。此程序作为通用数据库的子程序,其效果比单独使用更好。

set talk off

clear

set color to w+/g,w+/r,w+

@1,0 fill to 25,79 color w+/b

if FCOUNT()=0

use ?

endif

current_rec=recno()

num=alltrim(str(reccount()))

public scope_s,scope_es(8)

scope_s="ALL"

scope_es(1)="V ALL 所有记录(缺省值) "

scope_es(2)=" NEXT 当前记录后的记录数 "

scope_es(3)=" RECORD 数据库的第N条记录 "

scope_es(4)=" REST 当前记录后剩余记录 "

scope_es(5)="\-"

scope_es(6)=" 重新定位记录 "

scope_es(7)="\本数据库记录数为: &num. 当前记录号为: "+alltrim(str(current_rec))

scope_es(8)=" 选择完毕,返回"

@7,20 menu scope_es,8,8 TITLE " 范 围 选 择 表 " SHADOW SAVE

do while .T.

READ MENU TO m45

if m45=8

exit

endif

if m45=6

DEFINE WINDOW w22 FROM 15,15 TO 18,60 TITLE "定 位 当 前 记 录" SHADOW

activate window w22

@0,2 say "本数据库记录数为: &num. 当前记录号为: "+alltrim(str(current_rec))

input " 重新定位当前记录号=" to current_rec

goto current_rec

deactivate window w22

else

for i=1 to 4

scope_es(i)=" "+stuff(substr(scope_es(i),2),11,6,PADC("",6))

if m45=i

scope_es(i)="V"+stuff(substr(scope_es(i),2),11,6,PADC("",6))

endif

endfor

scope_s=substr(scope_es(m45),4,7)

endif

if m45=2.OR.m45=3

cc=substr(scope_es(m45),19)

DEFINE WINDOW w22 FROM 15,15 TO 18,60 TITLE "&cc" SHADOW

activate window w22

@0,2 say "本数据库记录数为: &num. 当前记录号为: "+alltrim(str(current_rec))

input " &cc=" to nn

deactivate window w22

scope_s=scope_s+ltrim(str(nn))

scope_es(m45)=stuff(scope_es(m45),11,6,PADC(alltrim(str(nn)),6))

endif

@7,20 menu scope_es,8,8 TITLE " 范 围 选 择 表 " SHADOW SAVE

current_rec=recno()

scope_es(7)="\本数据库记录数为: &num. 当前记录号为: "+alltrim(str(current_rec))

enddo

clear

return