PDA

View Full Version : درمورد نمایش اطلاعات در dbgrid



حمیدرضاصادقیان
یک شنبه 28 مرداد 1386, 10:42 صبح
سلام دوستان.میخواستم ببینم آیا امکان داره هنگامی که اطلاعات را در dbgrid نمایش میدهیم دو ردیف اول رو خالی قرار بدیم که اگر مثلا دیتایی باشرایط خاص بود در دو ردیف اول باشه بقیه ردیفها هم بقیه اطلاعات نمایش داده بشن.این کارو با String grid انجام دادم ولی میخوام با dbgrid انجام بدم.یعنی به طور پیش فرض همیشه دو ردیف اول گرید خالی باشه اگر مثلا در داده هام یک شرط خاصی وجود داشت اون اطلاعات رو در دو ردیف اول قرار بدم بقیه اطلاعات رو هم در ادامه به نمایش بگذارم.

Batman
یک شنبه 28 مرداد 1386, 10:47 صبح
با سلام
دوست عزیز شما میتونید روی dbgrid دوبار کلیک کنید و در پنجره باز شما فیلدهایی رو که نمیخواین نمایش بدین رو حذف کنید اگر هم به صورت runtime خواستید انجام بدید بگید تا کدش رو براتون بذارم
موفق باشید

حمیدرضاصادقیان
یک شنبه 28 مرداد 1386, 14:12 عصر
ممنون.دوست عزیز ببینید این کار رو بلدم.منظورم اینه که من میخوام دیتایی که میخوام در گرید نمایش بدم از ردیف سوم به بعد نمایش بدم.نه از همون ردیف اول.مثلا جدول من دو ردیف اولش خالی باشه و هر اطلاعات دیگه ایی که خواستم در داخل اون قرار بدم.ببینید در داخل string grid ما داخل یک حلقه دیتا ها رو داخل گرید لود میکنیم و میتونیم انتخاب کنیم دیتاها از کدام ردیف شروع به بارگذاری شود.بعد نیاز هست در ردیف 1 یک اطلاعات دیگر باشد باز با ارجاع دادن به ردیف اول اطلاعات درخواستی رو لود میکنیم.

SYNDROME
یک شنبه 28 مرداد 1386, 14:38 عصر
با سلام
فکر کنم بتوانی ازفیلدهای Calculated استفاده کنی.
برای اطلاعات بیشتر در سایت جستجو کنید.
موفق باشید

حمیدرضاصادقیان
یک شنبه 28 مرداد 1386, 16:19 عصر
درسایت چیز جالبی نتونستم پیدا کنم اگه میشه بیشتر راهنمایی کنید.

SYNDROME
یک شنبه 28 مرداد 1386, 19:53 عصر
با سلام
1-بر روی ADOدابل کلیک کن.
2-سپس راست کلیک کن و NewFieldرا انتخاب کن.
3-نام فیلد و نوع آن را مشخص کن.
4-سپس Field Typeرا از نوع Calculatedرا انتخاب کن.
5-Okرا کلیک کن.
6-حالا بر روی فیلد مورد نظر کلیک کن و در قسمت Eventگزینه OnGetTextرادابل کلیک کنید.
7-حالا می توانید مقادیر مورد نظر را در آن تحت شرایط خاص اضافه کنید.
مثلا:


IF ADO.RecNo = 10 Then
Text := 'خط شماره 10';

موفق باشید

حمیدرضاصادقیان
سه شنبه 30 مرداد 1386, 14:36 عصر
دوست عزیز ممنون.ولی این نیست. من میخوام اگر در جوابم مثلا عدد شماره 2 دیدم در خط اول و دوم گرید چاپ کنم.یعنی در ردیف دوم گرید نمایش بدم.

SYNDROME
چهارشنبه 31 مرداد 1386, 14:56 عصر
با سلام
می توانید مقدار مورد نظر را به جای شماره خط به فیلد Calخود نسبت دهید.
موفق باشید

حمیدرضاصادقیان
پنج شنبه 01 شهریور 1386, 00:14 صبح
یعنی چی؟ اخه من اگه فیلد cal استفاده کنم یک ستون به اون فیلد اختصاص داده میشه در صورتی که من میخوام مقدارم در یک جای خاص گرید نمایش داده بشه.


stringgrid1.cells[1,2]:='test';'

ببین دوست عزیز این دستور در String grid در سطر اول و ستون دوم Test رو چاپ میکنه حالا من بخوام همین کار رو در گرید انجام بدم باید چکار کنم؟

dkhatibi
جمعه 02 شهریور 1386, 10:37 صبح
اگر column ها را در زمان اجرا تعیین کنی می شه.
مثلا اگر 5 تا فیلد داری 7 تا بگذار و فیلدها را از ستون سه نسبت بده.

vcldeveloper
جمعه 02 شهریور 1386, 12:53 عصر
عزیزان، این بنده خدا در 10 پست گذشته زبانش مو در آورد که منظورش سطر است، نه ستون (!!) ولی ظاهرا باز هم دوستان متوجه مطلب نشدند. ایشان می خواهند که در زمان نمایش داده ها در Grid، دو سطر (Row) اول Grid خالی باشد و نمایش رکوردها از سطر سوم شروع شود. این مطلب ربطی به نوع و تعداد فیلدها ندارد. در یک Grid فیلدها بصورت ستون نمایش داده می شوند، نه سطر.
امیدوارم توانسته باشم منظور ایشان را برسانم.

حمیدرضاصادقیان
شنبه 03 شهریور 1386, 09:05 صبح
سلام .ظاهرا اینجا یکی متوجه منظور ما شد. اگه میشه لطفا یک راهنمایی بکنید.ممنون میشم.

حمیدرضاصادقیان
یک شنبه 04 شهریور 1386, 14:32 عصر
آیا میشه از طریق کلاس Tcustomgrid اینکارو انجام داد.چون یک function داشت ولی در helpدلفی نوشته بود که برنامه نمی تواند به اون دسترسی داشته باشه.