الاثنين، 31 مارس 2014

برنامج مطعم

هذا برنامج مخصص في ادارة الطاعم حيث يوفرلمدير المطعم تاصيل بكل ا يباع في مطعمه عن بعداو قرب بشكل تقارير ويمكن صاحب الكاضير من معرفة حالات الطاولات والمتوفرة والمشغولة ومن يجلس على كل طاولة وما يوجد من طعام عليها وجزء المطعم حيث يستلم المطعم قائمة بالدلبيات ويغير حالة الطلبية عن معالجتها ليمكن صاحب المطعم من معرففة كل طلبية واين وصلت معالجتها هل تم تسليمها او لاتزال لم تنجز . وكذالكالبيع يكون بشكل سهل وصو لكل اكلة وانواعها وتفرعاتها وكل الطلبيات تدخل مو موضف الطلبيات حيث عند انتهاء الزبون من الطعام فقط يذهب الى المدير ليعرف ماذا اكل وما حسابه برمجيا
1.حجز طاولات
2. خدمة توصيل طلبيات الزبائن
3. حجز مبياشر للطاولات ومعرفة ماموجود على طاولة الشخص
4.البيع بالدين لللعملاء والتسديد








قائمة المطعم تعرض على اجهزة اي باد تابلت موجودة على الطاولات  فيه قائمة الاكلات الموجودة في المطعم والاسعار يمكن للشخص ان يختار مايشتهي ليأكل

مزيد من التفاصيل :

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


ويعرض لك سعر المادة كما في الشكل


السبت، 29 مارس 2014

نظام التوفير البريدي

هو  نظام متخصص في ادارة عمليات التوفير البريدي في العراق عملت به ضمن عملي في الشركة المتعاقدة مع الوزارة يعمل هذا النظام على شاشات POS  اي لا يحتاج الى كيبورد في العمل معه





الأربعاء، 19 فبراير 2014

Virtual Keyboard

ماهو  Virtual Keyboard؟
هي عبارة عن كيبورد لكن يستخدم مع الأجهزة الملس الحديثة ولا تكاد يخلو منه اي جهاز يعمل على اللمس كما نعلم في اجهزة المحمول عند الضغط على اي مربع نص يضهر هذا الكيبورد لنكتب في النص في داخله وهذا ماسنعمله في هذه المقالة .




اذن يوجد هذا الكيبورد في الاجهزة المحمولة لكن للأسف مايكروسوفت لم توفره كأداة جاهزة في البرمجة ونحن نعلم الأن حتى شاشات الحواسيب وصلت للمس والكاشيرات وغيرها كلها تستخدم شاشات لمس اذا لا بد من تطوير كيبورة برمجي
اي ماسنعمله في هذا المقالة هو تطوير اداة  شبيه Textbox لكن عند الضغط عليها يخرج لنا كيبورد نكتب من خلاله
الأدة انا مبرمجها وجاهزة فقط ساشرح لك كيف تستخدمها وهي توجد على شكل كود تستطيع تطويره بلشكل الذي تريد


خطوات الأستخدام
1.    نذهب الى Toolbox  وفي اي تبويب  وليكن General نضغط بزر الماوس الأيمن ونختار Choose item


 
1.    نختار ملف DLL  من مكان تواجده وهو موجود مع مشروع Vkeyboard في مجلد Bin\Debug

 
1.    بعد اخيار الملف نضيفه الى القائمة

 
.سيظهر هذه الأداة في صندوق الأدوات Toolbox تحت اسم textboxVK


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




مثال : سحب ثلاثة textboxVK وعمل برنامج بسيط



الأن عند  التنفيذ والضغط على اي  مربع  نص   سيظهر هذا الكيبور د نستطيع كتابه مانريد في مربع النص



حمل من هنا


الثلاثاء، 4 فبراير 2014

نظام RFID



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





شرح كامل للمشروع


الثلاثاء، 14 يناير 2014

وضع serial number لكل منتجات المنتجة من قبل شركة معينة



هناك طرق عديدة لحماية منتجات الشركة لكن افضها للشركة واكثرها امان هي وضع web service على خادم  الشركة   يتصل بقاعدة بيانات فيها serial number يدخلها موضفي الشركة  تاريخ انتهاء   كل رمز المنتج  وعدد الحواسيب الممكن ان تعمل على هذه النظام بشكل التالي


.يكون التفعيل بشكل التالي




جدول الرموز :يحتوي هذا الجدول على الرمز وتاريخ انتهائه واسم المنتج وعدد مستخدمي كل منتج المحددين من خلال هذا الجدول يتم معرفة فعالية الرمز المدخل من قبل المستخدمين ولاي منتج تابع كون الشركة قد تنتج اكثر من منتج
عدد المستخدمين
رمز المنتج
تاريخ الانتهاء
الرمز جزء 4
الرمز جزء 3
الرمز جزء2
الرمز جء 1
عنوان الرمز

2. جدول الأجهزة : من خلال هذا الجدول نحدد عدد الاجهزة الممكنة لكل رمز سري مدخل من قبل المستخدم يحتوي هذا الجدول على معلومات عن الاجهزة Mac الخاص بجهاز المتصل على المنتج
عنوان الحاسبة Mac
عنوان الرمز

