اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

الردود الموصى بها

قام بنشر

إخوتي الفضلاء

 

هذا بحث وتحليل عزمت عليه منذ فترة طلباً للعلم وإيداعاً لما لدي – بفضل من الله – لإخوتي ، وهو مما تعلمت وقرأت وجربت وطبقت ، وهو على أي حال جهد مُقِلٍ ، ولكنه محاولة بحثية قد أصيب فيها وقد أخفق في بعضها ، فإن وجب التصحيح فأعينوني ، وإن أصبت فلي عند ربي أجران ولي عندكم رجاء دعاء بظهر الغيب .

 

الحكم على الشيء فرع عن تصوره ، قاعدة عظيمة إعمالها في حياتنا العملية و العلمية له فوائد جمّة ، لا يدركها إلا من فاز بميزة التفكر و التأني و حَباهُ الله مِنَحَ الصبر على طلب العلم .

 

وتبدأ لقاءاتنا المتتالية إن شاء الله

 

والله من وراء القصد وهو حسبي

 

.........

قام بنشر

الحدث هو إجراء محدد يقع في - أو مع - كائن معين من كائنات قاعدة البيانات ،

ويصح القول أنه : ​​نتيجة للشروع في إجراء على كائن معين من كائنات قاعدة البيانات .

 

ويمكن أن يستجيب Microsoft Access لأحداث مختلفة : نقرات الماوس mouse والتغييرات الحادثة على البيانات كالتحديث ( قبله وبعده ) وفتح النماذج أو إغلاقها و غيرها كثير .

 

ونتمكن من مطالعة منظومة الأحداث للكائن حين يكون في عرض التصميم وعند عرض تبويب Event  من خصائصه ، فمثلاً : عند عرض هذا التبويب في أحد النماذج Form  من قاعدة البيانات تظهر لك مجموعة كبيرة من الأحداث ، يمكنك اختيار الحدث الذي تريد تنفيذ بعض الإجراءات (تعليمات برمجية) عند حدوثه .

 

فائدة :

 

قائمة الأحداث تختلف من كائن لآخر ، باختلافها بين النموذج والتقرير مثلاً ، و باختلاف عناصر التحكم بين زر الأمر و مربع النص و مربع القائمة  و ومربع التحرير و السرد وغيره .

 

تبدأ أسماء معظم الأحداث بكلمة ON ، بما يعني ، " في الوقت الذي يتم هذا " لأن معظمها ، إن لم يكن كلها ، لها علاقة مع الوقت ، حيث يطلق الكائن الحدث في وقت حدوث شيء ما ، و عندما يتم تشغيل هذا الحدث - إذا لزم الأمر ، فإنه يجمع الرسالة اللازمة ليتم نقلها للمكان المناسب.

 

وبعض الأحداث تبدأ بكلمة Before أي أنه لا بد من فعل شيء ما قبل تطبيق الإجراء فعلياً .

 

وبعضها الآخر يبدأ بكلمة After عندها يجب فعل شيء ما بعد تطبيق الإجراء فعلياً.

 

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

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

 

وللحديث بقية ....

قام بنشر

 كيفية تعامل نظام التشغيل مع الحدث

 

عندما يتم تنفيذ الإجراء على كائن ما ، يجب أن يقوم الكائن بإرسال رسالة إلى نظام التشغيل operating system (OS) ، يشعره ويعلمه بما حدث ، وعلى نظام التشغيل هنا أن يقرر ما يجب عليه القيام به ، سواء للرد على الرسالة أو إرسال الرسالة إلى كائن آخر.

 

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

 

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

 

وللتطبيق وفي وضع عرض التصميم للنموذج أو التقرير وعن طريق اختيار [Event Procedure]  المقابلة لوصف الحدث ثم الضغط على النقاط الثلاث ، يمكنك الوصول لمحرر Visual Basic  حيث تتمكن هناك من صياغة التعليمة البرمجية المطلوبة ، ومثالها ، في النموذج وخلف حدث عند النقر لزر الأمر BfUP

