SZDF:统计报表的生成和导出

2017-06-21 17:40:31  访问(1633) 赞(0) 踩(0)



  • 参考:Management\Areas\ZnbmHr\Views\HrUserItem\StatJsz.cshtml


  • 
    
    @{
        // 驾驶证相关的统计 //
        // 页面的逻辑配置 //
        eKing.SzdfPage.Areas.ZnbmHr.HR.HrUserItem.EkSzdfPage eKp
            =
            eKing.SzdfPage.Areas.ZnbmHr.HR.HrUserItem.EkSzdfPage.instance;
    
        eKing.SzdfPage.Names.GlobalName gN
           = eKing.SzdfPage.Names.GlobalName.instance;
    
        ViewBag.Title = "驾驶证统计";
        Layout = "~/Views/Shared/_Layout.cshtml";
    }
    
    @section css{
        @Html.Raw(eKp.PrintSectionCss())
        <!-- 职能部门的相关css -->
        <link href="~/Content/css/znbm.css" rel="stylesheet" />
        <!-- 多选效果 -->
        <link href="~/Content/js/sumoselect/sumoselect.css" rel="stylesheet" />
    }
    <style>
        body {
            min-width: 3715px;
            width: expression_r( document.body.clientWidth < 3715 ? "3715px" : "auto" );
        }
       
    </style>
    
    
    
    @section Javascript{
    
        <!-- 多选效果的JS -->
        <script src="~/Content/js/sumoselect/jquery.sumoselect.js"></script>
    
        <!-- 页面的逻辑属性 -->
        <script type="text/javascript" src="~/Content/js/ZNBM/znbm.pageinfo.js"></script>
        <!-- 我需要的公共方法 -->
        <script type="text/javascript" src="~/Content/js/ZNBM/znbm.ek.js"></script>
        <!-- JS 相关校验使用 -->
        <script type="text/javascript" src="~/Content/js/ZNBM/znbm.ekcheck.js"></script>
    
        @Html.Raw(eKp.PrintSectionJavaScript())
    
        <script type="text/javascript">
            GlobalPhyPath = "@Html.Raw(eKp.GetPhyPath())";
            // 路由根地址 //
            var SubWebDir = "ZnbmHr/HrUserItem/";
            // 默认构建EPI //
            var EPI = ZnbmPageInfoDefaultCreate(SubWebDir);
            // 网页标题 //
            EPI.PageTitle = "@Html.Raw(eKp.PageTitle)";
    
            // 自定义的搜索 //
            EPI.IsOverrideGetList = true;
    
            // 定义导出的Excel的Control //
            EPI.ExportExcelUrl = SubWebDir + "StatJszExportExcel";
    
            // 执行 index.sea //
            seajs.use("@Html.Raw(eKp.GetPhyPath())/Content/js/ZNBM/index.sea");
    
            // 自定义搜索的数据绑定 //
            function AjaxTableListBind(current)
            {
                // 记录数 //
                var per_num = 0;
    
                // 获得搜索条件 //
                var ajxData = null;
    
                if (EPI.IsOverrideAjaxSearchData) {
                    // 重写获取搜索的条件 //
                    ajxData = AjaxSearchData(current, per_num);
                }
                else {
                    ajxData = BaseAjaxSearchData(current, per_num);
                }
    
                // 获得Ajax的Url地址 //
                var ajaxUrl = "StatJszData";
    
                $.ajax({
                    cache: false,
                    async: true,
                    url: ajaxUrl,
                    type: "post",
                    data: ajxData,
                    success: function (rData) {
                        if (rData == null)
                            return;
    
                        // 删除成功 //
                        if (!rData.IsSucc) {
                            alert(rData.Msg);
                            return;
                        }
    
                        // 刷新当前列表 //
                        $("#div_Result").html(rData.Msg);
    
                    }
                });
    
            }
        </script>
    }
    
    
    
    <div class="p_bar">
        <span class="f_r">
        </span>
        <span class="position_txt">
            <i></i>
            @Html.Raw(@eKp.PrintPageTitle("驾驶证统计"))
        </span>
    </div>
    <!-- 搜索 -->
    <div class="select_search_box" id="div_search">
        <table>
            <tr class="search_tr_class">
                <td align="left">
                    &nbsp;
                    @Html.Raw(@eKp.SearchStatJszFileForm.v_TheName.PrintSearchLabel())
                    @Html.Raw(@eKp.SearchStatJszFileForm.v_TheName.PrintHTML())&nbsp;
                    @Html.Raw(@eKp.SearchStatJszFileForm.v_EmUserTypeV.PrintSearchLabel())
                    @Html.Raw(@eKp.SearchStatJszFileForm.v_EmUserTypeV.PrintHTML())&nbsp;
                    @Html.Raw(@eKp.SearchStatJszFileForm.v_EmGenderV.PrintSearchLabel())
                    @Html.Raw(@eKp.SearchStatJszFileForm.v_EmGenderV.PrintHTML())&nbsp;
                    @Html.Raw(@eKp.SearchStatJszFileForm.v_Dep_Id.PrintSearchLabel())
                    @Html.Raw(@eKp.SearchStatJszFileForm.v_Dep_Id.PrintHTML())&nbsp;
                    <button class="a_btn" id="moresearch_btn">更多搜索</button>
                    <button class="a_btn" id="search_btn">搜索</button>
                    <button class="resetsearch_btn m_r10" id="resetsearch_btn">重置</button>
                    <button class="a_btn m_r10" id="export_btn" title="">导出</button>
                </td>
            </tr>
        </table>
    </div>	
    
    
    <div id="ExcelDiv">
        <div id="div_Result"></div>
        
        <br />
        <br />
    </div>
    
    @section Dialog{
        <!--弹窗-->
        <div class="cover_b"></div> 
        <!-- 高级搜索弹窗 -->
        <div class="alert_box" id="moresearch_box" data-role="alert_box">
            <div class="alert_tit" data-role="alert_tit">
                <span id="span_moresearch">更多搜索</span><i class="a_close" data-role="alert_close"></i>
            </div>
            <div class="n_aciton">
                <table class="n_table">
    
                    <tr>
                        <td class="t_r ek-tr-width">
                            @Html.Raw(@eKp.SearchStatJszFileForm.v_Position_Id.PrintSearchLabel())
                        </td>
                        <td>
                            @Html.Raw(@eKp.SearchStatJszFileForm.v_Position_Id.PrintHTML())
                        </td>
                    </tr>
                    <tr>
                        <td class="t_r ek-tr-width">
                            @Html.Raw(@eKp.SearchStatJszFileForm.v_Category_Id.PrintSearchLabel())
                        </td>
                        <td>
                            @Html.Raw(@eKp.SearchStatJszFileForm.v_Category_Id.PrintHTML())
                        </td>
                    </tr>
                    <tr>
                        <td class="t_r ek-tr-width">
                            @Html.Raw(@eKp.SearchStatJszFileForm.v_Rank_Id.PrintSearchLabel())
                        </td>
                        <td>
                            @Html.Raw(@eKp.SearchStatJszFileForm.v_Rank_Id.PrintHTML())
                        </td>
                    </tr>
                    <tr>
                        <td class="t_r ek-tr-width">
                            @Html.Raw(@eKp.SearchStatJszFileForm.v_Education_Id.PrintSearchLabel())
                        </td>
                        <td>
                            @Html.Raw(@eKp.SearchStatJszFileForm.v_Education_Id.PrintHTML())
                        </td>
                    </tr>
                </table>
            </div>
            <div class="c_action">
                <button class="con_btn m_r10" id="moresearch_submit">确定</button>
                <button class="cc_btn" data-role="be_close">取消</button>
            </div>
        </div>
        <!--高级搜索弹窗 End --> 
    }
    
     
    
  • 
    // Management\Classes\ZNBM\ZnbmBaseController.cs
    
            /// <summary>
            /// NPOI导出Excel
            /// </summary>
            /// <param name="excelFileName">Excel的文件名称,如果传入(:导出),生成是系统内置的路径地址</param>
            /// <param name="ec">Excel的数据源</param>
            /// <returns></returns>
            protected virtual string EkExportExcelForExcelCell_Container
                (
                    string excelFileName,
                    ExcelCell_Container ec
                )
            {
                eKingSzdfPageHelper
                    ch
                    =
                    eKingSzdfPageHelper.ekInstance;
    
                
                eKing.ExcelSlowXHelper.Helpers.Helper exHelper
                    =
                    eKing.ExcelSlowXHelper.Helpers.Helper.instance;
    
                excelFileName = ch.ToExcelExportFileName(excelFileName);
    
                string fullName = Request.PhysicalApplicationPath
                    +
                    excelFileName.Replace("/", "\\");
    
                // list转成Excel输出 //
                exHelper.WriteExcelToFile8ExcelCellContainer
                    (
                        fullName,
                        ec
                    );
    
                return excelFileName;
            }
    
    
  • 
    // Management\Areas\ZnbmHr\Controllers\HR\HrUserItem\HrUserItemController__StatJsz.cs
    
            /// <summary>
            /// 加载
            /// </summary>
            /// <returns></returns>
            public ActionResult StatJszData()
            {
                string str = null;
                bool isSucc = true;
    
                try
                {
                    str = StatJszOper(null);
                }
                catch (Exception err)
                {
                    isSucc = false;
                    str = "系统异常:" + err.Message;
                }
    
                OperResult op = new OperResult(isSucc, str);
    
    
                ContentResult theResult = new ContentResult();
                theResult.ContentEncoding = UTF8Encoding.UTF8;
                theResult.ContentType = MIMETypes.Json;
                theResult.Content = op.ToJson();
    
                return theResult;
    
            }
    
            /// <summary>
            /// 
            /// </summary>
            /// <param name="item"></param>
            /// <param name="rowIndex"></param>
            /// <param name="SMC"></param>
            /// <param name="em"></param>
            /// <param name="xdbHelper"></param>
            /// <returns></returns>
            protected string StatJszShowText
                (
                    JszItem item,
                    int rowIndex,
                    ShowModelContainer SMC,
                    eKing.SzdfLib.Enums.NCJSZHZB.EmNCJSZHZB em,
                    DBHelper xdbHelper
                )
            {
                try
                {
                    switch (em)
                    {
                        case eKing.SzdfLib.Enums.NCJSZHZB.EmNCJSZHZB.序号:
                            return rowIndex.ToString();
                        case eKing.SzdfLib.Enums.NCJSZHZB.EmNCJSZHZB.姓名:
                            return item.UserItem.TheName;
                        case eKing.SzdfLib.Enums.NCJSZHZB.EmNCJSZHZB.国籍:
                            return item.UserItem.GJ;
                        case eKing.SzdfLib.Enums.NCJSZHZB.EmNCJSZHZB.所在单位:
                            return "深圳地服";
                        case eKing.SzdfLib.Enums.NCJSZHZB.EmNCJSZHZB.部门:
                            return item.UserItem.Dep_Id__GetText(SMC, true, "", xdbHelper);
                        case eKing.SzdfLib.Enums.NCJSZHZB.EmNCJSZHZB.性别:
                            return item.UserItem.EmGenderV__Get().ToString();
                        case eKing.SzdfLib.Enums.NCJSZHZB.EmNCJSZHZB.出生日期:
                            return item.UserItem.Birthday_Id__GetText();
                        case eKing.SzdfLib.Enums.NCJSZHZB.EmNCJSZHZB.户籍地址:
                            return item.UserItem.HJDZ;
                        case eKing.SzdfLib.Enums.NCJSZHZB.EmNCJSZHZB.现居住地:
                            return item.UserItem.XJZD;
                        case eKing.SzdfLib.Enums.NCJSZHZB.EmNCJSZHZB.联系电话:
                            return item.UserItem.TheTel;
                        case eKing.SzdfLib.Enums.NCJSZHZB.EmNCJSZHZB.证件号:
                            return item.UserItem.CardNumber;
                        case eKing.SzdfLib.Enums.NCJSZHZB.EmNCJSZHZB.证件类别:
                            return item.UserItem.EmHrCardTypeV__ToString();
                        case eKing.SzdfLib.Enums.NCJSZHZB.EmNCJSZHZB.社会驾驶证档案编号:
                            return item.Jsz.TheName;
                        case eKing.SzdfLib.Enums.NCJSZHZB.EmNCJSZHZB.准驾车型:
                            return item.Jsz.ZJCX_Ids__GetText(SMC, true, "", "", "/", xdbHelper);
                        case eKing.SzdfLib.Enums.NCJSZHZB.EmNCJSZHZB.初次领证时间:
                            return item.Jsz.First_Date.HasValue ? item.Jsz.First_Date.Value.ToString("yyyy-MM-dd") : "";
                        case eKing.SzdfLib.Enums.NCJSZHZB.EmNCJSZHZB.通行证号码:
                            return item.Txz.TheName;
                        case eKing.SzdfLib.Enums.NCJSZHZB.EmNCJSZHZB.通行区域:
                            return item.Txz.TXQY_Ids__GetText(SMC, true, "", "", "/", xdbHelper);
                        case eKing.SzdfLib.Enums.NCJSZHZB.EmNCJSZHZB.通行证有效期:
                            return item.Txz.End_Date.HasValue ? item.Txz.End_Date.Value.ToString("yyyy-MM-dd") : "";
                        case eKing.SzdfLib.Enums.NCJSZHZB.EmNCJSZHZB.内场驾驶证准驾车型:
                            return item.NcJsz.ZJCX_Ids__GetText(SMC, true, "", "", "/", xdbHelper);
                        case eKing.SzdfLib.Enums.NCJSZHZB.EmNCJSZHZB.内场驾驶证领证时间:
                            return item.NcJsz.First_Date__GetText();
                        case eKing.SzdfLib.Enums.NCJSZHZB.EmNCJSZHZB.内场驾驶证有效日期:
                            return item.NcJsz.End_Date__GetText();
                        default:
                            return "*" + em.ToString();
                    }
                }
                catch(Exception err)
                {
                    throw new Exception("em:" + em.ToString() + "发生异常:" + err.Message);
                }
    
            }
    
            /// <summary>
            /// 
            /// </summary>
            /// <param name="xdbHelper">创建Excel容器</param>
            /// <returns></returns>
            protected ExcelCell_Container StatJszExcelCell_ContainerCreate
                (DBHelper xdbHelper)
            {
                // 获得页面的属性 //
                eKing.SzdfPage.Areas.ZnbmHr.HR.HrUserItem.EkSzdfPage eKp
                    =
                    eKing.SzdfPage.Areas.ZnbmHr.HR.HrUserItem.EkSzdfPage.instance;
    
                eKing.SzdfPage.Areas.ZnbmHr.HR.HrUserItem.EkSzdfStatJszSearchForm
                    eKs
                    =
                    eKp.SearchStatJszFileForm;
    
                // 获得搜索条件 //
                List<EkxInputCtrl> searchList
                    =
                    eKs.CtrlListGet();
    
                eKing.ExcelSlowXHelper.Helpers.Helper
                  eh
                  =
                  eKing.ExcelSlowXHelper.Helpers.Helper.instance;
    
                eKingSzdfPageHelper
                    wh
                    =
                    eKingSzdfPageHelper.ekInstance;
    
                JszContainer jc
                    =
                    wh.JszContainerCreate(searchList, xdbHelper);
    
                List<JszItem> jszList = jc.TheList;
    
                // Excel容器 //
                ExcelCell_Container ec
                    =
                    new ExcelCell_Container();
    
                // Excel单元格 //
                List<List<ExcelCell_Info>> eList
                    =
                    new List<List<ExcelCell_Info>>();
    
                ec.EList = eList;
    
                eKing.SzdfLib.Enums.NCJSZHZB.EmNCJSZHZB[] emA
                    =
                    eKing.SzdfLib.Enums.NCJSZHZB.EmArray;
    
                eKing.SzdfLib.Enums.NCJSZHZB.EmNCJSZHZB em
                    = eKing.SzdfLib.Enums.NCJSZHZB.EmNCJSZHZB.序号;
    
                ExcelCell_Info eci = null;
                ShowModelContainer SMC = new ShowModelContainer();
    
                int iCount = emA.Length;
    
                int rowIndex = -1;
    
                #region 绘制表头
    
                ++rowIndex;
    
                for (int i = 0; i < iCount; ++i)
                {
                    em = emA[i];
                    eci = new ExcelCell_Info();
                    eci.ColNumber = i;
                    eci.RowNumber = rowIndex;
                    eci.RowSpan = 1;
                    eci.ColSpan = 1;
                    eci.Owner = eci;
                    eci.Text = emA[i].ToString();
    
                    eh.AddList(eList, rowIndex, i, eci);
                }
    
                #endregion 绘制表头 
    
                #region 绘制内容
    
                foreach (JszItem item in jszList)
                {
                    ++rowIndex;
    
                    for (int i = 0; i < iCount; ++i)
                    {
                        em = emA[i];
                        eci = new ExcelCell_Info();
                        eci.ColNumber = i;
                        eci.RowNumber = rowIndex;
                        eci.RowSpan = 1;
                        eci.ColSpan = 1;
                        eci.Owner = eci;
    
                        eci.Text = StatJszShowText(item, rowIndex, SMC, em, xdbHelper);
    
                        eh.AddList(eList, rowIndex, i, eci);
                    }
                }
    
                #endregion 绘制内容
    
    
                ec.MaxRow = eh.MaxRow8EList(ec.EList);
                ec.MaxCol = eh.MaxCol8EList(ec.EList);
    
    
                return ec;
            }
    
            /// <summary>
            /// 带月份查询的-绘制HTML
            /// </summary>
            /// <param name="dtFrom"></param>
            /// <param name="dtTo"></param>
            /// <param name="xdbHelper"></param>
            /// <returns></returns>
            protected string StatJszOper
                (
                    DBHelper xdbHelper
                )
            {
                eKing.ExcelSlowXHelper.Helpers.Helper
                    eh
                    =
                    eKing.ExcelSlowXHelper.Helpers.Helper.instance;
    
                ExcelCell_Container ec
                    =
                    StatJszExcelCell_ContainerCreate(xdbHelper);
    
    
                HtmlPrintConfigItem
                    configItem 
                    = 
                    new HtmlPrintConfigItem();
    
                configItem.TitleRow = 0;
                configItem.StartRowText = "驾驶证信息";
    
                configItem.PrintSeq 
                    = 
                    eKing.ExcelSlowXHelper.Enums.ExcelPrintSeq.EmExcelPrintSeq.无;
    
                string strHtml
                    =
                    eh.BuildHtmlTable8Container(ec, configItem, null);
    
                return strHtml;
            }
    
            /// <summary>
            /// 绘制驾驶证的统计
            /// </summary>
            /// <returns></returns>
            public ActionResult StatJsz()
            { 
                return View();
            }
    
    
  • // Management\Areas\ZnbmHr\Controllers\HR\HrUserItem\HrUserItemController__StatJsz.cs
    
            #region 导出Excel
    
    
            /// <summary>
            /// 导出Excel
            /// </summary>
            /// <param name="xdbHelper">数据库链接串</param>
            /// <returns></returns>
            protected OperResult
                StatJszExportExcelOper(DBHelper xdbHelper)
    
            {
                
                try
                {
    
                    ExcelCell_Container ec
                        =
                        StatJszExcelCell_ContainerCreate(xdbHelper);
    
    
                    // 获得Excel的导出名称 //
                    string saveFileName = ":驾驶证报表";
    
                    // 在服务器的临时文件区生成Excel文件 //
                    string fileName
                        =
                        EkExportExcelForExcelCell_Container
                        (
                            saveFileName, 
                            ec
                        );
    
                    // 返回成功结果提示,Msg=fileName,可以直接链接跳转下载 //
                    return OperResult.ToSucc(fileName);
                }
                catch (Exception err)
                {
                    BaseWriteException(err);
                    return OperResult.ToError("系统异常:" + err.Message);
                }
            }
    
            /// <summary>
            /// 导出Excel
            /// </summary>
            /// <returns>OperResult[IsSucc:是否成功;Msg:成功返回URL地址/失败返回错误提示]</returns>
            public ActionResult StatJszExportExcel()
            {
                OperResult op = null;
    
                try
                {
                    op = StatJszExportExcelOper(null);
                }
                catch (Exception err)
                {
                    op = OperResult.ToError("发生异常:" + err.Message);
                    BaseWriteException(err);
                }
    
                ContentResult theResult = new ContentResult();
                theResult.ContentEncoding = UTF8Encoding.UTF8;
                theResult.ContentType = MIMETypes.Json;
                theResult.Content = op.ToJson();
    
                return theResult;
            }
    
            #endregion 
    
    

上一条:

下一条:


 

相关评论

评论加载中……
 

发表评论

类型:
内容:
  (Alt+Enter)
 
  ┈全部┈  
 
(显示默认分类)