Exemplo n.º 1
0
 public static TOPSISDecisionMatrixFrm CreateInstance(List <double> lstWgt, List <string> lstTgt, string dgvName)
 {
     if (frm == null || frm.IsDisposed)
     {
         frm = new TOPSISDecisionMatrixFrm(lstWgt, lstTgt, dgvName);
     }
     return(frm);
 }
Exemplo n.º 2
0
 public static TOPSISDecisionMatrixFrm CreateInstance()
 {
     if (frm == null || frm.IsDisposed)
     {
         frm = new TOPSISDecisionMatrixFrm();
     }
     return(frm);
 }
Exemplo n.º 3
0
        private void btn_Next_Click(object sender, EventArgs e)
        {
            List <double> lst_paraWgt = new List <double>();
            List <string> lst_BlkName = new List <string>();
            int           counterFlag = 0;

            //******************************************************//
            PublicValues.GeoParas = "";
            PublicValues.EngParas = "";
            PublicValues.EcoParas = "";
            //SortedTargetsFrm stf = new SortedTargetsFrm(arr);
            PublicValues.ArrGeoParas = new string[lstBx_Selected_GeoPara.Items.Count];
            foreach (string str in lstBx_Selected_GeoPara.Items)
            {
                PublicValues.ArrGeoParas[counterFlag] = str;
                counterFlag++;
                if (counterFlag != lstBx_Selected_GeoPara.Items.Count)
                {
                    PublicValues.GeoParas += str + ",";
                }
                else
                {
                    PublicValues.GeoParas += str + ";";
                }
            }

            //将所有参数对应的权重值赋值给对应的参数,并形成一个字典变量,以供后面绘图时调用
            //此目的是为了绘制柱状图时,所用参数对应 相应的权重值
            PublicValues.DicGeoP_W = new Dictionary <string, double>();
            PublicValues.DicEngP_W = new Dictionary <string, double>();
            PublicValues.DicEcoP_W = new Dictionary <string, double>();
            for (int i = 0; i < geoParasAll.Length; i++)
            {
                PublicValues.DicGeoP_W.Add(geoParasAll[i], (double)PublicValues.ArrGeoWgt[i]);
                if (i < engParasAll.Length)
                {
                    PublicValues.DicEngP_W.Add(engParasAll[i], (double)PublicValues.ArrEngWgt[i]);
                }
                //if (i < ecoParasAll.Length)
                //{
                //    PublicValues.DicEcoP_W.Add(ecoParasAll[i], (double)PublicValues.ArrEcoWgt[i]);
                //}
            }

            counterFlag = 0;
            PublicValues.ArrEngParas = new string[lstBx_Selected_EngPara.Items.Count];
            foreach (string str in lstBx_Selected_EngPara.Items)
            {
                PublicValues.ArrEngParas[counterFlag] = str;
                counterFlag++;
                if (counterFlag != lstBx_Selected_EngPara.Items.Count)
                {
                    PublicValues.EngParas += str + ",";
                }
                else
                {
                    PublicValues.EngParas += str + ";";
                }
            }
            //counterFlag = 0;
            //PublicValues.ArrEcoParas = new string[lstBx_Selected_EcoPara.Items.Count];
            //foreach (string str in lstBx_Selected_EcoPara.Items)
            //{
            //    PublicValues.ArrEcoParas[counterFlag] = str;
            //    counterFlag++;
            //    if (counterFlag != lstBx_Selected_EcoPara.Items.Count)
            //    {
            //        PublicValues.EcoParas += str + ",";
            //    }
            //    else
            //    {
            //        PublicValues.EcoParas += str + ";";
            //    }
            //}
            //******************************************************//
            if (chkFlag)
            {
                int sn = 0;
                List <SortedBasinsParas> lst_STP = BlockGrade(lst_Bsn);
                List <TopsisBasinDecisionMatrixEntity> lst_TTDME = new List <TopsisBasinDecisionMatrixEntity>();
                foreach (SortedBasinsParas var in lst_STP)
                {
                    sn++;
                    lst_TTDME.Add(new TopsisBasinDecisionMatrixEntity
                    {
                        //序号
                        para_Rank = sn,
                        //区块名称
                        para_Tgt = var.para_Tgt,
                        //地质参数得分
                        para_StromAtScores = var.para_StromAtScores,
                        para_TocScores     = var.para_TocScores,
                        para_KtScores      = var.para_KtScores,
                        para_RoScores      = var.para_RoScores,
                        para_EaScores      = var.para_EaScores,
                        //para_GcScores = var.para_GcScores,
                        para_RrScores = var.para_RrScores,
                        //para_PorScores = var.para_PorScores,
                        para_ScdScores = var.para_ScdScores,
                        //para_RfcScores = var.para_RfcScores,
                        //工程参数得分
                        para_DrScores = var.para_DrScores,
                        //para_PcScores = var.para_PcScores,
                        //para_PerScores = var.para_PerScores,
                        //para_FddScores = var.para_FddScores,
                        //para_PsdcScores = var.para_PsdcScores,
                        para_BmcScores = var.para_BmcScores,
                        //para_DsScores = var.para_DsScores,
                        //para_LedScores = var.para_LedScores,
                        //市场参数得分
                        //para_GpScores = var.para_GpScores,
                        //para_DmdScores = var.para_DmdScores,
                        //para_TuScores = var.para_TuScores,
                        //para_PnScores = var.para_PnScores,
                        //para_SgScores = var.para_SgScores
                    });
                }
                //int counter = lst_STP.Count;
                ////arr_Scores = new double[counter];
                double arr_StromAt_Wgt = lst_STP.Select(x => x.para_StromAtWeight).First();
                double arr_Toc_Wgt     = lst_STP.Select(x => x.para_TocWeight).First();
                double arr_Kt_Wgt      = lst_STP.Select(x => x.para_KtWeight).First();
                double arr_Ro_Wgt      = lst_STP.Select(x => x.para_RoWeight).First();
                double arr_Ea_Wgt      = lst_STP.Select(x => x.para_EaWeight).First();
                //double arr_Gc_Wgt = lst_STP.Select(x => x.para_GcWeight).First();
                double arr_Rr_Wgt = lst_STP.Select(x => x.para_RrWeight).First();
                //double arr_Por_Wgt = lst_STP.Select(x => x.para_PorWeight).First();
                double arr_Scd_Wgt = lst_STP.Select(x => x.para_ScdWeight).First();
                //double arr_Rfc_Wgt = lst_STP.Select(x => x.para_RfcWeight).First();
                double arr_Dr_Wgt = lst_STP.Select(x => x.para_DrWeight).First();
                //double arr_Pc_Wgt = lst_STP.Select(x => x.para_PcWeight).First();
                //double arr_Per_Wgt = lst_STP.Select(x => x.para_PerWeight).First();
                //double arr_Fdd_Wgt = lst_STP.Select(x => x.para_FddWeight).First();
                //double arr_Psdc_Wgt = lst_STP.Select(x => x.para_PsdcWeight).First();
                double arr_Bmc_Wgt = lst_STP.Select(x => x.para_BmcWeight).First();
                //double arr_Ds_Wgt = lst_STP.Select(x => x.para_DsWeight).First();
                //double arr_Led_Wgt = lst_STP.Select(x => x.para_LedWeight).First();
                //double arr_Gp_Wgt = lst_STP.Select(x => x.para_GpWeight).First();
                //double arr_Dmd_Wgt = lst_STP.Select(x => x.para_DmdWeight).First();
                //double arr_Tu_Wgt = lst_STP.Select(x => x.para_TuWeight).First();
                //double arr_Pn_Wgt = lst_STP.Select(x => x.para_PnWeight).First();
                //double arr_Sg_Wgt = lst_STP.Select(x => x.para_SgWeight).First();
                lst_paraWgt.Add(arr_StromAt_Wgt);
                lst_paraWgt.Add(arr_Toc_Wgt);
                lst_paraWgt.Add(arr_Kt_Wgt);
                lst_paraWgt.Add(arr_Ro_Wgt);
                lst_paraWgt.Add(arr_Ea_Wgt);
                //lst_paraWgt.Add(arr_Gc_Wgt);
                lst_paraWgt.Add(arr_Rr_Wgt);
                //lst_paraWgt.Add(arr_Por_Wgt);
                lst_paraWgt.Add(arr_Scd_Wgt);
                //lst_paraWgt.Add(arr_Rfc_Wgt);
                lst_paraWgt.Add(arr_Dr_Wgt);
                //lst_paraWgt.Add(arr_Pc_Wgt);
                //lst_paraWgt.Add(arr_Per_Wgt);
                //lst_paraWgt.Add(arr_Fdd_Wgt);
                //lst_paraWgt.Add(arr_Psdc_Wgt);
                lst_paraWgt.Add(arr_Bmc_Wgt);
                //lst_paraWgt.Add(arr_Ds_Wgt);
                //lst_paraWgt.Add(arr_Led_Wgt);
                //lst_paraWgt.Add(arr_Gp_Wgt);
                //lst_paraWgt.Add(arr_Dmd_Wgt);
                //lst_paraWgt.Add(arr_Tu_Wgt);
                //lst_paraWgt.Add(arr_Pn_Wgt);
                //lst_paraWgt.Add(arr_Sg_Wgt);
                //lst_TgtName.Add(lst_TTDME.Select(x => x.para_Tgt).ToArray());
                foreach (TopsisBasinDecisionMatrixEntity var in lst_TTDME)
                {
                    lst_BlkName.Add(var.para_Tgt);
                }
                //SortedTargetsFrm stf = new SortedTargetsFrm(arr_Scores, arr_TgtName);
                //stf.dgv_Tgt_Sorted.DataSource = DataSourceToDataTable.GetListToDataTable(lst_STP);
                //stf.Show();
                //btn_GenerateReport.Enabled = true;
                TOPSISDecisionMatrixFrm tdm = TOPSISDecisionMatrixFrm.CreateInstance(lst_paraWgt, lst_BlkName, "dgvBsn_TDM");
                tdm.dgv_DecisionMatrix.DataSource = lst_TTDME;
                tdm.Show();
            }
            else
            {
                MessageBox.Show("尚未进行参数矩阵的检验计算操作,所有参数的权重值为 0 .", "信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }