(1)打开test—db数据库,根据表dept和表sell并使用查询设计器设计一个名称为three的查询,按“年度”分部门(按年度和部门分组)统计“月平均销售”(通过销售额计算)、“月平均工资”(通过工资额计算)和“月平均利润”(通过“月平均销售一月平均工

admin2014-11-30  22

问题 (1)打开test—db数据库,根据表dept和表sell并使用查询设计器设计一个名称为three的查询,按“年度”分部门(按年度和部门分组)统计“月平均销售”(通过销售额计算)、“月平均工资”(通过工资额计算)和“月平均利润”(通过“月平均销售一月平均工资”计算)。查询统计结果按“部门号”、“年度”升序排序,并将查询结果输出到表tabb中。表tabb的字段名依次为:“部门号”、“部门名”、“年度”、“月平均销售”、“月平均工资”、“月平均利润”。设计完成后,运行该查询。
    (2)打开文件名为testa的表单。该表单完成如下功能:
    每当用户输入用户名和口令并按“确认”按钮后,利用表pass中记录检查其输入是否正确,若正确,就冠示“欢迎使用本系统!”字样,并关闭表单;若不正确,则显示“用户名或口令不对,请重输入!”字样;如果三次输入不正确,就显示“用户名或口令不对,登录失败!”字样,并关闭表单。
    ①修改口令输入文本框,使输入的口令届示为“*”。
    ②修改该表单“确认”按钮的click事件中的程序。请将第3、4和12行语句修改正确。修改时不允许增加或删除行,只能在错误行上进行修改。

选项

答案(1)步骤1:命令窗口执行:CREATE QUERY three,打开查询改计器,将考生文件夹下的dept表和sell表添加到查询设计器中。 步骤2:添加两个表后,系统弹出“联接条件”对话框,自动查找两个表中相匹配的字段进行联接,单击“确定”。 步骤3:依次双击dept表中的“部门号”、 “部门名”字段和sell表中的“年度”字段添加到“字段”选项卡的“选定字段”列表中,在“函数和表达式”框中输入:AVG(Sell.销售额)AS月平均销售,再单击“添加”按钮,将表达式添加到“选定字段”列表中,以同样的方法,再添加“AVG(Sell.工资额)AS月平均工资”和“AVG(Sell.销售额-Sell.工资额)AS月平均利润”两个表达式到“选定字段”列表框中。如图4-43所示。 [*] 步骤4:“排序依据”中,双击“选定字段”中的“Dept.部门号”和“Sell.年度”字段,添加到“排序条件”列表框。 步骤5:“分组依据”选项卡内,依次双击“选定字段”列表框中的“Dept.部门号”和“Sell.年度”字段,将字段添加到“分组字段”列表框中。 步骤6:执行【查询】→【查洵去向】菜单命令,在“查询去向”中单击“表”图标按钮,在“表名”中输入文件名tabb,单击“确定”按钮。 步骤7:最后单击“常用”工具栏中的“运行”按钮台看结果,将查询文件保存到考生文件夹下。 (2)步骤1:命令窗口执行:MODIFY FORM testa,打开表单设计器修改表单。 步骤2:选中第二个文本框(Text2),设置PasswordChar属性值为:*。 步骤3:“确认”按钮的Click事什中代码如下: *在下面的程序中,第3、4、12行语句不正确,请修改! *注意:修改时不允许增加或删除行,只能存错误行上进行修改! 1 USE pass 2 Keyl=ALLTRIM(ThisForm.textl.Value) 3 Key2=ALLTRIM(ThisForm2) 4 LIST ALL WHILE USER=Keyl 5 IF FOUNDO AND.PASS=Key2 6 WAIT"欢迎使用本系统!" WINDOW TIMEOUT 1 7 thisform.release 8 ELSE 9 num=num+1 10 IF num=3 11 WAIT"用户名或口令不对,登录失败!" WINDOW TIMEOUT 1 12 LOOP 13 ELSE 14 WAIT"用户名或口令不对,请重输入!"WINDOW TIMEOUT 1 15 ENDIF 16 ENDIF 修改后的代码如下: 1 USE pass 2 Key1=ALLTRIM(ThisForm.textl.Value) 3 Key2=ALLTRIM(ThisForm.Text2.Value) 4 LOCATE ALL FOR USER=Keyl 5 IF FOUND() AND PASS=Key2 6 WAIT”欢迎使用本系统!”WINDOW TIMEOUT l 7 thisform.release 8 ELSE 9 num=num+1 10 IF num=3 11 WAIT"用户名或口令不对,登录失败! "WINDOW TIMEOUT l 12 ThisForm.Release 13 ELSE 14 WAIT”用户名或口令不对,请重输入!” WINDOW TIMEOUT 1 15 ENDIF 16 ENDIF 步骤4:单击“常用”工具栏中的“运行”按钮查看结果,将表单文件保存到考生文件夹下。

解析 (1)本题考查的是在查询设计器中新建查询的操作。涉及两个表的操作,要注意确认查询输出的字段来源于哪个数据表。
    本题由于“月平均销售”、“月平均工资”和“月平均利润”需要根据表中字段计算得出,因此,需要在查询设计器“字段”选项卡的“函数和表达式”中输入表达式,或打开“表达式生成器”对话框进行输入计算字段的表达式,新字段名通过AS短语指定,求平均值的函数是AVG()。
(2)本题主要考查的是Visual FoxPro记录查询语句和IF条件语句的使用。程序的功能大致如下:
    首先打开pass表,同时定义两个变量分别等于表单中两个文本框的数据。
    然后通过LOCATE命令查找pass表中所有的user字段值是否有等于第一个文本框中的数据;如果找到,且pass表中的pass字段值等于第二个文本框中的数据,则弹出欢迎提示信息并关闭表单。
    接上面的第一个条件判断语句,如果pass表中的user字段没有找到等于第一个文本框中的数据时,则转入条件语句的另一个分支,首先执行的分支语句是将一个计数变量的值累计加1,当该变量值达到3时,关闭表单。
    根据以上程序的分析,可以得出:
    程序段第3行的错误是没有正确引用文本框中数据,应通过value属性获得文本框中的数据。
    第4行是visual FoxPro查询记录的命令使用错误,应使用LOCATE命令。
    第12行根据题意得出应执行的功能是释放表单,用来释放和关闭表单的方法是RELEASE。
转载请注明原文地址:https://kaotiyun.com/show/JsEp777K
0

最新回复(0)