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

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

بداية يجب توضيح ان الافضل في اي مجال هو وجهة نظر يعني ما هو الافضل من وجهة نظري قد لا يناسب مبرمج اخر

وهنا انا اقدم الافضل من وجهة نظري

بداية توجد اكثر من طريقة لتبادل البيانات بين كل الفروع وتجميع بيانات كل الفروع في قاعدة بيانات واحدة

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

وفي هذه الطريقة يتم اضافة حقل اسم الفرع او كود الفرع الى جميع الجداول وعند الرفع يتم ارسال اسم او كود الفرع

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

وان شاء الله لو توفر لدي وقت اشرح الطريقة مصورة ولكن اعتقد الفكرة بسيطة وسهلة التنفيذ

الأربعاء، 8 يناير 2020

سيكوال سيرفر تحديد عرض قواعد البيانات المسموح بها للمستخدم SQL Server

سيكوال سيرفر تحديد عرض قواعد البيانات المسموح بها للمستخدم SQL Server



الكود


USE MASTER;
GO
DENY VIEW ANY DATABASE TO EE;

USE MASTER;
GO
ALTER AUTHORIZATION ON DATABASE :: TestDB TO EE;

الأحد، 5 يناير 2020

ترقيم الصفوف في رأس الصف في شكبة البيانات DataGridView

ترقيم الصفوف في رأس الصف في شكبة البيانات DataGridView

كما في الصورة



الكود

For i As Integer = 0 To DataGridView1.Rows.Count - 1
            DataGridView1.Rows(i).HeaderCell.Value = (i + 1).ToString
        Next

الخميس، 2 يناير 2020

كود عرض جميع الدول المسجلة في نظام الويندوز

في هذا الموضوع نتعرف سويا ان شاء الله على كيفية عرض قائمة تحتوي على جميع اسماء اللغات والدول المسجلة في نظام تشغيلك

كما في الصورة


الكود المستخدم بلغة VB.net
نضع على الفورم أداة List Box 

الكود :


ListBox1.Items.Clear()
        Dim MyCountry As System.Globalization.CultureInfo
        For Each MyCountry In My.Application.UICulture.GetCultures(Globalization.CultureTypes.AllCultures)
            ListBox1.Items.Add(MyCountry.EnglishName)
        Next

الاثنين، 10 يونيو 2019

خدمة اعملي شرح




السلام عليكم




للاستفسار والاشتراك في خدمة (اعملي شرح) اترك ايميلك في تعليق وسيتم التواصل معك




ما هي خدمة اعملي شرح ؟




عندك برنامج ومحتاج تعمل له تسويق يبرز مميزاته ؟



بتتعب من شرح برنامجك للعملاء والاسئلة المتكررة وكل شوية سؤال في نفس الاشياء ؟ 



عاوز تعمل شرح مميز لبرنامجك يغنيك من تعب الشرح وتوصيل كيفية تشغيل البرنامج وشرح مميزاته ؟ 




عاوز تعمل ملف مساعدة يتم تركيبه على برنامجك ويساعد العملاء في فهم كيفية التشغيل ؟ 




اشترك الان في خدمة (اعملي شرح) وساقوم ان شاء الله بعمل سلسلة شروحات فيديو لكل نقطة في البرنامج وعمل ملف مساعدة لتركيبه على برنامجك 




للاستفسار والاشتراك في خدمة (اعملي شرح) اترك ايميلك في تعليق وسيتم التواصل معك

السبت، 9 مارس 2019

انشاء تقرير متعدد الاعمدة Report Viewer

السلام عليكم 
كنت في السابق عملت درس في Crystal Report لكيفية عمل اعمدة للتقرير
رابط الدرس

https://www.youtube.com/watch?v=39Gx4OVfFww&index=15&list=PLdI8JH1ubsUBFPiJOJN5lNRZLRG6ElmTd&t=3s

وجائني سؤال عن كيفية عمل ذلك مع Report Viewer

اقدم لكم الاجابة في الصورة التالية

اضغط على الصورة للتكبير




الثلاثاء، 5 مارس 2019

كيف يحدد المبرمج (المبتدئ) سعر برنامجه

السلام عليكم

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

