جرب هذا فسوف ينفعك ( هذا الكود وجدته في إحدى المنتديات فطورته وأصبح على الشل التالي)
unit U_appication;
{ Ce projet et réaliser Par BENOMRANE BRAHIM le prejet n'est Pas completement
Parfait il y a plusier programmer peuve se réduire avec un peut de temps
pour Plus d'information
http://brahimnet.ifrance.com
Projet réaliser par delphi7
Projet Réaliser en 15 Mai 2006
æÌÏÊå Ýí ÃÍÏ ÇáãæÇÞÚ æåæ áÕÇÍÈå Èä ÚãÑÇä ÈÑÇåíã æÞãÊ ÈÊØæíÑå äæÚ ãÇ ßí íÓíÑ ÃÏÇÉ áãÍÊÑÝí ÇáÏáÝí
ááÅÊÕÇá åÐÇ ÚäæÇäí besmain@gmail.com(((((((
}
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, ExtCtrls, DB, DBTables, StdCtrls, DBCtrls,
ComCtrls, Menus,ShellAPI, Buttons, ABSMain;
type
TMain = class(TForm)
DataSource: TDataSource;
Panel1: TPanel;
DBGrid1: TDBGrid;
StatusBar1: TStatusBar;
PopupMenu1: TPopupMenu;
Nouveau1: TMenuItem;
Modifier1: TMenuItem;
Supprimer1: TMenuItem;
GroupBox1: TGroupBox;
Label4: TLabel;
dt_au: TDateTimePicker;
Dt_du: TDateTimePicker;
Label3: TLabel;
Active_Filtre: TCheckBox;
Button1: TButton;
db: TABSQuery;
ABSDatabase1: TABSDatabase;
dbID: TFloatField;
dbN_ligne: TIntegerField;
dbDt: TDateField;
dbIntitule: TStringField;
dbDebit: TFloatField;
dbCredit: TFloatField;
ABSTable1: TABSTable;
DataSource1: TDataSource;
Label1: TLabel;
BitBtn1: TBitBtn;
procedure DBGrid1TitleClick(Column: TColumn);
procedure FormCreate(Sender: TObject);
procedure Nouveau1Click(Sender: TObject);
procedure Modifier1Click(Sender: TObject);
procedure Supprimer1Click(Sender: TObject);
procedure Db2NewRecord(DataSet: TDataSet);
procedure Dt_duCloseUp(Sender: TObject);
procedure Db2PostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
procedure Button1Click(Sender: TObject);
procedure Label1Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
//déclaration
Tri_dec:Boolean; // le choix du Tri soit descendant ou ascendant
Key_Id:double; // variable pour la recherche ID dans La Mise a jour
{ Private declarations }
public
{ Public declarations }
end;
var
Main: TMain;
implementation
uses u_Saisir, Unit1;
{$R *.dfm}
procedure TMain.DBGrid1TitleClick(Column: TColumn);
VAr
Tri_Ch:String;
I:integer;
begin
//ãÑÇÞÈÉ ÇáÝÑÒ ÊäÇÒáí Ãæ ÊÕÇÚÏí
if Tri_dec=True Then
begin
Tri_ch:=' ASC';
Tri_dec:=False;
Label1.Caption:= ('ÝÑÒ ÊÕÇÚÏí');
Label1.Font.Color:=clred;
end
ELSE
begin
TRi_Ch:=' DESC';
Tri_Dec:=True;
Label1.Caption:= ('ÝÑÒ ÊäÇÒáí');
Label1.Font.Color:=clLime;
end;
Db.Close;
db.SQL.Clear;
db.SQL.Add('Select * FROM DB ORDER BY '+Column.Field.DisplayName+Tri_ch);
db.open;
For i:=0 to dbgrid1.Columns.Count-1 Do
dbgrid1.Columns.Items[i].Title.Font.Color:=clHotLight;
//Êáæíä ÚãæÏ ÇáÝÑÒ
dbgrid1.Columns.Items[column.Index].Title.Font.Color:=clFuchsia;
end;
procedure TMain.FormCreate(Sender: TObject);
begin
Tri_dec:=True; //initialtion La Tri descandant
end;
procedure TMain.Nouveau1Click(Sender: TObject);
begin
Db.Append;
saisir_.ShowModal;
end;
procedure TMain.Modifier1Click(Sender: TObject);
begin
Key_Id:=dbID.Value; //permutation pour pouvoire recherche Ds la BD
Db.Close;
db.SQL.Clear;
db.SQL.Add('Select * FromDb' );
db.open;
//rechercher DS la base de donnée
if db.Locate('ID',Key_ID,[loPartialKey]) THEN
begin
Db.Edit;
saisir_.ShowModal;
end;
end;
procedure TMain.Supprimer1Click(Sender: TObject);
begin
if Db.RecordCount= 0 then Exit; //aucune suppression ds le cas si la base et vide
Key_Id:=dbID.Value; //permutation pour pouvoire recherche Ds la BD
Db.Close;
db.SQL.Clear;
db.SQL.Add('Select * FROM Db' );
db.open;
//rechercher DS la base de donnée
if db.Locate('ID',Key_ID,[loPartialKey]) THEN
begin
if MessageDlg('Confirmer La suppression',
mtConfirmation, [mbYes, mbNo],0) = mrYes then
Db.Delete;
end;
end;
procedure TMain.Db2NewRecord(DataSet: TDataSet);
begin
//initialisation des données
dbDt.Value:=now;
dbcredit.Value:=0;
dbdebit.Value:=0;
end;
procedure TMain.Dt_duCloseUp(Sender: TObject);
begin
db.Filter:='(Dt>='''+DatetoStr(Dt_du.date)+''')And (Dt<='''+DateToStr(Dt_Au.date)+''')';
if Active_Filtre.Checked=true Then db.Filtered:=True else db.Filtered:=False
end;
procedure TMain.Db2PostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
begin
Raise Exception.Create('Cet ID Existe Déja veillez Le mofidier SVP');
end;
procedure TMain.Button1Click(Sender: TObject);
Var
Total_Debit,Total_Credit

ouble;
SavePlace: TBookmark;
begin
SavePlace :=db.GetBookmark;
TRY
//Ititialisation des Totaux
Total_Debit:=0;Total_Credit:=0;
db.DisableControls;
db.First;
while Not Db.Eof do
BEGIN
Total_Debit:=Total_Debit+Dbdebit.Value;
Total_Credit:=Total_Credit+dbcredit.Value;
db.Next;
end;
finally
db.EnableControls;
if SavePlace <> nil then
begin
Db.GotoBookmark(SavePlace);
db.FreeBookmark(SavePlace);
end;
Showmessage('Résultat des calcule est: '#13''#13'Total Débit= '+Format('%m',[Total_debit])+
''#13'Total Crédit= '+Format('%m',[Total_credit]));
end;
end;
procedure TMain.Label1Click(Sender: TObject);
begin
ShellExecute(0,'open', 'http://brahimnet.ifrance.com',
nil, nil, SW_SHOWMAXIMIZED);
end;
procedure TMain.BitBtn1Click(Sender: TObject);
begin
Form1.ShowModal;
end;
end.
قاعدة بيانات absolute database ( للتأكيد هذا البرنامج مطور بدلفي 7)