public void Bind(DataTable dt1, DataTable dt2, string url) { //增加基准项目/对比项目是否有值的判断,防止报错 //added by liuxc,2014.11.29 if (DDL_V1.SelectedItem == null) { Right.AddEasyUiPanelInfo("提示", "基准项目没有数据,请先完善数据!"); return; } if (DDL_V2.SelectedItem == null) { Right.AddEasyUiPanelInfo("提示", "对比项目没有数据,请先完善数据!"); return; } string key = this.DDL_Group.SelectedItemStringVal; Attr attr = this.currMapRpt.HisEn.EnMap.GetAttrByKey(key); Entities ensOfGroup = attr.HisFKEns; ensOfGroup.RetrieveAll(); string str = ""; str += "<Table class='Table' cellspacing='0' cellpadding='0' border='0' style='width:100%'>"; str += "<TR>"; str += " <TD warp=false class='GroupTitle' nowrap style='text-align:center' >序</TD>"; str += " <TD warp=false class='GroupTitle' nowrap >" + this.DDL_D.SelectedItem.Text + "</TD>"; str += " <TD warp=false class='GroupTitle' nowrap >" + (this.DDL_V1.SelectedItem == null ? "" : this.DDL_V1.SelectedItem.Text) + "</TD>"; str += " <TD warp=false class='GroupTitle' nowrap >" + this.DDL_V2.SelectedItem.Text + "</TD>"; str += " <TD warp=false class='GroupTitle' nowrap >降低值</TD>"; str += " <TD warp=false class='GroupTitle' nowrap >降低比例%</TD>"; str += "</TR>"; int idx = 0; foreach (Entity en in ensOfGroup) { bool isHave = false; foreach (DataRow dr in dt1.Rows) { string kv = dr[0].ToString(); if (en.GetValStringByKey(attr.UIRefKeyValue) == kv) { isHave = true; break; } } if (isHave == false) { continue; // 不存在这个值 就continue; } idx++; str += "<TR >"; str += " <TD warp=false class='Idx' nowrap >" + idx.ToString() + "</TD>"; str += " <TD warp=false class='TD' nowrap >" + en.GetValStringByKey(attr.UIRefKeyText) + "</TD>"; decimal num1 = 0; decimal num2 = 0; foreach (DataRow dr1 in dt1.Rows) { string kv = dr1[0].ToString(); //循环到值 。 if (en.GetValStringByKey(attr.UIRefKeyValue) != kv) { continue; } num1 = decimal.Parse(dr1[2].ToString()); num2 = 0; str += " <TD warp=false class='TDNum' nowrap ><a href=\"javascript:WinOpen('" + url + "&" + this.DDL_D.SelectedItemStringVal + "=" + dr1[0].ToString() + "&" + this.DDL_Num.SelectedItemStringVal + "=" + this.DDL_V1.SelectedItemStringVal + "')\" >" + dr1[2].ToString() + "</a></TD>"; // 时间段1值. isHave = false; foreach (DataRow dr2 in dt2.Rows) { num2 = decimal.Parse(dr2[2].ToString()); if (dr2[0].ToString() == en.GetValStringByKey(attr.UIRefKeyValue)) { isHave = true; decimal cz = num1 - num2; str += " <TD warp=false class='TDNum' nowrap ><a href=\"javascript:WinOpen('" + url + "&" + this.DDL_D.SelectedItemStringVal + "=" + dr2[0].ToString() + "&" + this.DDL_Num.SelectedItemStringVal + "=" + this.DDL_V2.SelectedItemStringVal + "')\" >" + num2.ToString() + "</a></TD>"; // 时间段1值. str += " <TD warp=false class='TDNum' nowrap >" + cz + "</TD>"; // 降低数. break; } } if (isHave == false) { num2 = 0; str += " <TD warp=false class='TDNum' nowrap >0</TD>"; // 时间段1值. str += " <TD warp=false class='TDNum' nowrap >" + num1 + "</TD>"; // 降低数. } } if (num1 == 0) { str += " <TD warp=false class='TDNum' nowrap >0.00</TD>"; } else { decimal fz = decimal.Parse(num1.ToString()) - decimal.Parse(num2.ToString()); decimal fm = decimal.Parse(num1.ToString()); decimal rate = fz / fm * 100; str += " <TD warp=false class='TDNum' nowrap >" + rate.ToString("0.00") + "</TD>"; } str += "</TR>"; } str += "</Table>"; this.Right.Add(str); }