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); }
public static TOPSISDecisionMatrixFrm CreateInstance() { if (frm == null || frm.IsDisposed) { frm = new TOPSISDecisionMatrixFrm(); } return(frm); }
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); } }