ورود

View Full Version : نحوه استفاده از فیلدهای code شده ؟



mojtaba_z
جمعه 12 بهمن 1386, 21:10 عصر
سلام
توی دیتابیس Access یک جدول دارم که شامل 4 تا فیلد هست و یکی از اونها کد شده میباشد. یعنی موقعی که اطلاعات توی اون فیلد میخواد ذخیره بشه باید اول با یک الگوریتی کد بشه و سپس توی دیتابیس ذخیره شود. حالا من توی یک DBGrid تمامی اطلاعات جدول رو نشون دادم.
1- چطوری وقتی اطلاعات توی DBGrid نشون داده میشه ، توی اون فیلد کد شده از DBGrid ، اطلاعات بصورت Decode نمایش پیدا کنه ؟
2- وقتی اطلاعات اون فیلد تغییر پیدا میکنه ، همزمان توی دیتابیس ابتدا Code و سپس ذخیره بشه ؟

SYNDROME
جمعه 12 بهمن 1386, 21:44 عصر
می توانی برای نمایش آن در DBGrid
1-از فیلد Calculate استفاده کنی.
2-قبل از نمایش اطلاعات را در یک جدول Decode کنی و سپس نمایش دهی.
برای کد کردن هم می توانی.
1-رکوردها را یکی یکی کد کنی و سپس در بانک ذخیره کنی.
2- در رویداد BeforePost اطلاعات را کد کنی و ذخیره کنی.
موفق باشید

mojtaba_z
شنبه 13 بهمن 1386, 07:30 صبح
سلام
من یک فیلد Calculate ایجاد کردم و توی رویداد onCalc ، اطلاعات رو Decode میکنه. ولی مشکل اینجاست که اطلاعات Decode شده که توی DBGrid نشون داده میشن رو نمی توان تغییر داد (چون فیلد از نوع Calc هستش) ؟

SYNDROME
شنبه 13 بهمن 1386, 14:58 عصر
سلام
من یک فیلد Calculate ایجاد کردم و توی رویداد onCalc ، اطلاعات رو Decode میکنه. ولی مشکل اینجاست که اطلاعات Decode شده که توی DBGrid نشون داده میشن رو نمی توان تغییر داد (چون فیلد از نوع Calc هستش) ؟
خوب از یک جدول موقت استفاده کنید تا راحتر بتوانید عمل تغییر را انجام دهید.
موفق باشید

vcldeveloper
یک شنبه 14 بهمن 1386, 02:16 صبح
من یک فیلد Calculate ایجاد کردم و توی رویداد onCalc ، اطلاعات رو Decode میکنه. ولی مشکل اینجاست که اطلاعات Decode شده که توی DBGrid نشون داده میشن رو نمی توان تغییر داد (چون فیلد از نوع Calc هستش) ؟
عبارت OnGetText یا OnSetText را در بخش دلفی جستجو کنید.

mojtaba_z
چهارشنبه 17 بهمن 1386, 07:41 صبح
سلام
از OnGetText و OnSetText استفاده کردم و مشکلم حل شد. ولی یه مسئله دیگه بوجود اومد و اون اینه که : وقتی روی ADOQuery و فیلد مورد نظر فیلتر میکنم چیزی نشون نمیده ؟!
یعنی مقدار نمایش داده شده در Grid که توسط OnGetText برگردونده میشه رو توی فیلترم قرار میدم . برای این مورد چکار باید بکنم ؟

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

vcldeveloper
چهارشنبه 17 بهمن 1386, 11:57 صبح
متنی که در OnSetText و OnGetText ایجاد می کنید فقط برای نمایش مقدار فیلد به کاربر مفید هست، از اون متن در Filter نمی تونید استفاده کنید، چون Filter با داده واقعی فیلد کار داره، یعنی باید برای فیلتر کردن باید مقدار کد شده فیلد - همونی که در بانک ذخیره شده - را به Filter بدید.