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

برمجة وبرامج


أهلا وسهلا بك زائرنا الكريم, أنت لم تقم بتسجيل الدخول بعد! يشرفنا أن تقوم بالدخول أو التسجيل إذا رغبت بالمشاركة في المنتدى

برنامج متابعة العمال

2 مشترك

اذهب الى الأسفل  رسالة [صفحة 1 من اصل 1]

1برنامج متابعة العمال Empty برنامج متابعة العمال السبت فبراير 21, 2015 3:07 pm

Couade

Couade

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

البرنامج مكتوب بلغة الدلفي Delphi XE7 تحت نظام windows8:
مبدأ البرنامج :
يحتوي البرنامج على إطار رئيسي به لوحة التحكم لتحرير البيانات والانتقال بين الإطارات ، وضعنا عناصر تسيير قاعدة البيانات من نوع TClientDataSet لتخزين الجداول ، بدانا بجدول لتخزين العمال سميناه
الكود:
CDSEMPLOYE
ثم جدول لتخزين الوظائف :
الكود:
CDSFonctions
وجدول لتخزين معلومات المؤسسة الموظفة :
الكود:
CDSEtabl


تفاصيل الكود:


  • في هذا البرنامج استعملنا العناصر التالية



الكود:
 Panel1: TPanel;
  Panel2: TPanel;
  AppBar: TPanel;


 - في القسم private أضفنا الكود التالي :

الكود:
private
 { Déclarations privées }
procedure AppBarResize;
procedure AppBarShow(mode: Integer);

-العنصر AppBar يستعمل كلوحة التحكم ويحتوي على عناصر التحكم.
- العنصر Panel2 يحتوي عناصر TDBEdit لإدخال البيانات


- الكود التالي يستعمل لجعل لوحة التحكم تأخذ نفس عرض الإطار الرئيسي :

الكود:
procedure TForm2.AppBarResize;
begin
   AppBar.SetBounds(0, AppBar.Parent.Height - AppBarHeight, AppBar.Parent.Width,
   AppBarHeight);
end;

- أما الكود التالي فيستعمل لإظهار أو إخفاء لوحة التحكم:
الكود:
procedure TForm2.AppBarShow(mode: Integer);
begin
   if mode = -1 then // Basculer
   mode := Integer(not AppBar.Visible);
 if mode = 0 then
   AppBar.Visible := False
 else
 begin
   AppBar.Visible := True;
   AppBar.BringToFront;
 end;
end;

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

الكود:
procedure TForm2.FormMouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
   if Button = mbRight then
   AppBarShow(-1)
 else
   AppBarShow(0);
end;
استعملنا عنصر TclientDataSet سميناه CDSEmploye وأضفنا  الحقول التالية :
الكود:
FieldDefs = <
      item
        Name = 'idempl'
        Attributes = [faReadonly]
        DataType = ftAutoInc
      end
      item
        Name = 'nomempl'
        DataType = ftString
        Size = 100
      end
      item
        Name = 'prenomempl'
        DataType = ftString
        Size = 100
      end
      item
        Name = 'dateNaiss'
        DataType = ftDate
      end
      item
        Name = 'adresseempl'
        DataType = ftString
        Size = 200
      end
      item
        Name = 'telempl'
        DataType = ftString
        Size = 20
-استعملنا الستايل : Metropolis UI Green الخاص بويندوز 8 لإعطاء أنتعاشه للمظهر ، وستكون إضافات أخرى إن شاء الله .
- وهذه صورة للبرنامج :برنامج متابعة العمال 2nw2628
- تحميل التطبيق exe
- تحميل الكود الأصلي



عدل سابقا من قبل Couade في الخميس يونيو 09, 2016 2:00 pm عدل 4 مرات

2برنامج متابعة العمال Empty رد: برنامج متابعة العمال الأحد فبراير 22, 2015 10:50 am

Foxtromike

Foxtromike

للبحث عن عامل من بين العمال يمكن أن نستعمل عنصر TMaskEdit
ونكتب الكود التالي في الحدث : Onchange لهذا العنصر
الكود:
Procedure Tform2.Maskedit1Change(Sender :Tobject) ;
var filtre :string;
Begin
Filtre:='NomEmpl like '+quotedstr('%'+Maskedit1.text+'%') + 'Or PrenomEmpl Like '+ Quotedstr('%'+Maskedit1.text+'%');
CDSEMPLoye.Filter:=Filtre;
End;

