Exemplo n.º 1
0
        public static void GetSHTreeDataSource(DataTable dtConsiderDiathesis, DataTable dtBiddingSupplier, DataTable returndt, string GradeMessageCode, string CodeName, string ParentCodeName, string ParentCode, string Code, string LeftStr, int Deep, decimal PercentageValue, string ConsiderDiathesisCode)
        {
            int num5;

            if (Code == "")
            {
                returndt.Columns.Add("code", Type.GetType("System.String"));
                returndt.Columns.Add("freeflag", Type.GetType("System.String"));
                returndt.Columns.Add("issubtotal", Type.GetType("System.String"));
                returndt.Columns.Add("ColumnCount", Type.GetType("System.Int32"));
                returndt.Clear();
                dtConsiderDiathesis.Columns.Add("code", Type.GetType("System.String"));
                dtConsiderDiathesis.Columns.Add("freeflag", Type.GetType("System.String"));
                dtConsiderDiathesis.Columns.Add("issubtotal", Type.GetType("System.String"));
                dtConsiderDiathesis.Columns.Add("ColumnCount", Type.GetType("System.Int32"));
                for (int i = 0; i < dtBiddingSupplier.Rows.Count; i++)
                {
                    returndt.Columns.Add("Point" + (i + 1), Type.GetType("System.String"));
                    returndt.Columns.Add("Code" + (i + 1), Type.GetType("System.String"));
                    returndt.Columns.Add("GradeMessageCode" + (i + 1), Type.GetType("System.String"));
                    returndt.Columns["Point" + (i + 1)].Caption = ProjectRule.GetSupplierName(dtBiddingSupplier.Rows[i]["SupplierCode"].ToString());
                    dtConsiderDiathesis.Columns.Add("Point" + (i + 1), Type.GetType("System.String"));
                    dtConsiderDiathesis.Columns.Add("Code" + (i + 1), Type.GetType("System.String"));
                    dtConsiderDiathesis.Columns.Add("GradeMessageCode" + (i + 1), Type.GetType("System.String"));
                    dtConsiderDiathesis.Columns["Point" + (i + 1)].Caption = ProjectRule.GetSupplierName(dtBiddingSupplier.Rows[i]["SupplierCode"].ToString());
                }
            }
            DataRow[] rowArray     = dtConsiderDiathesis.Select(ParentCodeName + "='" + ParentCode.ToString() + "' and BiddingGradeTypeCode='100002'");
            DataTable currentTable = BiddingGradeMessage.GetAllBiddingGradeMessage().CurrentTable;
            string    text         = "";

            for (int j = 0; j < dtBiddingSupplier.Rows.Count; j++)
            {
                if (j != (dtBiddingSupplier.Rows.Count - 1))
                {
                    text = string.Concat(new object[] { text, "'", dtBiddingSupplier.Rows[j]["BiddingReturnCode"], "'," });
                }
                else
                {
                    text = string.Concat(new object[] { text, "'", dtBiddingSupplier.Rows[j]["BiddingReturnCode"], "'" });
                }
            }
            int       num3     = 0;
            string    text2    = "";
            DataTable biddings = new DataTable();

            if (text != "")
            {
                foreach (DataRow row in currentTable.Select("ApplicationCode in (" + text + ") and BiddingGradeTypeCode='100002'"))
                {
                    if (num3 != (currentTable.Select("ApplicationCode in (" + text + ") and BiddingGradeTypeCode='100002'").Length - 1))
                    {
                        text2 = string.Concat(new object[] { text2, "'", row["BiddingGradeMessageCode"], "'," });
                    }
                    else
                    {
                        text2 = string.Concat(new object[] { text2, "'", row["BiddingGradeMessageCode"], "'" });
                    }
                    num3++;
                }
                BiddingGrade grade = new BiddingGrade();
                grade.BiddingGradeMessageCode = text2;
                biddings = grade.GetBiddings();
            }
            int num4 = 1;

            foreach (DataRow row2 in rowArray)
            {
                if (num4 == 1)
                {
                    row2["freeflag"] = "1";
                }
                else
                {
                    row2["freeflag"] = "0";
                }
                row2["ColumnCount"] = dtBiddingSupplier.Rows.Count;
                row2["code"]        = Code + ((num4.ToString().Length < 2) ? ("0" + num4.ToString()) : num4.ToString());
                row2["Percentage"]  = Convert.ToDecimal(row2["Percentage"]) * 100M;
                row2["issubtotal"]  = "0";
                DataRow row3 = returndt.NewRow();
                row3.ItemArray = row2.ItemArray;
                returndt.Rows.Add(row3);
                for (num5 = 0; num5 < dtBiddingSupplier.Rows.Count; num5++)
                {
                    row3["Point" + (num5 + 1)]            = 0;
                    row3["Code" + (num5 + 1)]             = "";
                    row3["GradeMessageCode" + (num5 + 1)] = "";
                }
                int num6 = 0;
                if (text != "")
                {
                    foreach (DataRow row4 in currentTable.Select("ApplicationCode in (" + text + ") and BiddingGradeTypeCode='100002'"))
                    {
                        num6++;
                        row3["GradeMessageCode" + num6] = row4["BiddingGradeMessageCode"];
                        foreach (DataRow row5 in biddings.Select(string.Concat(new object[] { "BiddingGradeMessageCode='", row4["BiddingGradeMessageCode"], "' and BiddingConsiderDiathesisCode='", row2["BiddingConsiderDiathesisCode"], "'" })))
                        {
                            row3["Code" + num6]  = row5["BiddingGradeCode"];
                            row3["Point" + num6] = row5["GradePoint"];
                        }
                    }
                }
            }
            DataRow row6 = returndt.NewRow();

            row6["BiddingConsiderDiathesisCode"] = "";
            row6["BiddingConsiderDiathesis"]     = "总计";
            row6["GradeGuideline"] = "";
            row6["freeflag"]       = "0";
            row6["ColumnCount"]    = dtBiddingSupplier.Rows.Count;
            row6["code"]           = Code + ((num4.ToString().Length < 2) ? ("0" + num4.ToString()) : num4.ToString());
            row6["Percentage"]     = Convert.ToDecimal(1) * 100M;
            row6["issubtotal"]     = "1";
            returndt.Rows.Add(row6);
            for (num5 = 0; num5 < dtBiddingSupplier.Rows.Count; num5++)
            {
                row6["Point" + (num5 + 1)]            = 0;
                row6["Code" + (num5 + 1)]             = "";
                row6["GradeMessageCode" + (num5 + 1)] = "";
            }
            for (int k = 0; k < (returndt.Rows.Count - 1); k++)
            {
                for (int m = 0; m < Convert.ToInt32(returndt.Rows[0]["ColumnCount"]); m++)
                {
                    row6["Point" + (m + 1)] = Convert.ToString((decimal)(Convert.ToDecimal(row6["Point" + (m + 1)]) + ((Convert.ToDecimal(returndt.Rows[k]["Point" + (m + 1)]) * Convert.ToDecimal(returndt.Rows[k]["Percentage"])) / 100M)));
                }
            }
        }