PDA

View Full Version : سوال: جمع رکوردهای یک فیلد



firststep
چهارشنبه 04 فروردین 1389, 19:49 عصر
سلام خسته نباشید *** سال نو مبارک***
ببخشید می خواستم یه سواله حیاتی وساده بپرسم
چجوری میشه رکرودهای یک ستون رو با هم جمع کرد می خوام بدونم چه راه حل هایی داره
می دونم باید یه کد sql وجود داشته باشه آما نمیدنم چه جوری باید استفاده شه قبلاً هم یک کامپوننت دیده بودم زیاد جالب نبود *** من فعلا این کارو به وسیله یه timer انجام می دم آم یه جورایی فک میکنم درست نباشه * با for نمی شد انجامش داد*** از اساتید خواهشمندم که راه هایی که به ذهنشون می رسه رو *راهنماییم کنن* خیلی ممنونم:لبخندساده:*** راستی دیتابیسم access و با ado وصل میشم.
باز هم ممنونم از همه :بوس::قلب:


---------
سرچ کردم چیزی دستگیرم نشد...... :متفکر:

yashar666
چهارشنبه 04 فروردین 1389, 21:31 عصر
q

procedure TForm1.Button1Click(Sender: TObject);
var
sum:Real;
begin
sum:=0;
ADOQuery1.First;
while not(ADOQuery1.Eof) do
begin
sum:=sum+ADOQuery1.FieldByName('MyField').AsFloat;
ADOQuery1.Next;
end;
Edit1.Text:=FloatToStr(sum);
end;


موفق باشید

Modernidea
پنج شنبه 05 فروردین 1389, 00:23 صبح
با استفاده از کد SQL هم میشه :


begin
AdoQuery.SQL.Text :=
'Select Sum(field) As Jam from Tablename';
AdoQuery.Open;

Edit1.Text := AdoQuery.FieldByName('Jam').AsString;
end;


موفق باشید.

firststep
پنج شنبه 05 فروردین 1389, 11:52 صبح
سلام yashar جان ممنونم از جوایتون اما چیزی که هست من مثل این اما از for استفاده می کردم جواب درسته بهم نمی داد به همین دلیل من مجبور می شدم بین اجرای هربار loop یه زمانی توقف رو فرض کنم به همین دلیل از timer استفاده می کردم مثلا اینجوری برای for می نموشتم



procedure TForm1.Button1Click(Sender: TObject);
var
sum:Real;
begin
sum:=0;
ADOQuery1.First;
for i=0 to ADOQuery1.recno do
begin
sum:=sum+ADOQuery1.fields[2].value;
ADOQuery1.Next;
end;
Edit1.Text:=FloatToStr(sum);
end;


اما عدد درستی بهم نمی داد

firststep
پنج شنبه 05 فروردین 1389, 11:53 صبح
اقای Modernidea (http://barnamenevis.org/forum/member.php?u=65994) از شما هم کمال تشکر رو دارم اما می خواستم بدونم>>>>>> به صورت یک فیلد در کنار جدولم درمیاد؟؟؟؟؟؟ >>>>> توی dbgridam معلوم نیمشه و من ممکن چندبار این عمل رو در ساعت انجام بدم آیا مشکلی هم پیدا می کنه یا نه ؟

Modernidea
پنج شنبه 05 فروردین 1389, 23:48 عصر
اقای Modernidea (http://barnamenevis.org/forum/member.php?u=65994) از شما هم کمال تشکر رو دارم اما می خواستم بدونم>>>>>> به صورت یک فیلد در کنار جدولم درمیاد؟؟؟؟؟؟ >>>>> توی dbgridam معلوم نیمشه و من ممکن چندبار این عمل رو در ساعت انجام بدم آیا مشکلی هم پیدا می کنه یا نه ؟

خواهش میکنم.

مشکلی که پیش نمیاد. اما میتونید از یک Ado Query دیگه که هیچ dbgrid ای به آن وصل نیست برای این کار استفاده کنید تا این مشکل رفع بشه.

موفق باشید.

hossein_h62
یک شنبه 08 فروردین 1389, 13:32 عصر
قبلاً هم یک کامپوننت دیده بودم زیاد جالب نبود ***

سلام دوست عزیز از گرید Ehlib استفاده کن خیلی عالیه مشکلت رو حل میکنه.بدون یک خط برنامه نویسی.

danesh1351
جمعه 27 فروردین 1389, 20:03 عصر
سلام
در محيط طراحي در قسمت فيلدهاي كوري خود يك فيلد با نام مورد نظر ايجاد كرده و از نوع calculat باشد
در قسمت oncalculat كوري خود يك كوري جديد نوشته و مقدار بدست آمده را در فيلد جديد قرار بده .
موفق باشي