3. هنا جدول فيه منتجات شركة RIts اسم كل منتج ورمزه
رمز المنتج
اسم المنتج

من  جهة المنتج :عند التشغيل المنتج لأول مرة  يطلب رمز التسجيل فعندما يدخل المستخدم رمز المنتج سيتصل  المنتج بلخدمة Web service  ويتأكد من الرمز  اذا كان الرمز صحيح يسجل الحاسبة في جدول الاجهزة ويعطيه فترة العمل للمنتج التي سيعمل على اساسها وعندما ينتهي التاريخ يتوقف المنتج عن العمل
في نفس الوقت يكون لشركة   عرض تقارير بلمنتجات ومستخدميها
في هذا الحالة لن يكون هناك امكانية للتلاعب بالمنتجات وسرقة رموز تفعيل من اشخاص وتشغيل المنتج حيث هنا مثلا احد المنتجات حددنا رمز معين له مستخدم واحد حتى ان اراد شخص اخر استخدام الرمز لا يعمل لديه لان هذا الرمز مسجل عند الشركة بأسم شخص اخر . ونفس الوقت ان اراد المستخدم ارجاع تاريخ الحاسبة سيكون هناك خلل في عمل المشروع لان اغلب المشاريع المصممة تعتمد على التاريخ الحالي مثل نضام التوفير البريدي عند ارجاع التاريخ سيكون هناك تضارب بلمعلومات


  

المقالة تكملة

الجمعة، 10 يناير 2014

لا تستخدم My.MySettings لخزن امور هامة والسبب ؟

نستخدم  كلاس  My.MySettings في اي مشروع لخزن متغيرات معينة  بانواع مختلفة بشكل دائم في الحاسبة  .
مثل حفظ قيمة   قرائة من منفذ معين
لكن يجب ان لانستخدمها في خزن الامور الهامة مثل كلمات المرور او عبارة الاتصال بقاعجة البيانات Connection String لان اي شخص ممكن ان يصل لمحتوها وهي من اسمها واضح My.MySettings يعني يخزن فيه فقط امور ضبط النظام

مثال :
لنخزن في My.MySettings متغير اسمها DrawerPort ونخزن فيه اسم  منفذ معين وليكن COM1 ونحول المشروع الى  مشروع تنفيذي



لمعرفة محتوى هذا المتغير  DrawerPort نذهب الى مجلد Bin الخاص بالمشروع ونرى ملف اسمه  بنفس اسم مشروعنا لكن ينتهي ب .exe  نوعه  config نفتح الملف ونرى متغير   DrawerPort  هوا وقيمته



لذالك لاتستخدمه في خزن اي امر هام لان الجميع ممكن ان يصلون اليه

السبت، 14 ديسمبر 2013

التخاطب بين الخوادم وطريقة توفير بيئات ملائمة للمشاريع



قاعدة بيانات  على خادم ومستخدمين موزعين على الشبكة :
نستخدم مثل هذه الحالة دائما في حال اردنا ان نكون تطبيق سطح مكتب (windows application)  لمستخدمين موزعين على شبكة يشتركون بقاعدة بيانات واحدة .بمعنى في شركة ما لدينا موضفين موزعين على مستوى العالم او بلد او على شبكة محلية واحدة يشتركون بقاعدة بيانات واحدة أي تحديث لأي موضف على قاعدة البيانات يظهر عن البقية فمثلا لدينا موضف اجازات فيوسط البلد يدخل كل اجازات الموضفين وموضف اخر في شرق البلد يحتاج ان يعرف اجازة أي موضف .فنحل هذه المسئلة بوضع قاعدة بيانات المستخدمين على خادم وكل المستخدمين  يتصلون بقاعدة البيانات هذه عن طريق Connection String الخاصة بها  .قاعدة البيانات هنا قد تكون  SqL server , oracle ونفعل بها خاصية الوصول عن بعد .

لماذا نستخدم تطبيق سطح مكتب  وقاعدة بيانات موزعة لماذا لانستخدم  تطبيق ويب  WEB application ؟
السبب هو بعض الشركات  او المؤسسات لا تريد ان يكون تطبيقاها بشكل ويب  كل شخص يستطيع الوصول اليه عن طريق متصفح الانترنت تريد فقط من لديه تطبيق الشركة  يستطيع الوصول الى بياناتها
والسبب الثاني الأهم هم في الشبكات المحلية لا يفضل استخدام تطبيقات الويب في التطبيقات الموزعة لان تتسبب تأخر في نقل البيانات بين الخادم والمستخدم تخيل تطبيق وندوز Windows ينقل عبر الشبكة فقط البيانات Data المضافة او المحدثة بينه وبين  قاعدة البيانات لان التطبيق عند المستخدم والقاعدة البيانات عند الخادم . اما في تطبيقات الويب التطبيق وقاعدة البيانات عند الخادم ففي كل طلب للخادم من قيل المستخدم  Request يرسل الخادم صفحة بشكل HTML  ويحدث عليها المستخدم ويعيد ارسال الصفحة الى الخادم لان كما نعلم لغة التخاطب بيننا وبين الخوادم هي HTML