يطلب منهم العميل البرنامج ويحدد المطلوب عمله ولكن يقف المبرمج عند نقطة تحديد السعر ولا يعرف كيف يحدد سعر برنامجه فيرسل لي او لغيري التفاصيل المطلوبة ويسألني عن السعر المناسب

بالتاكيد فإن عملية تحديد سعر للبرنامج المطلوب تحتاج خبرة ومعرفة بالسوق الموجه له البرنامج

وهذا لن يأتي الا بالخبرة وبعد فترة من العمل ومن الاحتكاك مع العملاء

وفي الغالب يتم تحديد السعر كالتالي:
أولا : يحدد المبرمج سعر لساعة عمله.
ثانيا : يحدد بالتقريب عدد الساعات المطلوبة لانجاز هذا العمل.

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

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

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

ولاجابة السؤال توجد طريقة سهلة جدا ومجربة :

ببساطة تبحث في جوجل عن شركات البرمجة الموجودة في البلد الموجود فيها العميل ثم تتصل بهم بصفتك عميل تبحث عن برنامج وتخبرهم بالمطلوب وتطلب تحديد سعر مبدئ للبرنامج 

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

هذا الجزء الاول من المقال وان شاء الله في الجزء الثاني سيتم الكلام عن الفروق في الاسعار بين المبرمجين وعلى اي اساس يتم تحديد شريحة اسعارك 

الخميس، 21 فبراير 2019

الفرق بين int.Parse() و int.TryParse() بلغة C#

من اسئلة الانترفيو للمتقدين لشغل وظيفة مبرمج C# 

ما هو الفرق بين int.Parse() و int.TryParse()

الاجابة :

كلا التعبيرين يستخدمان في تحويل النصوص الى ارقام (طبعا لو ان النص بالكامل مكون من ارقام) ،
ولكن لان بعض خصائص ادوات البرنامج تعطي نصوص حتى لو ان كل النص ارقام مثل خاصية Text في اداة TextBox ،
وبما ان لغة C# لا تفوم بالتحويل التلقائي بين انواع البيانات كلغة VB.net ، فكان من الواجب تحويل القيمة المرسلة من الخاصية الى رقم ليتم استخدامه كرقم.

اذا ما الفرق بين التعبيرين:
الفرق ان التعبير الاول int.Parse() يقوم بالتحويل مباشرة بدون التأكد ان النص المرسل بالكامل ارقام ، وفي حالة ارسال نص مكون من ارقام واحرف او علامات فيعطي البرنامج خطا تشغيل.

اما التعبير الثاني int.TryParse() يتم التحقق من ان النص المرسل بالكامل ارقام ، ويمكنك ارسال رسالة للمستخدم في حالة وجود نص ليس رقم بالكامل.

امثلة 
النص 123 في حالة تحويله
اولا: بالتعبير الاول int.Parse() يتم التحويل كالتالي:
int.Parse("123")
فسيتم ارسال النص بدون مشاكل لان كل النص عبارة عن ارقام
اما لو اردنا عمل تحويل للنص 123abc فلو كتبنا التالي:
int.Parse("123abc ")
فسيعطينا البرنامج خطأ لعدم التمكن من تحويل النص بالكامل الى ارقام

اذن كيف نستخدم التعبير الثاني int.TryParse() للتحقق من النص
نعرف متغير نصي ومتغير رقمي اولا :
string str = "123abc"
int MyVal = 0;

ثم نقوم بعمل متغير bool ونكتب الجملة التالية بحيث لو النص بالكامل ارقام يعطي true اما لو لم يكن ارقام بالكامل يعطي false:

bool MyTest = int.TryParse(str, out MyVal );

لاحظ ان كلمة out ثابتة ولو ان النص بالكامل ارقام سيتم اعطاء القيمة الرقمة في المتغير MyVal  ويمكنك استخدامه في باقي الكود كالتالي:
if(MyTest == true){
        int MyResult = MyVal *2;
}
ويمكن ارسال رسالة للمستخدم في حالة وجود حروف او نصوص غير رقمية في النص في جملة else
if(MyTest == true){
        int MyResult = MyVal *2;
}else{
        MessageBox.Show("النص المدخل غير صالح");
}


الأحد، 29 يوليو 2018