/* * private DataTable CreateTB(int voteid, int sysid) * { * DataTable table = new DataTable(); * table.Columns.Add("sub", typeof(string)); * table.Columns.Add("type", typeof(int)); * table.Columns.Add("pj", typeof(string)); * var arr = bllsub.GetItem(sysid); * if (arr != null) * for (int j = 0; j < arr.Length; j++) * { * table.Columns.Add("x" + j, typeof(string)); * } * else * { * table.Columns.Add("x0", typeof(string)); * } * int yl = bll.GetSum(voteid, sysid); * int xh = 1; * //获取父级 * DataTable dtpro = bllsub.GetList(0, "N_SubId,C_SubTitle", "Parentid=0 and N_SysId=" + sysid, "").Tables[0]; * if (dtpro != null && dtpro.Rows.Count > 0) * {//如果分级,按分级数据显示 * foreach (DataRow dataRow in dtpro.Rows) * { * DataRow row = table.NewRow(); * row["sub"] = xh.ToString() + ". " + dataRow[1].ToString(); * row["type"] = 0; * string ids = bllsub.GetIDbyParent(Utils.StrToInt(dataRow[0], 0)); * int soucre = bll.GetSumSource(" s.N_SubId in(" + ids + ")"); * var p = (soucre * 1.0 / yl * 1.0); * int len = ids.Replace("0,", "").Trim(',').Split(',').Length; * if (len > 0) p = (p * 1.0 / len * 1.0); * row["pj"] = p.ToString("0.00"); * var js = bllsub.GetValue(voteid, sysid, Utils.StrToInt(dataRow["N_SubId"], 0)); * if (js != null) * { * if (arr != null) * for (int j = 0; j < arr.Length; j++) * { * row["x" + j] = js.Compute("sum(x" + j + ")", "true"); * } * else * { * row["x0"] = js.Compute("sum(x0)", "true"); * } * * } * table.Rows.Add(row); * int jj = 0; * foreach (DataRow dataRow2 in bllsub.GetSubToKey(sysid, Utils.StrToInt(dataRow["N_SubId"], 0)).Rows) * { * jj++; * GetTable(xh, jj, yl, voteid, dataRow2, ref table, arr); * * } * * xh++; * } * * } * else * { * foreach ( * DataRow row7 in bllsub.GetSubToKey(sysid).Rows) * { * GetTable(xh, 0, yl, voteid, row7, ref table, arr); * xh++; * } * } * DataRow row2 = table.NewRow(); * row2["sub"] = "有效样本数"; * row2["type"] = 0; * row2["pj"] = yl.ToString(); * table.Rows.Add(row2); * return table; * } * private void GetTable(int xh, int hh, int yb, int voteid, DataRow row, ref DataTable table, string[] fieldname) * { * DataRow row2 = table.NewRow(); * row2["sub"] = xh.ToString() + ((hh > 0) ? "-" + hh : "") + ". " + row["C_SubTitle"].ToString(); * int soucre = bll.GetSumSource(" s.N_SubId =" + row["SubId"]); * var p = (soucre * 1.0 / yb * 1.0); * row2["pj"] = p.ToString("0.00"); * * DataTable DT = new B_Votekey().GetList(0, "N_SubId=" + row["N_SubId"] + "", " N_OrderId,N_KeyId").Tables[0]; * int jj = 0; * foreach (DataRow current in DT.Rows) * { * string str2 = ""; * int num3 = 0; * row2["type"] = int.Parse(current["N_Type"].ToString()); * switch (int.Parse(current["N_Type"].ToString())) * { * case 1: * case 5: * DataTable item = bll.GetItem(voteid, int.Parse(row["SubId"].ToString()), * int.Parse(current["N_KeyId"].ToString())); * foreach (DataRow row6 in item.Rows) * { * str2 = str2 + row6["C_Reuslt"].ToString() + "\n"; * num3++; * } * row2["x0"] = str2; * break; * case 2: * case 3: * case 4: * if (table.Columns.Contains("x" + jj)) * { * num3 = bll.GetSum(voteid, int.Parse(row["SubId"].ToString()), * int.Parse(current["N_KeyId"].ToString())); * row2["x" + jj] = num3; * } * jj++; * break; * } * } * table.Rows.Add(row2); * } * private JGridView jgv = new JGridView(); * private GridView cgw = new GridView(); * private void CreateGridView(int voteid, int sysid) * { * cgw.RowDataBound += new GridViewRowEventHandler(cgw_RowDataBound); * cgw.DataBound += new EventHandler(cgw_DataBound); * cgw.DataSource = CreateTB(voteid, sysid); * cgw.DataBind(); * //BaseVote.voteid = voteid; * //BaseVote.sysid = sysid; * jgv.ToExcel(cgw, "Vote_" + voteid + "_" + DateTime.Now.ToString()); * } * * void cgw_RowDataBound(object sender, GridViewRowEventArgs e) * { * if (e.Row.RowType == DataControlRowType.Header) * { * string header = "调查项目#平均分#内容"; * * var arr = bllsub.GetItem(sysid); * if (arr != null) * { * header += ""; * for (int j = 0; j < arr.Length; j++) * { * header += arr[j].Replace("\r", "").Replace(" ", "") + ","; * } * header = header.Trim(','); * } * e.Row.CssClass = "fixedHeaderTr"; * * e.Row.BackColor = System.Drawing.Color.Beige; * jgv.SplitTableHeader(e.Row, header); * } * } * * private void cgw_DataBound(object sender, EventArgs e) * { * int index = 0; * foreach (GridViewRow row in cgw.Rows) * { * if (cgw.Rows[index] == null) continue; * if (row.Cells[1].Text == "1" || row.Cells[1].Text == "5") * { * var arr = bllsub.GetItem(sysid); * if (arr != null) * { * JGridView.GridViewGroup.GroupRow(cgw, index, 3, 3 + arr.Length); * } * } * TableCell tc = cgw.Rows[index].Cells[1]; //Cells[0]就是你要合并的列 * tc.Width = 0; * tc.Visible = false; * index++; * * } * * } */ private string tableOne(int voteid, int sysid, ref string code, ref string time) { var arr = bllsub.GetItem(sysid); if (arr == null) { return(""); } int columns = 3 + arr.Length; //总列数 columns = columns < 8 ? 8 : columns; //总列数小于8 默认8列 int xh = 1; int yl = bll.GetSum(voteid, sysid); mb = bs.GetModel(voteid); code = mb.C_Code; time = Convert.ToString(mb.DT_StartDate.ToString("yyyyMMdd")); sb.Append("<table style=\"border:thin solid #333333;\"><tr style=\"height:60px;\"><td style=\"border:thin solid #333333;background-color:#003C65;text-align:center;font-size:16px;color:#FFF\" colspan=\"" + columns + "\";>" + mb.C_Title + "</td></tr>" + "<tr style=\"height:40px;\"><td style=\"border:thin solid #333333;background-color:#8DB6CD\" colspan=\"2\">培训名称:" + mb.C_course + "</td><td style=\"border:thin solid #333333;background-color:#8DB6CD\" colspan=\"2\">培训师:" + mb.C_Tearcher + "</td><td style=\"border:thin solid #333333;background-color:#8DB6CD\" colspan=\"2\">培训时间:" + DataFormat(mb.CourseStart) + "-" + DataFormat(mb.CourseEnd) + "</td><td style=\"border:thin solid #333333;background-color:#8DB6CD\">培训人数:" + mb.pxnum + "</td><td style=\"border:thin solid #333333;background-color:#8DB6CD\" colspan=\"" + (columns - 7) + "\">参加人数:" + yl + "</td></tr>" + "<tr><td style=\"border:thin solid #333333;background-color:#C9C9C9;text-align:center;\" rowspan=\"2\">序列</td><td style=\"border:thin solid #333333;background-color:#C9C9C9;text-align:center\" rowspan=\"2\">调查项目</td><td style=\"border:thin solid #333333;text-align:center;background-color:#C9C9C9\" rowspan=\"2\">平均分</td><td style=\"border:thin solid #333333;text-align:center;background-color:#C9C9C9;height:30px\";colspan=\"" + (columns - 3) + "\">选项票数/内容</td></tr>"); string header = "";//, itemtmp = "<tr><td style=\"border:thin solid #333333;\">{0}</td style=\"border:thin solid #333333;\"><td style=\"border:thin solid #333333;\">{1}</td style=\"border:thin solid #333333;\"><td style=\"border:thin solid #333333;\">{2}</td>"; header = "<tr style=\"height:30px\">"; for (int j = 0; j < arr.Length; j++) { header += "<td style=\"border:thin solid #333333;background-color:#C9C9C9;text-align:center;\">" + arr[j].Replace("\r", "") + "</td>"; //itemtmp += "<td style=\"border:thin solid #333333;\">{"+(j+3)+"}</td>"; } header = header + "</tr>"; //itemtmp += "</tr>"; sb.Append(header); DataTable dtpro = bllsub.GetList(0, "N_SubId,C_SubTitle", "Parentid=0 and N_SysId=" + sysid, "").Tables[0]; if (dtpro != null && dtpro.Rows.Count > 0) {//如果分级,按分级数据显示 Dictionary <string, string> zdb = new Dictionary <string, string>(); string itemtmp = "<tr><td style=\"border:thin solid #333333;\" align=\"center\">{0}</td><td style=\"border:thin solid #333333;\">{1}</td><td style=\"border:thin solid #333333;\">{2}</td><td colspan=" + arr.Length + " style=\"border:thin solid #333333;\"></td></tr>"; foreach (DataRow dataRow in dtpro.Rows) { string b = xh.ToString() + " "; string c = dataRow[1].ToString(); string d = ""; string ids = bllsub.GetIDbyParent(Utils.StrToInt(dataRow[0], 0)); int soucre = bll.GetSumSource("r.N_VoteId='" + voteid + "' and s.N_SubId in(" + ids + ")"); var p = yl == 0 ? 0 : (soucre * 1.0 / yl * 1.0); int len = bllsub.GetSubNum(Utils.StrToInt(dataRow[0], 0)); if (len > 0) { p = (p * 1.0 / len * 1.0); } d = p.ToString("0.00"); zdb.Add(c, d); //num + //var obj = new object[columns]; //obj[0] = b; //obj[1] = c; //obj[1] = d; //sb.AppendFormat(itemtmp, obj); sb.AppendFormat(itemtmp, b, c, d); //var js = bllsub.GetValue(voteid, sysid, Utils.StrToInt(dataRow["N_SubId"], 0)); int jj = 0; foreach (DataRow dataRow2 in bllsub.GetSubToKey(sysid, Utils.StrToInt(dataRow["N_SubId"], 0)).Rows) { jj++; dataOne(xh, jj, yl, voteid, dataRow2, arr); } xh++; } sb.Append(" <tr><td colspan=\"" + columns + "\"></td></tr><tr><td rowspan=" + (zdb.Count + 1) + " style=\"border:thin solid #333333;\">单项汇总</td><td style=\"border:thin solid #333333;\" colspan=\"2\">项目</td><td style=\"border:thin solid #333333;\" colspan=" + (columns - 3) + ">分值</td></tr>"); foreach (KeyValuePair <string, string> pair in zdb) { if (pair.Value != "0.00" && pair.Value != "0") { sb.Append("<tr ><td style=\"border:thin solid #333333;\" colspan=\"2\">" + pair.Key + "</td><td align=\"left\" style=\"border:thin solid #333333;\" colspan=" + (columns - 3) + ">" + pair.Value + "</td></tr>"); } } } sb.Append("</table>"); return(sb.ToString()); }
private string tableOne(int voteid, int sysid, ref string code, ref string time) { var arr = bllsub.GetItem(sysid); int columns = 3 + arr.Length; //总列数 columns = columns < 8 ? 8 : columns; //总列数小于8 默认8列 int yl = bll.GetSum(voteid, sysid); mb = bs.GetModel(voteid); code = mb.C_Code; time = Convert.ToString(mb.DT_StartDate.ToString("yyyyMMdd")); sb.Append("<table style=\"border:1px solid #F0F0F0;\"><tr style=\"height:60px;\"><td style=\"border:1px solid #F0F0F0;background-color:#003C65;text-align:center;font-size:16px;color:#FFF\" colspan=\"" + columns + "\";>" + mb.C_Title + "</td></tr>" + "<tr style=\"height:40px;\"><td style=\"border:1px solid #F0F0F0;background-color:#8DB6CD\" colspan=\"2\">培训名称:" + mb.C_course + "</td><td style=\"border:1px solid #F0F0F0;background-color:#8DB6CD\" colspan=\"2\">培训师:" + mb.C_Tearcher + "</td><td style=\"border:1px solid #F0F0F0;background-color:#8DB6CD\" colspan=\"2\">培训时间:" + DataFormat(mb.CourseStart) + "-" + DataFormat(mb.CourseEnd) + "</td><td style=\"border:1px solid #F0F0F0;background-color:#8DB6CD\">培训人数:" + mb.pxnum + "</td><td style=\"border:1px solid #F0F0F0;background-color:#8DB6CD\" colspan=\"" + (columns - 7) + "\">参加人数:" + yl + "</td></tr>" + "<tr><td style=\"border:1px solid #F0F0F0;background-color:#C9C9C9;text-align:center;\" rowspan=\"2\">序列</td><td style=\"border:1px solid #F0F0F0;background-color:#C9C9C9;text-align:center\" rowspan=\"2\" colspan=\"2\">调查项目</td><td style=\"border:1px solid #F0F0F0;text-align:center;background-color:#C9C9C9;height:30px\";colspan=\"" + (columns - 3) + "\">选项票数/内容</td></tr>"); string header = "";//, itemtmp = "<tr><td style=\"border:1px solid #F0F0F0;\">{0}</td style=\"border:1px solid #F0F0F0;\"><td style=\"border:1px solid #F0F0F0;\" colspan=\"2\">{1}</td style=\"border:1px solid #F0F0F0;\">"; header = "<tr style=\"height:30px\">"; for (int j = 0; j < arr.Length; j++) { header += "<td style=\"border:1px solid #F0F0F0;background-color:#C9C9C9;\">" + arr[j].Replace("\r", "").Replace(" ", "") + "</td>"; //itemtmp += "<td style=\"border:1px solid #F0F0F0;\">{" + (j + 2) + "}</td>"; } header = header + "</tr>"; //itemtmp += "</tr>"; sb.Append(header); //找到所有参与投票的人,但有可能项目不全 DataTable dtresult = bll.GetList(0, "N_ResId,N_KeyId,N_SubId,C_Reuslt,N_TestId,C_Ip", "N_VoteId=" + voteid + " and N_SysId=" + sysid, "").Tables[0]; //获取单个人节点集合 var resultrows = dtresult.Select("N_SubId=0"); //有多少人调查,就循环几轮 if (yl > 0) { for (int i = 0; i < yl; i++) { string dt = resultrows[i]["DT_Date"] != null?resultrows[i]["DT_Date"].ToString():""; string ip = resultrows[i]["C_Ip"] != null ? resultrows[i]["C_Ip"].ToString() : ""; sb.Append("<tr><td colspan=\"" + columns + "\" style=\"background-color:#003C65;height:30px;text-align:center;color:#ffffff\">问卷:" + (i + 1) + " 时间:" + dt + " ip:" + ip + "</td></tr>"); //获取该人下所有投票项目 var result = dtresult.Select("N_TestId=" + resultrows[i]["N_ResId"]); string itemtmp = "<tr><td style=\"border:1px solid #F0F0F0;height:40px;\">{0}</td style=\"border:1px solid #F0F0F0;\"><td style=\"border:1px solid #F0F0F0;\" colspan=2>{1}</td><td colspan=" + arr.Length + " style=\"border:1px solid #F0F0F0;\"></td></tr>"; DataTable dtpro = bllsub.GetList(0, "N_SubId,C_SubTitle", "Parentid=0 and N_SysId=" + sysid, "").Tables[0]; if (dtpro != null && dtpro.Rows.Count > 0) {//如果分级,按分级数据显示 int xh = 1; foreach (DataRow dataRow in dtpro.Rows) { string b = (i + 1) + "." + xh.ToString();//+ "."; string c = dataRow[1].ToString(); var obj = new object[columns - 1]; obj[0] = b + " "; obj[1] = c; sb.AppendFormat(itemtmp, obj); int jj = 0; foreach (DataRow dataRow2 in bllsub.GetSubToKey(sysid, Utils.StrToInt(dataRow["N_SubId"], 0)).Rows) { jj++; dataOne(b, jj, voteid, dataRow2, arr, result); } xh++; } } } } sb.Append("</table>"); return(sb.ToString()); }