public void ExportGroupLimit() { try { fgMgr = new FgroupMgr(mySqlConnectionString); List<string> NameList = new List<string>(); List<DataTable> Elist = new List<DataTable>(); List<bool> comName = new List<bool>(); DataTable _dt = fgMgr.GetFgroupList(); for (int i = 0; i < _dt.Rows.Count; i++)//循環各個群組 { DataTable _dtone = new DataTable(); _dtone.Columns.Add("群組人員", typeof(String)); _dtone.Columns.Add("功能模塊", typeof(String)); _dtone.Columns.Add("基本功能", typeof(String)); _dtone.Columns.Add("功能操作", typeof(String)); #region 獲取信息 //獲取某個群組下的所有用戶 DataTable _dtUsers = fgMgr.GetUsersByGroupId(Convert.ToInt32(_dt.Rows[i]["rowid"])); //獲取某個群組下的所有權限 DataTable _dtAuthorty = fgMgr.GetAuthorityByGroupId(Convert.ToInt32(_dt.Rows[i]["rowid"])); int usercount = _dtUsers.Rows.Count; int authorty = _dtAuthorty.Rows.Count; if (authorty >= usercount)//如果權限的行數大於群組中的個數 { for (int z = 0; z < _dtAuthorty.Rows.Count; z++) { DataRow _tbRow = _dtone.NewRow(); try { _tbRow[0] = _dtUsers.Rows[z]["user_username"].ToString().Trim(); } catch (Exception ex) { _tbRow[0] = ""; } if (z == 0) { thispname = _dtAuthorty.Rows[0]["pname"].ToString(); thiscname = _dtAuthorty.Rows[0]["cname"].ToString(); //_tbRow[1] = _dtAuthorty.Rows[z]["pname"] + " " + (_dtAuthorty.Rows[z]["tpname"].ToString() == "" ? "X" : "O"); _tbRow[1] = _dtAuthorty.Rows[z]["pname"]; _tbRow[2] = _dtAuthorty.Rows[z]["cname"] + " " + (_dtAuthorty.Rows[z]["tcname"].ToString() == "" ? "X" : "O"); } else { if (thispname == _dtAuthorty.Rows[z]["pname"].ToString())//如果相同 { _tbRow[1] = ""; } else { //_tbRow[1] = _dtAuthorty.Rows[z]["pname"] + " " + (_dtAuthorty.Rows[z]["tpname"].ToString() == "" ? "X" : "O"); _tbRow[1] = _dtAuthorty.Rows[z]["pname"]; thispname = _dtAuthorty.Rows[z]["pname"].ToString(); } if (thiscname == _dtAuthorty.Rows[z]["cname"].ToString()) { _tbRow[2] = ""; } else { _tbRow[2] = _dtAuthorty.Rows[z]["cname"] + " " + (_dtAuthorty.Rows[z]["tcname"].ToString() == "" ? "X" : "O"); thiscname = _dtAuthorty.Rows[z]["cname"].ToString(); } } if (_dtAuthorty.Rows[z]["tname"].ToString() == "") { _tbRow[3] = ""; } else { if (_dtAuthorty.Rows[z]["ttname"].ToString() == "" || _dtAuthorty.Rows[z]["functionId"].ToString() == "") { _tbRow[3] = _dtAuthorty.Rows[z]["tname"] + " " + "X"; } else { _tbRow[3] = _dtAuthorty.Rows[z]["tname"] + " " + "O"; } } _dtone.Rows.Add(_tbRow); } } else { for (int j = 0; j < _dtUsers.Rows.Count; j++) { DataRow _tbRow = _dtone.NewRow(); _tbRow[0] = _dtUsers.Rows[j]["user_username"].ToString().Trim(); if (j == 0) { thispname = _dtAuthorty.Rows[0]["pname"].ToString(); thiscname = _dtAuthorty.Rows[0]["cname"].ToString(); //_tbRow[1] = _dtAuthorty.Rows[0]["pname"] + " " + (_dtAuthorty.Rows[j]["tpname"].ToString() == "" ? "X" : "O"); _tbRow[1] = _dtAuthorty.Rows[0]["pname"]; _tbRow[2] = _dtAuthorty.Rows[0]["cname"] + " " + (_dtAuthorty.Rows[j]["tcname"].ToString() == "" ? "X" : "O"); if (_dtAuthorty.Rows[0]["tname"].ToString() == "") { _tbRow[3] = ""; } else { if (_dtAuthorty.Rows[0]["ttname"].ToString() == "" || _dtAuthorty.Rows[0]["functionId"].ToString() == "") { _tbRow[3] = _dtAuthorty.Rows[0]["tname"] + " " + "X"; } else { _tbRow[3] = _dtAuthorty.Rows[0]["tname"] + " " + "O"; } } } else { try { if (thispname == _dtAuthorty.Rows[j]["pname"].ToString()) { _tbRow[1] = ""; } else { // _tbRow[1] = _dtAuthorty.Rows[j]["pname"] + " " + (_dtAuthorty.Rows[j]["tpname"].ToString() == "" ? "X" : "O"); _tbRow[1] = _dtAuthorty.Rows[j]["pname"]; thispname = _dtAuthorty.Rows[j]["pname"].ToString(); } if (thiscname == _dtAuthorty.Rows[j]["cname"].ToString()) { _tbRow[2] = ""; } else { _tbRow[2] = _dtAuthorty.Rows[j]["cname"] + " " + (_dtAuthorty.Rows[j]["tcname"].ToString() == "" ? "X" : "O"); thiscname = _dtAuthorty.Rows[j]["cname"].ToString(); } if (_dtAuthorty.Rows[j]["tname"].ToString() == "") { _tbRow[3] = ""; } else { if (_dtAuthorty.Rows[j]["ttname"].ToString() == "" || _dtAuthorty.Rows[j]["functionId"].ToString() == "") { _tbRow[3] = _dtAuthorty.Rows[j]["tname"] + " " + "X"; } else { _tbRow[3] = _dtAuthorty.Rows[j]["tname"] + " " + "O"; } } } catch (Exception ex) { _tbRow[1] = ""; _tbRow[2] = ""; _tbRow[3] = ""; } } _dtone.Rows.Add(_tbRow); } } #endregion comName.Add(true); Elist.Add(_dtone); NameList.Add(_dt.Rows[i]["groupName"].ToString() + "群組"); thispname = ""; thiscname = ""; } string fileName = "群組權限信息" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls"; MemoryStream ms = ExcelHelperXhf.ExportDTNoColumnsBySdy(Elist, NameList, comName); Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName); Response.BinaryWrite(ms.ToArray()); } catch (Exception ex) { Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage(); logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message); logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name; log.Error(logMessage); } }