(1)扩展Visual FoxPro基类Form,创建一个名为myFonn的自定义表单类。自定义表单类保存在名为myclasslib的类库中。自定义表单类myForm需满足以下要求: ①其AutoCenter属性的默认值为.T.。 ②其Ci

admin2014-11-30  71

问题 (1)扩展Visual FoxPro基类Form,创建一个名为myFonn的自定义表单类。自定义表单类保存在名为myclasslib的类库中。自定义表单类myForm需满足以下要求:
    ①其AutoCenter属性的默认值为.T.。
    ②其Cilosable属性的默认值为.F.。
    ③当基于该自定义表单类创建表单时,自动包含一个命令按钮。该命令按钮的标题为“关闭”,当单击该命令按钮时,将关闭其所在的表单。
    (2)利用查询设计器创建查询,从orders、orderitems和goods表中查询2007年签订的所有订单的信息。查询结果依次包含订单号、客户号、签订日期、总金额四项内容,其中“总金额”为该订单所签所有商品的金额(单价*数量)之和。各记录按“总金额”降序排序,“总金额”相同按“订单号”升序排序。查询去向为表tableone。最后将查询保存在queryone.qpr文件中,并运行该查询。

选项

答案(1)步骤1:执行【文件】→【新建】菜单命令,打开“新建”对话框,在对话框中选中“类”,然后单击“新建文件”图标按钮,打开“新建类”对话框。 步骤2:在“类名”文本框中输入:myfonn,在派生于下拉框中选中“Form”,在“存储于”文本框中输入:myclasslib,单击“确定”按钮。如图4—28所示。 [*] 步骤3:在弹出的类设计器中,通过“属性”面板修改表单的AutoCenter属性值为:.T.,修改Closable属性值为:.F.。 步骤4:通过“表单控件”工具栏向表单添加一个命令按钮,在“属性”面板中修改命令按钮的Caption属性值为:关闭。 步骤5:双击命令按钮,编写按钮的Click事件代码为:Thisform.Release。 步骤6:最后单击“常用”工具栏中的“保存”按钮,将类文件保存到考生文件夹下。 (2)步骤1:在命令窗口执行命令:CREATE QUERYqueryone,打开查询设计器,在“打开”对话框中,双击orders表,将表添加到查询设计器中,在弹出的“添加表或视图”对话框中,单击“其他”按钮,在弹出的“打开”对话框中双击orderitems表,将表添加到查询设计器中,在弹出的“联接条件”对话框中会自动给出order表和orderitem表的关联,单击“确定”按钮,然后在“添加表或视图”对话框中,单击“其他”按钮,在弹出的“打开”对话框中双击goods表,将表添加到查询设计器中,在弹出的“联接条件”对话框中会自动给出orderiterns表和goods表的关联,单击“确定”按钮,关闭“添加表或视图”对话框。 步骤2:根据题目要求,在“字段”选项卡的“可用字段”中,依次双击“orders.订单号”、“orders.客户名”和“orders.签订日期”,将它们添加到“选定字段”列表中;接着在“函数和表达式”文本框中输入:SUMfOrderitems.数量*Goods.单价) AS总金额,然后单击“添加”命令按钮,将表达式添加到“选定字段”列表中。 步骤3:在“筛选”选项卡的“字段名”下拉列表框中选择“表达式”,弹出“表达式生成器”对话框,然后在“表达式”框中输入“YEAR(Orders.签订日期)”,单击“确定”按钮返回“筛选”选项卡,接着设置“条件”为“=”,在“实例”框中输入“2007”。 步骤4:在“排序依据”选项卡内双击“选定字段”列表框中的“SUM(Orderitems.数量*Goods.单价)AS总金额”,将其添加到“排序条件”列表框中,在“排序选项”中选择“降序”;再双击“选定字段”列表框中的“Orders.订单号”,将其添加到“排序条件”中,在“排序选项”中选择“升序”。 步骤5:在“分组依据”选项卡内双击“可用字段”列表框中的“Orders.订单号”字段,将字段添加到“分组字段”列表框中。 步骤6:执行【查询】→【查询去向】菜单命令,在弹出的“查询去向”对话框中单击“表”图标按钮,接着在“表名”中输入文件名tableone,单击“确定”按钮。 步骤7:单击“常用”工具栏中的“运行”按钮查看结果,将查询文件保存到考生文件夹下。

解析 (1)本题考查的是类的建立,操作比较简单,注意派生类名和基类名的区别,另外,设置表单类的属性与在表单设计器中设置表单属性的方法是一样的。
(2)本题主要考查的是查询设计器的使用,首先要判断查询数据源包括哪些数据表,将数据表添加到查询设计器后,再根据题目要求从每个表中选取字段,设置查询条件等完成查询。本题操作时要注意3个表的添加顺序。由于这3个表是自由表,无法建立联系,所以需要我们自己根据两表之间的关联字段设置联接条件。通过分析可以得知,orders表和orderitems表通过“订单号”相连接,0rderitems表和qoods表通过“商品号”相连接,所以应按照0rders表、orderitems表和qoods表的顺序进行添加,在添加的过程中可以设置两表之间的联接条件,否则会导致两个表之间无法建立联系,或是导致查询出错。另外,查询筛选条件为具体的年份值,因此只能通过YEAR()函数获得,应在“筛选”选项卡中选择“表达式”,然后在“表达式生成器”对话框中利用YEAR()函数取“orders.签订日期”中的年份值,作为筛选条件的“字段名”。   
转载请注明原文地址:https://jikaoti.com/ti/QTv0FFFM
0

最新回复(0)