1. cc-trid-toolbar.html

            /**
             *  excel 다운로드를 수행합니다.
             *  excelDownloadFunction 에 함수가 지정되어있을경우 지정한 지정한 함수를 수행합니다.
             */
            onExcelDownload : function(e, detail){
                var me = this;
                var excelFn = this.excelDownloadFunction;
                if(excelFn && UT.isFunction(this.dataHost[excelFn])) {
                    this.dataHost[excelFn].call(this.dataHost, e, detail);
                } else {
                    this.scGrid.defaultExcelDownload(this.scGrid._gridView);
                    
                    // 그리드의 엑셀다운로드 Log기록
                    var _msgBox = document.querySelector("sc-messagebox");
                    var _btn = _msgBox.querySelectorAll("sc-button")[1];
                    _btn.addEventListener("click", function(event)
                    {
                        _btn.removeEventListener(event.type, arguments.callee);
                        
                        var _fileName       = UT.formatString("{0}.xlsx", _msgBox.querySelector("input").value);
                        var _menuCode       = UT.getMenuId(me);
                        
                        var _param          = {};
                        _param.menu_code    = _menuCode;
                        _param.att_nm       = _fileName;
                        
                        var _ajax   = new SCAjax();
                        _ajax.url   = "insExclDownloadLog.do";
                        _ajax.body  = _param;
                        _ajax.addEventListener("response", function(event)
                        {
                            _ajax.removeEventListener(event.type, arguments.callee);
                            
                            var _result = event.target.lastResponse;
                        });
                        _ajax.request();
                    });
                }
            },

 

2. SharedController.java

    /**
     * 그리드 엑셀 다운로드로그
     *
     * @author : 
     * @param : param
     * @return : Map
     * @Date : 
     * @Method Name : insExclDownloadLog
     */
    @RequestMapping(value="**/insExclDownloadLog.do")
    public @ResponseBody Map insExclDownloadLog(HttpServletRequest request, @RequestBody Map param)
    {
        return sharedService.insExclDownloadLog(request, param);
    }

 

3. SharedService.java

    /**
     * 그리드 엑셀 다운로드로그
     *
     * @author : 
     * @param : param
     * @return : Map
     * @Date : 
     * @Method Name : insExclDownloadLog
     */
    public Map insExclDownloadLog(HttpServletRequest request, Map<String, Object> param)
    {
        Map<String, Object> resultMap = new HashMap<String, Object>();
        resultMap.put(Const.RESULT_STATUS, Const.SUCCESS);
        
        param.put("log_id"      , UUID.randomUUID().toString());
        param.put("client_ip"   , this.getClientIpAddress(request));
        
        sqlSession.insert("shared.insExclDownloadLog", param);
        
        return resultMap;
    }

 

4. shared.xml

    <insert id="insExclDownloadLog">
        <![CDATA[
        /* shared.insExclDownloadLog */
        
        INSERT INTO ESEXLOG (   SYS_ID                                  -- 시스템아이디 
                            ,   LOG_ID                                  -- 로그아이디 
                            ,   USR_ID                                  -- 사용자아이디 
                            ,   USR_CLS                                 -- 사용자구분 
                            ,   COMP_CD                                 -- 회사코드 
                            ,   CONTROLLER_CLASS                        -- 호출class 
                            ,   METHOD_NAME                             -- 호출method 
                            ,   MENU_CODE                               -- 메뉴코드 
                            ,   ACCESS_TIME                             -- 요청시간 
                            ,   REMOTE_ADDRESS                          -- IP 
                            ,   REMOTE_HOST                             -- HOST 
                            ,   ATT_NM)                                 -- 파일이름 
                    VALUES  (   #{g.tenant}                             -- 시스템아이디 
                            ,   #{p.log_id}                             -- 로그아이디 
                            ,   #{g.username}                           -- 사용자아이디 
                            ,   #{g.usr_cls}                            -- 사용자구분 
                            ,   #{g.comp_cd}                            -- 회사코드 
                            ,   NULL                                    -- 호출class 
                            ,   NULL                                    -- 호출method 
                            ,   #{p.menu_code}                          -- 메뉴코드 
                            ,   #{g.now}                                -- 요청시간 
                            ,   #{p.client_ip}                          -- IP 
                            ,   NULL                                    -- HOST 
                            ,   #{p.att_nm})                            -- 파일이름 
        ]]>
    </insert>