예제 #1
0
        public void makeRankArray(ref int[] rank)
        {
            int i = 0;

            int[] temp     = new int[rList.Count];
            int[] tempRank = new int[rList.Count];
            int[] realRank = new int[rList.Count];
            Array.Clear(temp, 0, temp.Length);
            Array.Clear(realRank, 0, realRank.Length);
            Array.Clear(rank, 0, rank.Length);
            i = 0;
            foreach (R1pn r1 in rList)
            {
                temp[i++] = r1.cp;
            }
            Common.makeRankArray(ref temp, ref tempRank);
            // search maxrank
            int max = 0;

            for (i = 0; i < tempRank.Length; i++)
            {
                if (max < tempRank[i])
                {
                    max = tempRank[i];
                }
            }
            // get start number of each list
            int r = 1, real = 1, realtemp;

            while (r <= max)
            {
                realtemp = real;
                for (i = 0; i < tempRank.Length; i++)
                {
                    if (tempRank[i] == r)
                    {
                        realRank[i] = realtemp; real = real + temp[i];
                    }
                }
                r++;
            }

            i = 0;
            foreach (R1pn r1 in rList)
            {
                r1.setrankarray(ref rank, realRank[i++]);
            }
        }
예제 #2
0
        public void printToExcel(string path1, string sheetname)
        {
            ExcelWrapper ew = new ExcelWrapper();

            if (ew.Open(path1) == false)
            {
                return;
            }
            Excel.Worksheet mySheet;
            mySheet = ew.CreateSheet(sheetname);
            if (mySheet == null)
            {
                ew.Close(); return;
            }
            mySheet.Range["A1:AZ40"].Clear();
            int[] temp = new int[Cols];
            for (int i = 0; i < Cols; i++)
            {
                temp[i] = i + 1;
            }
            ew.printArrayLine("PN", temp);
            ew.printArrayLine("MID-1 ", form.md1.mid1);
            ew.printArrayLine("MID-2 ", form.md2.mid2);
            for (int k = 0; k < form.md3_1.mid3_1_Count; k++)
            {
                for (int i = 0; i < Cols; i++)
                {
                    temp[i] = form.md3_1.mid3_1[k, i];
                }
                if (form.md3_1.mid3_1_Count == 1)
                {
                    ew.printArrayLine("MID3-1", temp);
                }
                else
                {
                    ew.printArrayLine("MID3-1-" + (k + 1).ToString(), temp);
                }
            }
            ew.printArrayLine("MID3-2 ", form.md3_2.mid3_2);
            ew.printArrayLine("MID3-4 ", form.md3_4.mid3_4);
            ew.printArrayLine("MID4-1 ", form.md4_1.mid4_1);
            ew.printArrayLine("MID4-3 ", form.md4_3.mid4_3);
            ew.printArrayLine("SUM ", rsum, 1);
            ew.printLine("");
            string biggiest = (form.rd.tpsn + 2).ToString() + "th biggist value is " + ThreshVal.ToString();

            for (int i = 0; i < Cols; i++)
            {
                temp[i] = 0;
            }
            int k1 = 0;

            for (int i = 0; i < Cols; i++)
            {
                if (rsum[i] >= ThreshVal)
                {
                    temp[k1++] = (i + 1);
                }
            }
            ew.printArrayLine(biggiest, temp);
            ew.printLine();

            // print : pn list
            temp = new int[Cols];
            for (int i = 0; i < Cols; i++)
            {
                temp[i] = i + 1;
            }
            ew.printArrayLine("PN", temp);
            // print rank of totalsum
            rankSum = new int[rsum.Length];
            Common.makeRankArray(ref rsum, ref rankSum);
            ew.printArrayLine("Total_Sum", rankSum);

            // Rank Print
            // Mid 1
            //ew.print("MID 1");
            //ew.printRankArray("MID1:Rank", form.rd.spc,1);
            //ew.printLine();
            int[] mid1Rank = new int[Cols];
            Common.makeRankArray(ref form.rd.spc, ref mid1Rank);
            ew.printArrayLine("MID-1", mid1Rank);
            // MID 3-1
            ew.printArrayLine("MID3-1", form.md3_1.rank);
            int[] mid1_mid3_1 = new int[Cols];
            for (int i = 0; i < Cols; i++)
            {
                mid1_mid3_1[i] = mid1Rank[i] + form.md3_1.rank[i];
            }
            ew.printArrayLine("MID-1 & MID3-1", mid1_mid3_1);
            ew.printLine();


            // Mid 2
            //ew.print("MID 2");
            //ew.printRankArray("MID2:Rank (sort by PN's count in the List)", form.md2.temp, 1);
            //ew.printLine();
            int[] mid2Rank = new int[Cols];
            Common.makeRankArray(ref form.md2.temp, ref mid2Rank);
            ew.printArrayLine("MID-2", mid2Rank);

            // Mid3-4
            ew.printArrayLine("MID3-4", form.md3_4.rank3_4);
            int[] mid2_mid3_4 = new int[Cols];
            for (int i = 0; i < Cols; i++)
            {
                mid2_mid3_4[i] = mid2Rank[i] + form.md3_4.rank3_4[i];
            }
            ew.printArrayLine("MID-2 & MID3-4", mid2_mid3_4);
            ew.printLine();

            ew.printArrayLine("MID3-2 ", form.md3_2.mid3_2);
            ew.printArrayLine("MID4-1 ", form.md4_1.mid4_1);
            ew.printArrayLine("MID4-3 ", form.md4_3.mid4_3);
            int[] mid3_2mid4_1mid4_3 = new int[Cols];
            for (int i = 0; i < Cols; i++)
            {
                mid3_2mid4_1mid4_3[i] = form.md3_2.mid3_2[i] + form.md4_1.mid4_1[i] + form.md4_3.mid4_3[i];
            }
            ew.printArrayLine("MID3-2,Mid4-2 & Mid4-3", mid3_2mid4_1mid4_3, 1);
            ew.printLine();
            //print final result
            int[] finalresult = new int[Cols];
            for (int i = 0; i < Cols; i++)
            {
                finalresult[i] = rankSum[i] + mid1_mid3_1[i] + mid2_mid3_4[i] + mid3_2mid4_1mid4_3[i];
            }
            ew.printArrayLine("FINAL RESULT", finalresult, 1);

            // print pn
            for (int i = 0; i < Cols; i++)
            {
                temp[i] = i + 1;
            }
            ew.printArrayLine("PN", temp);

            // Final Sort
            int [] finalsort  = new int[Cols];
            int[]  finalorder = new int[Cols];
            Array.Copy(finalresult, temp, Cols);
            Array.Sort(temp);
            Array.Clear(finalorder, 0, Cols);
            int prank = 1, rank = 1, cur = 0;

            for (int i = 0; i < Cols; i++)
            {
                if (i > 0)
                {
                    if (temp[i] == temp[i - 1])
                    {
                        continue;
                    }
                }
                prank = rank;
                for (int j = 0; j < Cols; j++)
                {
                    if (finalresult[j] == temp[i])
                    {
                        finalsort[j] = prank; finalorder[cur++] = j + 1;   rank++;
                    }
                }
            }
            ew.printArrayLine("Final Rank", finalsort, 1);
            ew.printLine();
            ew.printArrayLine("Final PN's Order", finalorder, 1);

            ew.Save();
            ew.Close();
        }