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

نسخة كاملة : طريقة التعامل مع dbgrid حسابيا
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
هذه الصورة توضح ما أقصده
[صورة: alfaris_net_1268342036.JPG]
في الإنتظار...........
جزاكم الله كل خير
تفضل أخي انجزت لك مثال جامع لكل حالات جمع الحقول ..

بالتوفيق أن شاء الله ..
السلام عليكم
الأخ khiro.alg
بما أنك قلت بأنك مبتدئ، فالأصل أن البيانات لا تخزن في TDBGrid وإنما في TDataSet
والجدول TDBGrid يستخدم لجلب من TDataSet البيانات ثم عرضها...
فلجلب البيانات من أي حقل ومن أي سجل،عليك باستخدام مكون TDataSet (مثل TTable أو TADOTable) للتحرك (استعمل Next/Prior...)
ثم عرض القيمة المناسبة بمثل FieldByName('e').AsString، مثال:
كود :
DBGrid1.DataSource.DataSet.Next; ShowMessage(DBGrid1.Fields[6].Text);

لتخزين قيم على شكل أسطر وأعمدة،استخدم المكون TStringGrid المخصص لذلك...
ثم لعرض البيانات استخدم بـ Cells[ACol, ARow]: string

أما إذا كنت ضليع في المكونات فيمكنك إضافة منهج لذلك، أو توريث منهج مناسب، مثل:
PHP كود :
type
  TMyDBGrid 
= class(TDBGrid)
  
end;

  
ShowMessage(TMyDBGrid(DBGrid1).GetEditText(6, 5)); 
بالتوفيق.
بارك الله فيك أخي-ذاك هو المطلوب
وخاصة هذا الجزء
PHP كود :
procedure TForm1.Button1Click(Sender: TObject);
Var
Q: TADOQuery;
begin
   AdoTable1
.Requery();
   
Q:= TAdoQuery.Create(Self);
  
With Q Do
   
Begin
   Connection 
:= ADOConnection1;
   
Close;
   
SQL.Text := 'Select f From CustomData Where N = 1';
   
open;
  if 
FieldValues['f'] <> Null Then
   Edit7
.Text := IntToStr (FieldValues['f'])
   Else
   
Edit7.Text :='0';
   
End;

   
With Q Do
   
Begin
   Close
;
   
SQL.Text := 'Select e From CustomData Where N = 2';
   
open;
   if 
FieldValues['e'] <> Null Then
   Edit8
.Text := IntToStr (FieldValues['e'])
   Else
   
Edit7.Text :='0';
   
End;

   if (
Edit7.Text <> '') And ( Edit7.Text <> '') then
   Edit9
.Text := IntToStr( StrToInt(Edit7.Text ) + StrToInt(Edit8.Text ));

   
Q.Free;
end; 

- هل يمكنك شرحه ؟
ضد نسخ لصق
مع فهمه فهذا أفضل بكثير
تحياتي لكم إخواني
إقتباس :- هل يمكنك شرحه ؟

وما هو الشئ الذي لم تفهمه اخي الكريم؟
قل ما هو بالتحديد, لأن شرح هذا الكود سطر سطر شئ يأخذ وقت,

بالتوفيق,
شكرا أخي
إن لم تستطع شرحه كاملا-فأرجـو شرحه بشكل عام
الأسطر 8 الأخيرة واضحة
طيب, جميل,

حرف ال Q يعرف على انه AdoQuery

لا ادري ماذا تفعل بالحديد, يمكن البحث عنها في ملف ال Help,
كود :
AdoTable1.Requery
يتم انشآء AdoQuery
كود :
Q:= TAdoQuery.Create(Self)
مع ال AdoQuery التي تم انشآءها افعل
كود :
With Q Do
ويتم عمل او تعديل بعض الأمور و الخصآئص, منها وصل ال Adoquery مع AdoConnection1 ومنها ايضى Close لل AdoQuery التي تم انشآءها, يتم ايضى تحديد جملة sql لل Query التي قد تم انشآءها, وفي النهآية يتم عمل Open
كود :
Connection := ADOConnection1; Close; SQL.Text := 'Select f From CustomData Where N = 1'; open;
ايضى هناك مقآرنة,
كود :
if FieldValues['f'] <> Null Then Edit7.Text := IntToStr (FieldValues['f']) Else Edit7.Text :='0'; End;


وبعدها يتم عمل تقريبا نفس الشئ مرة اخرى لكن بمعلومات اخرى, وهناك ايضى مقآرنة, وفي النهآية يتم عمل free للمكون Query, يعني يتم تحريره من الذآكرة,
كود :
Q.Free;
هذا والله اعلم,
إقتباس :كود:
AdoTable1.Requery
Requery تعيد تنفيذ الاستعلام، وكأنك قمت بـ Close ثم Open للـ TADOQuery.
الصفحات : 1 2