delphi4arab منتديات دلفي للعرب

نسخة كاملة : رسالة خطأ "Field index out of range"
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله تعالى وبركاته
بعد الخروج من الطباعة تخرج لي هذه الرسالة

[صورة: erreur01.png]
و عليكم السلام و رحمة الله وبركاته

تساؤل غامض قليلا ؟

ما نوع القاعدة ؟ الإتصال ؟ محرر التقارير ؟

يمكنك إستخدام Debuger لمعرفة سبب الظهور
إذا لم تعرف ضع السورس ( الجزء المشكوك فيه ) لنرى إن كان بالإمكان تحديد مصدر الخطأ

بالتوفيق
هذا هو الكود الذي اعمل به فلترة ومنه انتقل الى طباعة
وعندما اخرج من الطباعة يعطين الخطأ السابق الذكر

PHP كود :
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
If CheckBox1.Checked=true Then
   Begin
     DM
.AbsTable1.Close;
     
DM.AbsTable1.IndexName:='Groupe01';
     
DM.AbsTable1.MasterFields:='GR_CD';
     
DM.AbsTable1.MasterSource:=DM.Datasource3;
     
DM.AbsTable1.Open;
     
DBLookupComboBox1.Enabled:=True;
   
End
Else
   
Begin
     DM
.AbsTable1.Close;
     
DM.AbsTable1.IndexName:='';
     
DM.AbsTable1.MasterFields:='';
     
DM.AbsTable1.MasterSource:=nil;
     
DM.AbsTable1.Open;
     
DBLookupComboBox1.Enabled:=False;
   
End;
end; 
لا يبدو لي أي خطأ في الكود
ربما خطأ داخل التقرير

ما نوع محرر التقارير المستعمل ؟

إذا كان فاست ريبورت أو رايف ريبورت أرفق الملف
السلام عليكم
جرب استبدال هذه:
كود :
DM.AbsTable1.IndexName:='Groupe01'; DM.AbsTable1.MasterFields:='GR_CD'; DM.AbsTable1.MasterSource:=DM.Datasource3;
بهذه:
PHP كود :
DM.AbsTable1.MasterSource:=DM.Datasource3;      
     
DM.AbsTable1.MasterFields:='GR_CD';
     
DM.AbsTable1.IndexName:='Groupe01'; 
صباح الخير يا أهل الخير
ومشكورين على تعاونكم معنا
ولكن قد ادركت الخطأ ولم يكن الخطأ في تغيير مكان الأسطر
بل الخطأ كان من عندي
لقد كنت واضع في OnActivate للفورم Form
هذا الكود
PHP كود :
{If CheckBox1.Checked=False Then
DBLookupComboBox1
.Enabled:=False;
 
DM.AbsTable1.Open;
 
DM.AbsTable1.IndexName:='';
 
DM.AbsTable1.MasterFields:='';
 
DM.AbsTable1.MasterSource:=nil;
 
DM.AbsTable1.Next;


 
RadioGroup1.ItemIndex:=0;
 
CheckBox1.Checked:=False; 
وعندما حذفته حلت المشكلة ولم تعد تظهر تلك الرسالة
السلام عليكم

تبدو لي بعض الأخطاء أنظر

كود :
{If CheckBox1.Checked=False Then DBLookupComboBox1.Enabled:=False; // DM.AbsTable1.Open;// الفتح ثم وضع الماستر سورس ؟ DM.AbsTable1.IndexName:=''; DM.AbsTable1.MasterFields:=''; DM.AbsTable1.MasterSource:=nil; DM.AbsTable1.Open;// الفتح بعد وضع الماستر سورس و الماستر فيلد // DM.AbsTable1.Next; <- ما الفائدة RadioGroup1.ItemIndex:=0; CheckBox1.Checked:=False;

و السلام عليكم
شكرا لقد اعدت الكود كما اشرت علي به وحذفت السطر DM.Abstable1.Open الأولى
ووضعتها بعد السطر DM.Abstable1.Mastersource:=nil;
وحذفت السطر DM.AbsTable1.Next;
لكن دون جدوى
يبدو لي ان الحل في حذف الكود نهائيا من OnActivate
أو بدلا من Open; الأولى وضع Close
وبدلا من Next; وضع Open
أولا الحدث OnActivate يطلق عند تنشيط الفورم وفي حالتك هذه يطلق بعد الخروج من التقرير
إستبدله بـ OnShow أو OnCreate إذا كنت تنشأ الفورم ديناميكيا

فقط سؤال ما الذي تستفيده من وضع العلاقة أب-إبن في وقت التنفيذ ؟
أم عندك Dataset أخرى تربط معها ؟

إذا لم تكن هناك أي فائدة ضعها مباشرة ( قبل التنفيذ )
لم افهم السؤال
ماذا تقصد بالأب والإبن ومذا تقصد با Dataset اخرى
حسب ما فهمت من سؤالك
لدي عدة جداول مربوطة مع الجدول
Abstable1
الجداول المربوطة معه هي
Abstable2
Abstable1.indexName:=ETAT_01;
Abstable1.MasterField:='ET_CD';
AbsTable3
Abstable1.indexName:=Groupe01;
Abstable1.MasterField:='GR_CD';
AbsTable4
Abstable1.indexName:=POSTE_01;
Abstable1.MasterField:='PT_CD';