View Full Version : مرتب سازی دیتا گرید
conter
شنبه 08 آبان 1389, 18:18 عصر
سلام دوستان والا من خیلی در مورد این پست سرچ کردم ولی چیزی پیدا نکردم واسه همین این تاپیکو باز کردم دوستان واسه اینکه مثلا یک دیتا گرید براساس شماره ردیف مرتب شه باید چیکار کرد دستور مرتب سازی داره ؟
مثلا من داشتم از توی برنامه رکورد ها مو وارد میکردم که مثلا یک ردیف جا انداختم مثلا به جای ردیف 5 زدم 6 حالا ردیف 5 رو هم وارد کردم ولی اومده بعد از 6 حالا کدی هست که بشه اینو مرتب کرد؟
Javad-2010
شنبه 08 آبان 1389, 18:25 عصر
دوست عزیز؛
از دستور Sort استفاده کن:
db.Recordset.Sort = "Field_01"
conter
شنبه 08 آبان 1389, 21:36 عصر
دوست عزیز من این کدی گه گفتی به این شکل نوشتم توی قسمت فرم لود اما جوابی نگرفتم :
Private Sub Form_Load()
Set DataGrid1.DataSource = Adodc2
DataGrid1.Refresh
Adodc2.Recordset.Sort = field_01
End Sub
shoeyb1990
شنبه 08 آبان 1389, 22:09 عصر
دوست عزیز من این کدی گه گفتی به این شکل نوشتم توی قسمت فرم لود اما جوابی نگرفتم :
Private Sub Form_Load()
Set DataGrid1.DataSource = Adodc2
DataGrid1.Refresh
Adodc2.Recordset.Sort = field_01
End Sub
اول یه Buton بزار که هر بار که چیزی رو تغییر دادی بتونی دوباره مرتبش کنی بعد هم این کد رو داخلش وارد کن
َAdodc2.refresh
Adodc2.Recordset.Sort = ("field_01")
Javad-2010
یک شنبه 09 آبان 1389, 07:07 صبح
اول یه Buton بزار که هر بار که چیزی رو تغییر دادی بتونی دوباره مرتبش کنی بعد هم این کد رو داخلش وارد کن
َAdodc2.refresh
Adodc2.Recordset.Sort = ("field_01")
همینطور که دوستمون توضیح دادن عمل کن مشکلت حل میشه و حتماً نام فیلد مورد نظر مثل Field_01 بین "" باشد.
conter
یک شنبه 09 آبان 1389, 13:51 عصر
دوستان من کارای رو که گفتین به این ترتیب به کار بردم اما به محض زدن دکمه این خطا رو میده :
کد :
Private Sub Command1_Click()
Adodc2.Refresh
Adodc2.Recordset.Sort = ("field_01")
End Sub
خطا :
Javad-2010
یک شنبه 09 آبان 1389, 15:08 عصر
دوست عزیز؛
برنامهات را بذار تا چک بکنیم،
conter
دوشنبه 10 آبان 1389, 12:28 عصر
اینم برنامه
Javad-2010
دوشنبه 10 آبان 1389, 13:16 عصر
دوست عزیز؛
مطمئنی که تمام فایلهای موردنیاز برنامهات را گذاشتی؟
59438
conter
دوشنبه 10 آبان 1389, 15:19 عصر
شرمنده حالا ببین درست شد؟
dataking
دوشنبه 10 آبان 1389, 15:23 عصر
بعد از sort باید refresh کنی
Javad-2010
دوشنبه 10 آبان 1389, 15:45 عصر
دوستان من کارای رو که گفتین به این ترتیب به کار بردم اما به محض زدن دکمه این خطا رو میده :
کد :
Private Sub Command1_Click()
Adodc2.Refresh
Adodc2.Recordset.Sort = ("field_01")
End Subخطا :
دوست عزیز؛
به جای field_01 بنویس radif تا مشکلت حل بشه.
conter
چهارشنبه 12 آبان 1389, 23:17 عصر
خیلی خیلی ممنون دوست عزیز فقط یک مشکل دیگه باقی مونده که این هستش که وقتی داده ای رو به دیتا بیس اضافه میکنم وقتی میام روی فرم اصلی و ریفریش میدم ... اون داده تازه اضافه شده رو نشون نمیده حتما باید یک بار برنامه بسته شه و از اول اجرا شه خودت هم که برنامه رو دیدی نمایش دیتا بیس با دیتا گریده ....
Javad-2010
پنج شنبه 13 آبان 1389, 00:20 صبح
خیلی خیلی ممنون دوست عزیز فقط یک مشکل دیگه باقی مونده که این هستش که وقتی داده ای رو به دیتا بیس اضافه میکنم وقتی میام روی فرم اصلی و ریفریش میدم ... اون داده تازه اضافه شده رو نشون نمیده حتما باید یک بار برنامه بسته شه و از اول اجرا شه خودت هم که برنامه رو دیدی نمایش دیتا بیس با دیتا گریده ....
دوست عزیز؛
کد زیر را به کدهای دستور "بازگشت" اضافه کن:
Form1.Adodc2.Refreshکه به این صورت میشود:
Private Sub back_Click()
Form1.Visible = True
Form2.Visible = False
Adodc1.Refresh
Form1.Adodc2.Refresh
End Sub
conter
جمعه 14 آبان 1389, 12:50 عصر
ممنون دوست عزیز ولی یک سوال دیگم هم در این مورده توی فرم 2 یا اضافه و حذف وقتی میخوای چیزی اضافه کنی هنگامی که سوالات input box میان اگه یکیشون رو کنسل کنی سوال های بعدی بازم پرسیده میشه و در اخر خطا میده و برنامه باید بسته شه این مشکل رو میشه حل کرد ؟؟؟
راستی توی قسمت input box اگر دقت کرده باشید من نوشته های سوالام اینگلیسیه چون فونت فارسی درست ساپورت نمیکنه میشه بگید از کجا میتونم درستش کنم که فارسی بشه کامل حتی نواری که اطلاعات رو وارد میکنیم اگه الان فارسی بنویسیم حروف خرچنگ قورباغه نشون میده
Javad-2010
جمعه 14 آبان 1389, 14:28 عصر
دوست عزیز؛
به نظر من بهتره که برای بحث "اضافه کردن" از یه فرم استفاده کنید، به این صورت که یک فرم درست کنید که در آن یکسری Label , TextBox باشد و کاربر در آن اطلاعات خود را وارد کند و در آخر یک کلید تأیید باشد که اگر کاربر کلید تأیید را زد، اطلاعات داخل TextBox ها در بانک ذخیره شود.
conter
جمعه 14 آبان 1389, 20:05 عصر
دوست عزیز من این کارو قبلا کرده بودم ولی مشکلش این بود که وقتی دکمه اضافه رو میزدی برنامه تمام تکست باکس ها رو خالی میکرد وقتی ما مثلا همه رو پر میکردیم باید حتما روی دکمه قبلی یا بعدی میزدیم تا نتیجه کار رو میدیدیم و 2 بار هم نمیشد روی دکمه اضافه کلیک کرد اگه بتونی منو راهنمایی کنی که اول ما با زدن یک دکمه تمام تکست باکس ها رو خالی کنیم بعد اطلاعات رو وارد کنیم و بعد بزنیم اضافه ممنونت میشم ...
conter
جمعه 14 آبان 1389, 20:42 عصر
اقا دوست عزیز ببین من به این روشی که میگفتم برنامه رو تغییر دادم اینم برنامه یک نگاه بنداز نظرتو بگو ببین مشکلی داره ؟
Javad-2010
شنبه 15 آبان 1389, 07:59 صبح
دوست عزیز؛
1- در Properties تکستباکسهای فرم2 قسمتهای DataField و DataSource را خالی بگذاز.
2- برای کلید ثبت از کد زیر استفاده کن:
Adodc1.Refresh
Adodc1.Recordset.AddNew
Adodc1.Recordset("factor number") = Text1.Text
Adodc1.Recordset("radif") = Text2.Text
Adodc1.Recordset("detail") = Text4.Text
Adodc1.Recordset("meghdar") = Text5.Text
Adodc1.Recordset("takhfif") = Text6.Text
Adodc1.Recordset("price") = Text3.Text
Adodc1.Recordset.Update
Adodc1.Refresh
Text1.Text = ""
Text2.Text = ""
Text4.Text = ""
Text5.Text = ""
Text6.Text = ""
Text3.Text = ""
Javad-2010
شنبه 15 آبان 1389, 08:02 صبح
دوست عزیز؛
یک مورد دیگر اینکه، نباید بگذاری که کاربر رکورد تکراری ثبت کند.
conter
شنبه 15 آبان 1389, 14:14 عصر
رکورد تکراری رو مثلا وقتی 2 تا رکورد با شماره ردیف یکسان وارد کنیم خود برنامه بسته میشه فک کنم همین کافیه ؟ توی کد بالا هم دوست عزیز من میخوام که کاربر بتونه توی رکورد ها گشت بزنه و بتونه رکورد دلخواهشو پاک کنه تو میگی من data field , data source رو از تکست باکس ها پاک کنم خوب دیگه کاربر نمیتونه رکورد ها رو ببینه ....
Javad-2010
شنبه 15 آبان 1389, 14:51 عصر
دوست عزیز؛
رکورد تکراری رو مثلا وقتی 2 تا رکورد با شماره ردیف یکسان وارد کنیم خود برنامه بسته میشه فک کنم همین کافیه ؟
وقتی کاربر میخواهد رکورد تکراری ثبت کند، برنامه نباید بسته شود، بلکه باید پیغام خطا بدهد.
توی کد بالا هم دوست عزیز من میخوام که کاربر بتونه توی رکورد ها گشت بزنه و بتونه رکورد دلخواهشو پاک کنه تو میگی من data field , data source رو از تکست باکس ها پاک کنم خوب دیگه کاربر نمیتونه رکورد ها رو ببینه ....
برای این کار هم بهتره از DataGrid استفاده کنید.
programming70
دوشنبه 24 آبان 1389, 16:10 عصر
درود بر تو دوست برنامه نویس من;
دوستان برنامه نویسه ما همه چیز رو بیان کردن و مشکل شما باید حل شده باشه;
یه سری نکات کلیدی رو به شما عرض میکنم همیشه در همه برنامه هاتون به یاد داشته باشید;
برای وارد نشدن فیلد تکراری ، در ابتدای برنامه ای که عملیات ثبت را انجام میده یه سرچ برای فیلد هایی که نباید تکراری باشند بزارین ، و وقتی که همه فیلد های مهم تکراری بودن پیغامی مبنا بر تکراری بودن ارسال کنه ;
در انتهای برنامه ثبت کد های مرتب سازی رو قرار بدین و Refresh کردن یادتون نره تا جدول و بانکتون رو با هم به روز رسانی کنه و همه چیر مرتب و تمیز باشه;
برای مرتب سازی کلیدی ، قسمتی جدا طراحی کنید که بر اساس فیلد های مورد نیاز مرتب سازی بشن به عنوان مثال : بر اساس نام ، نام خانوادگی ، کد یا .... که کار بر بتونه بر اساس چیزی که نیاز داره کارش رو انجام بده;
برای جستجو کردن هم اگر بر اساس همون فیلد های خاص و مهم اگر جست جو بزارید کار کاربرتون رو راحت تر میکنید .
امید وارم مثل همیشه برنامه هایی قوی و پر قدرت بنویسید .
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.