FOXbase+运用技巧三则

Author: 云南 杨涛 Date: 1995-01-20

        在字符型字段及明细型字段中,经常会遇到特殊字符的输入。如“句号、顿号”、“ψ”等,通常的方法是用区位码输入,有些汉字系统也可以用动态键盘,但总是要不断地变换输入方式,击键次数多,记忆困难。利用FOXbase+提供的功能键设置命令SET FUNCTION可以将常用的特殊字符定义在F2~F10的9个功能键上,使用起来方便自如。以下的程序定义了“、。ψⅠⅡⅢⅣ±×”等九个特殊符号:
        set func 2 to "、"
        set func 3 to "。"
        set func 4 to "ψ"
        set func 5 to "Ⅰ"
        set func 6 to "Ⅱ"
        set func 7 to "Ⅲ"
        set func 8 to "Ⅳ"
        set func 9 to "±"
        set func 10 to "×"
        2.自动获取字段宽度
        带横竖线的中文报表打印中,需按照每个字段的宽度,动态地安排数据及表格的打印位置。FOXbase+没有提供自动获取字段宽度的命令及函数,本人编制的这段小程序,能够自动 获取指定数据库的每个字段宽度存入数组xj。程序第三行将打开的数据库文件结构存入新生成的临时文件“lsvj”中,第十行再从临时文件中将字段宽度信息存入数组,最后删除临时文件。
        use 数据库名
        nn=fcou() &&取字段数
        copy to lsvj stru extended
        use lsvj
        dime xj(nn)
        xj=0
        go 1
        n=1
        do while n<=nn
        xj(n)=field_len
        skip
        n=n+1
        enddo
        use
        erase lsvj.dbf
        3.在自定格式文件中显示记录号和记录数
        系统默认的编辑格式中,具有当前记录号提示,全屏幕编辑还有记录数提示。但用户自己编辑格式文件后,上述两种自动提示消失,使用不方便,在格式文件中加入以下程序语句,就能够两种提示同时显示,以便操作。
        @ 5,50 say “记录号:”
        @ 5,58 say recno()
        @ 7,50 say "记录数:"
        @ 7,58 say reccount()
        以上程序在TMS-286/20机,FOXBASE+2.1运行通过,汉字系统:SuperCCDOS5.0。