
การเขียนโปรแกรมเพื่อแก้ไข และอ่าน Appointment และ Task บน Windows Mobile ด้วย C# หรือ VB.NET โดยการใช้ .NET Compact Framework ก็ต้องทำผ่านระบบ Pocket Outlook เช่นเดียวกันครับ ซึ่งการใช้ Pocket Outlook ก็สามารถทำได้โดยการ Add Reference Microsoft.WindowsMobile.PocketOutlook เข้ามา
(ตอน Add Reference ระวังด้วยนะครับ เพราะว่ามันมี 2 ตัว เลือกตัวที่อยู่ใน SDK ของ WM6 นะครับ)
ตารางนัดหมาย (Calendar)
คลาสที่เราจะทำงานด้วย สำหรับการแก้ไขและอ่านตารางนัดหมาย ก็คือคลาส Microsoft.WindowsMobile.PocketOutlook.Appointment ครับ ซึ่งมีโครงสร้างตามด้านซ้ายมือนี้ Microsoft เขาก็ได้ทำการเก็บค่าต่างๆ ของการนัดกมาย ทำเป็น Property ให้เราหมดแล้ว ใช้ง่ายมากครับ
สำหรับการสร้าง Contact ใหม่ มีโค๊ดดังนี้ครับ
สร้าง Appointment ใหม่
- OutlookSession session = new OutlookSession();
-
- Appointment appointment = new Appointment();
- appointment.Subject = "Meeting";
- appointment.Start = DateTime.Now;
- appointment.End = new DateTime(2010, 1, 15);
-
- session.Appointments.Items.Add(appointment);
- session.Dispose();
สังเกตว่าเราจะต้องสั่ง Dispose Session เพื่อ Clear หน่วยความจำที่ใช้ออกด้วยครับ
ส่วนถ้าต้องการอ่าน Appointment ในเครื่อง ก็ใช้โค๊ดดังนี้ครับ
อ่าน Appointment ในเครื่อง
- OutlookSession session = new OutlookSession();
- for (int i = 0; i < session.Appointments.Items.Count; i++)
- {
- session.Appointments.Items
.Body = "string"; -
- session.Appointments.Items
.Update(); - }
- session.Dispose();
สังเกตว่า หลังการแก้ไข จะต้องสั่ง Update() เพื่อบันทึกค่าลงในระบบด้วยครับ
สิ่งที่ต้องทำ (Task)
ผมว่า ไม่ต้องบอก ก็คงเดาได้แล้วใช่ไหมครับ การที่จะใช้งาน Task ก็ต้องทำงานกับคลาส Microsoft.WindowsMobile.PocketOutlook.Task ครับ ซึ่งโครงสร้าง ก็ตามด้านซ้ายครับ และการทำงาน ก็เหมือนกันราวกับแกะเลยทีเดียว
การสร้าง Task ใหม่ ทำได้ดังนี้ครับ
สร้าง Task ใหม่
- OutlookSession session = new OutlookSession();
-
- Task task = new Task();
- task.Subject = "Subject";
- task.Body = "Text";
- task.DueDate = DateTime.Now;
-
- session.Tasks.Items.Add(task);
- session.Dispose();
และการอ่าน Task ก็ทำได้ดังนี้ครับ
อ่าน Task ในเครื่อง
- OutlookSession session = new OutlookSession();
- for (int i = 0; i < session.Tasks.Items.Count; i++)
- {
- session.Tasks.Items
.Body = "string"; - session.Tasks.Items
.Update(); - }
- session.Dispose();
ซึ่งสาเหตุที่ทุกอย่าง ทำงานคล้ายกัน ก็เพราะว่า ทุกคลาส มัน Inherit มาจาก PIMItem นั่นเองครับ
