مشاهده نسخه کامل
: اضافه کردن یک select به query
sara_she
15-09-2007, 10:24
سلام به دوستان
من تو یک فرم با نام فاکتور خرید یه dbgridدارم و یک combobox و یک دکمه
هر بار کاربر یکی از کالاهای لیست شده در combobox رو انتخاب میکنه و روی دکمه کلیک می کنه این کالای جدید همراه مشخصاتش به dbgrid اضافه می شه . در نهایت db gird شامل لیست کالاهایی است که تو یک فاکتور خرید برای کاربر نمایش داده شده است
کد به صورت زیر است:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
مشکل اینه که با هر بار کلیک فقط رکورد جدید نشون داده می شه و قبلی از dbgrid پاک می شه . راه حل چیه ؟
وقتی هم قسمت dm1.DataSource6.Edit رو فعال می کنم بار اول مشکلی نداره ولی وقتی برای کالای دوم روی دکمه کلیک می کنم ÷یغام می ده که دیتاست readonly است و نمی شه اونو تغییر داد
F A R H A D
15-09-2007, 17:57
سلام
query ها برای انجام پرس و جو استفاده میشن و معمولا قابلیت insert , delete , edit ندارند. لا اقل query از تب BDE که اینجوری هست. اما با IBQuery کار نکردم. بهتره که برای inset , edit , delete از IBTable استفاده کنی.
sara_she
16-09-2007, 13:13
من نمی خوام چیزی به جدول بانکم اضافه کنم که از Ibtabel و متد Appned اون استفاده کنم
می خوام کاربر هربار که کالایی از لیست Combobox انتخاب می کنه اطلاعات اون کالا در Dbgrid که کنار اونه نشون داده بشه در واقع به Dbgrid اضافه بشه نه اینکه جای رکورد قبلی رو بگیره . در نهایت Dbgridشامل لیست کالاهایی است که کاربر قصد خرید اونها رو داره. این لیست زیر مجموعه ای از کل کالاهای تعریف شده در جدول بانک اطلاعاتی است
F A R H A D
16-09-2007, 23:50
ببخشید من منظور شما رو درست متوجه نشدم. البته شما هم بی تقصیر نیستی:
این کالای جدید همراه مشخصاتش به dbgrid اضافه می شه
اگر درست متوجه شده باشم شما میخوای نتیجه جستجوهای مختلف رو با هم داشته باشی. در واقع شما کنترل مناسبی رو برای این کار انتخاب نکردی چون dbgrid رابطه مستقیم با تغییرات dataset مربوطه داره. بهتره که نتیجه های جستجو رو توی Listbox یا StringGrid نمایش بدی.
sara_she
17-09-2007, 10:02
سلام
ممنون از راهنماییتون
ولی من یک سری فیلد اضافه دارم مثل ردیف کالا و مبلغ که از بانک مقدار نمی گیرند بلکه تو روال DBGrid1DrawColumnCell به اونا مقدار می دم . این کار رو با stringgridهم می شه انجام داد .
یه سواال دیگه هم داشتم : عنوان رو برای ستون های stringgrid چه طور تعریف می کنند؟
MasterData
17-09-2007, 13:49
اگه از دیتا بیس Sql استفاده میکنی از جدولهای موقت استفاده کن و گرنه توی اکسس یه جدول بساز و در هر بار محتویاتش رو پاک کن و رکورد جدید درج کنی
F A R H A D
17-09-2007, 14:57
سلام
ممنون از راهنماییتون
ولی من یک سری فیلد اضافه دارم مثل ردیف کالا و مبلغ که از بانک مقدار نمی گیرند بلکه تو روال DBGrid1DrawColumnCell به اونا مقدار می دم . این کار رو با stringgridهم می شه انجام داد .
سلام
فرقی نمیکنه، مهم خوندن اطلاعات از dataset هست
این کدی رو که نوشتم اطلاعات جدول شما رو به stringgrid اضافه میکنه اما برای جستجوهای بعدی، دوباره از اول ساخته میشه. نتونستم محتویات stringgrid رو حفظ کنم و اطلاعات جدیدی رو اضافه کنم. کد رو میذارم شاید مفید باشه:
جدولی که اینجا مثال زده شده، جدولی هست با 4 فیلد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
یه سواال دیگه هم داشتم : عنوان رو برای ستون های stringgrid چه طور تعریف می کنند؟
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای تنظیم عرض ستونها:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
F A R H A D
17-09-2007, 15:03
پس به احتمال زیاد stringgrid هم کار شما رو انجام نمیده و همونطوری که MasterData عزیز گفتن شما باید از یه جدول موقت استفاده کنی.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
sara_she
18-09-2007, 09:22
آقا فرهاد من نمی دونم کدی که شما گذاشتین برای کار با چه کاپوننت های بانک اطلاعاتیه . من با اینتر بیس کار می کنم. کد شمار و تست کردم ولی از قسمت Add فیلد ها خطا می گیره و ftstring و ftinteger رو نمی شناسه
کدی که خودم برای createگذاشتم خطایی نداره ولی موقع اجرا جدول ایجاد شده رو نمی شناسه یعنی از خط آخر که جدول رو فعال می کنم خطا می گیره ...
کد من :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
F A R H A D
18-09-2007, 13:27
برای استفاده از کدی که من گذاشتم باید از تب BDE یه TTable به فرم اضافه کنی.
چه خطایی میده؟ پیغام خطا رو بنویس
sara_she
19-09-2007, 12:13
این ttable به عنوان dataset کاربرد داره ؟ یعنی مثل ibtable در اینتربیسه؟
من که از کامپوننت های bde استفاده نمی کنم می تونم تنها ttable رو تنها داشته باشم؟
F A R H A D
19-09-2007, 14:15
بله به عنوان dataset کاربرد داره. با IBTable کار نکردم
اگر نشه یه جدول IB در زمان اجرا درست کرد، راه حل مشکل شما اینه که جدول دیگه ای دقیقا شبیه جدولی که جستجو رو روی اون انجام میدی از قبل طراحی کنی، و نتایج جستجو رو توی اون قرار بدی و با هر بار اجرای برنامه (FormCreate) جدول رو خالی کنی. موفق باشی
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.