ثامر أبو بلقيس
28-03-2014, 12:18 AM
السلام عليكم
جرب أخي الترتيب في عنصر Grid باستعمال الكود
Grid.SortTextItems("Grid1", 0, true, true);
على أن القيمة true مسؤولة عن الترتيب تنازلي أو تصاعدي
لكن هذا الترتيب موجه للنصوص وليس للأرقام
ويعطيك نتائج خاطئة عند استعمال أرقام
ما الحل ؟
قد تكون تمتلك حلا أو فكرة لذلك فهذا مادار في ذهني إلى غاية المشاركة بحلول أجمل
وهو أن أأخذ الرقم و أضيف للأرقام ذات منزلة حرف a
و الارقام ذات منزلتين أضيف لها حرف b
و أستمر في العملية حسب المجال العددي الذي أريده
ثم يتم الترتيب على أساس نصوص بعدها مباشرة أحذف
الحروف فتبقى الأرقام مرتبة ترى هل هذا ممكنا ؟؟
جرب مايلي
x=0------------------------------------------------------------------------------------------
p=Grid.GetRowCount("Grid1");-----------------------------------------------------------------
for i=x,p do c= Grid.GetCellText("Grid1", i, 0);c = String.ToNumber(c);----------------------
if c < 10 then Grid.SetCellText("Grid1", i, 0, "a"..c, true);--------------------------------
elseif c >=10 and c<= 99 then Grid.SetCellText("Grid1", i, 0, "b"..c, true);----------------
elseif c >=100 and c<= 999 then Grid.SetCellText("Grid1", i, 0, "c"..c, true);--------------
elseif c >=1000 and c<= 9999 then Grid.SetCellText("Grid1", i, 0, "d"..c, true);------------
elseif c >=10000 and c<= 99999 then Grid.SetCellText("Grid1", i, 0, "e"..c, true);----------
elseif c >=100000 and c<= 999999 then Grid.SetCellText("Grid1", i, 0, "f"..c, true);--------
elseif c >=1000000 and c<= 9999999 then Grid.SetCellText("Grid1", i, 0, "g"..c, true);------
end end ------
Grid.SortTextItems("Grid1", 0, true, true); ------
for u=x,p do ------
y= Grid.GetCellText("Grid1", u, 0); --abou_belkiss alger le 26-03-2014 ------
n = String.Mid(y, 1, 1); ------
c = String.Replace(y, n, "", false); ------
Grid.SetCellText("Grid1", u, 0, c, true); ------
end------------------------------------------------------------------------------------------ ------
والله الموفق و المعين :abc_138:
تذكرونا بالدعاء
جرب أخي الترتيب في عنصر Grid باستعمال الكود
Grid.SortTextItems("Grid1", 0, true, true);
على أن القيمة true مسؤولة عن الترتيب تنازلي أو تصاعدي
لكن هذا الترتيب موجه للنصوص وليس للأرقام
ويعطيك نتائج خاطئة عند استعمال أرقام
ما الحل ؟
قد تكون تمتلك حلا أو فكرة لذلك فهذا مادار في ذهني إلى غاية المشاركة بحلول أجمل
وهو أن أأخذ الرقم و أضيف للأرقام ذات منزلة حرف a
و الارقام ذات منزلتين أضيف لها حرف b
و أستمر في العملية حسب المجال العددي الذي أريده
ثم يتم الترتيب على أساس نصوص بعدها مباشرة أحذف
الحروف فتبقى الأرقام مرتبة ترى هل هذا ممكنا ؟؟
جرب مايلي
x=0------------------------------------------------------------------------------------------
p=Grid.GetRowCount("Grid1");-----------------------------------------------------------------
for i=x,p do c= Grid.GetCellText("Grid1", i, 0);c = String.ToNumber(c);----------------------
if c < 10 then Grid.SetCellText("Grid1", i, 0, "a"..c, true);--------------------------------
elseif c >=10 and c<= 99 then Grid.SetCellText("Grid1", i, 0, "b"..c, true);----------------
elseif c >=100 and c<= 999 then Grid.SetCellText("Grid1", i, 0, "c"..c, true);--------------
elseif c >=1000 and c<= 9999 then Grid.SetCellText("Grid1", i, 0, "d"..c, true);------------
elseif c >=10000 and c<= 99999 then Grid.SetCellText("Grid1", i, 0, "e"..c, true);----------
elseif c >=100000 and c<= 999999 then Grid.SetCellText("Grid1", i, 0, "f"..c, true);--------
elseif c >=1000000 and c<= 9999999 then Grid.SetCellText("Grid1", i, 0, "g"..c, true);------
end end ------
Grid.SortTextItems("Grid1", 0, true, true); ------
for u=x,p do ------
y= Grid.GetCellText("Grid1", u, 0); --abou_belkiss alger le 26-03-2014 ------
n = String.Mid(y, 1, 1); ------
c = String.Replace(y, n, "", false); ------
Grid.SetCellText("Grid1", u, 0, c, true); ------
end------------------------------------------------------------------------------------------ ------
والله الموفق و المعين :abc_138:
تذكرونا بالدعاء