01-12-2012, 04:33 PM
شكرا أخي على الرد
لقد بحثت في المنتدى ووجدت أمثة كثيرة ومفيدة، ولكن لم أفهم كيف أسقطها على برنامجي.
هذا هو الكود:
لقد بحثت في المنتدى ووجدت أمثة كثيرة ومفيدة، ولكن لم أفهم كيف أسقطها على برنامجي.
هذا هو الكود:
كود :
procedure TF_MAJ_PESTAFF.Bt_MAJClick(Sender: TObject);
var
i:integer;
var_date:TDateTime;
y,m,d : word;
begin
Bt_MAJ.Enabled:=false;
Bt_Import.Enabled:=false;
DM.Q_Table_Import.Close;
DM.Q_Table_Import.SQL.Clear;
DM.Q_Table_Import.SQL.Add('select * from pe_staff');
DM.Q_Table_Import.SQL.Add('where quit_date is null');
DM.Q_Table_Import.Open;
DM.DS_Table_Import.DataSet:=DM.Q_Table_Import;
DM.Q_Table_Import.First;
i:=0;
ProgressBar1.Min:=0;
ProgressBar1.Max:=DM.Q_Table_Import.RecordCount;
while not DM.Q_Table_Import.Eof do
begin
// vérification de l'existance du matricule dans CPersonnel.dbf
DM.Q_MAJ_PESTAFF.Close;
DM.Q_MAJ_PESTAFF.SQL.Clear;
DM.Q_MAJ_PESTAFF.SQL.Add('select matricule from CPersonnel');
DM.Q_MAJ_PESTAFF.SQL.Add('where matricule=:matricule');
DM.Q_MAJ_PESTAFF.ParamByName('matricule').AsString:=DM.Q_Table_Import.FieldByName('matricule').AsString;
DM.Q_MAJ_PESTAFF.Open;
if not DM.Q_MAJ_PESTAFF.IsEmpty then
begin
DM.Q_MAJ_PESTAFF.Close;
DM.Q_MAJ_PESTAFF.SQL.Clear;
DM.Q_MAJ_PESTAFF.SQL.Add('update cpersonnel set niveau=:niveau,cat=:cat,ech=:ech,poste=:poste,code_fonc=:code_fonc,classe=:classe,n_compte=:n_compte,');
DM.Q_MAJ_PESTAFF.SQL.Add('direction=:direction,dept_unit=:dept_unit,serv_atel=:serv_atel,collectif=:collectif,soc_sec=:soc_sec,mutuelle=:mutuelle,');
DM.Q_MAJ_PESTAFF.SQL.Add('banque=:banque,s_famill=:s_famill,nbr_enf=:nbr_enf,date_ent=:date_ent,date_sor=:date_sor,nomarabe=:nomarabe,');
DM.Q_MAJ_PESTAFF.SQL.Add('adresse_1=:adresse_1,adr_com=:adr_com,adr_wil=:adr_wil');
DM.Q_MAJ_PESTAFF.SQL.Add('where matricule=:matricule');
DM.Q_MAJ_PESTAFF.ParamByName('niveau').AsString := DM.Q_Table_Import.fieldbyname('niveau').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('cat').AsString := DM.Q_Table_Import.fieldbyname('cat').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('direction').AsString := DM.Q_Table_Import.fieldbyname('direction').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('dept_unit').AsString := DM.Q_Table_Import.fieldbyname('dept_unit').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('serv_atel').AsString := DM.Q_Table_Import.fieldbyname('serv_atel').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('soc_sec').AsString := DM.Q_Table_Import.fieldbyname('soc_sec').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('mutuelle').AsString := DM.Q_Table_Import.fieldbyname('mutuelle').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('ech').AsString := DM.Q_Table_Import.fieldbyname('ech').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('poste').AsString := DM.Q_Table_Import.fieldbyname('poste').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('code_fonc').AsString := DM.Q_Table_Import.fieldbyname('fonction').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('classe').AsString := DM.Q_Table_Import.fieldbyname('classe').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('n_compte').AsString := DM.Q_Table_Import.fieldbyname('account_nb').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('banque').AsString := DM.Q_Table_Import.fieldbyname('bank_code').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('s_famill').AsString := DM.Q_Table_Import.fieldbyname('m_status').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('collectif').AsString := DM.Q_Table_Import.fieldbyname('collectif').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('nbr_enf').AsFloat := DM.Q_Table_Import.fieldbyname('p_charge').AsFloat;
DM.Q_MAJ_PESTAFF.ParamByName('adresse_1').AsString := DM.Q_Table_Import.fieldbyname('adress_1').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('adr_com').AsString := DM.Q_Table_Import.fieldbyname('adress_2').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('adr_wil').AsString := DM.Q_Table_Import.fieldbyname('adress_3').AsString;
var_date:= DM.Q_Table_Import.fieldbyname('entry_date').AsDateTime;
decodedate(var_date,y,m,d);
if not IsValidDate(y,m,d) then
begin
DM.Q_MAJ_PESTAFF.ParamByName('date_ent').AsString :='';
end
else
begin
DM.Q_MAJ_PESTAFF.ParamByName('date_ent').AsString := DM.Q_Table_Import.fieldbyname('entry_date').AsString;
end;
var_date:= DM.Q_Table_Import.fieldbyname('quit_date').AsDateTime;
decodedate(var_date,y,m,d);
if not IsValidDate(y,m,d) then
begin
DM.Q_MAJ_PESTAFF.ParamByName('date_sor').AsString :='';
end
else
begin
DM.Q_MAJ_PESTAFF.ParamByName('date_sor').AsString := DM.Q_Table_Import.fieldbyname('quit_date').AsString;
end;
DM.Q_MAJ_PESTAFF.ParamByName('nomarabe').AsString := DM.Q_Table_Import.fieldbyname('nomarabe').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('matricule').AsString := DM.Q_Table_Import.fieldbyname('matricule').AsString;
DM.Q_MAJ_PESTAFF.ExecSQL;
DM.Q_MAJ_PESTAFF.Close;
end
else
begin
// L'insertion du nouveau matricule
DM.Q_MAJ_PESTAFF.Close;
DM.Q_MAJ_PESTAFF.SQL.Clear;
DM.Q_MAJ_PESTAFF.SQL.Add('insert into CPersonnel(matricule,nom,prenom,sex,date_nais,com_nais,s_famill,');
DM.Q_MAJ_PESTAFF.SQL.Add('adresse_1,adr_com,adr_wil,banque,n_compte,soc_sec,mutuelle,code_fonc,niveau,cat,ech,');
DM.Q_MAJ_PESTAFF.SQL.Add('date_ent,date_sor,poste,direction,dept_unit,serv_atel,classe,nbr_enf,nomarabe,collectif)');
DM.Q_MAJ_PESTAFF.SQL.Add('values(:matricule,:nom_ss,:prenom_ss,:sex,:birth_date,:birth_plac,:m_status,');
DM.Q_MAJ_PESTAFF.SQL.Add(':adress_1,:adress_2,:adress_3,:bank_code,:account_nb,:soc_sec,:mutuelle,:fonction,:niveau,:cat,:ech,');
DM.Q_MAJ_PESTAFF.SQL.Add(':entry_date,:quit_date,:poste,:direction,:dept_unit,:serv_atel,:classe,:p_charge,:nomarabe,:collectif)');
DM.Q_MAJ_PESTAFF.ParamByName('matricule').AsString:=DM.Q_Table_Import.fieldbyname('matricule').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('niveau').AsString := DM.Q_Table_Import.fieldbyname('niveau').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('cat').AsString := DM.Q_Table_Import.fieldbyname('cat').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('direction').AsString := DM.Q_Table_Import.fieldbyname('direction').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('dept_unit').AsString := DM.Q_Table_Import.fieldbyname('dept_unit').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('serv_atel').AsString := DM.Q_Table_Import.fieldbyname('serv_atel').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('soc_sec').AsString := DM.Q_Table_Import.fieldbyname('soc_sec').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('mutuelle').AsString := DM.Q_Table_Import.fieldbyname('mutuelle').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('ech').AsString := DM.Q_Table_Import.fieldbyname('ech').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('poste').AsString := DM.Q_Table_Import.fieldbyname('poste').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('fonction').AsString := DM.Q_Table_Import.fieldbyname('fonction').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('classe').AsString := DM.Q_Table_Import.fieldbyname('classe').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('account_nb').AsString := DM.Q_Table_Import.fieldbyname('account_nb').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('bank_code').AsString := DM.Q_Table_Import.fieldbyname('bank_code').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('m_status').AsString := DM.Q_Table_Import.fieldbyname('m_status').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('collectif').AsString := DM.Q_Table_Import.fieldbyname('collectif').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('p_charge').AsFloat := DM.Q_Table_Import.fieldbyname('p_charge').AsFloat;
var_date:= DM.Q_Table_Import.fieldbyname('entry_date').AsDateTime;
decodedate(var_date,y,m,d);
if not IsValidDate(y,m,d) then
begin
DM.Q_MAJ_PESTAFF.ParamByName('entry_date').AsString :='';
end
else
begin
DM.Q_MAJ_PESTAFF.ParamByName('entry_date').AsString := DM.Q_Table_Import.fieldbyname('entry_date').AsString;
end;
var_date:= DM.Q_Table_Import.fieldbyname('quit_date').AsDateTime;
decodedate(var_date,y,m,d);
if not IsValidDate(y,m,d) then
begin
DM.Q_MAJ_PESTAFF.ParamByName('quit_date').AsString :='';
end
else
begin
DM.Q_MAJ_PESTAFF.ParamByName('quit_date').AsString := DM.Q_Table_Import.fieldbyname('quit_date').AsString;
end;
DM.Q_MAJ_PESTAFF.ParamByName('nomarabe').AsString := DM.Q_Table_Import.fieldbyname('nomarabe').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('nom_ss').AsString := DM.Q_Table_Import.fieldbyname('nom_ss').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('prenom_ss').AsString := DM.Q_Table_Import.fieldbyname('prenom_ss').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('sex').AsString := DM.Q_Table_Import.fieldbyname('sex').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('birth_date').AsString := DM.Q_Table_Import.fieldbyname('birth_date').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('birth_plac').AsString := DM.Q_Table_Import.fieldbyname('birth_plac').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('m_status').AsString := DM.Q_Table_Import.fieldbyname('m_status').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('adress_1').AsString := DM.Q_Table_Import.fieldbyname('adress_1').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('adress_2').AsString := DM.Q_Table_Import.fieldbyname('adress_2').AsString;
DM.Q_MAJ_PESTAFF.ParamByName('adress_3').AsString := DM.Q_Table_Import.fieldbyname('adress_3').AsString;
DM.Q_MAJ_PESTAFF.ExecSQL;
DM.Q_MAJ_PESTAFF.Close;
end;
ProgressBar1.Position:=i;
DM.Q_Table_Import.Next;
i:=i+1;
end;
end;
*** من حسن اسلام المرء تركه ما لا يعنيه ***