Private Sub BfUP_Click()
    Dim stDocName As String
    stDocName = "frmRefFUP"
    DoCmd.OpenForm stDocName, acNormal
End Sub

وينتج عن تطبيق التعليمة البرمجية فتح النموذج  frmRefFUP

 

وهو الحدث الأكثر شيوعا ويطلق عند النقر فوق كائن ،  ويسمى هذا الحدث On Click .

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

ويطلق حدث عادي آخر عند الضغط المزدوج على عنصر التحكم ، وهو On Dbl Click

 

وللحديث بقية ....

 

 

 

 

 

قام بنشر

متى ينطلق الحدث ؟

 

لنستطيع أن نتعامل مع الأحداث بطريقة سليمة ومؤثرة ، ومؤدية لغاياتها ، أصبح من الأهمية بمكان التعرف على مسألة دقيقة وهي ، متى ينطلق الحدث ؟

وللتوضيح وبعض التفصيل ، ننتقل بعجالة لإلقاء نظرة على تصنيفات الأحداث ومسمياتها وشروط وتوقيتات إطلاقها .

 

الأحداث ذات الصلة بالسجلات  Records

 

On Dirty

إذا كان السجل موجوداً بالفعل ، يمكن للمستخدم فتحه أو الوصول اليه ، انقر فوق أحد الحقول الخاصة به و إبدأ بالكتابة أو التحرير ، عندما يتم تغيير قيمة واحدة على الأقل في السجل ، يطلق النموذج الحدث On Dirty

 

Before Update

بعد أن يتم تغيير السجل وتقديمه إلى قاعدة البيانات ، فإن النموذج يطلق حدث Before Update

 

After Insert

عندما يتم إنشاء سجل جديد ، فإنه يجب تقديمه إلى قاعدة البيانات ، عندما يتم ذلك ، فإن النموذج يطلق حدث  After Insert

 

After Update

بعد أن تم تعديل سجل موجود ، يجب تقديم التغيير إلى قاعدة البيانات ،  في هذه الحالة ، فإن النموذج يطلق حدث  After Update

 

On Current

إذا كان الجدول يحتوي على أكثر من سجل واحد ، و بعد أن يفتح المستخدم النموذج المعني ، يمكن للمستخدم التنقل من سجل إلى آخر ، عندما ينتقل المستخدم من سجل إلى سجل ، فإن النموذج يطلق حدث  On Current

 

Before Del Confirm

لحذف السجل ، يمكن للمستخدم النقر على السجل ثم الضغط على مفتاح حذف ، هذا من شأنه أن يعرض رسالة تحذير ، وقبل أن تأتي هذه الرسالة ، فإن النموذج يطلق حدث  Before Del Confirm

 

After Del Confirm

استكمالاً لما سبق ، وبعد قيام المستخدم بالنقر فوق أحد الأزرار في مربع رسالة التحذير ، فإن النموذج يطلق حدث After Del Confirm

 

On Delete

استكمالاً لما سبق ، إذا قرر المستخدم الموافقة على حذف السجل ، وقبل أن يتم حذف السجل بالفعل ، فإن النموذج يطلق حدث

On Delete

 

 

وللحديث بقية ....

قام بنشر

رائع .........

تم تجهيز الدفاتر والأقلام وهارد ديسك جديد للبدء في التدوين والتطبيق ......  :rol: 

وفقك ربي لما يُحب ويرضى سبحانه وتعالى 

قام بنشر

 

Before Update

بعد أن يتم تغيير السجل وتقديمه إلى قاعدة البيانات ، فإن النموذج يطلق حدث Before Update

هل هنا يطلق النموذج الحدث بعد تقديم التغير الى قاعدة البيانات ؟

 

 

After Update

بعد أن تم تعديل سجل موجود ، يجب تقديم التغيير إلى قاعدة البيانات ،  في هذه الحالة ، فإن النموذج يطلق حدث  After Update

وهنا يطلق النموذج الحدث قبل تقديم التغير لقاعدة البيانات ؟

 

