![]() |
|
كيف احسب الفارق الزمني بمشروع متابعة توقيع العمال - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : كيف احسب الفارق الزمني بمشروع متابعة توقيع العمال (/showthread.php?tid=3932) |
كيف احسب الفارق الزمني بمشروع متابعة توقيع العمال - adel78 - 28-02-2012 السلام عليكم لدي مشروع متابعة توقيع العمال 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 فعند حساب الفارق الزمني لهدا العامل سيكون يحساب الفرق , لكن مشكلتي عندما يقوم بالدخول و الخروج لعدة مرات اي عند قيام العامل بالتوقيع عدة مرات في اليوم , فكيف احسب مجموع الفروق . كيف احسب الفارق الزمني بمشروع متابعة توقيع العمال - kachwahed - 29-02-2012 وعليكم السلام ورحمة الله وبركاته لا أخي لا تطرح سؤال في مثل هذه الحالات بل أرفق في مشروع جديد به الإشكال الذي حصل استخدم أحد قواعد بيانات أمثلة دلفي DBDemos بالتوفيق. كيف احسب الفارق الزمني بمشروع متابعة توقيع العمال - adel78 - 01-03-2012 لم افهم بعد كيف احسب الفارق الزمني بمشروع متابعة توقيع العمال - kachwahed - 01-03-2012 إقتباس :عندما يقوم بالدخول و الخروج لعدة مراتأولا: هل تصميمك لقاعدة البيانات يسمح لك بالحصول على هذه المعلومة؟ بعبارة أخرى: هل تسجل كل عملية دخول وخروج؟ وكيف أنشأت الجداول؟ كيف احسب الفارق الزمني بمشروع متابعة توقيع العمال - adel78 - 02-03-2012 عند الصغط مثلا علر زر 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;عند الصغط مثلا علر زر 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;فعند الضغط علر الزر 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;كود : 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; |