PDA

View Full Version : ایجاد یک فیلد LookUp و استفاده از آن در DBGrid



Sadegh_S
سه شنبه 10 تیر 1382, 12:22 عصر
من یک فیلد کد کالا دارم که شرح کالا درون یک جدول دیگر قرار دارد .

کاربر اطلاعات جدول اصلی را درون یک DBGrid وارد می کند . می خواهم وقتی کاربر قصد انتخاب کالا را دارد بتواند کالا را از یک ComboBox انتخاب کند. و کد کالا درون جدول اصلی قرار بگیرد .(مانند DBLookUpComboBox ها)
دیتابیس من SQL SERVER 2000 است و بوسیله ADO Query به جدول اصلی متصل شده ام.

از دوستانی که اطلاعی در این زمینه دارند درخواست کمک فوری دارم
از توجهتان بسیار متشکرم

amirrf
دوشنبه 16 تیر 1382, 11:14 صبح
یک فیاد Lookup تعریف کنید و آن را به کار ببرید.

Sadegh_S
دوشنبه 16 تیر 1382, 13:16 عصر
هر چه سعی کردم یک فیلد LookUp درست کنم نتوانستم . پیغام خطا می دهد که فیلد مورد نظر وجود ندارد و در بعضی مواقع حتی بقیه فیلدهای Query را هم پیدا نمی کند و در Grid نمایش نمی دهد .
کدی که آزمایش کردم این بود


Q_Asnad.ExecSQL;

sfLook:=TStringField.Create(Q_Asnad);
with sfLook do
begin
FieldName := 'Type_Sh';
FieldKind := fkLookup;
DataSet := Q_Asnad;
Name := 'Type_ShC';
KeyFields := 'Type_SH';
LookupDataSet := Q_Type_SH;
LookupKeyFields := 'Type_sh';
LookupResultField := 'Sharh_Sh';
Lookup := True;
Q_Asnad.FieldDefs.Add(sfLook. Name,ftString,40,false);
end;
Q_Type_SH.Open;
Q_Asnad.Open;


در صورت امکان اشکال کارم را بگویید یا کد لازم برای ایجاد آن را بنویسید.
جدول TAsnad درون Grid نمایش داده می شود و فیلد مورد نظر من Type_sh است که شرح این فیلد در جدول Q_Type_SH قرار دارد.

متشکرم

amirrf
دوشنبه 16 تیر 1382, 14:12 عصر
این فیلد را در زمان طراحی بسازید. روی دیتاست TAsnad دابل کلیک کنید تا DataSet Editor بیاید سپس New Field را انتخاب کنید و تنظیمات یک فیلد Lookup را انجام دهید.

(امید)
دوشنبه 16 تیر 1382, 15:46 عصر
با سلام

من تا به حال از lookup و new field اون طوری که دوست عزیزمون آقای رحمانی گفتن استفاده نکردم .
لطفا در مورد lookup و دیگر مزایای new field توضیحاتی بدید.

ممنون
امید

MKazemi
چهارشنبه 18 تیر 1382, 15:34 عصر
آخه عمو جون تو دیگه چرا؟ توضیح رو به بچه مبدن که سرش گرم بشه و دیگه سوال نکنه ولی آدم بزرگها میرن دنبال جواب تا جایی که دیگه راه بسته باشه و مجبور بشن از همکاری و راهنمایی بقیه استفاده کنند.
اما در کل این فیلدهای lookup و calculate خیلی مفید و خوشگلند حتما سری بهشون بزن و همینطور به eventی در tableها به نام oncalcfields
مثلا رو این فکر کن که تو یه table کد کاربرها رو داری ولی کاربر بدبخت مه نمیتونه هی کد حفظ کنه و از طرفی این کدها از table دیگه ای میاد که نام رو داره
تو میتونی با یه فیلد lookup یا محاسباتی این کار و کارهای مشابه رو انجام بدی اگه دیدی نشد بگو یه نمونه کوچولوش رو برات میفرستم :wink:
بای بای
پاینده باشید