06-07-22, 03:48 AM
السلام عليكم ورحمة الله وبركاته ..
ملاحظة : (أرجو عدم إضافة ردود في الموضوع وفي حالة إضافة رد يرجى حذفه) لنبقى في تسلسل حتى ننتهي من بذرة البرنامج ويصبح جاهز لتقوم بتطويره لما يناسب توجهاتك وتضيف عليه ما تراه مناسباً لك..
(وأعتذر عن أي أخطاء أملائية سأقع بها نتيجة السرعة واغتنام الوقت الذي سيتاح لي كي أقوم على تنفيذ هذا البرنامج معكم وسيكون من الصعب مراجعة كل الكتابات لأعود وأصحح)
=====
هذه بداية لصناعة برنامج محاسبي من الصفر ..
قد يأخذ وقت أطول من المتوقع (بسبب الشغل) ولكن بإذن الله سأحاول أن أكمله كلما سنحت لي الفرصة ووجدت وقت لذلك..
===
أهم شيء في برنامج الحسابات هو قاعدة البيانات ..
فكلما كانت أكثر اتقانا وشمولاً كلما أصبح بالامكان تطوير البرنامج وقتما تشاء وبدون الحاجة للرجوع للخلف لتعدل كل شي في البرنامج كلما خطر على بالك شيء جديد.
فقبل تصميم أي جدول في قاعدة البيانات يجب أن نعرف ماذا سيحوي هذا الجدول من الحقول ولماذا ؟؟ وماذا سنستفيد من كل حقل في النوافذ المشروع.
===
باللامكان أن نصنع قاعدة بيانات جاهزة ونموذجية بآكسس .. ونستخدمها في برنامجنا ..
وبالامكان أن نصنع هذه القاعدة من خلال الكود من داخل برنامجنا (سأعتمد هنا على DAO3.6 في أغلب عملي على المشروع وقد أضطر لـ ADO للتقارير الطباعة إن أضررت أو وصلنا لها لاحقاً وبقي في العمر بقية) ..
===
أي برنامج محاسبي يولي أهمية كبرى للجداول الاتي ستخزن فيها البيانات وهي تقريباً :
- جدول دليل الحسابات : وهو يحتوي على وصف للحسابات : مسمياتها ورقمها وتنصيفها وأين تقفل.. (ملاحظة : ليس فيه حقل لتخزين رصيد كل حساب لماذا ؟؟ سنعرف لاحقاً)
- جدول دليل المواد : وهو يحتوي على تفاصيل المواد (مسمياتها رقمها، مسمى الوحدة، .... سعر الوحدة، تكلفتها، هل يوجد ضريبة مضافة على الوحدة (كم نسبة الضريبة) .. إلخ ،،
- جدول معلومات بأسماء الزبائن -- كذلك الموردين ..
- جدول معلومات بالحسابات المصرفية (أن أردت التفصيل-- أو تتركها بدون تفصيل في البرنامج (لسريتها) كما تحب).
- جدول لمبيعات المواد(يفصل فيه المواد التي تم بيعها ضكمن قيد المبيعات والذي سيسجل في دفتر اليومية).
- جدول لقيود اليومية.
- جدول لمردودات المبيعات للمواد()
- جدول للمشتريات للمواد ()
- جدول لمردودات المشتريات للمواد()
- بإمكاننا دمج الجداول الأربعة(السابقة) في جدول وحيد ونضيف عليه عمود يفصل نوع العملية (وهو الأفضل- فربما تصدر عملياات أخرى مستقبلاً فلا نحتاج لعمل جدول جديد بل نضيف اسم العملية في العمود وتبقى باقي التفاصيل كما هي) والفلترة تكون بحسب نوع العملية (فربما نسجلها كـ إعدام مواد تالفة - مسروقة-منتهية الصلاحية-)
- جدول لصلاحيات المستخدمين (سنتركها لاخر خطوة - فلا فائدة منها لبرنامج بدائي - بل تجد ميزتها عندما يتكامل البرنامج - وعندها تحدد صلاحيات فوق كل زر أو نافذة تسمح فيها الدخول عليها أو لا - أو تسمح فقط بالقراءة - أو الكتابة).
-- جداول متنوعة سنتعرف عليها في حينها ..
==
لن يتم الربط بين الجداول بأي علاقات -- فالربط يكون برمجياً في نص البرنامج والنوافذ هي من ستقوم بعرض الرابيط بينها وليس كل من دخل لقاعدة البيانات يستطيع معرفة كل الجداول المرتبطة من جدول واحد.
===
سنتعتمد في برنامجنا التبسيط لأبعد حدود ..
بحيث أننا تقريباً لن نسمح لمستخدم البرنامج أن يخطأ في تنفيذ أي عملية.. يكفينا أن يكون يعرف ويقرأ حتى يستخدم البرنامج وليس محاسباً مختصاً.
سنجعل البرنامج استطالة وتمددا لحواسنا وقدراتها الذهنية والغيبية (لأننا في النهاية إن سنحت لنا الفرصة سنضيف جداول للمراقبة نعرف من عدل على القيود ومتى عدل وكيف كانت القيود قبل وبعد التعديل(لنستنتج هل عدل بغرض التمويه والسرقة أم عدل للتصحيح (مع أنه من الخطأ أن نسمح بتعديل قيد محاسبي (فالتعديل الصحيح يكون بقيد عكسي) ولكن سنسمح هنا كخطوة في التعليم كـ خطوة برمجية بالتعديل من صلاحيات المدراء وليس للمحاسبين (سنفترض حسن النية وأن التعديل آني وفي لحظة الخطأ وليس بعد حين))..
سنجعل العنصر الاساسي بعد تكوبن قاعدة البيانات في البرنامج يعتمد على الماوس لأبعد حد ممكن (لتسريع أي عملية قد يحتاجها المرء) طبعاً سنضيف عليها خصائص البحث بالأحرف والكلمات لتسريع العثور على النتائج المطلوبة --
===
بعد الانتهاء من قاعدة البيانات (برمجياً) سنبدأ بتصميم نوافذ المشروع نافذة نافذة ..
ولكن عملنا على تصميم الجداول يكون مع كل نافذة سنصمم لها ما يناسبها من جداول ..
===
الملفات التي سيتم ارفاقها قد نقوم بحذفها لاحقاً .. لنضيف مكانها نسخة أحدث منها ..
لأننا سنعتمد على صناعة البرنامج بشكل مفهرس (يعني اصدار 0.01 ومع كل تعديل في نهاية الاعمال اليومية نجعل الاصدار 0.02 وهكذا لنميز عملنا ونحفظ نسخة عن السابق إّذا أردنا الرجوع لها لاحقاً ) فما عدلناه لاحقاً - لن يضيع مستقبلاً لأنه سيبقى لدينا النسخة الأقدم منه محفوظة كـ خطوة من خطوات التنفيذ.
===
ملاحظة : (أرجو عدم إضافة ردود في الموضوع وفي حالة إضافة رد يرجى حذفه) لنبقى في تسلسل حتى ننتهي من بذرة البرنامج ويصبح جاهز لتقوم بتطويره لما يناسب توجهاتك وتضيف عليه ما تراه مناسباً لك..
(وأعتذر عن أي أخطاء أملائية سأقع بها نتيجة السرعة واغتنام الوقت الذي سيتاح لي كي أقوم على تنفيذ هذا البرنامج معكم وسيكون من الصعب مراجعة كل الكتابات لأعود وأصحح)
=====
هذه بداية لصناعة برنامج محاسبي من الصفر ..
قد يأخذ وقت أطول من المتوقع (بسبب الشغل) ولكن بإذن الله سأحاول أن أكمله كلما سنحت لي الفرصة ووجدت وقت لذلك..
===
أهم شيء في برنامج الحسابات هو قاعدة البيانات ..
فكلما كانت أكثر اتقانا وشمولاً كلما أصبح بالامكان تطوير البرنامج وقتما تشاء وبدون الحاجة للرجوع للخلف لتعدل كل شي في البرنامج كلما خطر على بالك شيء جديد.
فقبل تصميم أي جدول في قاعدة البيانات يجب أن نعرف ماذا سيحوي هذا الجدول من الحقول ولماذا ؟؟ وماذا سنستفيد من كل حقل في النوافذ المشروع.
===
باللامكان أن نصنع قاعدة بيانات جاهزة ونموذجية بآكسس .. ونستخدمها في برنامجنا ..
وبالامكان أن نصنع هذه القاعدة من خلال الكود من داخل برنامجنا (سأعتمد هنا على DAO3.6 في أغلب عملي على المشروع وقد أضطر لـ ADO للتقارير الطباعة إن أضررت أو وصلنا لها لاحقاً وبقي في العمر بقية) ..
===
أي برنامج محاسبي يولي أهمية كبرى للجداول الاتي ستخزن فيها البيانات وهي تقريباً :
- جدول دليل الحسابات : وهو يحتوي على وصف للحسابات : مسمياتها ورقمها وتنصيفها وأين تقفل.. (ملاحظة : ليس فيه حقل لتخزين رصيد كل حساب لماذا ؟؟ سنعرف لاحقاً)
- جدول دليل المواد : وهو يحتوي على تفاصيل المواد (مسمياتها رقمها، مسمى الوحدة، .... سعر الوحدة، تكلفتها، هل يوجد ضريبة مضافة على الوحدة (كم نسبة الضريبة) .. إلخ ،،
- جدول معلومات بأسماء الزبائن -- كذلك الموردين ..
- جدول معلومات بالحسابات المصرفية (أن أردت التفصيل-- أو تتركها بدون تفصيل في البرنامج (لسريتها) كما تحب).
- جدول لمبيعات المواد(يفصل فيه المواد التي تم بيعها ضكمن قيد المبيعات والذي سيسجل في دفتر اليومية).
- جدول لقيود اليومية.
- جدول لمردودات المبيعات للمواد()
- جدول للمشتريات للمواد ()
- جدول لمردودات المشتريات للمواد()
- بإمكاننا دمج الجداول الأربعة(السابقة) في جدول وحيد ونضيف عليه عمود يفصل نوع العملية (وهو الأفضل- فربما تصدر عملياات أخرى مستقبلاً فلا نحتاج لعمل جدول جديد بل نضيف اسم العملية في العمود وتبقى باقي التفاصيل كما هي) والفلترة تكون بحسب نوع العملية (فربما نسجلها كـ إعدام مواد تالفة - مسروقة-منتهية الصلاحية-)
- جدول لصلاحيات المستخدمين (سنتركها لاخر خطوة - فلا فائدة منها لبرنامج بدائي - بل تجد ميزتها عندما يتكامل البرنامج - وعندها تحدد صلاحيات فوق كل زر أو نافذة تسمح فيها الدخول عليها أو لا - أو تسمح فقط بالقراءة - أو الكتابة).
-- جداول متنوعة سنتعرف عليها في حينها ..
==
لن يتم الربط بين الجداول بأي علاقات -- فالربط يكون برمجياً في نص البرنامج والنوافذ هي من ستقوم بعرض الرابيط بينها وليس كل من دخل لقاعدة البيانات يستطيع معرفة كل الجداول المرتبطة من جدول واحد.
===
سنتعتمد في برنامجنا التبسيط لأبعد حدود ..
بحيث أننا تقريباً لن نسمح لمستخدم البرنامج أن يخطأ في تنفيذ أي عملية.. يكفينا أن يكون يعرف ويقرأ حتى يستخدم البرنامج وليس محاسباً مختصاً.
سنجعل البرنامج استطالة وتمددا لحواسنا وقدراتها الذهنية والغيبية (لأننا في النهاية إن سنحت لنا الفرصة سنضيف جداول للمراقبة نعرف من عدل على القيود ومتى عدل وكيف كانت القيود قبل وبعد التعديل(لنستنتج هل عدل بغرض التمويه والسرقة أم عدل للتصحيح (مع أنه من الخطأ أن نسمح بتعديل قيد محاسبي (فالتعديل الصحيح يكون بقيد عكسي) ولكن سنسمح هنا كخطوة في التعليم كـ خطوة برمجية بالتعديل من صلاحيات المدراء وليس للمحاسبين (سنفترض حسن النية وأن التعديل آني وفي لحظة الخطأ وليس بعد حين))..
سنجعل العنصر الاساسي بعد تكوبن قاعدة البيانات في البرنامج يعتمد على الماوس لأبعد حد ممكن (لتسريع أي عملية قد يحتاجها المرء) طبعاً سنضيف عليها خصائص البحث بالأحرف والكلمات لتسريع العثور على النتائج المطلوبة --
===
بعد الانتهاء من قاعدة البيانات (برمجياً) سنبدأ بتصميم نوافذ المشروع نافذة نافذة ..
ولكن عملنا على تصميم الجداول يكون مع كل نافذة سنصمم لها ما يناسبها من جداول ..
===
الملفات التي سيتم ارفاقها قد نقوم بحذفها لاحقاً .. لنضيف مكانها نسخة أحدث منها ..
لأننا سنعتمد على صناعة البرنامج بشكل مفهرس (يعني اصدار 0.01 ومع كل تعديل في نهاية الاعمال اليومية نجعل الاصدار 0.02 وهكذا لنميز عملنا ونحفظ نسخة عن السابق إّذا أردنا الرجوع لها لاحقاً ) فما عدلناه لاحقاً - لن يضيع مستقبلاً لأنه سيبقى لدينا النسخة الأقدم منه محفوظة كـ خطوة من خطوات التنفيذ.
===
قال صلى الله عليه وسلم:
«كلمتان خفيفتان على اللسان
ثقيلتان في الميزان،حبيبتان إلى الرحمن:
سبحان الله وبحمده، سبحان الله العظيم».