المشاركات : 15
المواضيع 7
:
: 0
الإنتساب : Jan 2011
السلام عليكم
لدي مشروع متابعة توقيع العمال
tpointage(id_point,id_empl,id_motif,diftime,entree_sortie,heur_point_entr,heur_point_sort,date_point,on)
employe(id_empl,nom_empl,pren_empl,dat_naiss,id_fonc,etat_empl,sex,on,life (
عندما اضغط على زر من الازرار و اختار عاملا ما ففي حالة دخوله الى العمل سيسجل date_entr و heur_entr و عندما يخرج من العمل سيسجل date_sort و heur_sort
فعند حساب الفارق الزمني لهدا العامل سيكون يحساب الفرق , لكن مشكلتي عندما يقوم بالدخول و الخروج لعدة مرات اي عند قيام العامل بالتوقيع عدة مرات في اليوم , فكيف احسب مجموع الفروق .
المشاركات : 2,293
المواضيع 157
:
: 81
الإنتساب : Dec 2008
29-02-2012, 10:41 PM
(آخر تعديل لهذه المشاركة: 01-03-2012, 11:48 PM بواسطة kachwahed.)
وعليكم السلام ورحمة الله وبركاته
لا أخي لا تطرح سؤال في مثل هذه الحالات
بل أرفق في مشروع جديد به الإشكال الذي حصل
استخدم أحد قواعد بيانات أمثلة دلفي DBDemos
بالتوفيق.
اللهم احقن دماء المسلمين، لا تنسوهم بالدعاء...
المشاركات : 15
المواضيع 7
:
: 0
الإنتساب : Jan 2011
المشاركات : 2,293
المواضيع 157
:
: 81
الإنتساب : Dec 2008
إقتباس :عندما يقوم بالدخول و الخروج لعدة مرات
أولا: هل تصميمك لقاعدة البيانات يسمح لك بالحصول على هذه المعلومة؟
بعبارة أخرى: هل تسجل كل عملية دخول وخروج؟ وكيف أنشأت الجداول؟
اللهم احقن دماء المسلمين، لا تنسوهم بالدعاء...
المشاركات : 15
المواضيع 7
:
: 0
الإنتساب : Jan 2011
02-03-2012, 06:00 PM
(آخر تعديل لهذه المشاركة: 02-03-2012, 11:29 PM بواسطة kachwahed.)
عند الصغط مثلا علر زر button1 و الذي يمثل الدخول Entree
كود :
procedure Tfentreesortie.Button1Click(Sender: TObject);
begin
dmpointage.Query1.Active:=false;
dmpointage.Query2.Active:=false;
dmpointage.Query1.Active:=true;
dmpointage.Query2.Active:=true;
dmpointage.tpointage.Active:=false;
dmpointage.tpointage.Active:=true;
dmpointage.tamploye.Active:=false;
dmpointage.tamploye.Active:=true;
fpointage.DBLookupComboBox1.DataField:='Id_empl' ;
fpointage.DBLookupComboBox1.DataSource:=dmpointage.dspointage;
fpointage.DBLookupComboBox1.KeyField:='Id_empl';
fpointage.DBLookupComboBox1.ListField:='id_empl;Nom_empl;Pren_empl;id_fonction';
fpointage.DBLookupComboBox1.ListSource:=dmpointage.DataSource1 ;
fpointage.Button5.Tag:=1;
fpointage.DBLookupComboBox1.Tag:=1;
fpointage.DBGrid1.Color:=clTeal;
fentreesortie.Color:=clTeal;
fpointage.Color:=clTeal;
fpointage.Show;
dmpointage.tpointage.Last ;
end;
و تظهر الواجهة fpointage
عند الصغط مثلا علر زر button2 و الذي يمثل االخروج Sortie
كود :
dmpointage.Query1.Active:=false;
dmpointage.Query2.Active:=false;
dmpointage.Query1.Active:=true;
dmpointage.Query2.Active:=true;
dmpointage.tpointage.Active:=false;
dmpointage.tpointage.Active:=true;
dmpointage.tamploye.Active:=false;
dmpointage.tamploye.Active:=true;
fpointage.DBLookupComboBox1.DataField:='Id_empl' ;
fpointage.DBLookupComboBox1.DataSource:=dmpointage.dspointage;
fpointage.DBLookupComboBox1.KeyField:='Id_empl';
fpointage.DBLookupComboBox1.ListField:='id_empl;Nom_empl;Pren_empl;id_fonction';
fpointage.DBLookupComboBox1.ListSource:=dmpointage.DataSource2 ;
fpointage.Button5.Tag:=2;
fpointage.DBLookupComboBox1.Tag:=2;
fpointage.DBGrid1.Color:=clFuchsia;
fentreesortie.Color:=clFuchsia;
fpointage.Color:=clFuchsia;
fpointage.Show;
dmpointage.tpointage.Last ;
end;
و تظهر الواجهة fpointage أيضا
فعند الضغط علر الزر button1 من fpointage :
كود :
procedure Tfpointage.Button1Click(Sender: TObject);
begin
dmpointage.tpointage.Append ;
DBLookupComboBox1.ReadOnly:=false;
dmpointage.Query1.Active:=false;
dmpointage.Query2.Active:=false;
dmpointage.Query1.Active:=true;
dmpointage.Query2.Active:=true;
Button1.Enabled:=false ;
dmpointage.tentree.Active:=false;
dmpointage.tentree.Active:=true;
end;
و للتأكيد و الإغلاق أقوم بالضغط على الزر button5
كود :
procedure Tfpointage.Button5Click(Sender: TObject);
var i:Integer;
begin
TryStrToInt(fpointage.DBEdit1.Text,i);
if Button5.Tag = 1 then
begin
dmpointage.tpointage.Edit;
dmpointage.tpointage.FieldByName('Entree_Sortie').Value:='Entree';
dmpointage.tpointage.Post;
dmpointage.query3.ParamByName('param9').AsString := 'prese';
dmpointage.query3.ParamByName('param10').AsInteger:=StrToInt(DBLookupComboBox1.Text);
dmpointage.query3.ExecSQL;
dmpointage.tamploye.Active:=false;
dmpointage.tamploye.Active:=true;
dmpointage.tentree.Append;
dmpointage.tentree.Active:=false;
dmpointage.tentree.Active:=true;
DBEdit1.DataField:= DBEdit6.DataField ;
close;
end;
close;
if Button5.Tag=2 then
begin
dmpointage.tpointage.Edit;
dmpointage.tpointage.FieldByName('Entree_Sortie').Value:='Sortie';
dmpointage.tpointage.Post;
dmpointage.query3.ParamByName('param9').AsString := 'off';
dmpointage.query3.ParamByName('param10').AsInteger:=StrToInt(DBLookupComboBox1.Text);
dmpointage.query3.ExecSQL;
dmpointage.tamploye.Active:=false;
dmpointage.tamploye.Active:=true;
close ;
end;
close;
end;