رسالة خطأ "Field index out of range"
#1
السلام عليكم ورحمة الله تعالى وبركاته
بعد الخروج من الطباعة تخرج لي هذه الرسالة

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

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

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

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

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

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; 
الرد
#4
لا يبدو لي أي خطأ في الكود
ربما خطأ داخل التقرير

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

إذا كان فاست ريبورت أو رايف ريبورت أرفق الملف
الرد
#5
السلام عليكم
جرب استبدال هذه:
كود :
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'; 
الرد
#6
صباح الخير يا أهل الخير
ومشكورين على تعاونكم معنا
ولكن قد ادركت الخطأ ولم يكن الخطأ في تغيير مكان الأسطر
بل الخطأ كان من عندي
لقد كنت واضع في 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; 
وعندما حذفته حلت المشكلة ولم تعد تظهر تلك الرسالة
الرد
#7
السلام عليكم

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

كود :
{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;

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

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

إذا لم تكن هناك أي فائدة ضعها مباشرة ( قبل التنفيذ )
الرد
#10
لم افهم السؤال
ماذا تقصد بالأب والإبن ومذا تقصد با 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';
الرد


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


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