قام بنشر

حياك الله ابا عمر

نعم هكذا تتم الامر ، فدائماً ، هناك شروط و أحوال لتقديم التعديلات و التغييرات من النماذج لقواعد البيانات

 

و مبارك الهارد ديسك الجديد

 

....

قام بنشر

الأحداث ذات الصلة بالحقول  Fields

 

Before Insert

لأن Microsoft Access هو تطبيق لقواعد البيانات ، فإنه يوفر بعض الأحداث الخاصة بالسجلات وحقولها في النموذج أو التقرير .
لإنشاء سجل جديد ، يجب على المستخدم الانتقال إلى سجل فارغ في النموذج .
ويمكن للمستخدم النقر فوق عنصر التحكم مثل مربع نص والبدء في الكتابة .
عندما يحدث هذا ، فإن النموذج يطلق حدث Before Insert .

 

و للحديث بقية ....

قام بنشر

الأحداث ذات الصلة بعناصر التحكم  والنموذج  Controls & Forms

 

On Change

 

لاستخدام مربع نص أو مربع التحرير والسرد ، يمكن للمستخدم النقر على عنصر التحكم  والبدء في الكتابة.
إذا كان عنصر التحكم سبق وأن سجلت فيه بعض النصوص ، فيمكن للمستخدم تعديلها باستخدام مفتاح Space أو Backspace  أو Delete  أو أي مفتاح من مفاتيح الأحرف .

عندما يتم إدخال النص أو تحريره ، فإن عنصر التحكم يطلق حدث On Change

 

On Not In List

 

مربع التحرير والسرد هو عنصر التحكم الذي يحمل قائمة من العناصر.
لاستخدامه ، يمكن للمستخدم النقر على السهم في عنصر التحكم لعرض القائمة وتحديد عنصر منها.
بعض الإصدارات من مربع التحرير والسرد تتيح للمستخدم النقر فوق مربع نص والبدء في الكتابة.

ان عنصر التحكم سيحاول العثور على العنصر الذي يطابق ما كتبه أو حاول المستخدم كتابته

في بعض الأحيان ، وبعد الانتهاء من كتابة المستخدم ما يريد وضغطه على Enter أو Tab  لنقل التركيز ، قد لا يجد Microsoft Access  (محرك قاعدة البيانات)  عنصراً  في مصدر البيانات الخاص بمربع التحرير والسرد متطابقاً مع ما كتبه المستخدم ، وسيعرض رسالة خطأ ، في هذه الحالة ، فإن عنصر التحكم يطلق حدث  On Not In List

ويمكنك استخدام هذا الحدث لعرض رسالة ودية للمستخدم و اتخاذ الإجراءات المناسبة.

 

On Open

لاستخدام النموذج ، يجب على المستخدم فتحه ، إما من خلال متصفح الكائنات ( جداول ، نماذج ، ... ) أو من خلال كائن آخر ، عندما يتم فتح النموذج ، فإن النموذج يطلق حدث On Open

 

On Load

حال فتح النموذج ، يجب تشغل الذاكرة.، عند ذلك ، فإن النموذج يطلق حدث On Load

 

On Resize

لجعل نفسه معروفا لنظام التشغيل operating system والتطبيقات الأخرى applications  على نفس الحاسوب ( الجهاز)  ، يجب على النموذج رسم حدوده. عندما يتم ذلك ، فإن النموذج يطلق حدث On Resize

 

On Activate

بعد اتخاذ النموذج للحجم الذي يحتاج إليه ، وجب على نظام التشغيل تنشيطه.

إن كان فتح النموذج يتم بوصفه الكائن الأول ، يحصل على موقعه في واجهة  Microsoft Access

أما إذا تم بالفعل فتح النموذج وكان هناك نماذج  أخرى و/ أو تقارير و / أو جداول ،

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

