//导出数据到Excel
 protected void lBtnToExcel_Click(object sender, EventArgs e)
 {
     //获取数据并填充到数据表
     using (var da = new t_state_settingsTableAdapter())
     {
         //获取前1万行数据
         var tab = da.GetData();
         //设置列标题
         string[] titleCol =
             ("序号,状态,备注,录入员,录取时间,修改时间").Split(',');
         //设置表名称
         string titleTab = "状态设置表";
         //临时文件名称
         string fileName = titleTab + DateTime.Now.ToString("yyMMddHHmmss") + ".xls";
         //执行导出数据到excel
         bool isSuccess = ydPublicMethod.DataTable2Excel(tab, titleCol, ref fileName, titleTab);
         //如果成功则跳转到指定页面
         if (isSuccess)
         {
             Response.Redirect(fileName);
             //停止加载后续内容
             Response.End();
         }
     }
 }
Exemple #2
0
        //根据传入的参数处理事情
        public void ProcessRequest(HttpContext context)
        {
            //清空之前数据
            context.Response.Clear();
            //检测是否含有session
            if (context.Session.Count < 5)
            {
                //跳转
                context.Response.Redirect("/Account/Login", true);
                //停止加载后续内容
                context.Response.End();
                //直接返回
                return;
            }
            //执行基类的方法
            if (!base.CheckIsLogin(context))
            {
                return;
            }
            //将查询到的结果保存到泛型变量中
            var l = new List<LiItem>();
            //数据适配器
            using (var da = new t_state_settingsTableAdapter())
            {
                //批量卡结存表
                DataSetStateSettings.t_state_settingsDataTable tab;
                //获取数据
                tab = da.GetData();
                //获取单据数据
                AddListItem(tab, ref l);
            }
            //待输出到浏览器的数据
            string strResult = string.Empty;
            //如果在客户清单中查询到数据
            if (l.Count > 0)
            {
                //将泛型变量各项目放入数组
                var itms = new LiItem[l.Count];
                //复制泛型变量的内容到数组
                l.CopyTo(itms);
                //循环重新设置单只数
                foreach (var itm in itms)
                {
                    //将实例加入li
                    strResult += itm.ToString();
                }
            }

            //加入ul头尾
            strResult = "<ul>\n" + strResult + "</ul>\n";
            //写入数据
            context.Response.Write(strResult);
        }
 protected void lvStateSettings_ItemUpdating(object sender, ListViewUpdateEventArgs e)
 {
     //取消请求执行自定义的方法
     e.Cancel = true;
     //检测是否含有session
     if (Session.Count < 5)
     {
         //跳转
         Response.Redirect("/Account/Login", true);
         //停止加载后续内容
         Response.End();
         //直接返回
         return;
     }
     //当前用户所在部门
     string deptName = Session["dept_name"].ToString();
     //当前角色id
     Int16 roleId = Convert.ToInt16(Session["role_id"]);
     //检测是否有权限
     if ((deptName != mustDeptName && deptName != "样板") || (roleId != 0 && roleId != 1 && roleId != 6))
     {
         throw new Exception("您没有更新记录权限!");
     }
     //当前记录行的数据的序号
     int id = Convert.ToInt32(e.Keys[0]);
     //获取当前数据行
     using (var da = new t_state_settingsTableAdapter())
     using (var conn = da.Connection)
     {
         //打开数据库连接
         conn.Open();
         //当前数据库事务并获取当前行数据
         using (var tran = da.Transaction)
         using (var tab = da.GetDataById(id))
         {
             //获取当前行数据
             if (tab.Rows.Count <= 0)
             {
                 throw new Exception("当前行数据可能已经被其他用户删除!");
             }
             //首行数据
             var row = (DataSetStateSettings.t_state_settingsRow)tab.Rows[0];
             //之前录入的用户名称
             string userName = row.add_person;
             //检测当前用户所在部门名称和角色以及之前保存该记录的用户部门名称
             //当前用户所在部门
             string curUserDeptName = Session["dept_name"].ToString();
             //用户名称
             string curUserName = Session["user_name"].ToString();
             //当前角色id
             Int16 curUserRoleId = Convert.ToInt16(Session["role_id"]);
             //录入权限用户则必须和原录入用户一样的名字
             if (curUserRoleId > 3)
             {
                 //用户只能操作自己之前录入的
                 if (userName.ToUpper().Equals(curUserName.ToUpper()))
                 {
                     //显示失败
                     throw new Exception("当前遗失报废记录录入者并非是您,请找更高级权限的用户操作!");
                 }
             }
             //主管级别可以修改本部门的
             else if (curUserRoleId >= 2)
             {
                 //检测之前录入用户所在部门
                 using (var daUser = new v_user_dept_roleTableAdapter())
                 {
                     //设置事务
                     daUser.Transaction = tran;
                     //检测该用户是否属于该部门
                     int i = Convert.ToInt32(daUser.CountByUserNameAndDeptName(userName, curUserDeptName));
                     if (i <= 0)
                     {
                         //主管级别
                         if (curUserRoleId == 3)
                             //显示失败
                             throw new Exception("当前遗失报废记录录入者并非是您当前部门用户,请找更高级权限的用户操作!");
                     }
                     //经理级别可以修改不存在的用户录入的数据
                     else if (curUserRoleId == 2)
                     {
                         //检测该用户是否属于该部门
                         i = Convert.ToInt32(daUser.CountByUserName(userName));
                         if (i > 0)
                         {
                             //显示失败
                             throw new Exception("当前遗失报废记录录入者并非是您当前部门用户,请找更高级权限的用户操作!");
                         }
                     }
                 }
             }
         }
     }
     //设置录入员姓名和时间
     e.NewValues["add_person"] = Session["user_name"].ToString();
     e.NewValues["last_change_time"] = DateTime.Now;
     //允许执行删除数据
     e.Cancel = false;
 }