ar:help:codeexamples

أمثلة على استخدام البرمجة

قبل أن نبدأ في الأمثلة راجع موضوع البرمجة بلغة لوا Lua

اهم فقرة أين تضع النص البرمجي، هنالك حتى الآن ثلاث أقسام، بداية التقرير، نهاية التقرير و التفصيل

بداية التقرير يتم تنفيذه مرة واحد، عند بدء التقرير، نستنتج أن نهاية التقرير كذلك، مرة واحد لكن عند انتهاء التقرير.

أما التفصيل فعند كل سطر من اسطر التقرير.

بداية التقرير مفيد مثلا لتهيئة المتحولات

نهاية التقرير مفيد مثلا لعملية الترتيب و التجميع للنتائج

مثال: وضع خلية لترقيم الأسطر

بالرغم من أنها متوفرة مسبقا في التقارير لكن ربما نحتاج اليها في امثلة اخرى

الخطوات

تقرير ميزان المراجعة، قم بوضع خلية “نص” في التقرير، سم هذه الخلية Number (حافظ على حالة الحرف كبير ام صغير) و عنوان لها “الرقم

افتح شاشة “الكود” و في بداية التقرير ادخل التالي

  Count = 1

هنا تم تعريف متحول Count و يبدأ بقيمة 1 كأول قيمة

في جزء التفصيل من الكود، ادخل ما يلي

 Row.Number = Count
 Count = Count + 1

يعني قم بتغيير الخلية Number إلى قيمة Count

وقم بزيادة قيمة Count بمقدار 1

مثال: تجاهل الأسطر التي تحتوي خلية نصاً معين

إذا أردنا استثناء الأسطر التي اسم الحساب، او رمز الحساب (أي خلية) فيها حرف أو كلمة محددة، مثلا أريد تجاهل كل الحسابات التي في رمز 121 في رمز الحساب

الخطوات

تقرير ميزان المراجعة، في تصميم التقرير، خلية الرمز قم بتسميتها AccCode

افتح شاشة الكود ، في جزء التفصيل اكتب

if Row.AccCode:find('121') then
  Skip()
end;

بمعنى افحص إذا كان AccCode يحوي 121 ، إذن تجاهل السطر Skip

طيب ماذا لو اردنا أن نتجاهل فقط التي تبدأ بـ 121 و ليست تحوي؟

الحل

if Row.AccCode:find('121') == 1 then
  Skip()
end; 

يعني إذا وجدت الـ 121 كأول حرف (رقم 1) إذن تجاهل، سهلة صح؟

مثال: عكس النتيجة السابقة

إذا اردنا تجاهل التي لا تحوي 121 ؟

الحل إضافة ~ قبل الشرط، أو تحويل علاقة المساواة == إلى علاقة لا مساواة ~=

في المثال السابق، الحالة الأولى (انتبه إلى ~ بعد كلمة if )

تجاهل الأسطر التي لا تحوي 121

if ~Row.AccCode:find('121') then
  Skip()
end;

الحالة الثانية يبدأ بـ 121 ، نقلب إشارة المساواة إلى عدم مساواة

تجاهل الأسطر التي لا تبدأ ب 121

if Row.AccCode:find('121') ~= 1 then
  Skip()
end;

مثال، ترقيم اسطر مع تجاهل اسطر معينة

لندمج المثالين أعلاة، الترقيم، و التجاهل للحسابات التي تحوي 121

في جزء الكود “بداية التقرير” ضع

Count = 1

في جزء التفصيل

if Row.AccCode:find('121') then
  Skip()
else
  Row.Number = Count
  Count = Count + 1
end;
 

الشرح: إذا كانت الخلية تحوي 121 قم بتجاهل السطر، و إلا قم بتعديل قيمة خلية Number إلى العدد Count ثم قم بزيادة العدد Count بمقدار واحد.

إذا فهمتها، بكل بساطة يمكنك تغيير الشرط بين if وبين then حسب الأمثلة اعلاه.

ar/help/codeexamples.txt · آخر تعديل: 2021/04/23 03:12

أدوات الصفحة