عندما يتم ذلك ، يجب على نظام التشغيل تميز  شريط العنوان الخاص بالنموذج  بلون مشرق ( دلالة على التنشيط ) ، وفي كلتا الحالتين أعلاه ، وعندما يتم جلب النموذج لمقدمة النوافذ الأخرى ، فإن النموذج يطلق حدث On Activate

 

On Deactivate

حال تحميل النموذج يصبح نموذجاً نشطاً ، يمكن للمستخدم استخدامه

بعد استخدام النموذج يمكن للمستخدم إغلاقه ( يمكن للمستخدم إما استخدام زر إغلاق النظام أو توفير وسائل أخرى لإغلاق النموذج ) .

حال حدوث ذلك ، يجب على النموذج فقدان التركيز

إذا كان النموذج هو الكائن الوحيد المفتوح في  Microsoft Access، يتم إفراغ واجهة التطبيق

إذا كان هناك كائنات أخرى ، فسيتم إغلاق النموذج وسيصبح أي كائن آخر هو الكائن النشط ، عندما يتم ذلك ، فإن النموذج يطلق حدث On Deactivate

 

On Unload

عندما يتم إغلاق النموذج ، يصبح لزاماً إزالته من الذاكرة للإفراج عن الموارد التي كان يستخدمها حتى يتاح استخدام تلك الموارد من قبل التطبيقات الأخرى
وخلال تنفيذ ذلك ، فإن النموذج يطلق حدث On Unload

 

On Close

و حال تمت عملية إزالة النموذج من الذاكرة ، فإن النموذج يطلق حدث

 

وللحديث بقية ....

 

......

  • 4 weeks later...
قام بنشر

الأحداث ذات الصلة بالتركيز  Focus

 

On Got Focus

بعض عناصر التحكم يجب النقر عليها قبل استخدامها
كما يمكن للمستخدم أيضا الضغط على علامة التبويب Tab  بلوحة المفاتيح عدة مرات لنقل التركيز الى عنصر تحكم معين.
في كلتا الحالتين ، عندما يتلقى عنصر التحكم التركيز ، فإنه يطلق حدث  On Got Focus

 

On Enter

عناصر التحكم التي تستند إلى نص هي عناصر التحكم التي يمكن للمستخدم النقر عليها لكتابة نص.
عناصر التحكم هذه هي مربع النص ومربع التحرير والسرد.
عند النقر على مثل هذه العناصر ، سواء كانت تحتوي بالفعل على نص أم لا ، فانها تطلق حدث  On Enter

 

فائدة :

الحدث On Got Focus و الحدث On Enter يشيران الى أن عنصر تحكم تلقى التركيز

 

On Lost Focus

بعد استخدام عنصر التحكم ، يمكن للمستخدم الضغط على علامة التبويب Tab   في هذه الحالة ، فإن التركيز ينتقل من الكائن الحالي إلى عنصر التحكم التالي في تسلسل التبويب.
عنصر التحكم الذي يفقد التركيز يطلق حدث On Lost Focus  .

 

On Exit

استمراراً لنفس المراحل في On Lost Focus  ، إذا كان عنصر التحكم يستند إلى نص ، فإنه يطلق حدث On Exit .

  • 2 weeks later...
قام بنشر

أحداث ذات صلة بالماوس Mouse

 

On Mouse Move

الماوس ولوحة المفاتيح هي أكثر الكائنات المستخدمة بانتظام

وفي الواقع فإن بعض التطبيقات يمكن استخدامها تماما مع الماوس فقط.

وهذا يجعل هذا الكائن ذو أهمية خاصة في Microsoft Access ، الماوس مسؤول عن ما لا يقل عن ثلاثة أحداث

فإذا كان المستخدم يؤشر بالماوس على عنصر تحكم ولكن لم يقم بالنقر ، فإن عنصر التحكم يطلق حدث On Mouse Move

و تذكر أن هذا الحدث يطلق عند تمرير الماوس فوق أحد الكائنات، أكان المستخدم يتعامل مع الكائن أم لا.

 

On Mouse Down

عندما يؤشر المستخدم بالماوس على كائن ويضغط على (زر الماوس)، الكائن يطلق On Mouse Down

