Ejemplo n.º 1
0
        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);
            }

        }