PDA

View Full Version : نمایش محتویات فیلدهای جدول کد و ذخیره در جدول شرح در dbgrid در دلفی



sattar22
دوشنبه 29 مهر 1392, 12:02 عصر
با سلام
من روی یه برنامه انبارداری کار میکنم و یک جدول دارم بنام cod که فیلدهای codkala , sarhkala را دارد
در جدول دومی بنام sarh که فیلدهای codkala , sarhkala و... را دارد
من با adotable به جدولها وصل میشم و دوفیلد کد کالا و شرح کالا را با استفاده از new filed , lookup تعریف کرده و در جدول شرح اضافه میکنم و در یک dbgrid اضافه میکنم و محتویات فیلدهای جدول کد را هم میبینم
حال سوال اینجاست که من وقتی میخواهم کد کالا رو در dbgrid انتخاب کنم باید شرح کالا ی مربوط به ان هم نمایش داده بشه و بلعکس وقتی شرح را انتخاب می کنم کد مربوط به ان نیز نمایش داده شده و در جدول شرح بتوانم ذخیره نمایم
یعنی هر کالا برای خودش کد منحصربفردی دارد که همیشه باید با هم باشند
یک نمونه عکس هم قرار دادم112087
با کمال تشکر از دوستان

sattar22
چهارشنبه 01 آبان 1392, 12:22 عصر
مثل اینکه دیگه دلفی کار نداریم و یا از اینجا کوچ کردن ؟؟؟؟؟؟؟ ادمین جان تو هم نیستی

Mask
چهارشنبه 01 آبان 1392, 12:50 عصر
الان مشکل دقیقا کجاست؟

sattar22
چهارشنبه 01 آبان 1392, 14:34 عصر
gold عزیز
شبیه عکسی که گذاشتم وقتی که روی کد کالا کلیک کنم شرح مربوطه نیز دیده بشه و بتونم ذخیره کنم - و وقتی روی شرح کلیک کنم اطلاعات کد رو از جدول کد بیاره
یعنی دو فیلد کد و شرح همیشه بهم پیوسته باشند با انتخاب هر کدام اون یکی نیز دیده بشه
هر کالایی برای خودش کد منحصر بفرد دارد - پس باید همیشه با هم باشند

ehstrn2010
جمعه 03 آبان 1392, 09:01 صبح
کاری که می کنید کمی عجیبه! چون می تونید تو یه کمبو باکس با 2 ستون هر دو مقدار را نشون بدهید و فقط مقدار کد کالا را ذخیره کنید
در هر صورت به روش شما باید با توجه به نوع گرید در رخ داد آپدیت ستون مربوطه به کوئری برای به دست آوردن مقدار ستون دیگر اجرا کنید و خودتون مقدار دهی کنید.

sattar22
شنبه 04 آبان 1392, 15:22 عصر
درود بر دوست عزیز ehstrn2010
شاید سوالم رو جور دیگر بپرسم بهتر باشه
من میخواهم وقتی در سل های dbgrid بر روی کد کالا کلیک می کنم و کد رو پیدا می کنم شرح کالا نیز دیده بشه
و برعکس - یعنی کد و شرح تو جستجوهای بصورت lookup همیشه کنار هم باشند
در عکس گذاشته شده در ابتدای تایپیک نیز میتونید ببینید .
شاید هم در کل راهی که من میرم اشتباه هست؟؟؟؟؟؟؟؟؟

ehstrn2010
شنبه 04 آبان 1392, 18:59 عصر
اگر شرح کالا در جدول دوم شما وایسته به کد کالاست نیازی نیست مجددا آن را ذخیره کنید و با یک JOIN ساده از هر دو جدول می توان آن را نشان داد.
+ من پیشنهاد می کنم از DBGRID Ehlib استفاده کنید . ارزش یاد گیریش رو داره + می توانید در آن فیلد های کمبو باکسی بسازید که مقادیر PIcklist (کد کالا + شرح )آن نمایش داده شود و مقادیر متناظر با Keylist (کد کالا)آن در پایگاه ذخیره شود.

SELECT c.codkala, c.sarhkala, s.*
FROM cod AS c INNER JOIN sarh AS s ON c.codkala = s.codkala;


اما اگر نیاز به ذخیره شرح کالا دارید می توانید با یک کوئری Update آن را هم پر کنید:

UPDATE sarh INNER JOIN cod ON sarh.codkala = cod.codkala SET sarh.sarhkala = [cod].[sarhkala];


یا در رخ داد beforepost جدول مربوطه مقدار آن را به دست آورده و ثبت کنید
یا .........................

sattar22
دوشنبه 06 آبان 1392, 10:37 صبح
ehstrn2010 ممنونم از توضیحات
لطف کردین
یه سوال - من یک DBLookupComboBox1 و یک DBLookupComboBox2 دارم و هر دوی اینها رو بصورت lookup از جدول cod وارد جدول sarh کرده ام - اولی کد کالا و دومی شرح کالا است میخوام وقتی DBLookupComboBox1 را انتخاب می کنم در DBLookupComboBox2 نیز فیلد موجود در ان رکورد نشان داده بشه
مثلا کد 1000101 و شرح صفحه کلید
در box 1 وقتی 1000101 رو انتخاب کردم در باکس 2 هم صفحه کلید نمایان بشه

یوسف زالی
دوشنبه 06 آبان 1392, 11:50 صبح
KeyValue هاشون رو ست کنید.

sattar22
دوشنبه 06 آبان 1392, 23:32 عصر
DBLookupComboBox2.KeyValue := DBLookupComboBox1.ListSource.DataSet.FieldByName(D BLookupComboBox1.KeyField).Value;
????????????
من اینو نوشتم اما جواب نداد ؟