لا تنسى تغيير خاصية Filtred =True ; للعنصر CDSEMPLoye



عدل سابقا من قبل Foxtromike في الإثنين فبراير 23, 2015 9:35 am عدل 1 مرات

https://ta3bir.exprimetoi.net

3برنامج متابعة العمال Empty رد: برنامج متابعة العمال الأحد فبراير 22, 2015 9:45 pm

Couade

Couade

أضفنا ثلاث إطارات خاصة بالعمال والوظائف والمؤسسة
-كل إطار مخصص لمعالجة البيانات لجدول معين
أضفنا الأكواد التالية:
الكود:
procedure TForm2.FormShow(Sender: TObject);
 var nf:string;
Begin
  // Travailleurs
  nf := extractfilepath(paramstr(0)) + 'employ.slh';
  if fileexists(nf) then
    CDSEMPLOYE.LoadFromFile(nf);
  CDSEMPLOYE.Open;

  // Fonctions
  nf := extractfilepath(paramstr(0)) + 'Fonction.slh';
  if fileexists(nf) then
    CDSFonctions.LoadFromFile(nf);
  CDSFonctions.Open;
    // CDSEtabl
  nf := extractfilepath(paramstr(0)) + 'Etabl.slh';
  if fileexists(nf) then
    CDSEtabl.LoadFromFile(nf);
  CDSEtabl.Open;

end;
وهي أكواد خاصة بفتح البيانات المخزنة في ملفات خارجية

4برنامج متابعة العمال Empty رد: برنامج متابعة العمال الأحد فبراير 22, 2015 9:48 pm

Couade

Couade

أما كيفية حفظ البيانات في الملفات الخارجية فإننا استعملنا أكواد مشابهة للكود التالي :
الكود:
procedure Ttrvfrm.FormClose(Sender: TObject; var Action: TCloseAction);
  var nf:string;
begin
     // Travailleurs
  nf := extractfilepath(paramstr(0)) + 'employ.slh';
     Form2.CDSEMPLOYE.SaveToFile(nf);
  Action := cafree;
end;

5برنامج متابعة العمال Empty رد: برنامج متابعة العمال الأحد فبراير 22, 2015 9:49 pm

Couade

Couade

لتغيير لغة لوحة المفاتيح إلى اللغة العربية مباشرة عند البدأ في الكتابة استعملنا الكود التالي :
الكود:
procedure Ttrvfrm.DBEdit2Enter(Sender: TObject);
begin
  LoadKeyboardLayout('00000401', KLF_ACTIVATE);
  Application.BiDiKeyboard := '00000401';
end;

6برنامج متابعة العمال Empty رد: برنامج متابعة العمال الأحد فبراير 22, 2015 9:54 pm

Couade

Couade

للتنقل تلقائيا من عنصر إلى آخر عند الضرب على مفتاح الإدخال Enter استعملنا الكود التالي :
الكود:
procedure Ttrvfrm.DBEdit1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    Key := #0;
    PostMessage(Handle, WM_NEXTDLGCTL, 0, 0);
  end
end;

7برنامج متابعة العمال Empty رد: برنامج متابعة العمال الأحد فبراير 22, 2015 9:59 pm

Couade

Couade

- جمعنا جميع الأوامر في عنصر TActionList
-أضفنا PopupMenu1 لعرض الأوامر السابقة.
استعملنا أكواد مشابهة للكود التالي :
الكود:
procedure TForm2.FonctionExecute(Sender: TObject);
begin
  Application.CreateForm(Tfnctfrm, fnctfrm);
end;

8برنامج متابعة العمال Empty رد: برنامج متابعة العمال الأربعاء فبراير 25, 2015 3:10 pm

Couade

Couade

يمكن ربط جميع الجداول السابقة (عمال ، مؤسسة ، وظيفة) ببعضها باستعمال جدول أخر يحتوي على مفاتيح خارجية (clé externes)  ثم نستعمل الأمر Filter

الرجوع الى أعلى الصفحة  رسالة [صفحة 1 من اصل 1]

صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى