mobile 使用任务对象

来源:互联网 发布:凯迪网络 编辑:程序博客网 时间:2024/05/18 09:04

使用任务对象

从开发人员的角度来看,使用任务可能出于多种不同的原因。例如,可以在Pocket PC应用程序内通过任务的方式,记录某个项目中等待完成的后续工作。Pocket PC设备上的任务应用程序如图23-2所示。

23-2  任务应用程序

InTheHandPocket Outlook.NET组件所提供的Task对象和OutlookSession对象的Tasks属性,实现了对任务功能的编程访问。

23.4.1  Tasks属性

OutlookSession对象的Tasks属性提供了对驻留在设备上的任务集合的访问。实际上,Tasks属性提供了访问POOM(全部任务数据驻留在其内部)内的Tasks文件夹的接口。该属性链接到包含所有任务的项目集合。

在本节后续部分介绍的几个示例中,将演示Tasks属性及其项目集合被用来检索任务的功能。

23.4.2  Task对象

通过Task对象可以实现对单个任务的引用。表23-1列出了Task对象的常用属性。表23-2列出了Task对象的常用方法。

23-1  Task对象的常用属性

属性

说明

Body

任务所附备注的文本

Categories

分配给任务的类别

Complete

标识任务是否已完成

DateCompleted

任务的完成日期

DueDate

任务的截止日期

Importance

任务的重要性

IsRecurring

任务是一次性的还是反复发生的

ItemId

任务的惟一标识符

ReminderSet

是否就该任务提醒用户

StartDate

任务的开始日期

Subject

任务的主题

23-2  Task对象的常用方法

方法

说明

Copy

创建现有任务的副本

Delete

删除任务

ShowDialog

使用本机Task接口显示任务

Update

将修改保存到任务

23.4.3  检索所有任务

与任务操作相关的最常见功能之一就是检索任务。开发人员可以用多种方式来检索任务:

· 检索所有任务的集合;

· 检索所有任务的子集;

· 检索单个任务。

下面首先介绍如何检索所有任务,因为这是一种常用的方法,并且是检索任务的最简单方法。清单23-1提供了一个简单示例,该示例检索驻留在某个设备上的所有任务。

清单23-1  检索所有任务

Imports InTheHand.WindowsMobile.PocketOutlook

……

Dim myOutlookSession As New OutlookSession

Dim myTasks As PimItemCollection

 

Private Sub PoomDemo_Load(ByVal sender As System.Object, _

    ByVal e As System.EventArgs) Handles MyBase.Load

        ' 检索所有任务

        myTasks = myOutlookSession.Tasks.Items

End Sub

该示例包括了以下主要组成部分:

· Imports语句,该语句必须位于模块的顶部。

· OutlookSession对象的声明语句。

· PimItemCollection对象的声明,该对象可以保存任何Outlook项目的集合。在本例中,它用于保存任务集合。

· 将任务集合从OutlookSession对象的实例myOutlookSession加载到PimItemCollection对象的实例myTasks中。

此时,PimItemCollection对象的实例myTasks包含一组任务对象,分别对应于驻留在测试设备上的各个任务。可以对该集合进行循环处理,将任务数据添加到ListBoxComboBox控件上,还可以查看特定任务信息或者引用该集合内的特定任务。

23.4.4  检索所选任务

用户在有些时候可能需要检索特定的任务。这些特定任务可能是任务子集,也可能是单个的任务。使用Items集合的Restrict方法,可以轻松地做到这一点。清单23-2演示如何检索任务子集。在该示例中仅检索类别为demo的任务。

 

清单23-2  检索所选任务

Imports InTheHand.WindowsMobile.PocketOutlook

……

Dim myOutlookSession As New OutlookSession

Dim myTasks As PimItemCollection

 

Private Sub btnSelect_Click(ByVal sender As System.Object, _

    ByVal e As System.EventArgs) Handles btnSelect.Click

        Dim strQuery As String

 

        ' 检索所选任务

        strQuery = "[Categories] = " & ControlChars.Quote & "demo" & ControlChars.Quote

        myTasks = myOutlookSession.Tasks.Items.Restrict(strQuery)

    End Sub