قاعدة بيانات  وتطبيق ويب على خادم وخادم احتياطي  ومستخدمين موزعين على الشبكة :
نستخدم مثل هذه الحالة دائما في حال اردنا ان تكون لنا دائمة نسخة احتياطية من البيانات التي على الخادم بشكل دائم وتلقائي يعني أي مستخدم يحدث على الخادم ينتقل نسخة من تحديثة على الخادم الأحتياطي تلقائيا بدون أي كود فيحتوي الخادم الاحتياطي نسخة مطابقة لبيانات الخادم المستخدم ففي حالة أي عطل في الخادم ينقل المستخدمون  الذبن بعملون على الخادم الأساسي الى الخادم الاحتياطي ويجدون كل بياناتهم مطابقة ولا يوجد أي بيانات مفقودة  . تتم هذه العملية عن طريق  Sql server Agent من خلال اعدادات  الخوادم نجعل خادم النسخة الاحتياطية  Agent للخادم الأول ونعمل  Replication بين الخوادم .اذن العملية كلها مجرد ضبط اعدادات الخادمين من خلال  Sql server لكل خادم لاتوجد أي برمجة .




مخاطبة بين الخوادم :
نستخدم مثل هذه الحالة  في اردنا عمل مخاطة بين خادم واخر مثلا شركة ياهو Yahoo توفر خادم يخص الطقس  فليس الحاجة ان اردنا ان نكون مشروع يحتاج الى الطقس الحالي في حساباته ان نبرمج  وضع اجهزة حساب الطقس نستطيع استخدام الخادم الخاص بشركة ياهو   Yahoo  اذن هي مخاطبة بين خادمنا وخادم شركة ياهو Yahoo . وكذالك لو صممنا قاعدة بيانات تابعة لمؤسسة ما ومؤسسة اخرى ارادة وصول جزئي للبيانات الخاصة بألمؤسسة الأولى على سبيك المثال في المؤسسة الأول يدخلون معلومات مواطنين وموضفين في قاعدة بياناتهم والمؤسسة الثانية تحتاج فقط الى بيانات الموضفين المدخلة بشكل دائم اذن هنا ايضا مخاطبة بين خادمين .للعلم البيانات تنتقل بين الخوادم بشكل  XML لذالك يجب مراعاته الامر في برمجة  Class
 لحل هذه المشكلة نستخدم Web Service لعمل هذه الخاطبة ففي حالة الطقس شركة ياهو  Yahoo توفر هذه Web Service فقط نحن نستدعيها ونستخدمها وفي الحالة الثانية المؤسسة الأولى تستدعي Web Service وهذه Web Service تضيف في قاعدة البيانات المؤسسة الثانية . ممكن ان نضع Web Service على خادم رقم (2) او على خادم اخر .

استخدام  Web Service

نفتح مشروع جديد من نوع Web ونضيف له  Web service




بعد ان نفتح Web service  سوف يضهر لنا الشكل كما في الأسف للعلم Web service   هو  مشروع حاله حال أي مشروع نستطيع اضافة Class لها ودوال و أي امر نحتاجه .ففي صفحة Web service نستطيع ان نكون Web service من خلال كتابة Web Method ونكتب الخدمة Web service بشكل دالة Function ,Sub حسب ستخدامنا لها


هنا هوا ضاف Web service بأسم  HelloWord وتعيد رسالة نصية الان نقوم بأستدعاء هذه Web service

الان لأستخدام هذه الخدمة Web service في أي مشروع من داخل المشروع نختار Add ومنه نختار Refrence Add Web
ومن  Address نختار عنوان الخادم واسم صفحة الخدمة على الخادم كما في الشكل ستضهر لنا كل الخدمات الموجودة ضمن هذه Web service . ونعطي اسم للخدمة داخل المشروع Web refrence name وبعده نختار Add Refrence ستضاف الخدمة الى المشروع

هذه شكل الخدمة بعد اضافتها للمشروع
نستدعي الدالة HellWord في الخدمة بشكل التالي سوف يعرض لنا رسالة ترحيبة الموجودة في الخدمة

Dim serviceNew As New localhost.WebService1
        MsgBox(serviceNew.HelloWorld())



لكي  نقوم برفع web service على خادم ,نقوم بالتالي نشتري عنوان عام    Public  IP  وليكن (169.254.243.53) بحاسبتنا ونفتح IIS Manager ونختار Add web  ونضيف مشروع Web service اليه بالشكل التالي . نختار  مكان خزن المشروع الخاص بنا ونحدد له منفذ خاص به وليكن (80) ونختار العنوان العام Public  IP الخاص به ونعمل اضافة




اي عنوان الخدمة على الانترنت بشكل التالي (169.254.243.53:80)
الان لكي نضيف هذه web service  الى اي مشروع خاص  بنا نختار Add web refrence و   فقط التغير في URL نكتبه بشكل التالي
URL:  http:\169.254.243.53:80\webservice1.asmx