PDA

View Full Version : اشکال در فیلتر گرید



khoshblagh
شنبه 04 مهر 1388, 08:18 صبح
با سلام خدمت دوستان
اصل کد زیر مربوط به سایت about میباشد.در این کد در یک جدول grid هر تعداد سطر گرید را
که انتخاب کنید مجموع فیلد خاصی را به نمایش میدهد.من این کد را با تغییراتی به شکل زیر
استفاده کردم. ولی در عمل این کد به جای جمع سطرهای انتخاب شده مبلغ فیلد سطر آخر گرید را به تعداد سطرهای انتخاب شده ضرب و نشان میدهد. برای روشن شدن بیشتر موضوع
فرض کنید سطر اول و سوم و چهارم را از گرید انتخاب نمایید. حال برنامه به جای جمع فیلد سطرهای انتخاب شده به سطر آخر گرید رفته و فیلد مورد نظر را ضربدر 3 میکند.
ظاهر موضوع اینه که اصلا جدول پیمایش نمیشود. و اشاره گر برروی سطر آخر فقط عمل میکند.



procedure TfrmRoyatGardeshHesab.btnSumClick(Sender: TObject);
var
i:integer;
sum:integer;
begin
if dbgDaftar.SelectedRows.Count >0 then
begin
sum:=0;
with dbgDaftar.DataSource.DataSet do
begin
for i:=0 to dbgDaftar.SelectedRows.Count -1 do
begin
GotoBookmark(Pointer(dbgDaftar.SelectedRows.Items[i]));
showmessage(qyrDaftar.fieldByName('shar').asstring );
sum:=sum+qyrDaftar.fieldByName('Bed').CurValue ;
end;
end;
edtBed.Text :=inttostr(sum);
end;
end;

ghabil
دوشنبه 06 مهر 1388, 06:19 صبح
ماله اینه که کد رو کثیف و قاطی پاتی کردی. چیزی که من بنظرم میاد با این حرفهایی که میزنی اینه که dbgDaftar.DataSource.DataSet و qyrDaftar یکی نیستند که منطقا باید یکی باشند ، بالاخره تصمیمت رو بگیر از یکبشون استفاده کن. کدها رو هم تمیز بنویس که اینطوری به مشکل نخوری

ghasemshami
دوشنبه 06 مهر 1388, 06:59 صبح
کد در قسمت اولش که انتخاب فیلدهای مورد نظرتون هست این کار رو انجام نمیده و به خاطر همین در حلقه For شما میره و در آخرین رکورد عملیات رو انجام میده

khoshblagh
دوشنبه 06 مهر 1388, 08:25 صبح
ماله اینه که کد رو کثیف و قاطی پاتی کردی. چیزی که من بنظرم میاد با این حرفهایی که میزنی اینه که dbgDaftar.DataSource.DataSet و qyrDaftar یکی نیستند که منطقا باید یکی باشند ، بالاخره تصمیمت رو بگیر از یکبشون استفاده کن. کدها رو هم تمیز بنویس که اینطوری به مشکل نخوری
با سلام خدمت شما
ممنون میشوم همین کد را بازسازی نمایید که مشکلات بالا را نداشته باشد .متشکرم

hadisalahi2
دوشنبه 06 مهر 1388, 16:02 عصر
پشنهاد میکنم اول کد ها رو چپ چین کن تا خودنش راحت باشه ، بعد میشه یه کاریش کرد.

khoshblagh
سه شنبه 07 مهر 1388, 08:14 صبح
پشنهاد میکنم اول کد ها رو چپ چین کن تا خودنش راحت باشه ، بعد میشه یه کاریش کرد.
با تشکر از توجه شما. انجام شد.