PDA

View Full Version : مبتدی: عمل ضرب یا تقسیم در DBGrid



pandco
سه شنبه 04 آذر 1393, 09:22 صبح
با سلام

یه دی بی گرید دارم که 3 تا فیلد داره میخوام وقتی تو فیلد اولی و دومی هر چی تایپ کردم همون لحظه جواب تو سومی ضرب یا جمع بشه. مشکلم اینه که تا اون رکورد ذخیره نشه نمیتونم مقدارهای فیلد اول و دوم رو بدست بیارم و تو سایت گشتم جایی از دوستان نوشته بود که وقتی تو دی بی گرید تایپ میکنیم تا اون رکورد ذخیره نشه اطلاعات تو یه بخش local ذخیره میشه بعد که به رکورد بعدی رفت اطلاعات تو دیتابیس ذخیره میشه. حالا چطوری میتونم وقتی تو دی بی گرید تایپ میکنم همون لحظه اطلاعات رو تو یه متغییر ذخیره کنم ؟

با تشکر از دوستان

farshad_shams
سه شنبه 04 آذر 1393, 10:31 صبح
از رویداد DrawDataCell استفاده کن. این رویداد مثل KeyPress نیست مثل OnExit عمل میکنه یعنی وقتی مقدار وارد شد و رفتی به فیلد بعد میتونی ازون استفاده کنی.

موفق باشی

pandco
سه شنبه 04 آذر 1393, 10:35 صبح
ممنون دوست عزیز

امکان داره همون لحظه که تایپ میکنم اعمال بشه مثل رویداد onchange ادیت باکس . با کد زیر مقدار رو میگیرم آیا درسته ؟

a:= dbgrid1.columns[1].fields.value

farshad_shams
سه شنبه 04 آذر 1393, 12:26 عصر
امکان داره همون لحظه که تایپ میکنم اعمال بشه مثل رویداد onchange ادیت باکس .
به نظرم بشه. از رویداد
KeyPress استفاده کن. ولی قبلش باید شرط بذاری ببینی که آیا کاربر داره مقدار برای فیلد مورد نظر شما وارد میکنه یا نه.
البته بهتر بود برای ورود اطلاعات از Edit یا DBEdit استفاده می کردی اینجوری کارت هم ساده تر میشد. DBGrid بیشتر برای نمایش اطلاعات استفاده میشه نه ورود اطلاعات

یوسف زالی
سه شنبه 04 آذر 1393, 12:56 عصر
از رویداد DrawDataCell استفاده کن

چه ربطی به این رویداد داره؟؟؟؟؟؟

farshad_shams
سه شنبه 04 آذر 1393, 14:59 عصر
چه ربطی به این رویداد داره؟؟؟؟؟؟


هر بار که یک فیلد پر بشه یکبار DrawDataCell اتفاق میفته و میشه آخرین مقداری که اضافه شده رو از Field داخل پروسیجر DrawDataCell بدست آورد.

یوسف زالی
سه شنبه 04 آذر 1393, 15:12 عصر
رویداد مورد نظر برای کشیدن به کار می ره و جمله شما اشتباهه. اگر اسکرول کنید، کلیک کنید، رسم کنید، و ... ممکنه این رویداد کال بشه.
رویداد درست استفاده از رویداد OnChange در دیتاست مرتبط هست نه گرید. باید فیلد محاسباتی در دیتاست افزوده بشه. اصلا نباید به گرید دست زده بشه.