ترتيب جدول DESC
#1
<p>سلام عليكم</p><p>لدي استفسار عن ترتيب جدول حيث adotable1 مفعل عليه علاقة ابن مع جدول adotable2 حين اضع هذا الامر في onopen لا يظهر شيء و تختفي كل التسجيلات لكن مع حذفه تعود للظهور لكن غير مرتبة</p><p>الامر المستعمل</p><p>
كود :
adotable1.Sort := 'name DESC';
<br></p>
لا تقل ان هذا شيء كبير ففي الاصل هو اتى من شيء صغير Smile
الرد
#2
وعليكم السلام

يفترض ان تعمل بدون مشاكل .
جرب ان تقوم بتحديد حقل الفرز من نافذة الخصائص
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
الرد
#3
حقل الفرز indexfieldname مربوط مع lookup مع جدول الاب المشكلة تكمن في حجول الابن حين اضع عليه الترتيب تختفي التسجيلات ايضا
لا تقل ان هذا شيء كبير ففي الاصل هو اتى من شيء صغير Smile
الرد
#4
هذا يعتمد على المكونات التي تستخدمها فمثلا في مكونات IBdac لها خاصية اسمها OrderFiled
ربما يجب ان تستخدم جملة SQL عادية
اي تجعل الجدول الاب Query بدل من Table وبهذا تنحل هذه الاشكالية لان ترتيب البيانات يتم في جملة الاستعلام نفسها
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
الرد
#5
جرب هذا  فسوف ينفعك ( هذا الكود وجدته في إحدى المنتديات فطورته وأصبح على الشل التالي) 
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_CreditBig Grinouble;
  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)


الملفات المرفقة
.png   Capture1.PNG (الحجم : 15.26 ك ب / التحميلات : 8)
.png   Capture2.PNG (الحجم : 14.99 ك ب / التحميلات : 8)
الرد
#6
السلام عليكم
أظن المشكلة في اسم الحقل لأنها كلمة محجوزة
جرب الترتيب بحقل آخر و شوف
الرد
#7
(29-01-2022, 10:05 PM)صالح حمادي كتب : السلام عليكم
أظن المشكلة في اسم الحقل لأنها كلمة محجوزة
جرب الترتيب بحقل آخر و شوف

هذه الصور خير دليل أنظر ماذا فعلت


الملفات المرفقة
.png   Capture3.PNG (الحجم : 14.92 ك ب / التحميلات : 15)
.png   Capture4.PNG (الحجم : 14.9 ك ب / التحميلات : 11)
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم