تطبيقات

الماكرو والنماذج في كالك

جدول المحتوى

التعامل مع عناصر التحكم بمربع الحوار ومعالجة النماذج باستخدام الماكرو في ليبر أوفيس كالك

مقدمة

يوفّر ليبر أوفيس كالك (LibreOffice Calc) بيئة متكاملة لإنشاء جداول البيانات وتخصيصها بما يتجاوز حدود التنسيقات والصيغ الحسابية البسيطة، إذ يتيح للمستخدمين تنفيذ إجراءات تفاعلية ومعقدة من خلال النماذج (Forms) وعناصر التحكم (Controls) والماكرو (Macros). من خلال هذه الأدوات، يمكن أتمتة العمليات، إدخال البيانات بطريقة محكمة، وبناء واجهات مستخدم رسومية تفاعلية.

تتكامل الماكرو مع النماذج في كالك لتوسيع قدرات البرنامج بشكل كبير، وتسمح للمستخدمين بإنشاء أدوات فعالة للتفاعل مع البيانات وإدارتها. يعتمد هذا التكامل على لغة BASIC الخاصة بليبر أوفيس، والتي تُستخدم لإنشاء الماكرو ومعالجة الأحداث الناتجة عن التفاعل مع عناصر التحكم.

ما هي عناصر التحكم والنماذج في كالك؟

تعريف عناصر التحكم (Control Elements)

عناصر التحكم هي كائنات رسومية يمكن إضافتها إلى واجهة كالك أو مربعات الحوار (Dialog Boxes) لتمكين المستخدم من إدخال البيانات أو تنفيذ أوامر معينة. تشمل هذه العناصر:

  • أزرار الأمر (Command Buttons)

  • مربعات النص (Text Boxes)

  • مربعات القائمة (List Boxes)

  • مربعات السرد (Combo Boxes)

  • مربعات الاختيار (Check Boxes)

  • أزرار التبديل (Option Buttons)

  • مربعات المجموعة (Group Boxes)

  • أشرطة التمرير (Scroll Bars)

تعريف النماذج (Forms)

النموذج هو حاوية تضم مجموعة من عناصر التحكم، وتُستخدم لعرض البيانات أو إدخالها أو تعديلها داخل كالك بطريقة منظمة ومحددة. يتم ربط النموذج بجدول أو نطاق بيانات في ورقة العمل.

إنشاء نموذج باستخدام عناصر التحكم

الخطوة 1: تفعيل شريط أدوات عناصر التحكم

قبل البدء في استخدام عناصر التحكم، يجب تفعيل شريط الأدوات الخاص بها:

  1. افتح LibreOffice Calc.

  2. من القائمة العلوية، اختر View > Toolbars > Form Controls.

  3. يمكن أيضًا تفعيل Form Design للتحكم في وضع التصميم.

الخطوة 2: إدراج عناصر التحكم في الورقة

بمجرد تفعيل شريط الأدوات، يمكن إدراج عناصر التحكم بسهولة:

  • اختر العنصر المطلوب (مثل زر أمر أو مربع نص).

  • انقر واسحب على الورقة لتحديد حجم العنصر ومكانه.

  • يمكن تعديل خصائص كل عنصر عبر النقر المزدوج عليه، أو باستخدام الزر الأيمن ثم اختيار Control.

الخطوة 3: إعداد النموذج

  • من شريط أدوات Form Design، انقر على أيقونة النموذج لفتح خصائص النموذج.

  • يمكنك ربط النموذج بمصدر بيانات (نطاق معين في الورقة).

  • إعدادات النموذج تشمل تمكين التنقل، حفظ البيانات، أو تشغيل وحدات ماكرو عند الأحداث.

بناء مربعات حوار مخصصة (Dialog Boxes)

إنشاء مربع حوار جديد

  1. افتح أداة تحرير الماكرو عبر Tools > Macros > Organize Dialogs.

  2. اختر المستند أو المكتبة المناسبة.

  3. انقر على “New” لإنشاء مربع حوار جديد، وحدد له اسماً.

تصميم مربع الحوار

  • في نافذة التصميم، يمكن سحب وإسقاط عناصر التحكم إلى مربع الحوار.

  • يمكن ضبط خصائص العناصر عبر النقر المزدوج عليها.

  • يُفضل تسمية العناصر بطريقة وصفية لتسهيل استخدامها لاحقًا في الكود البرمجي (مثل txtName، btnSubmit).

كتابة الماكرو لمعالجة النماذج ومربعات الحوار

أساسيات لغة BASIC في كالك

تعتمد الماكرو في كالك غالبًا على لغة LibreOffice Basic، وهي لغة شبيهة بـ VBA في Microsoft Excel. بنية البرنامج بسيطة، وتبدأ عادة بوحدة:

basic
Sub اسم_الماكرو() ' تعليمات برمجية End Sub

مثال عملي: فتح مربع حوار وتعبئة بيانات

1. إنشاء مربع الحوار:

افترض أننا أنشأنا مربع حوار يحتوي على:

  • مربع نص اسمه txtName

  • زر أمر اسمه btnSubmit

2. كود الماكرو:

