إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

كيف يمكن ترتيب عناصر الجريد تصاعديا مثل الإيكسل

تقليص
هذا الموضوع مغلق.
X
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • كيف يمكن ترتيب عناصر الجريد تصاعديا مثل الإيكسل

    السلام عليكم ورحمة الله وبركاته
    لدى جريد به عدة حقول
    لو سمحتم اريد ارتب هذا الجريد تصاعديا على حسب احد الأعمدة التى بها بيانات كلها ارقام
    بحيث عند ترتيب العمود تترتب باقى الجريد على حسب العمود
    استخدمت
    كود PHP:
    Grid.SortTextItems("Grid1"0truetrue); 
    و هى ترتب كافة الجريد وفقا لعمود الترتيب
    لكنها لا ترتب الأرقام بشكل صحيح
    جربت كل بارومترات الدالة و لم تفلح

    كيف اعدل الدالة لترتب بشكل صحيح
    لو هناك دالة اخرى ففضلا دلونى عليها

    من فضلكم لو تكرمتم فمشروعى متوقف على هذه النقطة

  • #2
    بسم الله الرحمن الرحيم
    اخي العزيز
    شاهد هذا الموضوع
    http://sites.ienajah.com/vb2/showthread.php?t=32605

    ان شاء الله يفيدك

    تعليق


    • #3
      المشاركة الأصلية بواسطة ياسرهتهت مشاهدة المشاركة
      بسم الله الرحمن الرحيم
      اخي العزيز
      شاهد هذا الموضوع
      http://sites.ienajah.com/vb2/showthread.php?t=32605

      ان شاء الله يفيدك
      شكرا استاذ ياسر على الرابط

      بعد المشاهدة
      الرابط يشرح الترتيب التنازلى

      و انا ارغب فى الترتيب تصاعدى
      فما هى الطريقة لذلك ؟

      تعليق


      • #4
        البليجن له إصداران جاهزان
        الأول فقط منشور
        لو لم تكن توصلت لحل أطلعنى لتنزيل الإصدار الثانى
        كود PHP:
        MohagerGridsort.GridSort("Grid1"0true); 


        true تعادل تصاعدى
        false تعادل تنازلى

        منتظر ردك

        تعليق


        • #5
          إن شاء الله أجد وقت اليوم و أكتب لك الحل

          تعليق


          • #6
            السلام عليكم ورحمة الله وبركاته

            01 - أكتب في global functions
            كود PHP:
            function GridSortRange(strGridName,StartRow,StartColumn,EndRow,EndColumn,Desc)
            local tTmp = {}
            local nSRow StartRow
            local nSCol 
            StartColumn
            local nERow 
            EndRow
            local nECol 
            EndColumn
            local nComp 
            = -1
            if (Descthen nComp 1 end
            local swap 
            = function(a,b) return (String.CompareNoCase(a,b) == nCompend
             Grid
            .SetRedraw(strGridNamefalsefalse);
               for 
            c  nSCol nECol do 
                  for 
            nSRownERow do     
                     
            tTmp[r] = Grid.GetCellText(strGridNamerc)
                  
            end
                  table
            .sort(tTmp,swap)
                  for 
            index,value in ipairs(tTmp) do
                    
            Grid.SetCellText(strGridNameindexcvaluefalse);
                  
            end
                 tTmp 
            = {}
               
            end
               Grid
            .SetRedraw(strGridNametruetrue);
            end
            function GridSortRowsByColumn(strGridName,StartColumn,EndColumn,StartRow,EndRow,SortByColumn,Desc)
            local tTmp = {}
            local nSRow StartRow
            local nSCol 
            StartColumn
            local nERow 
            EndRow
            local nECol 
            EndColumn
            local nComp 
            = -1
            if(SortByColumn StartColumn and SortByColumn EndColumnthen return end -- sorted column must be in the range of StartColumn EndColumn
            if (Descthen nComp 1 end
            local swap 
            = function(a,b) return (String.CompareNoCase(a[SortByColumn],b[SortByColumn]) == nCompend
               Grid
            .SetRedraw(strGridNamefalsefalse);
                 for 
            nSRownERow do 
                   
            local tblx = {}
                     for 
            c  nSCol nECol do 
                       
            tblx[c] = Grid.GetCellText(strGridNamerc)
                     
            end
                  tTmp
            [r] = tblx
                  end
                  table
            .sort(tTmp,swap)
                  for 
            row_index,row_value in pairs(tTmp) do
                     for 
            col_index,col_value in pairs(row_value) do
                       
            Grid.SetCellText(strGridNamerow_indexcol_indexcol_valuefalse);
                     
            end
                  end
                 tTmp 
            = {}
               
            Grid.SetRedraw(strGridNametruetrue);
            end 

            كيف نستغل هذه الأكواد ... نعود لمشاركة قديمة في الموقع تعود لسنة2014

            و نضع في زر الكود التالي :
            كود PHP:
            x=1------------------------------------------------------------------------------------------ 
            p=Grid.GetRowCount("Grid1");-----------------------------------------------------------------
            for 
            i=x,do cGrid.GetCellText("Grid1"i4);String.ToNumber(c);----------------------
            if 
            10 then Grid.SetCellText("Grid1"i4"a"..ctrue);--------------------------------
            elseif  
            >=10 and c<= 99 then Grid.SetCellText("Grid1"i4"b"..ctrue);----------------
            elseif  
            >=100 and c<= 999 then Grid.SetCellText("Grid1"i4"d"..ctrue);--------------
            elseif  
            >=1000 and c<= 9999 then Grid.SetCellText("Grid1"i4"e"..ctrue);------------
            elseif  
            >=10000 and c<= 99999 then Grid.SetCellText("Grid1"i4"f"..ctrue);----------
            elseif  
            >=100000 and c<= 999999 then Grid.SetCellText("Grid1"i,4"g"..ctrue);--------
            elseif  
            >=1000000 and c<= 9999999 then Grid.SetCellText("Grid1"i4"h"..ctrue);------
            end end 
            local s_row 
            1
            local s_col 
            0
            local e_row 
            Grid.GetRowCount("Grid1")-1
            local e_col 
            Grid.GetColumnCount("Grid1")-1
            local sort_col 
            4
            GridSortRowsByColumn
            ("Grid1",s_col,e_col,s_row,e_row,sort_col,false)
            ---------
            for 
            u=x,do                                                                           ------
            yGrid.GetCellText("Grid1"u4);     --abou_belkiss  alger le 26-03-2014            ------
            String.Mid(y11);                                                               ------
            String.Replace(yn""false);                                                   ------
            Grid.SetCellText("Grid1"u4ctrue);                                              ------
            end------------------------------------------------------------------------------------------                                                                                   ------ 
            لاحظ في الكود الثاني الرقم الأربعة المكرر في عدة أسطر هو رقم العمود الذي نريد
            من خلاله الترتيب الأربعة 4 طبعا في الجريد يبدا عد الأسطر انطلاقا من 0
            أي الاربعة المكتوبة معبرة عن العمود الخامس عمليا

            الصف الأول غير معني بالترتيب متروك للعناوين

            تعليق


            • #7
              المشاركة الأصلية بواسطة ثامر أبو بلقيس مشاهدة المشاركة
              لاحظ في الكود الثاني الرقم الأربعة المكرر في عدة أسطر هو رقم العمود الذي نريد
              من خلاله الترتيب الأربعة 4 طبعا في الجريد يبدا عد الأسطر انطلاقا من 0
              أي الاربعة المكتوبة معبرة عن العمود الخامس عمليا

              الصف الأول غير معني بالترتيب متروك للعناوين
              شاكر لك روح التعاون استاذ ثامر

              لم افهم الإقتباس

              فعلت كما ذكرت لى
              ارفقت ملف مفتوح به الكود

              كيف يمكن تعديله ليرتب خانة المجموع ؟
              و لماذا كلما ضغطت على زر الترتيب يتغير الترتيب عن سابق ؟
              الملفات المرفقة

              تعليق


              • #8
                خانة المجموع عندك هي العمود الاول لكن بالنسبة للجريد الأول هو 0 كما اخبرتك يبدأ العد بالنسبة له من 0

                اذن العمود الذي سترتب بناء عليه هو العمود 0

                ليصبح الكود يعد تغيير كل 4 بـ 0

                كود PHP:
                x=1------------------------------------------------------------------------------------------ 
                p=Grid.GetRowCount("Grid1");-----------------------------------------------------------------
                for 
                i=x,do cGrid.GetCellText("Grid1"i0);String.ToNumber(c);----------------------
                if 
                10 then Grid.SetCellText("Grid1"i0"a"..ctrue);--------------------------------
                elseif  
                >=10 and c<= 99 then Grid.SetCellText("Grid1"i0"b"..ctrue);----------------
                elseif  
                >=100 and c<= 999 then Grid.SetCellText("Grid1"i0"d"..ctrue);--------------
                elseif  
                >=1000 and c<= 9999 then Grid.SetCellText("Grid1"i0"e"..ctrue);------------
                elseif  
                >=10000 and c<= 99999 then Grid.SetCellText("Grid1"i0"f"..ctrue);----------
                elseif  
                >=100000 and c<= 999999 then Grid.SetCellText("Grid1"i,0"g"..ctrue);--------
                elseif  
                >=1000000 and c<= 9999999 then Grid.SetCellText("Grid1"i0"h"..ctrue);------
                end end 
                local s_row 
                1
                local s_col 
                0
                local e_row 
                Grid.GetRowCount("Grid1")-1
                local e_col 
                Grid.GetColumnCount("Grid1")-1
                local sort_col 
                0
                GridSortRowsByColumn
                ("Grid1",s_col,e_col,s_row,e_row,sort_col,false)
                ---------
                for 
                u=x,do                                                                           ------
                yGrid.GetCellText("Grid1"u0);     --abou_belkiss  alger le 26-03-2014            ------
                String.Mid(y11);                                                               ------
                String.Replace(yn""false);                                                   ------
                Grid.SetCellText("Grid1"u0ctrue);                                              ------
                end------------------------------------ 

                شوف الان هل مازال عندك اشكال

                تعليق


                • #9
                  لم تنفي و لم تثبت صحة الاكواد
                  الظاهر أن الطلب غير مستعجل عذرا تدخلي كان حينها بناء على عجلة توهمتها

                  تعليق


                  • #10
                    شكرا لكم موضوع قيم فعلا

                    تعليق


                    • #11
                      شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

                      تعليق

                      مواضيع تهمك

                      تقليص

                      المنتدى: القسم العام نشرت بواسطة: Reem2Rabeh الوقت: 04-23-2025 الساعة 04:27 PM
                      المنتدى: ضبط وتوكيد الجودة نشرت بواسطة: HeaD Master الوقت: 04-15-2025 الساعة 09:30 AM
                      المنتدى: التصنيع والانتاج نشرت بواسطة: HeaD Master الوقت: 04-11-2025 الساعة 01:08 PM
                      المنتدى: القسم العام نشرت بواسطة: نوال الخطيب الوقت: 03-19-2025 الساعة 03:07 AM
                      المنتدى: الكمبيوتر والإنترنت نشرت بواسطة: عوض السوداني الوقت: 03-18-2025 الساعة 07:22 AM
                      يعمل...
                      X