Refactoring de classe

Résolu
delphi5user Messages postés 9 Date d'inscription jeudi 14 octobre 2004 Statut Membre Dernière intervention 20 juillet 2006 - 19 juil. 2006 à 17:19
delphi5user Messages postés 9 Date d'inscription jeudi 14 octobre 2004 Statut Membre Dernière intervention 20 juillet 2006 - 20 juil. 2006 à 16:26
Bonjour.
Je cherche à réécrire les 2 procédures

RemplissageDataVoitureDepuisFichier() et

RemplissageDataVoitureDepuisEnregistrement dans un code plus propre.






Unit Unit1;

type
  tableauoptions = record
    code : string;
    libelle : string;
  end;

type
  TVehicule = record
    categorie: string;
    marque : string;
  end;
    

type
    TdatasVoiture = record
      vehicule : TVehicule;
      options : array of tableauoptions;
    end;

type
    TForm1 = class(TForm)
    ds: Tclientdataset;
{...}
var
  boolCodeSpecif1, boolCodeSpecif2: boolean;

{...}

procedure TForm1.RemplissageDataVoitureDepuisFichier();
//on charge les données depuis un fichier
begin
  {...}
  for j := 0 to nboptions - 1 do begin
    ds.Insert;
    dsCode.Value    := datasVoiture.options[j].Code;
    if ( datasVoiture.options[j].Code = 'AA1' ) or ( datasVoiture.options[j].Code = 'HZ1' ) then
       boolCodeSpecif1 := true;
    if ( datasVoiture.options[j].Code = 'ZZ1' )  then
       boolCodeSpecif2 := true;
    dsLibelle.Value := datasVoiture.options[j].libelle;
    ds.post;
  end;
end;

procedure TForm1.RemplissageDataVoitureDepuisEnregistrement();
//on charge les données depuis un enregistrement de la table SQL
var
  CodeTmp:string
begin
{...}

if ( query.RecordCount >= 1 ) then begin
  ds.First;
  while ds.Eof = False do
    ds.Delete;
  First;
  while ( query.eof = False ) do begin
    ds.Insert;
    codeTmp := fieldbyname('CD_OPTION').AsString;    if ( CodeTmp 'AA1' ) or ( CodeTmp 'HZ1' ) then //codes spécifiques 1
    boolCodeSpecif1 := true;
    if ( CodeTmp = 'ZZ1' ) then //codes spécifiques 2
    boolCodeSpecif2 := true;
    dsCode.Value := CodeTmp;
    TABLEOPTIONS.Locate('CD_OPTION',CodeTmp,[]);
    dsLibelle.Value := TABLEOPTIONS.fieldbyname('CD_LIBELLE').AsString;
    ds.post;
    Next;
  end;
  ds.First;
end;

End;
end;




Faudrait-il que je crée un nouveau champ famille (famille de l'option) dans le type 'tableauoptions' ou créer 2 nouvelles tables dans ma base de données qui contiendraient les codes spécifiques 1 et 2 ??

Merci de votre aide.

1 réponse

delphi5user Messages postés 9 Date d'inscription jeudi 14 octobre 2004 Statut Membre Dernière intervention 20 juillet 2006
20 juil. 2006 à 16:26
    Re bonjour.
Quelqu'un aurait-il eu le même cas à traiter?

Merci d'avance.
3
Rejoignez-nous