Dynamics 365 Business Central: เจาะลึก Duration Data Type ใน AL เคล็ดลับและตัวอย่างการใช้งาน

Duration Data Type ในภาษา AL ของ Microsoft Dynamics 365 Business Central เป็นชนิดข้อมูลที่ใช้สำหรับการจัดการและคำนวณระยะเวลา (time duration) โดยระยะเวลานี้สามารถประกอบด้วยหน่วยเวลา เช่น ชั่วโมง (hours), นาที (minutes), วินาที (seconds), และมิลลิวินาที (milliseconds) ชนิดข้อมูล Duration นี้ช่วยให้นักพัฒนาสามารถคำนวณเวลา เปรียบเทียบระยะเวลา หรือแปลงเวลาไปเป็นข้อความที่เข้าใจง่ายในแอปพลิเคชันของพวกเขาได้อย่างมีประสิทธิภาพ

การประกาศตัวแปรชนิด Duration

ในภาษา AL การประกาศตัวแปรชนิด Duration สามารถทำได้ง่ายๆ โดยใช้คำสั่ง Duration ตามด้วยชื่อของตัวแปรที่ต้องการ เช่น:

ในตัวอย่างนี้ ตัวแปร TotalDuration จะใช้สำหรับเก็บข้อมูลระยะเวลา

การกำหนดค่าให้กับ Duration

การกำหนดค่าให้กับ Duration สามารถทำได้โดยการคำนวณจำนวนชั่วโมง นาที วินาที หรือมิลลิวินาทีที่คุณต้องการ เช่น:

หรือคุณสามารถรวมหลายหน่วยเวลาเข้าด้วยกัน:

ในตัวอย่างนี้ เราได้กำหนดค่าระยะเวลาเป็น 2 ชั่วโมงและ 30 นาที โดยใช้การคำนวณในหน่วยมิลลิวินาที

ตัวอย่าง: การคำนวณเวลาทำงานทั้งหมดและเปรียบเทียบกับเวลาทำงานมาตรฐาน

สมมุติว่าคุณต้องการคำนวณเวลาทำงานทั้งหมดของพนักงานในแต่ละวัน และเปรียบเทียบกับเวลาทำงานมาตรฐาน (Standard Working Time) ที่กำหนดไว้คือ 8 ชั่วโมง เพื่อดูว่าพนักงานทำงานเกินเวลาหรือไม่

สมมุติเวลาทำงานทั้งหมดเป็น 9 ชั่วโมง

อธิบายโค้ด:

  1. StandardWorkingTime: กำหนดเวลาทำงานมาตรฐานเป็น 8 ชั่วโมง โดยแปลงหน่วยเป็นมิลลิวินาที (8 * 60 * 60 * 1000).
  2. TotalWorkingTime: คำนวณเวลาทำงานทั้งหมดจากการลบ StartTime ออกจาก EndTime.
  3. WorkHours และ WorkMinutes: แปลงเวลาทำงานทั้งหมดที่คำนวณได้เป็นชั่วโมงและนาที เพื่อให้สามารถนำไปแสดงผลได้ง่าย.
  4. Overtime: หาก TotalWorkingTime มากกว่า StandardWorkingTime จะคำนวณเวลาโอทีและแปลงเป็นชั่วโมงและนาที.
  5. MessageText: สร้างข้อความที่จะแสดงผลเวลาทำงานทั้งหมดและเวลาโอทีถ้ามี และแสดงผลข้อความนี้ออกมา.

โค้ดนี้สามารถใช้ในการคำนวณเวลาทำงานจริง และตรวจสอบได้ว่ามีการทำงานเกินเวลา (โอที) หรือไม่ พร้อมกับแสดงผลให้ผู้ใช้งานทราบในรูปแบบที่เข้าใจง่าย

การแปลง Duration เป็นข้อความ

Duration สามารถแปลงเป็นข้อความเพื่อแสดงผลได้โดยใช้ฟังก์ชัน Format เช่น:

var
   DurationText: Text;
begin
   DurationText := Format(TotalDuration); // จะแสดงเป็น '2 hours 30 minutes'
   Message(DurationText);
end;

สรุป

Duration Data Type ใน AL เป็นเครื่องมือที่มีประสิทธิภาพในการจัดการเวลาในแอปพลิเคชัน Dynamics 365 Business Central ไม่ว่าจะเป็นการคำนวณเวลา การเปรียบเทียบระยะเวลา หรือการแปลงเวลาไปเป็นข้อความที่เข้าใจง่าย การเข้าใจและใช้งาน Duration อย่างถูกต้องจะช่วยให้การพัฒนาของคุณมีความแม่นยำและเป็นระเบียบมากขึ้น

Leave a comment