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++]); } }
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(); }