و لجعل الإجراءات فعالاً ، فرسالة هذا الحدث تحمل المضامين التالية من المعلومات:

• الزر  Button : تحديد الزر الذي تم نقره

• التحول Shift : تحديد ما إذا كان المستخدم كان يُحمل مفاتيح خاصة (Ctrl, Alt, or Shift) عندما تم الضغط على زر الماوس

X: حد بيان احداثيات موقع مؤشر الماوس فيما يتعلق بالمقطع ، والذي يمكن أن يكون رأس النموذج ، أو رأس التقرير ، أو مقطع التفاصيل ، تذييل التقرير ، تذييل النموذج ، أو أي كائن يمكنه الاحتفاظ بعنصر تحكم

Y: حد بيان احداثيات موقع مؤشر الماوس عامودياً من الحد العلوي للنموذج ولغاية الموقع الحالي حيث حط الماوس

 

On Mouse Up

إذا كان المستخدم قد ضغط على زر الماوس، عندما يحرر زر ( الماوس ) فإن عنصر التحكم يطلق حدث On Mouse Up

رسالة هذا الحدث تحمل نفس أنواع المعلومات مثل حدث 

On Mouse Down

قام بنشر

أحداث ذات صلة بلوحة المفاتيح Keyboard

 

هناك طرق مختلفة يستخدم فيها المستخدم لوحة المفاتيح ، فعلى سبيل المثال ، يمكن للمستخدم الضغط على مفتاح في عنصر تحكم  ، وتتفاعل الاحداث بذلك

 

On Key Down

يمكن للمستخدم الضغط على Tab لنقل التركيز من عنصر تحكم إلى آخر ، و يمكن للمستخدم أيضا النقر فوق عنصر تحكم يستند إلى نص والبدء في الكتابة ، وفي كلتا الحالتين عندما يضغط المستخدم على المفتاح ، فان عنصر التحكم الذي لديه التركيز يطلق حدث On Key Down

رسالة هذا الحدث تحمل عنصرين من المعلومات:

  • رمز المفتاح KeyCode : الرقم الذي يمثل القيمة الأساسية (ASCII) للمفتاح الذي تم الضغط عليه
  • التحول Shift : تحديد ما إذا كان المستخدم كان يُحمل أي مفاتيح خاصة (Ctrl, Alt, or Shift) عندما تم الضغط على المفتاح الفعلي

 

On Key Up

بعد الضغط على المفتاح ، وعندما يقوم المستخدم بتحرير المفتاح ،  فإن عنصر التحكم يطلق حدث On Key Up

رسالة هذا الحدث تحمل نفس أنواع المعلومات كما في حدث On Key Down

 

On Key Press

عندما يضغط المستخدم على مفتاح واحد ، وإذا كنت مهتما فقط بهذا المفتاح الذي تم الضغط عليه وليس بمجموعة من المفاتيح ، يتم إطلاق واستخدام الحدث On Key Press

رسالة هذا الحدث تحمل  عنصراً واحداً من المعلومات ، و هو رمز ASCII للمفتاح.

قام بنشر

أحداث ذات صلة بمتصفح الإنترنت  Web Browser

متصفح الإنترنت لديه العديد من الأحداث الملائمة لوظائفه

 

On Before Navigate

نعرف مسبقا أننا يمكن ان نرسل مسار ملف أو URL لمتصفح الإنترنت.

عندما يتم ارسال مسار ملف أو URL إلى متصفح الإنترنت ، وقبل أن يقوم بمعالجته ، فإن عنصر التحكم يطلق حدث On Before Navigate

 

On Document Complete

إذا لم يكن هناك مشكلة في هذا الحدث، يظهر عنصر التحكم الملف أو صفحة الإنترنت.

عندما ينتهي عنصر التحكم من عرض الوثيقة ، فإن متصفح الإنترنت يطلق الحدث On Document Complete

 

On Progress Change

إذا كان هناك تغير على الوثيقة ، فإن عنصر التحكم يطلق حدث On Progress Change

 

