الماكرو
لا يمكن تغطية بدلات العمل الليلي أو عمل الأحد أو أيام العطل، أو حساب الساعات الدقيق للإجازات والخدمة العسكرية، بصيغة ثابتة واحدة تناسب كل مؤسسة. لهذا السبب، في الإعدادات > الماكرو، تكتبون نصوصًا برمجية صغيرة خاصة بكم بلغة تشبه 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 — تسجيل الدخول admin@test.com / P@ssw0rt1، تتم إعادة ضبط البيانات يوميًا.