为FoxPro中的弹出式菜单增加自学习功能
考研屋 www.kaoyanwu.com 提供各大机构考研、公务员、四六级辅导视频课程
开发过应用系统的人都知道,使用FoxPro for Win-dows在用屏幕生成器进行数据窗口设 计的过程中,经常要使用弹出式菜单(POPUP)来设计进行数据输入的数据入口。弹出式菜单平 常在屏幕上只会显示一个选项的
内容
财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容
,当您用鼠标选择它或按下空白键、ENTER键时,它就在 屏幕上出现一个窗口和一些供用户选择的选项。使用弹出式菜单有两个方面的优点:一个优 点是用户可以不在该数据入口中输入数据,而只需在该弹出项提供的有效选项中选择一项即可;使用弹出式菜单的另一个优点是它能保证数据输入的有效性,由于用户只限于从菜单弹出 的选项中选择数据,所以不会产生输入错误。但是,我们在开发软件的过程中发现弹出式菜单 存在一个缺点:就是当弹出式菜单所弹出的选项不包括用户所要输入的数据时,则系统无法让 用户输入正确的数据。本文所叙述的
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
(以FoxPro 2.5 for Windows为例),就是为了改进 弹出式菜单的这一缺点,为弹出式菜单增加让用户输入数据的功能,并能够将用户输入的数据自动添加到弹出式菜单的选项中(即我们所说的自学习功能),以便用户以后输入数据时选择 使用。
实现效果
我们可以在数据窗口中将一个数据入口定义为弹出式菜单(POPUP),并在该弹出式菜单的 相同位置上定义一个输入字段(INPUT FIELD),该字段与弹出式菜单大小相同,其初始状态为 Initially Disable Field,被弹出式菜单完全覆盖。当第一次使用该弹出式菜单时,其弹出 的选项中只出现”其它”一项。如果用户输入数据时发现菜单弹出的选项中不包括所要输入的 数据,则可以选”其它”项。这时数据窗口中在弹出式菜单的位置上将出现一个输入字段,并且该输入字段可以把弹出式菜单完全覆盖,用户就可以在这个输入字段上输入新的数据,输入完 毕后该输入字段将又被弹出式菜单覆盖,屏幕上弹出式菜单显示为刚输入的内容。用户每次 在这个输入字段中输入的新数据(必须是原弹出式菜单的选项中没有的)都将作为一个新的选 项加入到弹出式菜单的选项中,而选项中的”其它”项将始终是选项的最后一项。
实现方法
我们假设是为数据库ab.dbf定义一个数据窗口ab.scx,数据库ab.dbf中有一个字符型字 段aa,数据窗口ab.scx中将与aa字段相对应的数据入口变量m.aa定义为弹出式菜单(POPUP), 其Array Popup的名为aalist。另为该弹出式菜单定义一个相对应的输入字段(INPUT FIELD ),其字段名为m.newaa。
(一)定义数据窗口ab.scx,选择Screen/Layout后进入Screen Code,在 Screen Setup Co de中输入以下程序段:
&& 该程序段的功能是初始化和生成数组aalist PRIVATE m.popupedit, m.savrec,
m.aacnt m.popupedit = .F. m.aacnt = 0 DIMENSION aalist[1] m.savrec = RECNO() GO TOP SCAN FOR NOT DELETED() m.string = 专业提供提供各大机构考研、公务员、四六级辅导视频课
考研屋 www.kaoyanwu.com
提供各大机构考研、公务员、四六级辅导视频课程
ALLTRIM(aa)&& 取字段内容 IF NOT EMPTY(m.string) AND ASCAN(aalist m.string) = 0 && 确认数组aalist中是否不包括该字段内容 m.aacnt = m.aacnt + 1 IF m.aacnt , ALEN(aalist) DIMENSION aalist[m.aacnt] ENDIF aalist[m.aacnt] = m.string && 把该字段内容加入 到数组aalist中 ENDIF ENDSCAN DIMENSION aalist[m.aacnt] = ASORT(aalist) && 为数组aalist排序 m.aacnt = m.aacnt + 1 DIMENSION aalist[m.aacnt] aalist [m.aacnt] = “其它”&& 把”其它”项加入到数组aalist的最后一项 GOTO RECORD m.savrec SCATTER MEMVAR MEMO BLAN
考研屋www.kaoyanwu.com :提供各大机构考研、公务员、四六级辅导视频课程 专业提供提供各大机构考研、公务员、四六级辅导视频课