basic
Sub ShowDialog() Dim oDialog As Object Dim oDialogModel As Object oDialogModel = CreateUnoDialog(DialogLibraries.Standard.MyDialog) oDialog = oDialogModel oDialog.Execute() End Sub

3. معالجة البيانات من مربع النص:

basic
Sub ProcessDialogData() Dim oDialog As Object Dim oTextField As Object Dim sName As String oDialog = CreateUnoDialog(DialogLibraries.Standard.MyDialog) oTextField = oDialog.getControl("txtName") If oDialog.Execute() = 1 Then sName = oTextField.Text MsgBox "الاسم المدخل: " & sName End If End Sub

ربط الماكرو بعنصر تحكم

لربط زر أمر في الورقة أو مربع الحوار بماكرو:

  1. انقر بزر الماوس الأيمن على الزر.

  2. اختر Assign Macro.

  3. اختر الماكرو من المكتبة المناسبة.

التعامل مع الأحداث Events في عناصر التحكم

كل عنصر تحكم يمكن ربطه بأحداث معينة مثل:

  • عند النقر (Mouse Click)

  • عند تغيير القيمة (Changed)

  • عند فقدان التركيز (Focus Lost)

يمكن برمجة رد فعل مختلف لكل حدث عبر ربطه بماكرو معين. على سبيل المثال:

basic
Sub btnSubmit_Click MsgBox "تم النقر على الزر!" End Sub

ويتم ربط الحدث بالماكرو من خصائص عنصر التحكم عبر التبويب Events.

التعامل مع البيانات داخل كالك باستخدام الماكرو

من الضروري أن تكون الماكرو قادرة على قراءة البيانات من خلايا الورقة وتحديثها. المثال التالي يوضح طريقة قراءة قيمة من خلية معينة:

basic
Sub ReadCell Dim oSheet As Object oSheet = ThisComponent.Sheets(0) ' الورقة الأولى MsgBox oSheet.getCellByPosition(0, 0).String ' قراءة A1 End Sub

ويمكن استخدام ذلك لتخزين البيانات المدخلة من النماذج مباشرة في خلايا الورقة أو قاعدة بيانات مرتبطة.

بناء نموذج متكامل لإدخال بيانات الموظفين

تصميم النموذج

يتكون النموذج من العناصر التالية:

  • مربع نص للاسم

  • مربع نص للوظيفة

  • مربع اختيار لتحديد ما إذا كان الموظف بدوام كامل

  • زر لإرسال البيانات

  • جدول في الورقة لعرض البيانات

كود الماكرو لتسجيل البيانات

basic
Sub SaveEmployeeData Dim oDialog As Object Dim oName As Object Dim oPosition As Object Dim oFullTime As Object Dim oSheet As Object Dim iRow As Integer oDialog = CreateUnoDialog(DialogLibraries.Standard.EmpDialog) oName = oDialog.getControl("txtName") oPosition = oDialog.getControl("txtPosition") oFullTime = oDialog.getControl("chkFullTime") If oDialog.Execute() = 1 Then oSheet = ThisComponent.Sheets(0) iRow = 1 Do While oSheet.getCellByPosition(0, iRow).String <> "" iRow = iRow + 1 Loop oSheet.getCellByPosition(0, iRow).String = oName.Text oSheet.getCellByPosition(1, iRow).String = oPosition.Text oSheet.getCellByPosition(2, iRow).String = IIf(oFullTime.State = 1, "نعم", "لا") End If End Sub

إدراج زر على الورقة لفتح النموذج

  • أضف زر أمر إلى الورقة.

  • اربط الزر بالماكرو SaveEmployeeData.

جدول يوضح بعض عناصر التحكم وأسمائها ووظائفها الأساسية

عنصر التحكم الاسم البرمجي (مثال) الوظيفة الرئيسية
Text Box txtName إدخال نص
Button btnSubmit تنفيذ عملية عند النقر
Check Box chkFullTime تحديد خيار ثنائي
Combo Box cboDepartment اختيار من قائمة مع إمكانية الإدخال
List Box lstEmployees عرض قائمة بيانات فقط
Option Button optGenderMale تحديد اختيار ضمن مجموعة
Group Box grpGender تجميع أزرار التبديل
Scroll Bar scrExperience تحديد قيمة عددية عبر شريط تمرير

الختام

يوفر ليبر أوفيس كالك بنية قوية لإنشاء واجهات إدخال بيانات متقدمة عبر النماذج وعناصر التحكم. من خلال الماكرو، يمكن التحكم التام في سلوك هذه العناصر، وتخصيص العمليات الحسابية والإدارية بطريقة مرنة وتلقائية. يشكل هذا التكامل بين النماذج والماكرو حجر الأساس في بناء أدوات متقدمة داخل كالك تخدم المؤسسات والمستخدمين الأفراد على حد سواء. يعزز هذا من إمكانية استخدام كالك كمنصة قوية لمعالجة البيانات وتطوير أنظمة بسيطة دون الحاجة إلى برمجيات خارجية.

المصادر:

  1. LibreOffice Documentation – Macros

  2. LibreOffice Calc Guide