ورود

View Full Version : یک سوال مفید در مورد dbgrid



mamarreza
چهارشنبه 06 اردیبهشت 1385, 15:25 عصر
من می خوام یه dbgrid داشته باشم که کاربر بتونه هر row رو چک کنه . این شکلی که هر row که روش کلیک شد یه تغییر بکنه که معلوم بشه چک شده.
مثلا میشه یه چک باکس چک بشه یا اینکه رنگ اون row عوض بشه. یا هر چیز دیگه
امیدوارم بتونید کمکم کنید.
من خودم می خواستم این کار رو با گذاشتن یک فیلد بولین در جدول درست کنم. ولی مساله اینه که دیتا سورس گرید من یه select query هست . واسه همین خود به خود read only میشه.
اگه میشه راه دیگری معرفی کنید.
به نظر من اگه راهی واسه تغییر رنگ row بعد از کلیک پیدا میشه خیلی بهتره

mzjahromi
چهارشنبه 06 اردیبهشت 1385, 16:06 عصر
من این کار رو با استفاده از ClientDataSet کردم.
ClientDataSet به Query وصل میشه. ولی با این تفاوت که دیگه ReadOnly نیست.
این کار رو من با استفاده از گذاشتن یک * در آخر رکورد انجام دادم. ولی ایده رنگ کردن هم جالبه.

mamarreza
پنج شنبه 07 اردیبهشت 1385, 10:02 صبح
میشه برام بیشتر توضیح بدین.

اخه من هر چی با clientdataset ور رفتم نفهمیدم که چجوری میشه به یه query وصلش کرد.
فقط توی Mastersource می شد یه datasource رو داد که وقتی من datasource اون query رو بهش دادم بازم نمی تونستم activesh کنم
یه سوال دیگه. چجوری dbgrid رو به این clientdataset وصل کنم.

mzjahromi
پنج شنبه 07 اردیبهشت 1385, 10:07 صبح
شما یه DataSet Provider بذار رو فرمت
خاصیت Dataset از DataSetProvider رو بذار Query1
خاصیت ProviderName از ClientDataSet رو بذار DataSetProvider1
خاصیت DataSet از DataSource رو بذار ClientDataSet1

موفق باشید

mamarreza
پنج شنبه 07 اردیبهشت 1385, 10:28 صبح
از راهنمایی هاتون خیلی متشکرم.
فکر کنم از اینکه یه آدم خنگ گیرتون افتاده به زودی خسته شید.

من همه کارهایی که فرموده بودید کردم. ولی توی برنامه وقتی query ران میشه توی dbgrid اطلاعات نمیاد. ممکنه به خاطر این باشه که query چند تا param داره و توی برنامه active میشه؟ و دیتا ها به دلیل رفرش نشدن نمیان؟

mzjahromi
پنج شنبه 07 اردیبهشت 1385, 10:33 صبح
در اینحالت شما باید ClientDataSet رو Open کنید نه Query رو.
در ضمن پارامترهای Query رو باید به ClientDataSet هم بشناسونید

mamarreza
پنج شنبه 07 اردیبهشت 1385, 11:55 صبح
خیلی خیلی خلیلی ممنونم .
خواهش می کنم اگه برای تغییر رنگ هم راهی پیدا کردید به پست اضافه کنید