المشاركات : 116
المواضيع 28
:
: 0
الإنتساب : Jan 2009
السلام على اخوتي
واجهتني اخوتي الكرام مشكلة في تنفيد كود من هدا النوع مهما كان استعماله المهم يغطي عمل المقارنة الى اخر الملف اكان دلك بحساب المجموع أ غيره اليكم الكود :
كود :
procedure TForm2.SpeedButton1Click(Sender: TObject);
begin
while adodataset1.eof=true do
begin
if adodataset1.fieldbyname('yousername').Value =edit3.Text then
if adodataset1.fieldbyname('password').Value =edit4.Text then
begin
form2.Hide;
form3.show;
end
else
form1.showmodal ;
end ;
end ;
end ;
هل هدا الكود صحيح لانه لم يشتغل معي اين الخلل
وجربت هدا ايضا و نفس الشيء باضافة
بدلا من
كود :
while adodataset1.eof=true do
في الاول
اد اطمح الى ان تتم المقارنة لآخر الملف لكنها تصلح مع التسجيلة الأولى فقط
المشاركات : 11
المواضيع 0
:
: 0
الإنتساب : Jan 2010
السلام عليكم
كود :
if adodataset1.locate('yousername;password',VarArrayOf([edit3.Text,edit4.text]),[]) then
شيء إخر، بالنسبة لي لم إعد أستعمل النوافذ في حالة show دائما showmodal
مثلا
كود :
unit xxx;
interface
type
TFCahier = class(TForm)
.....
end;
Procedure ShowCahier(f:integer=0);
implementation
Procedure ShowCahier;
begin
with TFCahier.Create(Application) do
try
ShowModal;
finally
Release;
end;
end;
لفتح النافذة يكفي النداء على الدالة ShowCahier
المشاركات : 116
المواضيع 28
:
: 0
الإنتساب : Jan 2009
مشكور اخي محمد
والله حل جيد
انا فقط في اول الطريق في درب التعلم
وعن طريقتك والله صالحة الف بالمئة واتحفتني وانرتني بهدا الحل الرائع
لكن كنت حابب اتعلم طريقة eof
لضني اني احتاجها في العمليات الحسابية كحساب كمية منتوج لمنتوج متواجد عندك
واكرر شكري لك
المشاركات : 116
المواضيع 28
:
: 0
الإنتساب : Jan 2009
مثلا عندي جدول يتكون من
رقم البضاعة
تاريخ الدخول
كمية البضاعة
كيف نجد مجموع كمية البضاعة الموجودة في المخزن عندي دون التقيد بتاريخ اي كل البضاعة
وهدا على سبيل المثال فقط
اضن انه سوف نلجأ الى حلقة ونستعمل فيها eof
صحح لي وكل الاخوة الدين في مقدرتهم دلك
المشاركات : 3,703
المواضيع 101
:
: 579
الإنتساب : Feb 2008
eof تعني نهاية الملف / جدول البيانات
bof تعني بدايته
وهي قيمة منطقية تكون صحيحة او خاطئة
الحلقة تنطلق من البداية الى النهاية مثلا
تكتب شيئ مثل:
PHP كود :
Var
SumQ : Integer;
begin
SumQ:=0;
Table1.First;
Repeat
SumQ:=SumQ+Table1.FieldByName('Qte').AsInteger;
Table1.Next;
Until Table1.Eof;
ShowMessage(IntToStr(SumQ));
end;
Qte حقل كمية البضاعة
SumQ الكمية الكلية
او من النهاية الى البداية
نفس المثال السابق
PHP كود :
Var
SumQ : Integer;
begin
SumQ:=0;
Table1.Last;
Repeat
SumQ:=SumQ+Table1.FieldByName('Qte').AsInteger;
Table1.Prior;
Until Table1.Bof;
ShowMessage(IntToStr(SumQ));
end;
هذا النوع من الحلقات قد يستهلك وقت حسب حجم القاعدة من سجلات
ومن الاحسن والاسرع استخدام SQL
تصفح المنتدى لامثلة عن ذلك
وبالتوفيق
المشاركات : 11
المواضيع 0
:
: 0
الإنتساب : Jan 2010
B.M.AbdelAziZ كتب :[COLOR="Red"]ومن الاحسن والاسرع استخدام SQL
[/COLOR]تصفح المنتدى لامثلة عن ذلك
+1
كما قال الأخ عبدالعزيز، إنس أمر eof و استعن بSQL
المشاركات : 35
المواضيع 14
:
: 0
الإنتساب : May 2010
يمكنك الأستعانة ب sql لأنها أفضل وفكرتها ليست صعبة
المشاركات : 101
المواضيع 20
:
: 0
الإنتساب : Dec 2009
24-07-2010, 11:13 PM
(آخر تعديل لهذه المشاركة: 25-07-2010, 12:23 AM بواسطة kachwahed.)
السلام عليكم :
انا استخدم EOF في الجداول القليلة الحجم وهي ببساطة
كود :
table1.first
while not table1.eof do
begin
some codes////
table1.next
end