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>