begin process at 2008 07 25 21:13:09
1 216 493 membres
446 nouveaux aujourd'hui
14 182 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CRÉATION D'UNE TABLE XML PAR PROGRAMMATION.


Description

Bonne journée à tous

voila un petit exemple qui montre; comment créer une table xml.

en réalité le présent programme est la suite du programme que j'ai déposé tout à l'heure
"Gestionnaire de contacts".

Grâce à ce modeste travail comme vous le voyer, vous aller apprendre:

1- Comment créer une table xml par programmation.
2- Comment exploiter une table xml.
3- Comment créer un un composant TClientDataSource.
4- Comment exlpoiter une table existante.
5- Comment enregister la table à l'aide d'une boitte de dialigue.
6- et d'autres que vous aller découvrire vous même.

Avant de terminer, je souhaite que mon travail vous fournira beaucoup d'idées.

A la fin je vous souhaite bonne chance et plein de succès.

Source

  • unit AFirst;
  • interface
  • uses
  • Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  • Dialogs, Menus, ExtCtrls, DBCtrls, Grids, DBGrids,DB,DBClient;
  • type
  • Txmltable = class(TForm)
  • MainMenu: TMainMenu;
  • Fichier: TMenuItem;
  • Crerlatable: TMenuItem;
  • N1: TMenuItem;
  • Quitter: TMenuItem;
  • Sauvegarder: TMenuItem;
  • Ouvrire: TMenuItem;
  • SaveDialog: TSaveDialog;
  • Panel1: TPanel;
  • DBGrid: TDBGrid;
  • Panel2: TPanel;
  • DBNavigator: TDBNavigator;
  • OpenDialog: TOpenDialog;
  • procedure CrerlatableClick(Sender: TObject);
  • procedure SauvegarderClick(Sender: TObject);
  • procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  • procedure QuitterClick(Sender: TObject);
  • procedure OuvrireClick(Sender: TObject);
  • private
  • { Déclarations privées }
  • public
  • { Déclarations publiques }
  • end;
  • var
  • xmltable: Txmltable;
  • CDSet:TClientDataSet;
  • implementation
  • {$R *.dfm}
  • uses DataModule;
  • procedure Txmltable.CrerlatableClick(Sender: TObject);
  • begin
  • // c bien de vérifier l'existance d'un composant avant de créer la table
  • // Créer un TClientDataSet
  • CDSet:= TClientDataSet.Create(nil); // n'oubliez pas d'ajouter DBClient aux uses
  • // avec CDSet faire
  • With CDSet.FieldDefs do
  • begin // bedut
  • Clear; // Effacer tous les champs
  • Add('Reference',ftAutoInc,0);// n'oublie pas d'ajouter DB aux uses
  • Add('Nom',ftString,40); // ajouter le champs nom de type string et de taille 40
  • Add('Prenom',ftString,40);
  • Add('Adresse',ftString,40);
  • Add('Ville',ftString,20);
  • Add('Paye',ftString,30);
  • Add('Tel_Portable',ftString,40);
  • Add('Tel_Bureau',ftString,40);
  • Add('Groupe',ftString,20);
  • Add('Notes',ftMemo,255); // Ajouter Notes de type Memo et de taille 255
  • Add('Photo',ftGraphic,0); // Ajouter Photo de type graphique
  • end; // fin
  • CDSet.CreateDataSet;// créer le CDSet
  • //CDSet.Free; // Libérer CDSet
  • Sauvegarder.Enabled:=true; // activer l'item sauvegarder
  • ShowMessage('La table a été crée avec succès');
  • end;
  • procedure Txmltable.SauvegarderClick(Sender: TObject);
  • begin
  • SaveDialog.FileName:='BaseRepTel.xml'; // le nom du fichier du SaveDialog
  • if SaveDialog.Execute then // Si SaveDialog est exécuté
  • CDSet.SaveToFile(SaveDialog.FileName); // enregistrer notre table
  • CDSet.Free; // Libérer CDSet
  • Sauvegarder.Enabled:=false; // Désactiver l'item Sauvegarder
  • end;
  • procedure Txmltable.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  • begin
  • CanClose:=False; // empécher la fermeture de l'application
  • // Afficher un message de confirmation
  • if MessageDlg('Etes vous sûre de vouloir quitter?', mtConfirmation, [mbYes, mbNo], 0)
  • // si oui est choisi
  • = mrYes then
  • // Terminer le programme
  • Application.Terminate;
  • end;
  • procedure Txmltable.QuitterClick(Sender: TObject);
  • begin
  • if MessageDlg('Etes vous sûre de vouloir quitter?', mtConfirmation, [mbYes, mbNo], 0)
  • // si non est choisi annuler
  • = mrNo then Exit;
  • // Terminer le programme
  • Application.Terminate;
  • end;
  • procedure Txmltable.OuvrireClick(Sender: TObject);
  • begin
  • if OpenDialog.Execute then// Si OpenDialog est exécuté
  • begin
  • Data.CDSet.Active:=false;// Désactiver CDSet
  • Data.CDSet.LoadFromFile(OpenDialog.FileName); // charger le fichier séléction
  • Data.CDSet.Active:=true;// Activer CDSet
  • end;
  • end;
  • end.
  • _____________________________________________
  • unit DataModule;
  • interface
  • uses
  • SysUtils, Classes, DB, DBClient;
  • type
  • TData = class(TDataModule)
  • DS: TDataSource;
  • CDSet: TClientDataSet;
  • procedure DataModuleCreate(Sender: TObject);
  • private
  • { Déclarations privées }
  • public
  • { Déclarations publiques }
  • end;
  • var
  • Data: TData;
  • implementation
  • {$R *.dfm}
  • procedure TData.DataModuleCreate(Sender: TObject);
  • begin
  • if FileExists('BaseRepTel.xml') then
  • begin
  • CDSet.LoadFromFile('BaseRepTel.xml');
  • CDSet.Open;
  • end else
  • begin
  • With CDSet.FieldDefs do
  • begin
  • Clear;
  • Add('Reference',ftAutoInc,0);
  • Add('Nom',ftString,40);
  • Add('Prenom',ftString,40);
  • Add('Adresse',ftString,40);
  • Add('Ville',ftString,20);
  • Add('Paye',ftString,30);
  • Add('Tel_Portable',ftString,40);
  • Add('Tel_Bureau',ftString,40);
  • Add('Groupe',ftString,20);
  • Add('Notes',ftMemo,0);
  • Add('Photo',ftGraphic,0);
  • end;
  • CDSet.CreateDataSet;
  • CDSet.SaveToFile('BaseRepTel.xml');
  • end;
  • end;
  • end.
