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

admin2015-08-20  23

问题 (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.销售额-SelI.工资额)AS月平均利润”两个表达式到“选定字段”列表框中。如图3-43所示。 [*] 步骤4: “排序依据”中,双击“选定字段”中的“Dept.部门号”和“Sell.年度”字段,添加到“排序条件”列表框。 步骤5:“分组依据”选项卡内,依次双击“选定字段”列表框中的“Dept.部门号”和“Sell.年度”字段,将字段添加到“分组字段”列表框中。 步骤6:执行【查询】→【查询去向】菜单命令,在“查询去向”中单击“表”图标按钮,在“表名”中输入文件名tabb,单击“确定”按钮。 步骤7:最后单击“常用”工具栏中的“运行”按钮查看结果,将查询文件保存到考生文件夹下。 (2) 步骤1:命令窗口执行:MODIFY FORM testa,打开表单设计器修改表单。 步骤2:选中第二个文本框(Text2),设置PasswordChar属性值为:木。 步骤3:“确认”按钮的Click事件中代码如下: *在下面的程序中,第3、4、12行语句不正确,请修改! *注意:修改时不允许增加或删除行,只能在错误行上进行修改! USE pass Key1=ALlTRIM(ThisForm.text1.value) KeV2=ALLTR工M(ThisForm2) LIST ALL WHILE USER=KeV1 IF FOUND().AND PASS=Key2 WAIT"欢迎使用本系统!"WINDOW TIMEOUT 1 this form.release ELSE num=num+l IF num=3 WAIT"用户名或口令不对,登录失败! "WINDOW TIMEOUT 1 LOOP ELSE WAIT"用户名或口令不对,请重输 入!"WINDOW TIMEOUT 1 ENDIF ENDIF修改后的代码如下: USE pass Key1=ALLTRIM(ThisForm.rext1.Value) Key2=ALLTRIM(ThisForm.Text2.Vlalue) LOCATE ALL FOR USER=Kevl IF FOUND()AND PASS=Key2 WAIT"欢迎使用本系统!"WINDOW TIMEOUT 1 thisform.release ELSE num=num+1 IF num=3 WAIT"用户名或口令不对,登录失败!"WINDOW TIMEOUT 1 ThisForm.Release ELSE WAIT”用户名或口令不对,请重输入! "WINDOW TIMEOUT 1 ENDIF 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/IPEp777K
0

最新回复(0)