private void ToolStripMenuItem_GenerateReport_Click(object sender, EventArgs e) { WordHelper wh = new WordHelper(); SaveFileDialog sfd = new SaveFileDialog(); string blkGrad = ""; sfd.Filter = "Word File|*.doc|(*.*)|*.*"; sfd.Title = "保存文件"; //sfd.ShowDialog(); StringBuilder strBlocks = new StringBuilder(); //******************************************************************// double dbVal; List <double> wgtGeo = new List <double>(); List <double> wgtEng = new List <double>(); List <double> wgtEco = new List <double>(); DrawGraph dgGeo = null; Bitmap bmGeo = null; string bmGeoPath = null; DrawGraph dgEng = null; Bitmap bmEng = null; string bmEngPath = null; DrawGraph dgEco = null; Bitmap bmEco = null; string bmEcoPath = null; //对地质参数用画图类的构造函数进行实例化 if (PublicValues.ArrGeoParas.Length != 0) { foreach (string str in PublicValues.ArrGeoParas) { PublicValues.DicGeoP_W.TryGetValue(str, out dbVal); wgtGeo.Add(dbVal); } dgGeo = new DrawGraph(PublicValues.ArrGeoParas, wgtGeo.ToArray(), "参数", "权重值", "黑体", 180); bmGeo = dgGeo.DrawBarGraph(); bmGeoPath = System.Windows.Forms.Application.StartupPath + "\\geoWgtBar.jpeg"; bmGeo.Save(bmGeoPath, MyImage.ImageFormat.Jpeg); } //对工程参数用画图类的构造函数进行实例化 if (PublicValues.ArrEngParas.Length != 0) { foreach (string str in PublicValues.ArrEngParas) { PublicValues.DicEngP_W.TryGetValue(str, out dbVal); wgtEng.Add(dbVal); } dgEng = new DrawGraph(PublicValues.ArrEngParas, wgtEng.ToArray(), "参数", "权重值", "黑体", 180); bmEng = dgEng.DrawBarGraph(); bmEngPath = System.Windows.Forms.Application.StartupPath + "\\engWgtBar.jpeg"; bmEng.Save(bmEngPath, MyImage.ImageFormat.Jpeg); } if (!strName.Contains("dgvBsn_TDM")) { // 对经济参数用画图类的构造函数进行实例化 if (PublicValues.ArrEcoParas.Length != 0) { foreach (string str in PublicValues.ArrEcoParas) { PublicValues.DicEcoP_W.TryGetValue(str, out dbVal); wgtEco.Add(dbVal); } dgEco = new DrawGraph(PublicValues.ArrEcoParas, wgtEco.ToArray(), "参数", "权重值", "黑体", 180); bmEco = dgEco.DrawBarGraph(); bmEcoPath = System.Windows.Forms.Application.StartupPath + "\\ecoWgtBar.jpeg"; bmEco.Save(bmEcoPath, MyImage.ImageFormat.Jpeg); } } bool isOpen = false; bool flag = true; //******************************************************************// foreach (string str in arr_TgtName) { if (str != arr_TgtName.Last()) { strBlocks.Append(str + "、"); } else { strBlocks.Append(str + ";"); } } if (strName.Contains("dgvBlk_TDM")) { blkGrad = "有利区"; } if (strName.Contains("dgvBsn_TDM")) { blkGrad = "远景区"; } if (strName.Contains("dgvTgt_TDM")) { blkGrad = "核心区"; } string strFileName = null; if (sfd.ShowDialog() == DialogResult.OK) { strFileName = sfd.FileName; wh.CreateWord(strFileName); wh.InsertText("页岩气选区评价结果分析", 18, 1, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphCenter, 0); wh.NewLine(); wh.InsertText("一、" + blkGrad + "参与评价区块", 16, 1, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 0); wh.NewLine(); wh.InsertText(strBlocks.ToString(), 12, 0, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 30); wh.NewLine(); wh.InsertText("二、TOPSIS方法评价参数、判断矩阵及权重", 16, 1, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 0); wh.NewLine(); wh.InsertText("2.1、地质因素", 14, 1, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 20); wh.NewLine(); wh.InsertText("2.1.1、评价参数", 14, 0, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 25); wh.NewLine(); if (PublicValues.ArrGeoParas.Length != 0) { wh.InsertText(PublicValues.GeoParas, 12, 0, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 30); } else { wh.InsertText("没有地质参数参与评价。", 10, 0, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 30); } //wh.InsertText(PublicValues.GeoParas, 12, 0, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 30); wh.NewLine(); wh.InsertText("2.1.2、判断矩阵", 14, 0, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 25); wh.NewLine(); flag = wh.DGV2Word(PublicValues.dgv_Geo); if (flag == false) { return; } //wh.DGV2Word(PublicValues.dgv_Geo); //wh.NewLine(); wh.InsertText("2.1.3、地质参数权重", 14, 0, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 25); wh.NewLine(); if (PublicValues.ArrGeoParas.Length != 0) { wh.InsertPicture(bmGeoPath); } else { wh.InsertText("没有地质参数参与评价。", 10, 0, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 30); } //wh.InsertText(PublicValues.GeoWgt, 12, 0, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 30); wh.NewLine(); wh.InsertText("2.2、工程因素", 14, 1, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 20); wh.NewLine(); wh.InsertText("2.2.1、评价参数", 14, 0, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 25); wh.NewLine(); if (PublicValues.ArrEngParas.Length != 0) { wh.InsertText(PublicValues.EngParas, 12, 0, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 30); } else { wh.InsertText("没有工程参数参与评价。", 10, 0, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 30); } //wh.InsertText(PublicValues.EngParas, 12, 0, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 30); wh.NewLine(); wh.InsertText("2.2.2、判断矩阵", 14, 0, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 25); wh.NewLine(); wh.DGV2Word(PublicValues.dgv_Eng); //wh.NewLine(); wh.InsertText("2.2.3、工程参数权重", 14, 0, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 25); wh.NewLine(); if (PublicValues.ArrEngParas.Length != 0) { wh.InsertPicture(bmEngPath); } else { wh.InsertText("没有工程参数参与评价。", 12, 0, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 30); } //wh.InsertText(PublicValues.EngWgt, 12, 0, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 30); wh.NewLine(); if (!strName.Contains("dgvBsn_TDM")) { wh.InsertText("2.3、经济因素", 14, 1, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 20); wh.NewLine(); wh.InsertText("2.3.1、评价参数", 14, 0, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 25); wh.NewLine(); if (PublicValues.ArrEcoParas.Length != 0) { wh.InsertText(PublicValues.EcoParas, 12, 0, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 30); } else { wh.InsertText("没有经济参数参与评价。", 10, 0, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 30); } //wh.InsertText(PublicValues.EcoParas, 12, 0, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 30); wh.NewLine(); wh.InsertText("2.3.2、判断矩阵", 14, 0, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 25); wh.NewLine(); wh.DGV2Word(PublicValues.dgv_Eco); //wh.NewLine(); wh.InsertText("2.3.3、经济参数权重", 14, 0, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 25); wh.NewLine(); if (PublicValues.ArrEcoParas.Length != 0) { wh.InsertPicture(bmEcoPath); } else { wh.InsertText("没有经济参数参与评价。", 10, 0, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 30); } //wh.InsertText(PublicValues.EcoWgt, 12, 0, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 30); wh.NewLine(); } wh.InsertText("三、评价结果", 16, 1, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 0); wh.NewLine(); wh.InsertText("3.1、有利区", 14, 1, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 20); wh.NewLine(); if (strClass_1.Equals(null)) { MessageBox.Show("未对参数进行自然分类,所以分类评价结果为Null。", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); wh.InsertText("Null", 12, 0, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 30); wh.NewLine(); wh.InsertText("3.2、一般区", 14, 1, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 20); wh.NewLine(); wh.InsertText("Null", 12, 0, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 30); wh.NewLine(); wh.InsertText("3.3、较差区", 14, 1, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 20); wh.NewLine(); wh.InsertText("Null", 12, 0, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 30); } else { wh.InsertText(strClass_1.ToString(), 12, 0, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 30); wh.NewLine(); wh.InsertText("3.2、一般区", 14, 1, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 20); wh.NewLine(); wh.InsertText(strClass_2.ToString(), 12, 0, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 30); wh.NewLine(); wh.InsertText("3.3、较差区", 14, 1, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 20); wh.NewLine(); wh.InsertText(strClass_3.ToString(), 12, 0, "SimHei", MyWord.WdParagraphAlignment.wdAlignParagraphLeft, 30); } isOpen = wh.SaveWord(strFileName); if (isOpen == false) { return; } } DialogResult dr = MessageBox.Show("报告已完成,是否打开该报告?。", "信息", MessageBoxButtons.YesNo, MessageBoxIcon.Information); if (dr == DialogResult.Yes) { wh.OpenWordDoc(strFileName); } else { wh.QuitWordApp(strFileName); } }