delphi4arab منتديات دلفي للعرب

نسخة كاملة : تعلم معي خطوة خطوة صنع برنامج لتسيير المخزون و التسويق
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2 3 4 5 6 7 8 9 10 11 12 13 14
السلام عليكم ورحمة الله وبركاته

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

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

وفي الختام تقبلوا فائق التقدير والإحترام
تحياتي...!
O. M. Fares
أجل أخي الكريم ، نحن لا يهمنا سوى التعلم و التعليم و نشره ، و إفادة غيرنا ، لكن و مع ذكر المصدر لابأس بل و بالتوفيق ، فقط أنبه بالتأني ، لعل الإخوة أصحاب الخبرة تكون لهم تداخلات قيمة و مفيدة للموضوع . فيكون نقلك أكثر فائدة.

بالتوفيق
جزاكم الله عنا كل خير
إنه فعلا لعمل رائع ويستحق المتابعة والتدقيق
اخي
عندما حاولت تنفيذه
اشار الى ان الكلمة FPostion الموجودة في هذا السطر
كود :
DbGrid1.Height:=sScrollBar1.FPosition;
غير مصرح بها
ما المشكل في هذا

كود :
DbGrid1.Height:=sScrollBar1.FPosition;
نكتب
كود :
DbGrid1.Height:=sScrollBar1.Position;
الخطأ هو زيادة حرف F
يجب ان يحذف
أجل هو كذلك، الخلل بإضافة حرف F ، الخاصية هي Position و ليس FPosition .

بالتوفيق.
شكرا جزيلا أخي شرح جميل و كامل
لكن وجدت مشكل في table7
مرة لا يوجد date لقد قمت بتغييره بـ date_vente لكن لاجدوى و مرة index table7 لايوجد
هل ممكن إعادة البرنامج مع كامل المرفقات كي يتسنى لي فهمه بالإضافة الى انني مبتدأ و يجب ان اتعلم
السلام عليكم

عفوا لوصولي متأخر

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

كود :
procedure TFsplash.Timer1Timer(Sender: TObject);
begin
sGauge1.progress:=sGauge1.progress+1;
if sGauge1.progress=100 then begin
FGSM.Show;
[color=Red]Fsplash.hide;[/color]
timer1.Enabled:=false
end ;
end;

لان عند ظهور الفورم الثاني و عند عمل reduire ( _ ) الفورم لا يذهب الى الاسفل و انما الى اقصى يسار
النافذة
لانه لا يعتبر الفورم الرئيسي

حاولت جعله الفورم الرئيسي

بواسطة

كود :
application.MainForm

لكن لم افلح

لذلك قمت بانشاءه

كود :
Pbar.Position:=PBar.Position+1;
  if Pbar.Position = 100 then
begin
  Timer1.Enabled:=false;
  Form5.Destroy;
  Application.CreateForm(TForm1,Form1);
  Form1.Show;
end;

و نجح الامر لكن اعتقد يوجد طرق اخرى ....بدل من استعمل

كود :
Application.CreateForm(TForm1,Form1);


سلامي
كل ماأعمل رن للبرنامج يظهرلى رسالة
[Fatal Error] Usplash.pas(8): File not found: 'sCustomLabel.dcu'
@ma_7odaa
يجب تثبيت المكونات اللازمة لتشغيل البرنامج.
يبدو أنه يستخدم نسخة دلفي أخرى.
...
المهم سأعلق على الموضوع
أولا آسف على التأخير الشديد عن المشاركة من البداية لأنشغالي بأمور أخرى...

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

لأن تصميم البرامج الأعمال التجارية عموما وبرامج التسيير التجاري خصوصا من أعقد أنواع البرامج، لا تكاد تجد برنامج متكامل يتأقلم مع كل أنواع التعاملات التجارية ويلبي احتياجات جميع المحلات/الشركات التجارية.

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

إقتباس :ـ لدينــا مخزن للسلع ، و عليه فنحن بحاجة لإنشاء جدول خاص لذلك ، يتكون من :
صحيح وخطأ!
صحيح، نحن بحاجة إلى جدول لتخزين الأصناف (السلع/المنتجات... أيا كان)، لكن ليس لأجل أن لدينا مخزون للسلع...
عملية تصميم نموذج قاعدة بيانات تتطلب تفاصيل أعمق ولا تأتي من استنتاج بديهي

باختصار... للاستزادة ينظر: الأسس العلمية لتصميم نماذج قواعد البيانات العلائقية.
طبعا، الأخ نبيل (جزاه الله خيرا) لا يمكنه تفصيل كل شيء في هذا الموضوع لذلك فهو يختصر.

إقتباس :رمز أو كود الممون الذي نشتري منه السلع / الاسم التجاري للممون ...
في هذه الحالة سيخزن الاسم التجاري للممون في جدول السلع من جهة، وفي جدول الممولين من جهة أخرى...
=> إزدواجية في التخزين => خطأ في تصميم النموذج
=> الحل: الاكتفاء بإضافة رمز (أو كود) الممون وجلب اسمه التجاري من مصدره بحقل Lookup

نفس الملاحظة هنا أيضا:
رقم الفاتورة / رمز الزبون / الاسم التجاري للزبون / تاريخ الفاتورة .
نفس الملاحظة في جدول تفاصيل فاتورة البيع وجدول تفاصيل فاتورة الشراء...

أيضا لا أدري ما وظيفة هذه الحقول في جدول تفاصيل الشراء:
- الحد الأدنى للكمية
- الحد الأدنى لسعر البيع
وإذا كان المقصود ما ورد في جدول الأصناف (المواد) فهذه ازدواجية أيضا تجب إزالتها.
ملحوظة صغيرة بخصوص تسمية المتغيرات/الأنماط والمكونات، إذ يحسن تسميتها بشكل نمطي (لاحقة +اسم المكون) يجعل من السهل التعرف على دورها أو البحث عنها كما يجعل المصادر أكثر مقروئية.
مثال: مكون TDataSource المخصص لربط الجدول المبيعات Vente يسمى dsVente، ومكون الحذف (Supprimer) نسميه مثلا btSupprimer وقس على ذلك باقي المكونات...

ليتعرف مكون الـ Skin يستحسن أن نجعله يبحث عن المسار بشكل أكثر ديناميكية. شيء مثل هذا:
عند إنشاء أول نموذج OnCreate نضيف:
PHP كود :
//تحديد المسار الحالي
  
sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + '\Skins';
//تحديد المظهر
  
sSkinManager1.SkinName := 'MacOS2';
//تفعيل المكون
  
sSkinManager1.Active := True

بخصوص مكونات AlphaControls Free Edition هي نسخة مجانية غير مفتوحة المصدر (ملفات dcu فقط)، يمكن الحصول عليها من الموقع الرسمي:
كود :
http://www.alphaskins.com/dwnld.php

-----

@S.FATEH
الخلل في طريقة عرض شاشة الاستقبال، رغم ذلك يمكن إصلاح الخلل باقتناص حدث WM_SYSCOMMAND وإجبار النموذج على Minimize فور استقباله قيمة SC_MINIMIZE. شيء مثل:

PHP كود :
private
    
procedure WMMinimize(var MsgTWMSysCommand); message WM_SYSCOMMAND;
...

procedure TFGSM.WMMinimize(var MsgTWMSysCommand);
begin
  
if msg.CmdType SC_MINIMIZE then
    Application
.Minimize
  
else
    
DefaultHandler(Msg);
end

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

بالتوفيق أخي نبيل.
الصفحات : 1 2 3 4 5 6 7 8 9 10 11 12 13 14