(1)在考生文件夹下已有表单文件formone.scx,如图3-26所示,其中包含一个列表框、一个表格和一个命令按钮。 请按下面要求完成相应的操作: ①在表单的数据环境中添加orders表。 ②将列表框Listl设置成多选,另外将

admin2014-11-30  23

问题 (1)在考生文件夹下已有表单文件formone.scx,如图3-26所示,其中包含一个列表框、一个表格和一个命令按钮。

    请按下面要求完成相应的操作:
    ①在表单的数据环境中添加orders表。
    ②将列表框Listl设置成多选,另外将其的RowSourceType属性值设置为“8-结构”、RowSource设置为orders。
    ③将表格Grid 1的RecordSourceType的属性值设置为“4-SQL说明”。
    ④修改“显示”按钮的C1ick事件代码。当单击该按钮时,表格Gridl内将显示在列表框中所选orders表中指定字段的内容。
    (2)利用查询设计器创建查询,从orders、employee和customer表中查询2001年5月1日以后(含)所签所有订单的信息。查询结果依次包含“订单号”、“签订日期”、“金额”、“签订者”和“客户名”5项内容,其中“签订者”为签订订单的职员姓名。各记录按“签订日期”降序排序,签订日期相同按“金额”降序排序;查询去向为表tableone。最后将查询保存在queryone.qpr文件中,并运行该查询。

选项

答案(1)步骤1:命令窗口执行:NODIFY FORM formone,打开表单设计器修改表单。 步骤2:右击表单选择【数据环境】,在表单数据环境中击右键选择【添加】,在“添加表或视图”对话框中双击orders表添加到数据环境中。 步骤3:选中表单中的列表框控件,将RowSourceType属性值设置为:8-结构,将RowSource属性值设置为:orderls,将MultiSelect属性值设置为:.T.;选中表格(Gridl)控件,将RowSourceType属性值设置为:4一SQL说明。 步骤4:“显示”按钮(Cormnandl)的Click事件代码如下: *****“显示”按钮的Click事件代码***** *下面代码的功能是根据用户对列表框的选择结果构建宁段列表,然后进一步构建select语句并据此为表格的相关属性设值。 *修改所有***FOUND***下面的一条语句。 *小能修改其他语句。不能增加语句,也不能删除语句。 1 s="" 2 f=.T. 3 *** FOUND *** 4 FOR.i=1 TO thisform.Listl.columnCOunt 6 IF thisform.Listl.selected(i) 6 IF f 7 *** FOUND *** 8 s=thisform.Listl.value 9 f=.F. 10 ELSE 11 ***FOUND*** 12 s=s+thisform.Listl.value 13 ENDIF 14 ENDIF 15 ENDFOR 16 st="select &s from orders into cursor tmp” 17 thisform.Gridl.RecordSource=st 命令按钮修改后的事件代码如下: 1 s="" 2 f=.T. 3 *** FOUND *** 4 FOR i=1 TO thisform.Listl.ListCount 5 IF thisform.Listl.Selected(i) 6 IF f 7 ***FOuND*** 8 s=thisform.Listl.List(i) 9 f=.F. 10 ELSE 11 ***FOUND*** 12 s=s+","+thisform.Listl.List(i) 13 ENDIF 14 ENDIF 15 ENDFOR 16 st="select &s from orders into cursor tmp" 17 thisform.Gridl.Recordsource=st 步骤5:单击“常用”工具栏中的“运行”按钮查看结果,并单击“输出数据”按钮产生temp.dbf。表文件,保存。 (2)步骤1:命令窗口执行:OPEN DATABASE订单管理,打开数据库环境。 步骤2:命令窗口执行:CREATE QUERY quervone,打开查询设计器,在“添加表或视图”对话框中,分别双击employee、orders和customer表(注意:一定要按顺序添加表),将表添加到查询设计器中,此时,添加的表会按照数据库中已存在的表问联系自动为3个表在查询设计器中建立联系。 步骤3:依次双击orders表中的“订单号”、“签订日期”、“金额”字段,添加到“字段”选项卡的“选定字段”列表中;“字段”选项卡的“函数和表达式”下的文本框中输入:Employee姓名 AS签订者,单击“添加”按钮添加到“选定字段”中;双击customer表中的“客户名”字段添加到“选定字段”列表中。 步骤4: “筛选”选项卡的“字段名”中选择“orders.签订日期”字段,“条件”下拉框中选择“>=”,在“实例”框中输入:{^2001-05-01}。 步骤5:“排序依据”选项卡中双击“选定字段”列表框中的“Orders.签订日期”字段添加到“排序条件”中,“排序选项”中选择“降序”;双击“选定字段”中的“Orders.金额”字段添加到“排序条件”中,“排序选项”中选择“降序”单选项。 步骤6:执行【查询】→【查询去向】菜单命令,在弹出的“查询去向”对话框单单击“表”图标按钮,接着在“表名”中输入文件名tableone,单击“确定”按钮。 步骤7:最后单击“常用”工具栏中的“运行”按钮查看结果,将查询文件保存剑考生文件夹下。

解析 (1)本题主要考查了FOR循环语句;表单控件常用属性;宏替换函数。
    本题需要了解列表框的两个重要属性:选中条目SELECTED(I)和条目总数(LISTCOUNT)属性。程序要求实现的功能大致如下:
    首先定义一个变量并赋值为空字符串,再定义一个变量,赋值为逻辑真。
    接着使用FOR循环开始统计列表框中被选定的条目,循环初值为1,终值为列表框中的条目数(该数值通过LISTCOUNT函数计算得出);进入循环体后,通过IF条件语句首先判断列表框中条目是否被选中,如果选中,则执行第二个IF条件语句,否则返回FOR语句处,继续判断列表框的下一个条目。
    第二个IF语句中,首先判断则逻辑变量的值是否为真,如果为真,则空字符串变量的值等于当前列表框的条目值,接着将逻辑变量的值指定为逻辑假,当执行一次该IF语句后,逻辑变量的值就始终为逻辑假了;在后面执行的条件判断语句中,当逻辑变量值为假时,字符串变量的值等于S值加上当前列表框中的条目值,此时,不会再执行逻辑变量为真的语句了。
    最后,利用宏替换函数(&)将字符串中的数据替换出来,作为简单查询的输出字段;将查询结果保存到临时表中,并通过表格控件显示查询结果。
(2)本题考查了查询设计器的使用。由于涉及3个表的连接查询,因此,要注意向查询设计器中添加表的顺序,保证各表之间在添加到查询设计器后能彼此建立联系。
转载请注明原文地址:https://kaotiyun.com/show/YoEp777K
0

最新回复(0)