设为首页 加入收藏

TOP

21.3 管理更新过程
2013-10-07 12:41:06 来源: 作者: 【 】 浏览:73
Tags:21.3 管理 更新 过程

21.3  管理更新过程

我们实际上希望用户方面采取积极的动作来允许更新操作的执行,而不是让更新操作默认执行。首先可以使所有编辑控件都成为只读控件,这样所有控件默认就都不能接受来自键盘的数据输入。然后,可以给该对话框添加一个Edit Order按钮,其作用是允许适当的编辑控件接受键盘输入。新的对话框如图21-6所示。

这次将在程序中实现两种概念模式:只读和编辑。当禁止更新时属于只读模式,因为控件是只读的;当选中的控件可以接受键盘输入时属于编辑模式,因此可以更新记录集。我们的意图是当用户单击Edit Order按钮时,希望更新的那些字段的编辑控件将可以接受键盘输入,程序进入编辑模式。将该按钮添加到DBSimpleUpdate应用程序的对话框。可以将该按钮的ID设定为IDC_EDITORDER,还可以在COrderDetailsView类中添加该按钮的处理程序,方法是右击该按钮,并从弹出菜单中选择Add Event Handler。将该函数的名称缩写为OnEditorder()。

理想情况是,应该禁止在更新模式中使用工具栏按钮或Record菜单项移动到表中另一行,因为希望用户单击某个按钮时结束更新操作,而不是移动记录集的当前位置。

当单击Edit Order按钮时,数量和折扣这两个控件的只读状态应该消除,并且应该有一个要执行更新操作时应该单击的按钮。为了适应所有这些要求,希望该应用程序的对话框在单击Edit Order按钮之后如图21-7所示。

对应Quantity和Discount的编辑控件现在允许输入数据,Edit Order按钮换用了新标签Update,另外出现一个标签为Cancel的新按钮,以允许用户在必要时取消更新操作。当单击Edit Order按钮之后,除了要禁用在记录中间移动的工具栏按钮以外,还应该禁用当前的记录。因此,Record菜单下拉列表中的菜单项也应该被禁用。该程序现在处于"编辑"模式。

可以给该对话框添加Cancel按钮,但不希望该按钮最初就显示出来,因此应该将该按钮的Visible属性设置成False。设置ID属性值为IDC_CANCEL。还需要Cancel按钮的处理程序,因此现在以给Edit Order按钮添加处理程序的相同方式,在COrderDetailsView类中添加一个名为OnCancel()的函数-- 稍后再编写该函数的代码。

 
(点击查看大图)图  21-6
 
(点击查看大图)图  21-7

更新操作的过程如下:用户在对话框上允许输入数据的字段中输入数据,然后单击Update按钮完成更新操作。此后,该对话框返回到最初的"只读"模式状态,所有编辑控件都成为只读控件。如果用户不希望进行更新操作,则可以单击Cancel按钮而不是Update按钮。

为了实现这种机制,并有效地管理更新过程,需要在Edit Order按钮被单击之后做下面这几件事情:

将Edit Order按钮上的文本修改为Update,使之现在成为完成更新操作的按钮。

使Cancel按钮出现在对话框上,换句话说,使该按钮可见。

在COrderDetailsView类中将"已经进入编辑模式"的情况记录下来。这是必要的,因为要为两项不同的用途使用同一个按钮,所以要根据所处的模式切换Edit Order和Update这两个标签。

允许那些对应于希望更新的字段的编辑控件接受键盘输入。

下面看一看如何编写代码,做任何想做的事情。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇21.2 简单的更新示例 下一篇9.9.7 委托和事件(5)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: