delphi4arab منتديات دلفي للعرب
طريقة التعامل مع dbgrid حسابيا - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : طريقة التعامل مع dbgrid حسابيا (/showthread.php?tid=1770)

الصفحات: 1 2


طريقة التعامل مع dbgrid حسابيا - khiro.alg - 11-03-2010

هذه الصورة توضح ما أقصده
[صورة: alfaris_net_1268342036.JPG]
في الإنتظار...........
جزاكم الله كل خير


طريقة التعامل مع dbgrid حسابيا - Rover - 12-03-2010

تفضل أخي انجزت لك مثال جامع لكل حالات جمع الحقول ..

بالتوفيق أن شاء الله ..


طريقة التعامل مع dbgrid حسابيا - kachwahed - 12-03-2010

السلام عليكم
الأخ 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)); 
بالتوفيق.



طريقة التعامل مع dbgrid حسابيا - khiro.alg - 10-04-2010

بارك الله فيك أخي-ذاك هو المطلوب
وخاصة هذا الجزء
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; 

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


طريقة التعامل مع dbgrid حسابيا - AL-MOB4RM3G - 10-04-2010

إقتباس :- هل يمكنك شرحه ؟

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

بالتوفيق,


طريقة التعامل مع dbgrid حسابيا - khiro.alg - 11-04-2010

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


طريقة التعامل مع dbgrid حسابيا - AL-MOB4RM3G - 11-04-2010

طيب, جميل,

حرف ال 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;
هذا والله اعلم,


طريقة التعامل مع dbgrid حسابيا - kachwahed - 11-04-2010

إقتباس :كود:
AdoTable1.Requery
Requery تعيد تنفيذ الاستعلام، وكأنك قمت بـ Close ثم Open للـ TADOQuery.