Skip to main content

มาโคร (Makros)

ค่าตอบแทนพิเศษสำหรับการทำงานกะดึก วันอาทิตย์ หรือวันหยุดนักขัตฤกษ์ รวมถึงการคำนวณชั่วโมงที่แม่นยำสำหรับวันลาพักร้อนหรือการรับราชการทหาร ไม่สามารถครอบคลุมได้ด้วยสูตรตายตัวเพียงสูตรเดียวสำหรับทุกองค์กร ที่ การตั้งค่า > มาโคร คุณสามารถเขียนสคริปต์เล็ก ๆ ของคุณเองด้วยภาษาคล้าย BASIC เพื่อรองรับกรณีเหล่านี้

วิธีการทำงาน

มาโครมีไว้เพื่ออะไร: มาโครหนึ่งตัวจะคำนวณค่าตอบกลับค่าเดียวจากข้อมูลของกะงาน (Work) หรือการจ้างงานหนึ่งรายการ ซึ่งโดยทั่วไปคือค่าตอบแทนพิเศษในหน่วยชั่วโมงหรือฟรังก์ ผลลัพธ์จะถูกบันทึกไว้ใน Work.Surcharges และถูกนำไปรวมในรายงานสรุปชั่วโมงงาน (ClientPeriodHours) โดยอัตโนมัติ มาโครแต่ละตัวจะอยู่ในประเภทใดประเภทหนึ่ง คือ กะงาน/การจ้างงาน หรือ กฎการทำงาน และสามารถตั้งชื่อ แก้ไข และลบได้เหมือนการตั้งค่าอื่น ๆ

ข้อมูลที่ใช้ได้: ผ่านคำสั่ง IMPORT สคริปต์สามารถเข้าถึงตัวแปรต่าง ๆ เช่น hour (ชั่วโมงทำงาน), fromhour/untilhour (เวลาเริ่ม/สิ้นสุดในรูปแบบทศนิยมชั่วโมง), weekday (ตามมาตรฐาน ISO-8601 คือ 1 = วันจันทร์ … 7 = วันอาทิตย์), holiday/holidaynextday (วันปัจจุบันหรือวันถัดไปเป็นวันหยุดหรือไม่) รวมถึงอัตราค่าตอบแทนพิเศษที่กำหนดไว้ในสัญญา ได้แก่ nightrate, holidayrate, sarate (วันเสาร์) และ sorate (วันอาทิตย์)

ขอบเขตของภาษา: ภาษาสคริปต์รองรับโครงสร้างควบคุม (IF…THEN…ELSEIF…ELSE…ENDIF, SELECT CASE, FOR…NEXT, DO…LOOP) ฟังก์ชันของตัวเอง (FUNCTION) และโพรซีเจอร์ (SUB ซึ่งต้องถูกกำหนดไว้ก่อนที่จะถูกเรียกใช้ครั้งแรก) รวมถึงฟังก์ชันในตัวสำหรับสตริง คณิตศาสตร์ ตรีโกณมิติ และเวลา (เช่น TimeToHours, TimeOverlap สำหรับช่วงเวลาที่คร่อมเที่ยงคืน) ผลลัพธ์จะถูกส่งกลับด้วยคำสั่ง OUTPUT typ, wert

การทดสอบในตัวแก้ไข: ตัวแก้ไขมาโครมีแท็บทดสอบของตัวเอง คุณสามารถกรอกค่าตัวอย่างสำหรับตัวแปรที่นำเข้ามา ตรวจสอบไวยากรณ์ และรันสคริปต์ทดสอบได้ คำสั่ง DEBUGPRINT/DEBUGCLEAR จะแสดงค่าเพิ่มเติมในหน้าต่างทดสอบ โดยไม่ส่งผลต่อค่าที่ส่งกลับจริง

ความปลอดภัย: ตัวแปลคำสั่งทำงานอยู่ใน sandbox ที่ไม่มีสิทธิ์เข้าถึงระบบไฟล์หรือเครือข่าย มาโครหนึ่งตัวอาจคำนวณผิดพลาดได้ แต่จะไม่สามารถสร้างความเสียหายนอกเหนือจากการคำนวณนั้นได้

ข้อมูลที่ควรทราบ

  • DIM เป็นการประกาศตัวแปร แต่ไม่ได้กำหนดค่าเริ่มต้นไปพร้อมกัน — DIM x = 10 เป็นข้อผิดพลาดทางไวยากรณ์ ต้องเขียน DIM x ก่อน แล้วจึงกำหนดค่า x = 10 แยกต่างหาก
  • คำสำคัญอย่าง ENDIF, ENDFUNCTION และ ENDSUB ต้องเขียนติดกันเป็นคำเดียว ไม่มีการเว้นวรรค
  • weekday ใช้มาตรฐาน ISO-8601 อย่างสม่ำเสมอ (1 = วันจันทร์ … 7 = วันอาทิตย์) — เมื่อเขียน SELECT CASE ของตัวเองสำหรับ "วันสุดสัปดาห์" ค่าที่ต้องใช้คือ 6 (วันเสาร์) และ 7 (วันอาทิตย์)

ลองใช้งานได้ทันที: Klacks Playground — เข้าสู่ระบบด้วย admin@test.com / P@ssw0rt1 ข้อมูลจะถูกรีเซ็ตทุกวัน