On Navigation Error

عندما يتلقى متصفح الإنترنت مسار ملف أو  URL، فإنه يبذل محاولة لإظهار الملف أو صفحة الإنترنت.

إذا واجه مشكلة ، فإن متصفح الإنترنت يطلق حدث On Navigation Error

 

On Updated

في أي وقت، وإذا كنت تسمح بذلك، يمكن للمستخدم تغيير المستند الذي يعرضه عنصر التحكم

وعندما يتوجب عرض المستند الجديد ، فإن عنصر التحكم يطلق حدث On Updated

قام بنشر

ترتيب الاحداث

 

الإجراء الواحد ، مثل الانتقال من عنصر تحكم في كائن إلى عنصر تحكم آخر ، يستطيع إطلاق عدة أحداث مختلفة ، والتي تحدث في تسلسل معين .

معرفة متى تحدث الأحداث وبأي ترتيب تحدث أمر مهم ، لأنه يمكن أن يؤثر على " كيف ؟ " و " متى  ؟ " يتم تشغيل وحدات الماكرو أو إجراءات الأحداث.

 

ملاحظة : يعرض برنامج Microsoft Office Access أسم الحدث بشكل مختلف قليلا في محرر Visual Basic مما هو عليه في صفحة الخصائص ومنشئ الماكرو .

على سبيل المثال ، حدث On Got Focus  في صفحة الخصائص للنموذج وفي منشئ الماكرو يسمى GotFocus في محرر Visual Basic.

 

وفي الأمثلة القادمة ( بإذن الله ) هنا نستخدم فيها تنسيق أسماء الحدث في المستخدمى في

Visual Basic for Applications VBA

 

قام بنشر

أمثلة تطبيقية

 

ترتيب الأحداث لعناصر التحكم في النماذج

 

نقل التركيز إلى عنصر تحكم

عند نقل التركيز إلى عنصر تحكم في نموذج ، أوعن طريق فتح نموذج يحتوي على واحد أو أكثر من عناصر التحكم النشطة ، أو عن طريق نقل التركيز إلى عنصر تحكم آخر في نفس النموذج ، فإن أحداث Enter و GotFocus ، تحدث بالترتيب التالي :

Enter >  GotFocus

عند فتح النموذج ، الأحداث Enter و GotFocus تحدث بعد الأحداث المتوافقة مع فتح النموذج (مثل فتح ، وتنشيط ، والحالي -- Open, Activate, and Current) ، على النحو التالي :

Open (form) >  Activate (form) >  Current (form) >  Enter (control) >  GotFocus (control)

عندما يفقد عنصر تحكم في نموذج التركيز ، أو عن طريق إغلاق نموذج يحتوي على واحد أو أكثر من عناصر التحكم النشطة ، أو عن طريق نقل التركيز إلى عنصر تحكم آخر في نفس النموذج ، فإن أحداث Exit و LostFocus  ، تحدث بالترتيب التالي :

Exit > LostFocus

عند إغلاق النموذج ، الأحداث Exit و LostFocus تحدث قبل الأحداث المتوافقة مع إغلاق النموذج (مثل إلغاء، تنشيط، وإغلاق -- Unload, Deactivate, and Close)، على النحو التالي:

Exit (control)  > LostFocus (control) >  Unload (form) >  Deactivate (form) >  Close (form)
  • 4 years later...
قام بنشر

احتاج الى حدث في نموذج فرعي يحسب معادلة بنموذج رئيسي يعني مثال على ذالك 

لفاتورة مبيعات مثلا يتم ادراج الاصناف في نموذج فرعي ويتم  حساب الاجمال في نموذج رئيسي بدالة Dsum فاحتاج الى حدث عند ادراج الاصناف في النموذج الفرعي لتشغيل الدالة في النموذج الرئيسي لحساب اجماليات السجلات الخاصة بالفاتورة بشكل تلقائي بدون ازرار

مع الشكر الجزيل للمنتدى الرائع واعضائه الكرام

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • اضف...

Important Information