المشاركات : 501
المواضيع 136
:
: 11
الإنتساب : Feb 2008
18-08-2017, 01:31 PM
(آخر تعديل لهذه المشاركة: 18-08-2017, 01:43 PM بواسطة Admin.)
السلام عليكم ورحمة الله تعالى وبركاته
جمعة مباركة إن شاء الله وتقبل الله منا ومنكم الصلاة بمزيد من الآجر والثواب والمغفرة
اخواني مشكل غريب لم افهمه
داحل زر لدي كود لتنفيذ عملية ما
من ناحية يعمل بشكل جيد فهو يعمل لكن كلما انتقلت الى سجل يعمل بشكل جيد حتى يصل الى عدد معنين من السجلات واظنه 4 سجلات عندما انتقل الى السجل الخامس يتأخر لمدة 10 ثواني او أكثر وكل ما انتقلت الى السجل الموالي يتأخر أكثروعندما ارغب غي التنقل الى السجل الموالي وليكن السجل مثلا 05 او 06 يجب علي اغلاق البرنامج واعادة تشغيله والذهاب الى السجل الخامس لإكمال تنفيذ العملية
لذا ما سبب هذه المشكلة
جزاكم الله عنا كل خير
المشاركات : 476
المواضيع 0
:
: 217
الإنتساب : Apr 2011
سلام عليكم / جمعة مباركة
يبدو ان برنامجك يتعامل مع قواعد بيانات
ممكن ترفق الكود الموجود بداخل btn
الفاشلون نوعان : الأول : فكر ولم يفعل .. والآخر: فعل ولم يفكر
المشاركات : 1,677
المواضيع 349
:
: 1,069
الإنتساب : Nov 2013
لايمكن لاحد ان يعطى رائيا بدون ان يعرف ما موجود من برمجة
كما قال الاخ اما انك تستخدم قواعد بيانات او مؤقتتات او صور كبيرة او ما شابه مع برمجة سيئة
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
المشاركات : 501
المواضيع 136
:
: 11
الإنتساب : Feb 2008
السلام عليكم ورحمة الله تعالى وبركاته
اليك الكود المتعلق بالزر Button
كود :
procedure TFrm1.BtnRefresheClick(Sender: TObject);
var tcde:integer;
tLib:String;
tMnt:Double;
var temp:TFrm2;
begin
DM.Table2.Close;
temp:= TFrm2.Create(Self);
temp.Radiogroup1.ItemIndex:=1;
with DM do
begin
Table2.Open;
Table1.Open;
Table1.First;
while not Table1.Eof do
begin
{Keep Previous values}
tcde := Table1.Fieldvalues['Cde'];
tLib := Table1.fieldvalues['Lib_Cde'];
tMnt := Table1.FieldValues['Mont'];
Table1.Next;
if DM.Table2.Locate('cde',vararrayof([tcde]),[locaseinsensitive,lopartialkey]) then
begin
DM.Table2.Edit;
DM.Table2.fieldvalues['cde'] := tcde;
DM.Table2.fieldvalues['lib_cde'] := tLib;
DM.Table2.fieldvalues['Mont'] := tMnt;
end else begin
DM.Table2.Insert;
DM.Table2.fieldvalues['cde'] := tcde;
DM.Table2.fieldvalues['lib_cde'] := tLib;
DM.Table2.fieldvalues['Mont'] := tMnt;
DM.Table2.Post;
DM.Table2.Refresh;
end;
end;
end;
DM.Table3.Edit;
DM.Table3dbcheckBox.Value:=false;
DM.Table3.Post;
end;
المشاركات : 501
المواضيع 136
:
: 11
الإنتساب : Feb 2008
لقد حلت المشكلة والخطأ هو أنني لم احرر الفورم التي كنت مصرح بها
كان يجب علي إضافة هذا السطر بعد التصريح
كود :
temp:= TFrm2.Create(Self);
temp.Radiogroup1.ItemIndex:=1;
temp.free;
بارك الله فيكم على المرور
المشاركات : 3,703
المواضيع 101
:
: 579
الإنتساب : Feb 2008
السلام عليكم
يمكن اختصار الكود قليلا
كود :
procedure TFrm1.BtnRefresheClick(Sender: TObject);
begin
with DM do
begin
Table2.Close;
Table2.Open;
Table1.Open;
Table1.First;
while not Table1.Eof do
begin
if DM.Table2.Locate('cde',vararrayof([tcde]),[locaseinsensitive,lopartialkey]) then
Table2.Edit else Table2.Insert;
Table2.fieldvalues['cde'] := Table1.Fieldvalues['Cde'];
Table2.fieldvalues['lib_cde'] := Table1.fieldvalues['Lib_Cde'];
Table2.fieldvalues['Mont'] := Table1.FieldValues['Mont'];
Table2.Post;
Table2.Refresh;
end;
Table1.Next;
end;
DM.Table3.Edit;
DM.Table3dbcheckBox.Value:=false;
DM.Table3.Post;
end;
رَبَّنَا اغْفِرْ لِي وَلِوَالِدَيَّ وَلِلْمُؤْمِنِينَ يَوْمَ يَقُومُ الْحِسَابُ
المشاركات : 3,703
المواضيع 101
:
: 579
الإنتساب : Feb 2008
السلام عليكم
ملاحظة اخرى: الحقل cde من نوع Integer اذن استخدام locaseinsensitive,lopartialkey في Locate لا معنى لها!
رَبَّنَا اغْفِرْ لِي وَلِوَالِدَيَّ وَلِلْمُؤْمِنِينَ يَوْمَ يَقُومُ الْحِسَابُ
المشاركات : 501
المواضيع 136
:
: 11
الإنتساب : Feb 2008