PDA

View Full Version : ستون ردیف در DBGrid



saeid_sazegar
چهارشنبه 10 مرداد 1386, 11:01 صبح
با سلام
من با Dataset و به وسیله دستورات اس کیو ال یک گزارش تهیه کردم ومیخوام این گزارشو چاپ کنم میخوام که DBGrid دارای ستون ردیف باشه به نحوی که در گزارش چاپی این ستون ردیف هم چاپ شود
از دوستان اگر کسی در این مورد اطلاعاتی دارد خواهشمندم که به من کمک کند

Batman
چهارشنبه 10 مرداد 1386, 11:17 صبح
دوست عزیز میشه بیشتر توضیح بدید
یعنی چی که ستون دارای ردیف باشه

saeid_sazegar
چهارشنبه 10 مرداد 1386, 11:43 صبح
یه مثال میزنم
در روال کلید
adodataset1.active:=false;
adodataset1.commandtext:='select name from basic';
adodataset1.active:=true;
وقتی این روال اجرا میشه لیستی در DBGrid به وجود میاد با یک ستون به نام name
حوب حالا من میخوام یه ستون دیگه به نام ردیف داشته باشه به این شرط که هم در DBGrid
باشه هم در Dataset

Valadi
چهارشنبه 10 مرداد 1386, 12:22 عصر
این هم کدش :

{+++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++
1. create new blank field in dbgrid
2. rename the title with 'No'
3. put this code in OnDrawColumncell
4. Now your Grid has a row number
++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++}

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if DataSource1.DataSet.RecNo > 0 then
begin
if Column.Title.Caption = 'No' then
DBGrid1.Canvas.TextOut(Rect.Left + 2, Rect.Top, IntToStr(DataSource1.DataSet.RecNo));
end;
end;

saeid_sazegar
چهارشنبه 10 مرداد 1386, 13:31 عصر
ممنون از لطفتون
ولی من قبلا این کد رو استفاده کردم در DBGrid جواب میده و ستون ردیف رو اضافه میکنه
ولی در DataSourse ثبت نمیشه یعنی هر زمان که گزارش چاپی میگیرم این ستون خالی چاپ میشه
من میخوام هم در DBGrid ثبت بشه هم در DataSourse که DBGrid به اون وصله

mojtaba_z
چهارشنبه 10 مرداد 1386, 15:32 عصر
سلام
یه مشکلی که داره اینه که وقتی رو اخرین رکورد باشیم و به پایین بریم یعنی رکورد جدید ایجاد کنیم در نتیجه دیگه چیزی نشون نمیده !!!

Batman
چهارشنبه 10 مرداد 1386, 17:20 عصر
با سلام
اگه درست متوجه شده باشم شما یه ردیف میخواین
خوب باید یه فیلد از نوع autonumber تعریف کنید (البته بسته به نوع database داره)
موفق باشید

ghabil
چهارشنبه 10 مرداد 1386, 17:24 عصر
از این راه استفاده کن (http://barnamenevis.org/forum/showthread.php?t=62859)

SYNDROME
چهارشنبه 10 مرداد 1386, 19:30 عصر
با سلام
می توانی فیلد از نوع Calulatedبسازی و سپس بر روی فیلد مورد نظر کلیک کرده و در رویداد OnGetTextآن مقدار RecNoمربوط به ADOرا در Textبریزی.
موفق باشی