ورود

View Full Version : Sort کردن خاص در یک Dbgrid !!



mosharecat
یک شنبه 20 مرداد 1387, 11:59 صبح
با سلام من تو یه جدول (اکسس ) چند تا فیلد دارم( امتیاز ، علامت { + و 0 و -} ، زمان و...) حالا میخوام اونو به صورت نزولی سورتش کنم کاری هم که کردم این هستش : اول اونو بصورت نزولی(روی فیلد امتیاز) سورت کردم حالا چون فیلد بالایی از پایینی حتما بزرگتره و پایینی هم از بالایی بزرگتره پس تنها امکان مساوی بودنشون میمونه حالا کاریکه میمونه این هستش که در صورت مساوی بودن امتیازها باید به فیل علامتشون نگاه کنیم تا ببینیم نوع امتیاز مثبت یا منفی ویا خنثی است ؟ و به اصطلاح اونو باید بر اساس فیلد علامت همونجا سورت کنیم و اگه اینکارو بکنیم ترتیب(بر اساس فیلد امتیاز) به هم میخوره و تنها راهی که میمونه پیمایش هستش که با یه متغیر Temp جای اونها رو عوض کنیم و بعدش Save کنیم ولی عیب اینکار هم اینه که چون فیلد زیاده باید براهمشون temp بگیریم و کلا روش جالبی نیس ؟ آیا راه حلی به نظرتون میرسه ؟ آیا میشه از یه ردیف تا یه ردیف دیگه رو (صرفا) تو dbgrid سورت کرد ؟ (و البته این هم بگم که اگه علامت امتیازها یکی بود بسراغ فیلد زمان میریم و بر اساس زمان کمتر اونها را جابجا (سورت) باید بکنیم ) لطفا با کد راهنماییم بفرمایین از همه دوستان کمال تشکر رو دارم ...

amin_alexi
یک شنبه 20 مرداد 1387, 12:58 عصر
سلام
از جدول مربوطه یک View بساز و 2 فیلد امتیاز و علامت رو با هم یک فیلد کن ...
و سورت رو ، رو اون انجام بده ...
View برای این موقع ها خوبه !

mosharecat
یک شنبه 20 مرداد 1387, 13:31 عصر
میشه بفرمایین چطوری باید View بسازم ؟ و ازش استفاده کنم ؟

SYNDROME
یک شنبه 20 مرداد 1387, 21:27 عصر
دو تا فیلد مورد نطر را با هم جمع کنید و تحت عنوان یک فیدل نمایش دهید.


Select (Field1+' '+Field2) as Field2
From Tbl_Test

موفق باشید

mosharecat
دوشنبه 21 مرداد 1387, 17:24 عصر
با سلام ... ضمن تشکر از دوستان که کمک کردن الان یه مشکل دیگه وجود داره :
همونطور که گفتین 2 تا فیلد امتیاز و علامتو ترکیب کردم و به صورت نزولی سورت شد اما فیلد امتیاز سورتش باید کوچکتر به بزرگتر باشه ( صعودی ) یعنی وقتی هم امتیازها و هم علامتها یکی شد اونیکه زمان کمتری داره باید بالاتر قرار بگیره یکی از دوستان گفتن که باید سورت تو در تو بنویسم میشه بگین چطور میشه با Ado اینکار و کرد ؟ !!! ... لطفا کمک کنین ... مرسی ار همه شما عزیزان ...

SYNDROME
دوشنبه 21 مرداد 1387, 21:02 عصر
دستور فوق را به شکل یک view در بیاورید و سپس آن را سورت کنید یا به شکل زیر عمل کنید.


Select *
From (Select (Field1+' '+Field2) Field3
From Tbl_Test
) as Table1
Order By Field3

موفق باشید