ورود

View Full Version : ایجاد یک فیلد در dbgrid برای نشان دادن یک مقدار از جدول



V60
چهارشنبه 18 بهمن 1385, 21:45 عصر
سلام
من یک کوری دارم که فیلدی دارد که یا مقدار 0 دارد و یا مقدار عددی مثلا 100 یا 200 یا هر عدد دیگری ، می خواهم در یک دی بی گرید نشان بدم اگر مقدار فیلد 0 است همان صفر نمایش داده شود و اگر بزرگتر از 0 است مقدار یک نمایش داده شود چه باید بکنم ؟ در همان فیلد باید کاری بکنم یا باید یک فیلد اضافه کنم، من تا حالا فیلد اضافه نکردم چه جوریه ؟ یا توسط دستور sql این کار انجام می شه
متشکر

babak869
چهارشنبه 18 بهمن 1385, 22:54 عصر
میتونید از یه کوئری در یک حلقه استفاده نمایید و چک کنید که اگه مقدار صفره صفر رو نمایش بده در غیر اینصورت مقدار 1 . ولی به نظر من این کار شما صحیح نیست .شما میتونید یه فیلد از نوع منطقی (Boolean) در جدول بسازید و زمانی که کاربر مقدار رو برای فیلد عددی شما وارد میکنه چک کنه که اگه صفره مقدار صفر در غیر اینصورت مقدار 1 رو برگردونه . به هر حال من کد روش اول رو برای شما مینویسم



procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
for i:=1 to ADOTable1.RecordCount do
begin
ADOTable1.Edit;
if ADOTable1id.AsInteger=0 then
ADOTable1my_number.AsInteger:=0
else
ADOTable1my_number.AsInteger:=1;
ADOTable1.Next;
end;
end;


موفق باشید

Mahyaa
چهارشنبه 18 بهمن 1385, 22:59 عصر
یک فیلد Calculated به دیتاست اضافه کنید . (کلیک راست در Fields Editor و انتخاب New Field , و دقت کنید که Type اون رو Calculated انتخاب کرده باشید)
در رویداد OnCalcField مقدار اون رو تنطیم کنید.

V60
چهارشنبه 18 بهمن 1385, 23:03 عصر
سلام
من الان از همان روش دوم شما استفاده می کنم
اما می خواهم تعداد فیلدها را کم کنم ، چون از این نوع فیلد ها من 6 تا دارم شاید هم بیشتر که ضربدر 2 می شه 12 و اگر بتونم کمش کنم خیلی خوبه
ولی از روش دوم شما هم به علتی که خودتان می دونید، استفاده نمی کنم ، چون روی سرعت خیلی تاثیر می زاره

Mohammadi_F
پنج شنبه 19 بهمن 1385, 03:45 صبح
می تونید از رویداد OnGetText , OnSetText فیلد استفاده کنید.

master13111
پنج شنبه 19 بهمن 1385, 12:27 عصر
کد اس کیو ال ش اینه:
fldName =case when Realfieldname=0 then '0' else '1' end
ولی اگه فقط میخوای توی دی بی گریدی که حاصل یک گزارشه نمایش بدید
کافیه یک ستون به دی بی گرید اضافه کنید و توی خاصیت oncolumndrow دی بی گرید کد لازمه رو بنویسی