大部分准备工作与检索所有任务所需的准备工作相同。仍然需要添加Imports语句,声明OutlookSession对象变量,以及声明PimItemCollection变量。

在清单23-2btnSelect_Click过程中,实现检索匹配查询条件的任务的功能。首先生成了一个查询字符串,该查询字符串相当一个SQL SELECT语句的WHERE子句。该查询字符串随后做为参数传递给Restrict方法,检索匹配查询条件的任务。除了使用查询字符串来筛选任务之外,还可以根据通过Task对象提供的属性来筛选任务。

23.4.5  显示任务

POOM提供的一个非常有用的功能特性,是能够在Pocket PC应用程序界面上显示本机的Pocket Outlook数据。也就是说,其显示效果就像用户进入Task应用程序并选择查看特定任务一样。

该功能通过Task对象的ShowDialog的方法实现,ShowDialog方法从Pocket Outlook.NET组件中的PimItem类继承而来。清单23-3演示了如何使用该方法。

清单23-3  显示任务

Imports InTheHand.WindowsMobile.PocketOutlook

……

Dim myOutlookSession As New OutlookSession

Dim myTasks As PimItemCollection

 

Private Sub btnDisplay_Click(ByVal sender As System.Object, _

    ByVal e As System.EventArgs) Handles btnDisplay.Click

        Dim myTask As Task

 

        ' 显示任务

        myTask = myTasks.Item(0)

        myTask.ShowDialog()

    End Sub

与前面的两个示例一样,首先要添加Imports语句,并声明OutlookSessionPimItemCollection变量。

在清单23-3btnDisplay_Click过程中,首先从检索的所有任务集合中,将单个任务(即第一个任务)提取到Task对象变量中。该对象提供了ShowDialog方法,随后调用该方法在图23-3所示的界面里显示所选任务。

23-3  显示任务

23.4.6  增加任务

增加新任务的过程包含3个步骤。首先创建一个新任务,其次配置新任务,最后保存新任务。清单23-4演示了如何增加新任务。

清单23-4  增加任务

Imports InTheHand.WindowsMobile.PocketOutlook

……

Dim myOutlookSession As New OutlookSession

Dim myTasks As PimItemCollection

 

Private Sub btnAdd_Click(ByVal sender As System.Object, _

    ByVal e As System.EventArgs) Handles btnAdd.Click

    Dim myTask As Task

 

    ' 创建一个新任务

    myTask = myOutlookSession.Tasks.Items.AddNew

 

    ' 配置新任务

    With myTask

            .Body = "添加一个简单的任务"

            .Categories = "demo"

            .DueDate = Today.Date

            .Importance = Importance.High

            .ReminderOptions = ReminderOptions.Dialog

            .ReminderSet = True

            .StartDate = Today.Date

            .Subject = "sample task"

 

            ' 最后,保存新任务

            .Update()

End With

End Sub

与前面的所有示例一样,首先要添加Imports语句,并声明OutlookSessionPimItem Collection变量。

在清单23-4btnAdd_Click过程中,完成了增加新任务所包括的3个步骤。首先,在OutlookSession对象的Tasks属性集合中增加一个新任务。其次,配置该新任务的各项属性。最后,调用Task对象的Update方法保存该任务。

23.4.7  修改任务

修改任务与增加任务类似,修改任务同样也包括3个步骤。而与增加新任务的3个步骤惟一不同之处是,修改任务的第一步是将现有任务加载到Task对象中。清单23-4演示了修改任务所执行的3个步骤。

清单23-5  修改任务

Imports InTheHand.WindowsMobile.PocketOutlook

……

Dim myOutlookSession As New OutlookSession

Dim myTasks As PimItemCollection

 

Private Sub btnModify_Click(ByVal sender As System.Object, _

    ByVal e As System.EventArgs) Handles btnModify.Click

    Dim myTask As Task

 

    ' 检索所有任务

    myTasks = myOutlookSession.Tasks.Items

    myTask = myTasks.Item(0)

 

    ' 配置新任务

    With myTask

            .Body = "修改任务"

 

            ' 最后,保存新任务

            .Update()

    End With

End Sub