unit AFirst;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, ExtCtrls, DBCtrls, Grids, DBGrids,DB,DBClient;

type
  Txmltable = class(TForm)
    MainMenu: TMainMenu;
    Fichier: TMenuItem;
    Crerlatable: TMenuItem;
    N1: TMenuItem;
    Quitter: TMenuItem;
    Sauvegarder: TMenuItem;
    Ouvrire: TMenuItem;
    SaveDialog: TSaveDialog;
    Panel1: TPanel;
    DBGrid: TDBGrid;
    Panel2: TPanel;
    DBNavigator: TDBNavigator;
    OpenDialog: TOpenDialog;
    procedure CrerlatableClick(Sender: TObject);
    procedure SauvegarderClick(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure QuitterClick(Sender: TObject);
    procedure OuvrireClick(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  xmltable: Txmltable;
  CDSet:TClientDataSet;
implementation

{$R *.dfm}
uses   DataModule;

procedure Txmltable.CrerlatableClick(Sender: TObject);
begin
// c bien de vérifier l'existance d'un composant avant de créer la table

// Créer un TClientDataSet
CDSet:= TClientDataSet.Create(nil); // n'oubliez pas d'ajouter DBClient aux uses
// avec CDSet faire
With CDSet.FieldDefs do
begin // bedut
        Clear;                       // Effacer tous les champs
        Add('Reference',ftAutoInc,0);// n'oublie pas d'ajouter DB aux uses
        Add('Nom',ftString,40);      // ajouter le champs nom de type string et de taille 40
        Add('Prenom',ftString,40);
        Add('Adresse',ftString,40);
        Add('Ville',ftString,20);
        Add('Paye',ftString,30);
        Add('Tel_Portable',ftString,40);
        Add('Tel_Bureau',ftString,40);
        Add('Groupe',ftString,20);
        Add('Notes',ftMemo,255);     // Ajouter Notes de type Memo et de taille 255
        Add('Photo',ftGraphic,0);    // Ajouter Photo de type graphique
end; // fin
CDSet.CreateDataSet;// créer le CDSet
//CDSet.Free;         // Libérer CDSet
Sauvegarder.Enabled:=true; // activer l'item sauvegarder
ShowMessage('La table a été crée avec succès');
end;

procedure Txmltable.SauvegarderClick(Sender: TObject);
begin
SaveDialog.FileName:='BaseRepTel.xml';        // le nom du fichier du SaveDialog
if SaveDialog.Execute then                    // Si SaveDialog est exécuté
CDSet.SaveToFile(SaveDialog.FileName);        // enregistrer notre table
CDSet.Free;                                   // Libérer CDSet
Sauvegarder.Enabled:=false;                   // Désactiver l'item Sauvegarder
end;

procedure Txmltable.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose:=False; // empécher la fermeture de l'application
// Afficher un message de confirmation
if MessageDlg('Etes vous sûre de vouloir quitter?', mtConfirmation, [mbYes, mbNo], 0)
// si oui est choisi
= mrYes then
// Terminer le programme
Application.Terminate;
end;

procedure Txmltable.QuitterClick(Sender: TObject);
begin
if MessageDlg('Etes vous sûre de vouloir quitter?', mtConfirmation, [mbYes, mbNo], 0)
// si non est choisi annuler
= mrNo then Exit;
// Terminer le programme
Application.Terminate;
end;

procedure Txmltable.OuvrireClick(Sender: TObject);
begin
if OpenDialog.Execute then// Si OpenDialog est exécuté
begin
Data.CDSet.Active:=false;// Désactiver CDSet
Data.CDSet.LoadFromFile(OpenDialog.FileName); // charger le fichier séléction
Data.CDSet.Active:=true;// Activer CDSet
end;
end;

end.
_____________________________________________
unit DataModule;

interface

uses
  SysUtils, Classes, DB, DBClient;

type
  TData = class(TDataModule)
    DS: TDataSource;
    CDSet: TClientDataSet;
    procedure DataModuleCreate(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Data: TData;

implementation

{$R *.dfm}

procedure TData.DataModuleCreate(Sender: TObject);
begin

if FileExists('BaseRepTel.xml') then
begin
CDSet.LoadFromFile('BaseRepTel.xml');
CDSet.Open;
end else
begin
With CDSet.FieldDefs do
begin
        Clear;
        Add('Reference',ftAutoInc,0);
        Add('Nom',ftString,40);
        Add('Prenom',ftString,40);
        Add('Adresse',ftString,40);
        Add('Ville',ftString,20);
        Add('Paye',ftString,30);
        Add('Tel_Portable',ftString,40);
        Add('Tel_Bureau',ftString,40);
        Add('Groupe',ftString,20);
        Add('Notes',ftMemo,0);
        Add('Photo',ftGraphic,0);
end;
CDSet.CreateDataSet;
CDSet.SaveToFile('BaseRepTel.xml');
end;
end;

end.

Conclusion

Toutes critiques, contributions, commentaires, dans le sens d'améliorer les bienvenues.

bonne programmation a tous.
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

  • signaler à un administrateur
    Commentaire de yvessimon le 19/03/2008 09:41:42

    Bonjour,

    Quand je click sur le ficier BaseRepTel
    j'ai l'arborescence xml mais pas un tableau ?

    Salutations

  • signaler à un administrateur
    Commentaire de HAFTARIFOUAD le 19/03/2008 12:24:21

    Salut Mr: yvessimon
    essaiez de consulter ce lien:

    http://www.tetraedre.com/advanced/xml.php

    Aprés vous aller découvrire pour quoi vous avez trouvé une arboredcence et non pas un tableu

    bon courage.

  • signaler à un administrateur
    Commentaire de yvessimon le 19/03/2008 13:43:13


    Efectivement c'est plus clair

    Merci
    Saluttaions

Ajouter un commentaire

Pub



Appels d'offres

Serveur et client mess...
Budget : 2 000€
Animation Flash alimen...
Budget : 6 000€
Intranet client pour t...
Budget : 5 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS