diff --git a/ClipReport4/ClipReport4/Clip.aspx b/ClipReport4/ClipReport4/Clip.aspx
new file mode 100644
index 0000000..c561a22
--- /dev/null
+++ b/ClipReport4/ClipReport4/Clip.aspx
@@ -0,0 +1,103 @@
+<%@ Page Language="C#" AutoEventWireup="true" %>
+
+<%
+
+
+ReportUtil reportUtil = ReportUtil.getInstance();
+
+string passName = Request.Params["ClipID"];
+Response.AddHeader("Cache-Control", "no-store");
+Response.AddHeader("Connection", "close");
+
+
+/**
+ 데몬서버 지원 API Code (ClipID) 는 세 자리 수로 되어있습니다.
+**/
+
+if (null != passName)
+{
+ // R01 : 비동기적으로 리포트를 생성한다.
+ if ("R01".Equals(passName))
+ {
+ reportUtil.responseForCreateReport(Request, Response);
+ }
+ // R02 : 리포트 뷰를 호출한다.
+ // R11 : HTML 인쇄를 위한 export 를 요청합니다.
+ else if ("R02".Equals(passName) || "R11".Equals(passName))
+ {
+ reportUtil.responseForView(Request, Response);
+ }
+ // R03 : 리포트 생성 상태를 비동기로 확인합니다.
+ else if ("R03".Equals(passName))
+ {
+ Response.AddHeader("Connection", "Keep-Alive");
+ Response.AddHeader("Keep-Alive", "timeout=5, max=99");
+ reportUtil.responseForStatus(Request, Response);
+ }
+ // R04 : 리포트 삭제를 요청합니다. (세션 종료 및 자원 반환)
+ else if ("R04".Equals(passName))
+ {
+ reportUtil.deleteReport(Request, Response);
+ }
+ // R16 : export 상태를 비동기로 확인합니다. 이 명령이 호출되기 전에 R08 을 통하여 동기적으로 export 된 문서를 내려줘야 합니다.
+ else if ("R16".Equals(passName) || "R09S2".Equals(passName))
+ {
+ reportUtil.responseForExportStatus(Request, Response);
+ }
+ // export 를 요청합니다.
+ // R06 ~ R08 : 문서 파일 export
+ // R09 : 인쇄를 위한 export
+ else if ("R09S1".Equals(passName) || new Regex("R(0[5-9]|(10))").IsMatch(passName))
+ {
+ reportUtil.responseForExport(Request, Response);
+ }
+
+ // 데몬서버 지원 R160 : export 상태를 비동기로 확인합니다.
+ else if ("R160".Equals(passName))
+ {
+ reportUtil.responseForExportToken(Request, Response);
+ }
+ // 데몬서버 지원 R161 : export 된 문서 파일을 다운로드 합니다.
+ else if ("R161".Equals(passName))
+ {
+ reportUtil.responseForExportBinaryDocument(Request, Response);
+ }
+ // R17 : 접근성 뷰어(html4)에 포함된 번들 이미지를 다운로드 받을 수 있습니다.
+ else if ("R17".Equals(passName))
+ {
+ reportUtil.responseForBundle(Request, Response);
+ }
+ else if ("R50".Equals(passName))
+ {
+ }
+ else if ("R51".Equals(passName))
+ {
+ }
+ else if ("R15".Equals(passName))
+ {
+ }
+ else if ("R15".Equals(passName))
+ {
+ }
+ else if ("S01".Equals(passName))
+ {
+ reportUtil.responseForCookies(Request, Response);
+
+ }
+ else if ("is_daemon".Equals(passName))
+ {
+ Response.ContentType = "text/html; charset=UTF-8";
+ Response.AddHeader("Cache-Control", "Private, No-store, No-cache, Must-Revalidate");
+ Response.Write("({'success':true})");
+ }
+ //else if ("R150".Equals(passName) && environment.isDebug())
+ //{
+ //reportUtil.responseForEnvironment(Request, Response);
+ //}
+ else
+ {
+ Response.Close();
+ }
+ return;
+}
+%>
\ No newline at end of file
diff --git a/ClipReport4/ClipReport4/ClipAndFarsoo.aspx b/ClipReport4/ClipReport4/ClipAndFarsoo.aspx
new file mode 100644
index 0000000..211b948
--- /dev/null
+++ b/ClipReport4/ClipReport4/ClipAndFarsoo.aspx
@@ -0,0 +1,141 @@
+<%@ Page Language="C#" AutoEventWireup="true" %>
+
+<%
+
+
+ReportUtil reportUtil = ReportUtil.getInstance();
+
+string passName = Request.Params["ClipID"];
+Response.AddHeader("Cache-Control", "no-store");
+Response.AddHeader("Connection", "close");
+
+bool isAsync = "true".Equals(Request.Params["async"] + "", StringComparison.CurrentCultureIgnoreCase);
+bool isExportPassName = passName != null && new Regex("R(0[5-9]|(10))").IsMatch(passName);
+bool isExportDownload = !isAsync && isExportPassName;
+
+if (null != passName)
+{
+
+ // 문서 암호화 처리블록.
+ if (isExportDownload)
+ {
+ string reportKey = Request.Params["uid"];
+ // 임의의 파일 경로를 지정할 수 있습니다.
+ string directory = System.Web.HttpContext.Current.Server.MapPath("~/resources/temp/" + reportKey);
+ System.IO.Directory.CreateDirectory(directory);
+
+ ExportInfo exportInfo = reportUtil.getExport(Request, directory);
+ int errorCode = exportInfo.ErrorCode;
+
+ // exportInfo.ErrorCode == 0 정상
+ // exportInfo.ErrorCode == 1 세션이 종료 되었거나, 결과물(document) 파일을 찾을 수 없을 때 오류
+ // exportInfo.ErrorCode == 2 문서 생성중 오류 발생
+ // exportInfo.ErrorCode == 3 파일 서버에 저장중에 오류 발생
+ // 에러 처리.
+ if (exportInfo.ErrorCode != 0)
+ {
+ Response.Write("{\"status\": false, \"event\":20}");
+ return;
+ }
+
+ // 로컬에 저장된 파일 경로
+ String filePath = exportInfo.FilePath;
+ /*******
+ *
+ * 여기서 저장된 파일 경로를 이용하여 문서 암호화 처리.
+ *
+ ******/
+
+
+ // exportInfo.FilePath = "바뀐 파일 경로 설정 가능";
+ // 아래 라인을 통하여 사용자에게 생성된 문서 파일 보내기.
+ // 아래 코드는 단순히 파일 경로(filePath)를 사용자의 브라우저로 전달합니다.
+ reportUtil.sendExport(Request, Response, exportInfo);
+ System.IO.File.Delete(exportInfo.FilePath);
+ System.IO.Directory.Delete(directory);
+
+ }
+ // R01 : 비동기적으로 리포트를 생성한다.
+ else if ("R01".Equals(passName))
+ {
+ reportUtil.responseForCreateReport(Request, Response);
+ }
+ // R02 : 리포트 뷰를 호출한다.
+ // R11 : HTML 인쇄를 위한 export 를 요청합니다.
+ else if ("R02".Equals(passName) || "R11".Equals(passName))
+ {
+ reportUtil.responseForView(Request, Response);
+ }
+ // R03 : 리포트 생성 상태를 비동기로 확인합니다.
+ else if ("R03".Equals(passName))
+ {
+ Response.AddHeader("Connection", "Keep-Alive");
+ Response.AddHeader("Keep-Alive", "timeout=5, max=99");
+ reportUtil.responseForStatus(Request, Response);
+ }
+ // R04 : 리포트 삭제를 요청합니다. (세션 종료 및 자원 반환)
+ else if ("R04".Equals(passName))
+ {
+ reportUtil.deleteReport(Request, Response);
+ }
+ // export 를 요청합니다.
+ // R06 ~ R08 : 문서 파일 export
+ // R09 : 인쇄를 위한 export
+ else if (isAsync && isExportPassName)
+ {
+ reportUtil.responseForExport(Request, Response);
+ }
+ // R16 : export 상태를 비동기로 확인합니다. 이 명령이 호출되기 전에 R08 을 통하여 동기적으로 export 된 문서를 내려줘야 합니다.
+ else if ("R16".Equals(passName))
+ {
+ reportUtil.responseForExportStatus(Request, Response);
+ }
+ // 데몬서버 지원 R160 : export 상태를 비동기로 확인합니다.
+ else if ("R160".Equals(passName))
+ {
+ reportUtil.responseForExportToken(Request, Response);
+ }
+ // 데몬서버 지원 R161 : export 된 문서 파일을 다운로드 합니다.
+ else if ("R161".Equals(passName))
+ {
+ reportUtil.responseForExportBinaryDocument(Request, Response);
+ }
+ // R17 : 접근성 뷰어(html4)에 포함된 번들 이미지를 다운로드 받을 수 있습니다.
+ else if ("R17".Equals(passName))
+ {
+ reportUtil.responseForBundle(Request, Response);
+ }
+ else if ("R50".Equals(passName))
+ {
+ }
+ else if ("R51".Equals(passName))
+ {
+ }
+ else if ("R15".Equals(passName))
+ {
+ }
+ else if ("R15".Equals(passName))
+ {
+ }
+ else if ("S01".Equals(passName))
+ {
+ reportUtil.responseForCookies(Request, Response);
+
+ }
+ else if ("is_daemon".Equals(passName))
+ {
+ Response.ContentType = "text/html; charset=UTF-8";
+ Response.AddHeader("Cache-Control", "Private, No-store, No-cache, Must-Revalidate");
+ Response.Write("({'success':true})");
+ }
+ //else if ("R150".Equals(passName) && environment.isDebug())
+ //{
+ //reportUtil.responseForEnvironment(Request, Response);
+ //}
+ else
+ {
+ Response.Close();
+ }
+ return;
+}
+%>
\ No newline at end of file
diff --git a/ClipReport4/ClipReport4/ClipAndMarkAny.aspx b/ClipReport4/ClipReport4/ClipAndMarkAny.aspx
new file mode 100644
index 0000000..b8a4343
--- /dev/null
+++ b/ClipReport4/ClipReport4/ClipAndMarkAny.aspx
@@ -0,0 +1,174 @@
+<%@ Page Language="C#" AutoEventWireup="true" %>
+<%@ Import Namespace="System.IO"%>
+<%
+
+
+ReportUtil reportUtil = ReportUtil.getInstance();
+
+string passName = Request.Params["ClipID"];
+Response.AddHeader("Cache-Control", "no-store");
+Response.AddHeader("Connection", "close");
+
+
+/**
+ 데몬서버 지원 API Code (ClipID) 는 세 자리 수로 되어있습니다.
+**/
+
+if (null != passName)
+{
+ // R01 : 비동기적으로 리포트를 생성한다.
+ if ("R01".Equals(passName))
+ {
+ reportUtil.responseForCreateReport(Request, Response);
+ }
+ // R02 : 리포트 뷰를 호출한다.
+ // R11 : HTML 인쇄를 위한 export 를 요청합니다.
+ else if ("R02".Equals(passName) || "R11".Equals(passName))
+ {
+ reportUtil.responseForView(Request, Response);
+ }
+ // R03 : 리포트 생성 상태를 비동기로 확인합니다.
+ else if ("R03".Equals(passName))
+ {
+ Response.AddHeader("Connection", "Keep-Alive");
+ Response.AddHeader("Keep-Alive", "timeout=5, max=99");
+ reportUtil.responseForStatus(Request, Response);
+ }
+ // R04 : 리포트 삭제를 요청합니다. (세션 종료 및 자원 반환)
+ else if ("R04".Equals(passName))
+ {
+ reportUtil.deleteReport(Request, Response);
+ }
+ else if ("R08".Equals(passName))
+ {
+
+ // 다운로드될 파일이 위치할 디렉토리 경로.
+ String downloadDirectory = System.Web.HttpContext.Current.Server.MapPath("~/resources/download");
+
+ ResultMarkany exportInfo = reportUtil.responseForMarkAny(downloadDirectory, Request, Response);
+
+ // 마크애니를 사용하기 위래서 아랫부분을 수정하면 됩니다.
+ if (exportInfo != null)
+ {
+
+
+ int errorCode = exportInfo.getErrorCode();
+ //errorCode == 0 정상
+ //errorCode == 1 리포트 서버 오류.
+ //errorCode == 2 oof 형식이 잘못되었거나 crf 를 찾을 수 없음.
+ //errorCode == 4 데이터 혹은 pdf 파일을 WAS Client 디렉토리에 저장할 수 없음.
+ //errorCode == 5 리포트와 pdf, dat 생성 오류();
+ //errorCode == 6 라이선스 오류
+ //errorCode == 7 리포트가 존재하지 않음.
+
+ //바코드로 만든 데이터 파일 위치
+ String datFilePath = exportInfo.getDataFilePath();
+ //생성된 pdf 파일 위치
+ String dstFilePath = exportInfo.getPdfFilePath();
+
+ //세로 0
+ //가로 1
+ int paperOrientation = exportInfo.getPaperOrientation();
+
+ // 페이지 수
+ exportInfo.getPageCount();
+
+ // 바코드 좌표
+ exportInfo.getLeft();
+ exportInfo.getRight();
+ exportInfo.getTop();
+ exportInfo.getBottom();
+
+ //DRM PDF 로 변환(변환된 파일주소를 dstFile 변수에 넣어주시면 됩니다.)
+
+ if (dstFilePath != null && !"".Equals(dstFilePath))
+ {
+
+ //변환된 pdf 클라이언트로 파일 내리기
+ String downloadFile = dstFilePath;
+
+ // 헤더 추가.
+ Response.ContentType = "application/pdf";
+ Response.AddHeader("Content-Length", new FileInfo(dstFilePath).Length + "");
+
+
+
+ Response.WriteFile(downloadFile);
+ Response.Flush();
+
+ //byte[] buffer = new byte[4096];
+ //int bytesRead = -1;
+
+
+ //inStream.Close();
+ //outStream.Close();
+
+ // 파일 삭제.
+ File.Delete(downloadFile);
+ File.Delete(datFilePath);
+ }
+
+ }
+
+ }
+ // export 를 요청합니다.
+ // R06 ~ R08 : 문서 파일 export
+ // R09 : 인쇄를 위한 export
+ else if (new Regex("R(0[5-9]|(10))").IsMatch(passName))
+ {
+ reportUtil.responseForExport(Request, Response);
+ }
+ // R16 : export 상태를 비동기로 확인합니다. 이 명령이 호출되기 전에 R08 을 통하여 동기적으로 export 된 문서를 내려줘야 합니다.
+ else if ("R16".Equals(passName))
+ {
+ reportUtil.responseForExportStatus(Request, Response);
+ }
+ // 데몬서버 지원 R160 : export 상태를 비동기로 확인합니다.
+ else if ("R160".Equals(passName))
+ {
+ reportUtil.responseForExportToken(Request, Response);
+ }
+ // 데몬서버 지원 R161 : export 된 문서 파일을 다운로드 합니다.
+ else if ("R161".Equals(passName))
+ {
+ reportUtil.responseForExportBinaryDocument(Request, Response);
+ }
+ // R17 : 접근성 뷰어(html4)에 포함된 번들 이미지를 다운로드 받을 수 있습니다.
+ else if ("R17".Equals(passName))
+ {
+ reportUtil.responseForBundle(Request, Response);
+ }
+ else if ("R50".Equals(passName))
+ {
+ }
+ else if ("R51".Equals(passName))
+ {
+ }
+ else if ("R15".Equals(passName))
+ {
+ }
+ else if ("R15".Equals(passName))
+ {
+ }
+ else if ("S01".Equals(passName))
+ {
+ reportUtil.responseForCookies(Request, Response);
+
+ }
+ else if ("is_daemon".Equals(passName))
+ {
+ Response.ContentType = "text/html; charset=UTF-8";
+ Response.AddHeader("Cache-Control", "Private, No-store, No-cache, Must-Revalidate");
+ Response.Write("({'success':true})");
+ }
+ //else if ("R150".Equals(passName) && environment.isDebug())
+ //{
+ //reportUtil.responseForEnvironment(Request, Response);
+ //}
+ else
+ {
+ Response.Close();
+ }
+ return;
+}
+%>
\ No newline at end of file
diff --git a/ClipReport4/ClipReport4/DRMVerify.aspx b/ClipReport4/ClipReport4/DRMVerify.aspx
new file mode 100644
index 0000000..75ef0ad
--- /dev/null
+++ b/ClipReport4/ClipReport4/DRMVerify.aspx
@@ -0,0 +1,14 @@
+<%@ Page Language="C#" AutoEventWireup="true" %>
+
+
+<%
+
+ReportUtil reportUtil = ReportUtil.getInstance();
+
+ClipReportDRM.setClient(reportUtil.getCLIPreportClient());
+
+
+//데이터가 파라미터 (DRMVerify)명의 base64 String 넘어오는 경우
+//response 사용하지 않고 문자열로 return 받는 경우
+String reportSVG = ClipReportDRM.verifyBase64String(Request);
+%><%=reportSVG%>
diff --git a/ClipReport4/ClipReport4/Default.aspx b/ClipReport4/ClipReport4/Default.aspx
new file mode 100644
index 0000000..d62c962
--- /dev/null
+++ b/ClipReport4/ClipReport4/Default.aspx
@@ -0,0 +1,17 @@
+<%@ page language="C#" autoeventwireup="true" inherits="_Default, CLIPReportSDKHelper" %>
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ClipReport4/ClipReport4/PrecompiledApp.config b/ClipReport4/ClipReport4/PrecompiledApp.config
new file mode 100644
index 0000000..f7f4068
--- /dev/null
+++ b/ClipReport4/ClipReport4/PrecompiledApp.config
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ClipReport4/ClipReport4/certification.aspx b/ClipReport4/ClipReport4/certification.aspx
new file mode 100644
index 0000000..e42410a
--- /dev/null
+++ b/ClipReport4/ClipReport4/certification.aspx
@@ -0,0 +1,125 @@
+<%@ Page Language="C#" AutoEventWireup="true" %>
+<%@ Import Namespace="CLIPreport.OOF"%>
+
+
+<%
+
+
+
+
+
+ReportUtil reportUtil = ReportUtil.getInstance();
+Response.AddHeader("Cache-Control", "no-cache, no-store");
+
+
+OOFDocument oof = OOFDocument.newOOF();
+
+// Set report title
+oof.setTitle("수료증");
+
+OOFFile file = oof.addFile("crf", "certification.crf");
+
+// DB Connection
+oof.addConnectionData("*","lmsynicte");
+
+// Add Field
+oof.addField("lectno",Request.QueryString["lectno"].ToString());
+
+
+
+
+//##############################################################################################################################
+
+//##############################################################################################################################
+// [Example] Inserting data in XML format from HTTP.
+//file.addConnectionHTTP("*", "http://rexpert.clipsoft.kr/rebfiles/demo/resign.xml", null).addContentParamXML();
+//################################################################# #############################################################
+
+
+
+//##############################################################################################################################
+// [Example] Inserting JSON data.
+//file.addConnectionMemo("*", "{\"value\":200}" ).addContentParamJSON();
+//##############################################################################################################################
+
+
+// Create a Report key.
+// This key is used in the Javascript-based report viewer.
+
+String reportKey = reportUtil.createReportToKey( oof);
+
+
+//##############################################################################################################################
+// [Example] You can use the comment code below.
+//String reportKey = reportUtil.createReportToKey(response, oof, request.getCharacterEncoding());
+//String reportKey = reportUtil.createReportToKey(response, oof.toBase64());
+//String reportKey = reportUtil.createReportToKey(response, oof);
+//##############################################################################################################################
+
+%>
+
+
+
+Report
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+s
\ No newline at end of file
diff --git a/ClipReport4/ClipReport4/certificationpast.aspx b/ClipReport4/ClipReport4/certificationpast.aspx
new file mode 100644
index 0000000..7945300
--- /dev/null
+++ b/ClipReport4/ClipReport4/certificationpast.aspx
@@ -0,0 +1,110 @@
+<%@ Page Language="C#" AutoEventWireup="true" %>
+<%@ Import Namespace="CLIPreport.OOF"%>
+
+
+<%
+
+
+
+
+
+ReportUtil reportUtil = ReportUtil.getInstance();
+Response.AddHeader("Cache-Control", "no-cache, no-store");
+
+
+OOFDocument oof = OOFDocument.newOOF();
+
+// Set report title
+oof.setTitle("수료증");
+
+OOFFile file = oof.addFile("crf", "certificationpast.crf");
+
+// DB Connection
+oof.addConnectionData("*","lmsynicte");
+
+// Add Field
+oof.addField("lectno",Request.QueryString["lectno"].ToString());
+
+
+
+
+//##############################################################################################################################
+
+//##############################################################################################################################
+// [Example] Inserting data in XML format from HTTP.
+//file.addConnectionHTTP("*", "http://rexpert.clipsoft.kr/rebfiles/demo/resign.xml", null).addContentParamXML();
+//################################################################# #############################################################
+
+
+
+//##############################################################################################################################
+// [Example] Inserting JSON data.
+//file.addConnectionMemo("*", "{\"value\":200}" ).addContentParamJSON();
+//##############################################################################################################################
+
+
+// Create a Report key.
+// This key is used in the Javascript-based report viewer.
+
+String reportKey = reportUtil.createReportToKey( oof);
+
+
+//##############################################################################################################################
+// [Example] You can use the comment code below.
+//String reportKey = reportUtil.createReportToKey(response, oof, request.getCharacterEncoding());
+//String reportKey = reportUtil.createReportToKey(response, oof.toBase64());
+//String reportKey = reportUtil.createReportToKey(response, oof);
+//##############################################################################################################################
+
+%>
+
+
+
+Report
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+s
\ No newline at end of file
diff --git a/ClipReport4/ClipReport4/css/UserConfig.css b/ClipReport4/ClipReport4/css/UserConfig.css
new file mode 100644
index 0000000..0947e09
--- /dev/null
+++ b/ClipReport4/ClipReport4/css/UserConfig.css
@@ -0,0 +1,188 @@
+@CHARSET "UTF-8";
+
+/*
+사용자 정의 css 파일입니다.
+기본적으로 제공하는 css 파일의 내용을 복사하여 오버라이딩 하여 사용합니다.
+*/
+
+/*예제 뷰어 메뉴*/
+/*
+.report_menu_div {
+ position: absolute;
+ top: 0px;
+ width: 100%;
+ height: 65px;
+ overflow: visible;
+ background-color: red;
+ background-position: 5px 50%;
+ background-repeat: no-repeat;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -khtml-user-select: none;
+ -ms-user-select: none;
+}
+*/
+
+/*
+필수 항목을 체크하지 않았을 때 필수 항목이 들어간 컨트롤에 아래의 스타일을 적용합니다.
+*/
+.eForm_NecessaryCheck{
+ background-color : orange !important;
+ opacity: 0.5 !important;
+}
+
+
+/*
+입력 컨트롤에 포커스가 들어왔을 때 아래의 스타일을 적용합니다.
+*/
+.eform_textarea:focus{
+ border:2pt solid Orange;
+ outline: none;
+}
+
+.eform_control_focus{
+ border:2pt solid Orange;
+}
+
+/*
+목차에 관련된 스타일을 적용합니다.
+*/
+/*
+.eform_toc_menu_top {
+ position: absolute;
+ left: 10px;
+ top: 55px;
+ height: 50px;
+ width: 250px;
+ background-color: rgba(243, 243, 243, 0.95);
+ border-bottom: 2px solid rgb(212, 212, 212);
+ box-sizing: border-box;
+ border-radius: 10px 10px 0px 0px;
+}
+
+.eform_toc_menu_top_text {
+ position: absolute;
+ left: 5px;
+ top: 15px;
+ font-family: 나눔고딕;
+ font-size: 13pt;
+ color: rgb(115, 197, 215);
+ font-weight: bold;
+}
+
+.eform_toc_menu_top_close {
+ position: absolute;
+ right: 10px;
+ top: 17px;
+ width: 19px;
+ height: 19px;
+ background-image: url(../img/eform/list_close.png);
+ background-size: contain;
+ cursor: pointer;
+}
+
+.eform_toc_menu_body {
+ position: absolute;
+ left: 10px;
+ top: 105px;
+ overflow-x: hidden;
+ overflow-y: auto;
+ width: 250px;
+ bottom: 35px;
+ background-color: rgba(243, 243, 243, 0.95);
+ box-sizing: border-box;
+}
+
+.eform_toc_list_depth {
+ position: relative;
+ left: 0px;
+ right: 0px;
+ height: 30px;
+ border-bottom: 1px solid rgb(212, 212, 212);
+}
+
+.eform_toc_nec_list_depth {
+ position: relative;
+ left: 0px;
+ right: 0px;
+ height: 30px;
+ border-bottom: 1px solid rgb(212, 212, 212);
+ background-image:url(../img/eform/nec_check.png);
+ background-size: 15px 15px;
+ background-repeat: no-repeat;
+ background-position : 5px center;
+}
+
+.eform_toc_list_depth_text{
+ position: absolute;
+ font-family : 나눔고딕;
+ font-weight: bold;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow:hidden;
+ cursor: pointer;
+}
+
+.eform_toc_list_depth_pageNumber{
+ position: absolute;
+ font-family : 나눔고딕;
+ white-space: nowrap;
+ overflow:hidden;
+ font-size: 10pt;
+ top:7px;
+ right:0px;
+ width:30px;
+ text-align: center;
+}
+
+.eform_toc_list_depth1_text {
+ font-size: 12pt;
+ color: rgb(215, 172, 135);
+ top: 5px;
+ bottom: 0px;
+
+}
+
+.eform_toc_list_depth2_text {
+ font-size: 12pt;
+ color: rgb(100, 100, 100);
+ top: 5px;
+ bottom: 0px;
+}
+
+.eform_toc_list_depth3_text {
+ font-size: 11pt;
+ color: rgb(100, 100, 100);
+ top: 7px;
+ bottom: 0px;
+}
+
+.eform_toc_menu_bottom {
+ position: absolute;
+ left: 10px;
+ bottom: 25px;
+ height: 10px;
+ width: 250px;
+ background-color: rgba(243, 243, 243, 0.95);
+ box-sizing: border-box;
+ border-radius: 0px 0px 10px 10px;
+}
+*/
+
+.report_displayNone{
+ position:absoulte !important;
+ width:1px !important;
+ height:1px !important;
+ visibility: hidden !important;
+ opacity:0 !important;
+}
+
+/*
+사용자 정의 프로그래스 createUserProgress 함수를 사용하였을 때 동작합니다.
+*/
+.user_progress{
+ background-position: 50% 50%;
+ background-image: url(../img/efromProgress.gif);
+ opacity: 0.5;
+ background-color:gray;
+}
diff --git a/ClipReport4/ClipReport4/css/clipreport.css b/ClipReport4/ClipReport4/css/clipreport.css
new file mode 100644
index 0000000..6780b81
--- /dev/null
+++ b/ClipReport4/ClipReport4/css/clipreport.css
@@ -0,0 +1,1037 @@
+@CHARSET "UTF-8";
+
+/*
+웹 접근성 관련 주석처리(focus rect)
+input:focus, button:focus, select:focus{
+ outline: none;
+}
+*/
+
+
+/*뷰어 메뉴*/
+.report_menu_div {
+ position: absolute;
+ top: 0px;
+ width: 100%;
+ height: 65px;
+ overflow: visible;
+ background-color: #fff;
+ background-position: 5px 50%;
+ background-repeat: no-repeat;
+ -webkit-user-select: none; /* webkit (safari, chrome) browsers */
+ -moz-user-select: none; /* mozilla browsers */
+ -khtml-user-select: none; /* webkit (konqueror) browsers */
+ -ms-user-select: none; /* IE10+ */
+}
+
+/*리포트 배경*/
+.report_paint_div {
+ position: absolute;
+ top: 65px;
+ width: 100%;
+ bottom: 0px;
+ border: 1px solid silver;
+ background-color: #eee;
+ overflow: auto;
+ text-align: center;
+}
+
+/*리포트 프로그래스*/
+.report_progress {
+ background-repeat: no-repeat;
+ background-position: 50% 30%;
+ background-image: url(../img/deploying.gif);
+}
+
+.report_menu_table {
+ position: absolute;
+ left: 0px;
+ height: 100%;
+ width: 100%;
+ border: 1px solid silver;
+ text-align: right;
+}
+
+.report_menu_table_td {
+ border: 0px solid silver;
+ text-align: left;
+}
+
+.report_menu_table_td_div {
+ position: relative;
+ height: 30px;
+ width: 100%;
+ font-size: 10pt;
+}
+
+
+/*메뉴에 존재하는 버튼 공통 디자인*/
+.report_menu_button {
+ position: absolute;
+ width: 35px;
+ height: 35px;
+ background-size: contain;
+ border: 0px solid #FFFFFF;
+ background-color: transparent;
+ cursor: pointer;
+}
+/*마우스 오버 됐을 때 디자인*/
+.report_menu_button:hover{
+ background-repeat: no-repeat;
+}
+
+/*저장 버튼*/
+.report_menu_save_button {
+ left: 7px;
+}
+
+.report_menu_save_button:hover {
+/*
+ width: 37px;
+ height: 37px;
+ */
+}
+
+.report_menu_save_button_svg {
+ background-image: url(../img/save.svg);
+}
+
+.report_menu_save_button_svg_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/save.svg);
+}
+
+.report_menu_save_button_svg:hover {
+ background-image: url(../img/over/save.svg);
+}
+
+.report_menu_save_button_png {
+ background-image: url(../img/PNG/save.png);
+}
+
+.report_menu_save_button_png_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/save.png);
+}
+
+.report_menu_save_button_png:hover {
+ background-image: url(../img/PNG/over/save.png);
+}
+
+/*프린트 버튼*/
+.report_menu_print_button {
+ /*left:55px;*/
+ left: 234px;
+}
+
+.report_menu_print_button:hover {
+ /*
+ width: 37px;
+ height: 37px;
+ */
+}
+
+.report_menu_print_button_svg {
+ background-image: url(../img/print.svg);
+}
+
+.report_menu_print_button_svg_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/print.svg);
+}
+
+.report_menu_print_button_svg:hover {
+ background-image: url(../img/over/print.svg);
+}
+
+.report_menu_print_button_png {
+ background-image: url(../img/PNG/print.png);
+}
+
+.report_menu_print_button_png_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/print.png);
+}
+
+.report_menu_print_button_png:hover {
+ background-image: url(../img/PNG/over/print.png);
+}
+
+/*첫페이지 이동 버튼*/
+.report_menu_leftEnd_button {
+ /*left:85px;*/
+ left: 320px;
+}
+
+.report_menu_leftEnd_button:hover {
+ /*
+ width: 37px;
+ height: 37px;
+ */
+}
+
+.report_menu_leftEnd_button_svg {
+ background-image: url(../img/leftEnd.svg);
+}
+
+.report_menu_leftEnd_button_svg_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/leftEnd.svg);
+}
+
+.report_menu_leftEnd_button_svg:hover {
+ background-image: url(../img/over/leftEnd.svg);
+}
+
+.report_menu_leftEnd_button_png {
+ background-image: url(../img/PNG/leftEnd.png);
+}
+
+.report_menu_leftEnd_button_png_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/leftEnd.png);
+}
+
+.report_menu_leftEnd_button_png:hover {
+ background-image: url(../img/PNG/over/leftEnd.png);
+}
+
+/*이전페이지 이동 버튼*/
+.report_menu_left_button {
+ left: 358px;
+}
+
+.report_menu_left_button:hover {
+ /*
+ width: 37px;
+ height: 37px;
+ */
+}
+
+.report_menu_left_button_svg {
+ background-image: url(../img/left.svg);
+}
+
+.report_menu_left_button_svg_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/left.svg);
+}
+
+.report_menu_left_button_svg:hover {
+ background-image: url(../img/over/left.svg);
+}
+
+.report_menu_left_button_png {
+ background-image: url(../img/PNG/left.png);
+}
+
+.report_menu_left_button_png_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/left.png);
+}
+
+.report_menu_left_button_png:hover {
+ background-image: url(../img/PNG/over/left.png);
+}
+
+/*다음 페이지 이동 버튼*/
+.report_menu_right_button {
+ /*left:240px;*/
+ left: 502px;
+}
+
+.report_menu_right_button:hover {
+ /*
+ width: 37px;
+ height: 37px;
+ */
+}
+
+.report_menu_right_button_svg {
+ background-image: url(../img/right.svg);
+}
+
+.report_menu_right_button_svg_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/right.svg);
+}
+
+.report_menu_right_button_svg:hover {
+ background-image: url(../img/over/right.svg);
+}
+
+.report_menu_right_button_png {
+ background-image: url(../img/PNG/right.png);
+}
+
+.report_menu_right_button_png_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/right.png);
+}
+
+.report_menu_right_button_png:hover {
+ background-image: url(../img/PNG/over/right.png);
+}
+
+/*마지막 페이지 이동 버튼*/
+.report_menu_rightEnd_button {
+ /*left:265px;*/
+ left: 540px;
+}
+
+.report_menu_rightEnd_button:hover {
+ /*
+ width: 37px;
+ height: 37px;
+ */
+}
+
+.report_menu_rightEnd_button_svg {
+ background-image: url(../img/rightEnd.svg);
+}
+
+.report_menu_rightEnd_button_svg_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/rightEnd.svg);
+}
+
+.report_menu_rightEnd_button_svg:hover {
+ background-image: url(../img/over/rightEnd.svg);
+}
+
+.report_menu_rightEnd_button_png {
+ background-image: url(../img/PNG/rightEnd.png);
+}
+
+.report_menu_rightEnd_button_png_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/rightEnd.png);
+}
+
+.report_menu_rightEnd_button_png:hover {
+ background-image: url(../img/PNG/over/rightEnd.png);
+}
+
+/*pdf 다운로드 버튼*/
+.report_menu_pdf_button {
+ /*left:480px;*/
+ left: 50px;
+}
+
+.report_menu_pdf_button:hover {
+ /*
+ width: 37px;
+ height: 37px;
+ */
+}
+
+.report_menu_pdf_button_svg {
+ background-image: url(../img/pdf.svg);
+}
+
+.report_menu_pdf_button_svg_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/pdf.svg);
+}
+
+.report_menu_pdf_button_svg:hover {
+ background-image: url(../img/over/pdf.svg);
+}
+
+.report_menu_pdf_button_png {
+ background-image: url(../img/PNG/pdf.png);
+}
+
+.report_menu_pdf_button_png_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/pdf.png);
+}
+
+.report_menu_pdf_button_png:hover {
+ background-image: url(../img/PNG/over/pdf.png);
+}
+
+/*엑셀 다운로드 버튼*/
+.report_menu_excel_button {
+ /*left:505px;*/
+ left: 90px;
+}
+
+.report_menu_excel_button:hover {
+ /*
+ width: 37px;
+ height: 37px;
+ */
+}
+
+.report_menu_excel_button_svg {
+ background-image: url(../img/excel.svg);
+}
+
+.report_menu_excel_button_svg_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/excel.svg);
+}
+
+.report_menu_excel_button_svg:hover {
+ background-image: url(../img/over/excel.svg);
+}
+
+.report_menu_excel_button_png {
+ background-image: url(../img/PNG/excel.png);
+}
+
+.report_menu_excel_button_png_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/excel.png);
+}
+
+.report_menu_excel_button_png:hover {
+ background-image: url(../img/PNG/over/excel.png);
+}
+
+/*한글 다운로드 버튼*/
+.report_menu_hwp_button {
+ /*left:530px;*/
+ left: 130px;
+}
+
+.report_menu_hwp_button:hover {
+ /*
+ width: 37px;
+ height: 37px;
+ */
+}
+
+.report_menu_hwp_button_svg {
+ background-image: url(../img/hwp.svg);
+}
+
+.report_menu_hwp_button_svg_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/hwp.svg);
+}
+
+.report_menu_hwp_button_svg:hover {
+ background-image: url(../img/over/hwp.svg);
+}
+
+.report_menu_hwp_button_png {
+ background-image: url(../img/PNG/hwp.png);
+}
+
+.report_menu_hwp_button_png_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/hwp.png);
+}
+
+.report_menu_hwp_button_png:hover {
+ background-image: url(../img/PNG/over/hwp.png);
+}
+
+/*DOC 다운로드 버튼*/
+.report_menu_doc_button {
+ /*left:530px;*/
+ left: 170px;
+ display:none;
+}
+
+.report_menu_doc_button:hover {
+ /*
+ width: 37px;
+ height: 37px;
+ */
+}
+
+.report_menu_doc_button_svg {
+ background-image: url(../img/doc.svg);
+}
+
+.report_menu_doc_button_svg_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/doc.svg);
+}
+
+.report_menu_doc_button_svg:hover {
+ background-image: url(../img/over/pdf.svg);
+}
+
+.report_menu_doc_button_png {
+ background-image: url(../img/PNG/doc.png);
+}
+
+.report_menu_doc_button_png_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/doc.png);
+}
+
+.report_menu_doc_button_png:hover {
+ background-image: url(../img/PNG/over/pdf.png);
+}
+
+
+/*리포트 정보 버튼*/
+.report_menu_reportInfo_button {
+ /*left:555px;*/
+ left: 765px;
+}
+
+.report_menu_reportInfo_button:hover {
+ /*
+ width: 37px;
+ height: 37px;
+ */
+}
+
+.report_menu_reportInfo_button_svg {
+ background-image: url(../img/info.svg);
+}
+
+.report_menu_reportInfo_button_svg_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/info.svg);
+}
+
+.report_menu_reportInfo_button_svg:hover {
+ background-image: url(../img/over/info.svg);
+}
+
+.report_menu_reportInfo_button_png {
+ background-image: url(../img/PNG/info.png);
+}
+
+.report_menu_reportInfo_button_png_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/info.png);
+}
+
+.report_menu_reportInfo_button_png:hover {
+ background-image: url(../img/PNG/over/info.png);
+}
+
+/*리포트 닫기 버튼*/
+.report_menu_close_button {
+ right: 10px;
+}
+
+.report_menu_close_button:hover {
+/*
+ width: 37px;
+ height: 37px;
+ */
+}
+
+.report_menu_close_button_svg {
+ background-image: url(../img/close.svg);
+}
+
+.report_menu_close_button_svg_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/close.svg);
+}
+
+.report_menu_close_button_svg:hover {
+ background-image: url(../img/over/close.svg);
+}
+
+.report_menu_close_button_png {
+ background-image: url(../img/PNG/close.png);
+}
+
+.report_menu_close_button_png_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/close.png);
+}
+
+.report_menu_close_button_png:hover {
+ background-image: url(../img/PNG/over/close.png);
+}
+
+/*현재 페이지 입력창*/
+.report_menu_pageCount_input {
+ position: absolute;
+ /*left:135px;*/
+ left: 400px;
+ width: 46px;
+ height: 30px;
+ line-height: 30px;
+ border: 1px solid #ccc;
+ border-right-width: 0px !important;
+ border-right-style: none !important;
+ padding-top: 0px;
+ padding-bottom: 0px;
+ font-size: 12px;
+}
+
+/*총 페이지 표시 라벨*/
+.report_menu_pageCount_span {
+ position: absolute;
+ /*left:185px;*/
+ left: 445px;
+ width: 50px;
+ height: 30px;
+ line-height: 30px;
+ border: 1px solid #ccc;
+ padding-top: 0px;
+ padding-bottom: 0px;
+ font-size: 12px;
+}
+
+/*화면비율 선택 콤보창*/
+.report_menu_zoom_combo {
+ position: absolute;
+ /*left:315px;*/
+ left: 600px;
+ height: 30px !important;
+ line-height: 30px;
+ width: 150px;
+}
+
+.report_menu_zoom_combo_option {
+
+}
+
+/*뷰어의 모든 안내창을 감싸고 있는 DIV*/
+.report_popup_view {
+ position:relative;
+ left:0px;
+ top:0px;
+ right:0px;
+ bottom:0px;
+ zoom:1;
+ z-index:100;
+}
+
+
+/*뷰어 내부 안내창 공통 스타일*/
+.report_view_box {
+ background-color: #FDFDFD;
+ font-size: 8pt;
+ font-family: 나눔고딕;
+ border: 2px solid gray;
+}
+
+/*뷰어 내부 안내창 공통 버튼 스타일*/
+.report_view_button {
+ position: absolute;
+ background-color: RGB(89, 89, 89);
+ border: 1px solid darkolivegreen;
+ color: white;
+ font-weight: weight;
+}
+
+/*리포트 정보창 위치 정보*/
+.report_info_view_position {
+ position: absolute;
+ right: 23px;
+ top: 80px;
+ width: 440px;
+ height: 260px;
+}
+
+/*인쇄창 위치 정보*/
+.report_print_view_position {
+ position: absolute;
+ left: 15px;
+ top: 80px;
+ width: 350px;
+ height: 300px;
+}
+
+/*저장옵션 창 위치 정보*/
+.report_save_view_position {
+ position: absolute;
+ left: 15px;
+ top: 80px;
+ width: 350px;
+ height: 400px;
+}
+
+/*한글 저장 옵션 창 위치 정보*/
+.report_saveHWP_view_position {
+ position: absolute;
+ left: 370px;
+ top: 80px;
+ width: 260px;
+ height: 440px;
+}
+
+/*RTF 저장 옵션 창 위치 정보*/
+.report_saveRTF_view_position {
+ position: absolute;
+ left: 370px;
+ top: 80px;
+ width: 280px;
+ height: 220px;
+}
+
+/*엑셀 저장 옵션 창 위치 정보*/
+.report_saveExcel_view_position {
+ position: absolute;
+ left: 370px;
+ top: 80px;
+ width: 300px;
+ height: 540px;
+}
+/*html 저장 옵션 창 위치 정보*/
+.report_saveHtml_view_position {
+ position: absolute;
+ left: 370px;
+ top: 80px;
+ width: 280px;
+ height: 360px;
+}
+/*PDF 저장 옵션 창 위치 정보*/
+.report_savePDF_view_position {
+ position: absolute;
+ left: 370px;
+ top: 80px;
+ width: 280px;
+ height: 180px;
+}
+
+/*JPG 저장 옵션 창 위치 정보*/
+.report_saveJPG_view_position {
+ position: absolute;
+ left: 370px;
+ top: 80px;
+ width: 280px;
+ height: 180px;
+}
+
+
+/*TIF 저장 옵션 창 위치 정보*/
+.report_saveTIF_view_position {
+ position: absolute;
+ left: 370px;
+ top: 80px;
+ width: 280px;
+ height: 200px;
+}
+
+/*PPT 저장 옵션 창 위치 정보*/
+.report_savePPT_view_position {
+ position: absolute;
+ left: 370px;
+ top: 80px;
+ width: 280px;
+ height: 120px;
+}
+
+
+/*EXCELDATA Only 저장 옵션 창 위치 정보*/
+.report_saveEXCELDATA_view_position {
+ position: absolute;
+ left: 370px;
+ top: 80px;
+ width: 280px;
+ height: 120px;
+}
+
+/*pdf reader9버전 사용 안내창 위치 정보*/
+.report_Ex_reader9 {
+ position: absolute;
+ left: 70px;
+ top: 80px;
+ width: 350px;
+ height: 250px;
+}
+
+/*pdf reader 가 없을 경우 안내창 위치 정보*/
+.report_Ex_NOTReader {
+ position: absolute;
+ left: 70px;
+ top: 80px;
+ width: 350px;
+ height: 250px;
+}
+
+/*팝업 인쇄 안내창 위치 정보*/
+.report_Ex_popPrint {
+ position: absolute;
+ left: 70px;
+ top: 80px;
+ width: 350px;
+ height: 150px;
+}
+
+/*제한된 프린트 안내창 위치 정보*/
+.report_Ex_limitPrint {
+ position: absolute;
+ left: 70px;
+ top: 80px;
+ width: 350px;
+ height: 150px;
+}
+
+/*HTML 인쇄 안내창 위치 정보*/
+.report_Ex_popHTMLPrint {
+ position: absolute;
+ left: 70px;
+ top: 80px;
+ width: 370px;
+ height: 150px;
+}
+
+.report_view_cliplogo {
+ background-repeat: no-repeat;
+ background-position: center center;
+ background-image: url(../img/cliplogo.png);
+}
+
+.report_menu_progress {
+ position: absolute;
+ top: 6px;
+ right: 0px;
+ width: 16px;
+ height: 16px;
+}
+
+.mobile_menu_div {
+ position: absolute;
+ top: 0px;
+ width: 100%;
+ height: 50px;
+ overflow: visible;
+ background-color: #fff;
+}
+
+.mobile_paint_div {
+ position: absolute;
+ top: 50px;
+ width: 100%;
+ bottom: 0px;
+ border: 1px solid silver;
+ background-color: #EEE;
+ overflow:scroll;
+ text-align: center;
+ -webkit-overflow-scrolling: touch;
+}
+
+.mobile_menu_table_td_div {
+ position: relative;
+ height: 40px;
+ width: 100%;
+ font-size: 10pt;
+}
+
+.mobile_menu_button {
+ position: absolute;
+ width: 40px;
+ height: 40px;
+ background-size: contain;
+ border: 0px none;
+ background-color: transparent;
+}
+
+.mobile_input_table {
+ position: absolute;
+ left: 195px;
+ height: 40px;
+ width: 140px;
+}
+
+.mobile_input_table_td_input {
+ background-color: #FFFFFF;
+ width: 60px;
+}
+
+.mobile_input_table_td {
+ width: 80px;
+}
+
+.mobile_menu_print_button {
+ left: 15px;
+ background-image: url(../img/over/save.svg);
+}
+.mobile_menu_dis_print_button {
+ left: 15px;
+ cursor:not-allowed;
+ background-image: url(../img/dis/save.svg);
+}
+
+.mobile_menu_leftEnd_button {
+ left: 95px;
+ background-image: url(../img/over/leftEnd.svg);
+}
+
+.mobile_menu_dis_leftEnd_button {
+ left: 95px;
+ cursor:not-allowed;
+ background-image: url(../img/dis/leftEnd.svg);
+}
+
+.mobile_menu_left_button {
+ left: 145px;
+ background-image: url(../img/over/left.svg);
+}
+
+.mobile_menu_dis_left_button {
+ left: 145px;
+ cursor:not-allowed;
+ background-image: url(../img/dis/left.svg);
+}
+
+.mobile_menu_right_button {
+ left: 345px;
+ background-image: url(../img/over/right.svg);
+}
+
+.mobile_menu_dis_right_button{
+ left: 345px;
+ cursor:not-allowed;
+ background-image: url(../img/dis/right.svg);
+}
+
+.mobile_menu_rightEnd_button {
+ left: 395px;
+ background-image: url(../img/over/rightEnd.svg);
+}
+
+.mobile_menu_dis_rightEnd_button {
+ left: 395px;
+ cursor:not-allowed;
+ background-image: url(../img/dis/rightEnd.svg);
+}
+
+.mobile_menu_close_button {
+ right: 25px;
+ background-image: url(../img/over/close.svg);
+}
+
+.mobile_menu_dis_close_button {
+ right: 25px;
+ cursor:not-allowed;
+ background-image: url(../img/dis/close.svg);
+}
+
+.mobile_menu_zoom_combo {
+ position: absolute;
+ left: 455px;
+ height: 40px;
+ width: 150px;
+ font-size: 14pt;
+}
+
+.mobile_menu_pageCount_input {
+ position: relative;
+ left: 0px;
+ width: 55px;
+ height: 30px;
+ line-height: 30px;
+ padding-top: 0px;
+ padding-bottom: 0px;
+ border: 0px none;
+ background: transparent;
+ font-size: 14pt;
+}
+
+.mobile_menu_pageCount_span {
+ position: relative;
+ left: 0px;
+ width: 75px;
+ height: 30px;
+ height: 30px;
+ line-height: 30px;
+ padding-top: 0px;
+ padding-bottom: 0px;
+ border: 0px none;
+ background: transparent;
+ font-size: 14pt;
+}
+
+.mobile_menu_progress {
+ position: absolute;
+ right: 5px;
+ width: 16px;
+ height: 16px;
+}
+
+.mRe_focus:focus{
+ filter:alpha(opacity=100) !important;
+ opacity:100 !important;
+}
+
+
+/*사인컨트롤 전체 배경*/
+.report_sign_div{
+ border:3px RGB(53,105,180) solid;
+ background-image:url(../img/tile.jpg);
+ background-repeat:repeat;
+}
+
+/*사인컨트롤 그리는 영역*/
+.report_sign_paint{
+ position:absolute;
+ left:25px;
+ top:25px;
+ right:25px;
+ bottom:85px;
+ background-color:white;
+ border:2px darkgray solid;
+ border-radius: 4px;
+}
+
+/*사인컨트롤 메뉴*/
+.report_sign_menu{
+ position:absolute;
+ left:0px;
+ bottom:25px;
+ right:0px;
+ height:35px;
+}
+
+/*사인컨트롤 버튼 공통*/
+.report_sign_button{
+ width:100px;
+ height:35px;
+ border-radius: 4px;
+ color:white;
+ font-size:10pt;
+ font-weight:bold;
+}
+
+/*사인컨트롤 버튼 확인*/
+.report_sign_save{
+ border:1px RGB(33,133,218) solid;
+ background-color:RGB(33,133,218);
+}
+
+/*사인컨트롤 버튼 초기화*/
+.report_sign_reset{
+ border:1px RGB(33,133,218) solid;
+ background-color:RGB(33,133,218);
+}
+
+/*사인컨트롤 버튼 취소*/
+.report_sign_cancel{
+ border:1px RGB(69,89,100) solid;
+ background-color:RGB(69,89,100);
+}
+
+.report_text_renA{
+ text-rendering: geometricPrecision;
+}
+
+
+.report_pageMoveLeft{
+ position:absolute;
+ left:10px;
+ width:50px;
+ height:50px;
+ background-image:url(../img/eform/shiftLeft.png);
+ border-radius:100%;
+ opacity:0.65;
+ z-index:500;
+}
+
+.report_pageMoveRight{
+ position:absolute;
+ right:10px;
+ width:50px;
+ height:50px;
+ background-image:url(../img/eform/shiftRight.png);
+ border-radius:100%;
+ opacity:0.65;
+ z-index:500;
+}
diff --git a/ClipReport4/ClipReport4/css/clipreport_png.css b/ClipReport4/ClipReport4/css/clipreport_png.css
new file mode 100644
index 0000000..5f4aa39
--- /dev/null
+++ b/ClipReport4/ClipReport4/css/clipreport_png.css
@@ -0,0 +1,1032 @@
+@CHARSET "UTF-8";
+
+/*
+웹 접근성 관련 주석처리(focus rect)
+input:focus, button:focus, select:focus{
+ outline: none;
+}
+*/
+
+
+/*뷰어 메뉴*/
+.report_menu_div {
+ position: absolute;
+ top: 0px;
+ width: 100%;
+ height: 65px;
+ overflow: visible;
+ background-color: #fff;
+ background-position: 5px 50%;
+ background-repeat: no-repeat;
+ -webkit-user-select: none; /* webkit (safari, chrome) browsers */
+ -moz-user-select: none; /* mozilla browsers */
+ -khtml-user-select: none; /* webkit (konqueror) browsers */
+ -ms-user-select: none; /* IE10+ */
+}
+
+/*리포트 배경*/
+.report_paint_div {
+ position: absolute;
+ top: 65px;
+ width: 100%;
+ bottom: 0px;
+ border: 1px solid silver;
+ background-color: #eee;
+ overflow: auto;
+ text-align: center;
+}
+
+/*리포트 프로그래스*/
+.report_progress {
+ background-repeat: no-repeat;
+ background-position: 50% 30%;
+ background-image: url(../img/deploying.gif);
+}
+
+.report_menu_table {
+ position: absolute;
+ left: 0px;
+ height: 100%;
+ width: 100%;
+ border: 1px solid silver;
+ text-align: right;
+}
+
+.report_menu_table_td {
+ border: 0px solid silver;
+ text-align: left;
+}
+
+.report_menu_table_td_div {
+ position: relative;
+ height: 30px;
+ width: 100%;
+ font-size: 10pt;
+}
+
+
+/*메뉴에 존재하는 버튼 공통 디자인*/
+.report_menu_button {
+ position: absolute;
+ width: 35px;
+ height: 35px;
+ background-size: contain;
+ border: 0px solid #FFFFFF;
+ background-color: transparent;
+ cursor: pointer;
+}
+/*마우스 오버 됐을 때 디자인*/
+.report_menu_button:hover{
+ background-repeat: no-repeat;
+}
+
+/*저장 버튼*/
+.report_menu_save_button {
+ left: 7px;
+}
+
+.report_menu_save_button:hover {
+/*
+ width: 37px;
+ height: 37px;
+ */
+}
+
+.report_menu_save_button_svg {
+ background-image: url(../img/PNG/save.png);
+}
+
+.report_menu_save_button_svg_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/save.png);
+}
+
+.report_menu_save_button_svg:hover {
+ background-image: url(../img/PNG/over/save.png);
+}
+
+.report_menu_save_button_png {
+ background-image: url(../img/PNG/save.png);
+}
+
+.report_menu_save_button_png_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/save.png);
+}
+
+.report_menu_save_button_png:hover {
+ background-image: url(../img/PNG/over/save.png);
+}
+
+/*프린트 버튼*/
+.report_menu_print_button {
+ /*left:55px;*/
+ left: 234px;
+}
+
+.report_menu_print_button:hover {
+ /*
+ width: 37px;
+ height: 37px;
+ */
+}
+
+.report_menu_print_button_svg {
+ background-image: url(../img/PNG/print.png);
+}
+
+.report_menu_print_button_svg_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/print.png);
+}
+
+.report_menu_print_button_svg:hover {
+ background-image: url(../img/PNG/over/print.png);
+}
+
+.report_menu_print_button_png {
+ background-image: url(../img/PNG/print.png);
+}
+
+.report_menu_print_button_png_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/print.png);
+}
+
+.report_menu_print_button_png:hover {
+ background-image: url(../img/PNG/over/print.png);
+}
+
+/*첫페이지 이동 버튼*/
+.report_menu_leftEnd_button {
+ /*left:85px;*/
+ left: 320px;
+}
+
+.report_menu_leftEnd_button:hover {
+ /*
+ width: 37px;
+ height: 37px;
+ */
+}
+
+.report_menu_leftEnd_button_svg {
+ background-image: url(../img/PNG/leftEnd.png);
+}
+
+.report_menu_leftEnd_button_svg_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/leftEnd.png);
+}
+
+.report_menu_leftEnd_button_svg:hover {
+ background-image: url(../img/PNG/over/leftEnd.png);
+}
+
+.report_menu_leftEnd_button_png {
+ background-image: url(../img/PNG/leftEnd.png);
+}
+
+.report_menu_leftEnd_button_png_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/leftEnd.png);
+}
+
+.report_menu_leftEnd_button_png:hover {
+ background-image: url(../img/PNG/over/leftEnd.png);
+}
+
+/*이전페이지 이동 버튼*/
+.report_menu_left_button {
+ left: 358px;
+}
+
+.report_menu_left_button:hover {
+ /*
+ width: 37px;
+ height: 37px;
+ */
+}
+
+.report_menu_left_button_svg {
+ background-image: url(../img/PNG/left.png);
+}
+
+.report_menu_left_button_svg_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/left.png);
+}
+
+.report_menu_left_button_svg:hover {
+ background-image: url(../img/PNG/over/left.png);
+}
+
+.report_menu_left_button_png {
+ background-image: url(../img/PNG/left.png);
+}
+
+.report_menu_left_button_png_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/left.png);
+}
+
+.report_menu_left_button_png:hover {
+ background-image: url(../img/PNG/over/left.png);
+}
+
+/*다음 페이지 이동 버튼*/
+.report_menu_right_button {
+ /*left:240px;*/
+ left: 502px;
+}
+
+.report_menu_right_button:hover {
+ /*
+ width: 37px;
+ height: 37px;
+ */
+}
+
+.report_menu_right_button_svg {
+ background-image: url(../img/PNG/right.png);
+}
+
+.report_menu_right_button_svg_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/right.png);
+}
+
+.report_menu_right_button_svg:hover {
+ background-image: url(../img/PNG/over/right.png);
+}
+
+.report_menu_right_button_png {
+ background-image: url(../img/PNG/right.png);
+}
+
+.report_menu_right_button_png_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/right.png);
+}
+
+.report_menu_right_button_png:hover {
+ background-image: url(../img/PNG/over/right.png);
+}
+
+/*마지막 페이지 이동 버튼*/
+.report_menu_rightEnd_button {
+ /*left:265px;*/
+ left: 540px;
+}
+
+.report_menu_rightEnd_button:hover {
+ /*
+ width: 37px;
+ height: 37px;
+ */
+}
+
+.report_menu_rightEnd_button_svg {
+ background-image: url(../img/PNG/rightEnd.png);
+}
+
+.report_menu_rightEnd_button_svg_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/rightEnd.png);
+}
+
+.report_menu_rightEnd_button_svg:hover {
+ background-image: url(../img/PNG/over/rightEnd.png);
+}
+
+.report_menu_rightEnd_button_png {
+ background-image: url(../img/PNG/rightEnd.png);
+}
+
+.report_menu_rightEnd_button_png_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/rightEnd.png);
+}
+
+.report_menu_rightEnd_button_png:hover {
+ background-image: url(../img/PNG/over/rightEnd.png);
+}
+
+/*pdf 다운로드 버튼*/
+.report_menu_pdf_button {
+ /*left:480px;*/
+ left: 50px;
+}
+
+.report_menu_pdf_button:hover {
+ /*
+ width: 37px;
+ height: 37px;
+ */
+}
+
+.report_menu_pdf_button_svg {
+ background-image: url(../img/PNG/pdf.png);
+}
+
+.report_menu_pdf_button_svg_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/pdf.png);
+}
+
+.report_menu_pdf_button_svg:hover {
+ background-image: url(../img/PNG/over/pdf.png);
+}
+
+.report_menu_pdf_button_png {
+ background-image: url(../img/PNG/pdf.png);
+}
+
+.report_menu_pdf_button_png_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/pdf.png);
+}
+
+.report_menu_pdf_button_png:hover {
+ background-image: url(../img/PNG/over/pdf.png);
+}
+
+/*엑셀 다운로드 버튼*/
+.report_menu_excel_button {
+ /*left:505px;*/
+ left: 90px;
+}
+
+.report_menu_excel_button:hover {
+ /*
+ width: 37px;
+ height: 37px;
+ */
+}
+
+.report_menu_excel_button_svg {
+ background-image: url(../img/PNG/excel.png);
+}
+
+.report_menu_excel_button_svg_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/excel.png);
+}
+
+.report_menu_excel_button_svg:hover {
+ background-image: url(../img/PNG/over/excel.png);
+}
+
+.report_menu_excel_button_png {
+ background-image: url(../img/PNG/excel.png);
+}
+
+.report_menu_excel_button_png_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/excel.png);
+}
+
+.report_menu_excel_button_png:hover {
+ background-image: url(../img/PNG/over/excel.png);
+}
+
+/*한글 다운로드 버튼*/
+.report_menu_hwp_button {
+ /*left:530px;*/
+ left: 130px;
+}
+
+.report_menu_hwp_button:hover {
+ /*
+ width: 37px;
+ height: 37px;
+ */
+}
+
+.report_menu_hwp_button_svg {
+ background-image: url(../img/PNG/hwp.png);
+}
+
+.report_menu_hwp_button_svg_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/hwp.png);
+}
+
+.report_menu_hwp_button_svg:hover {
+ background-image: url(../img/PNG/over/hwp.png);
+}
+
+.report_menu_hwp_button_png {
+ background-image: url(../img/PNG/hwp.png);
+}
+
+.report_menu_hwp_button_png_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/hwp.png);
+}
+
+.report_menu_hwp_button_png:hover {
+ background-image: url(../img/PNG/over/hwp.png);
+}
+
+
+/*DOC 다운로드 버튼*/
+.report_menu_doc_button {
+ /*left:530px;*/
+ left: 170px;
+ display:none;
+}
+
+.report_menu_doc_button:hover {
+ /*
+ width: 37px;
+ height: 37px;
+ */
+}
+
+.report_menu_doc_button_svg {
+ background-image: url(../img/PNG/doc.png);
+}
+
+.report_menu_doc_button_svg_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/doc.png);
+}
+
+.report_menu_doc_button_svg:hover {
+ background-image: url(../img/PNG/over/pdf.png);
+}
+
+.report_menu_doc_button_png {
+ background-image: url(../img/PNG/doc.png);
+}
+
+.report_menu_doc_button_png_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/doc.png);
+}
+
+.report_menu_doc_button_png:hover {
+ background-image: url(../img/PNG/over/pdf.png);
+}
+
+
+/*리포트 정보 버튼*/
+.report_menu_reportInfo_button {
+ /*left:555px;*/
+ left: 765px;
+}
+
+.report_menu_reportInfo_button:hover {
+ /*
+ width: 37px;
+ height: 37px;
+ */
+}
+
+.report_menu_reportInfo_button_svg {
+ background-image: url(../img/PNG/info.png);
+}
+
+.report_menu_reportInfo_button_svg_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/info.png);
+}
+
+.report_menu_reportInfo_button_svg:hover {
+ background-image: url(../img/PNG/over/info.png);
+}
+
+.report_menu_reportInfo_button_png {
+ background-image: url(../img/PNG/info.png);
+}
+
+.report_menu_reportInfo_button_png_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/info.png);
+}
+
+.report_menu_reportInfo_button_png:hover {
+ background-image: url(../img/PNG/over/info.png);
+}
+
+/*리포트 닫기 버튼*/
+.report_menu_close_button {
+ right: 10px;
+}
+
+.report_menu_close_button:hover {
+/*
+ width: 37px;
+ height: 37px;
+ */
+}
+
+.report_menu_close_button_svg {
+ background-image: url(../img/PNG/close.png);
+}
+
+.report_menu_close_button_svg_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/close.png);
+}
+
+.report_menu_close_button_svg:hover {
+ background-image: url(../img/PNG/over/close.png);
+}
+
+.report_menu_close_button_png {
+ background-image: url(../img/PNG/close.png);
+}
+
+.report_menu_close_button_png_dis {
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/close.png);
+}
+
+.report_menu_close_button_png:hover {
+ background-image: url(../img/PNG/over/close.png);
+}
+
+/*현재 페이지 입력창*/
+.report_menu_pageCount_input {
+ position: absolute;
+ /*left:135px;*/
+ left: 400px;
+ width: 46px;
+ height: 30px;
+ line-height: 30px;
+ border: 1px solid #ccc;
+ border-right-width: 0px !important;
+ border-right-style: none !important;
+ padding-top: 0px;
+ padding-bottom: 0px;
+ font-size: 12px;
+}
+
+/*총 페이지 표시 라벨*/
+.report_menu_pageCount_span {
+ position: absolute;
+ /*left:185px;*/
+ left: 445px;
+ width: 50px;
+ height: 30px;
+ line-height: 30px;
+ border: 1px solid #ccc;
+ padding-top: 0px;
+ padding-bottom: 0px;
+ font-size: 12px;
+}
+
+/*화면비율 선택 콤보창*/
+.report_menu_zoom_combo {
+ position: absolute;
+ /*left:315px;*/
+ left: 600px;
+ height: 30px !important;
+ line-height: 30px;
+ width: 150px;
+}
+
+.report_menu_zoom_combo_option {
+
+}
+
+/*뷰어의 모든 안내창을 감싸고 있는 DIV*/
+.report_popup_view {
+ position:relative;
+ left:0px;
+ top:0px;
+ right:0px;
+ bottom:0px;
+ zoom:1;
+ z-index:100;
+}
+
+
+/*뷰어 내부 안내창 공통 스타일*/
+.report_view_box {
+ background-color: #FDFDFD;
+ font-size: 8pt;
+ font-family: 나눔고딕;
+ border: 2px solid gray;
+}
+
+/*뷰어 내부 안내창 공통 버튼 스타일*/
+.report_view_button {
+ position: absolute;
+ background-color: RGB(89, 89, 89);
+ border: 1px solid darkolivegreen;
+ color: white;
+ font-weight: weight;
+}
+
+/*리포트 정보창 위치 정보*/
+.report_info_view_position {
+ position: absolute;
+ right: 23px;
+ top: 80px;
+ width: 440px;
+ height: 260px;
+}
+
+/*인쇄창 위치 정보*/
+.report_print_view_position {
+ position: absolute;
+ left: 15px;
+ top: 80px;
+ width: 350px;
+ height: 300px;
+}
+
+/*저장옵션 창 위치 정보*/
+.report_save_view_position {
+ position: absolute;
+ left: 15px;
+ top: 80px;
+ width: 350px;
+ height: 400px;
+}
+
+/*한글 저장 옵션 창 위치 정보*/
+.report_saveHWP_view_position {
+ position: absolute;
+ left: 370px;
+ top: 80px;
+ width: 260px;
+ height: 440px;
+}
+
+/*RTF 저장 옵션 창 위치 정보*/
+.report_saveRTF_view_position {
+ position: absolute;
+ left: 370px;
+ top: 80px;
+ width: 280px;
+ height: 220px;
+}
+
+/*엑셀 저장 옵션 창 위치 정보*/
+.report_saveExcel_view_position {
+ position: absolute;
+ left: 370px;
+ top: 80px;
+ width: 300px;
+ height: 540px;
+}
+/*html 저장 옵션 창 위치 정보*/
+.report_saveHtml_view_position {
+ position: absolute;
+ left: 370px;
+ top: 80px;
+ width: 280px;
+ height: 360px;
+}
+/*PDF 저장 옵션 창 위치 정보*/
+.report_savePDF_view_position {
+ position: absolute;
+ left: 370px;
+ top: 80px;
+ width: 280px;
+ height: 180px;
+}
+
+/*JPG 저장 옵션 창 위치 정보*/
+.report_saveJPG_view_position {
+ position: absolute;
+ left: 370px;
+ top: 80px;
+ width: 280px;
+ height: 180px;
+}
+
+
+/*TIF 저장 옵션 창 위치 정보*/
+.report_saveTIF_view_position {
+ position: absolute;
+ left: 370px;
+ top: 80px;
+ width: 280px;
+ height: 200px;
+}
+
+/*PPT 저장 옵션 창 위치 정보*/
+.report_savePPT_view_position {
+ position: absolute;
+ left: 370px;
+ top: 80px;
+ width: 280px;
+ height: 120px;
+}
+
+/*EXCELDATA Only 저장 옵션 창 위치 정보*/
+.report_saveEXCELDATA_view_position {
+ position: absolute;
+ left: 370px;
+ top: 80px;
+ width: 280px;
+ height: 120px;
+}
+
+/*pdf reader9버전 사용 안내창 위치 정보*/
+.report_Ex_reader9 {
+ position: absolute;
+ left: 70px;
+ top: 80px;
+ width: 350px;
+ height: 250px;
+}
+
+/*pdf reader 가 없을 경우 안내창 위치 정보*/
+.report_Ex_NOTReader {
+ position: absolute;
+ left: 70px;
+ top: 80px;
+ width: 350px;
+ height: 250px;
+}
+
+/*팝업 인쇄 안내창 위치 정보*/
+.report_Ex_popPrint {
+ position: absolute;
+ left: 70px;
+ top: 80px;
+ width: 350px;
+ height: 150px;
+}
+
+/*제한된 프린트 안내창 위치 정보*/
+.report_Ex_limitPrint {
+ position: absolute;
+ left: 70px;
+ top: 80px;
+ width: 350px;
+ height: 150px;
+}
+
+/*HTML 인쇄 안내창 위치 정보*/
+.report_Ex_popHTMLPrint {
+ position: absolute;
+ left: 70px;
+ top: 80px;
+ width: 370px;
+ height: 150px;
+}
+
+.report_view_cliplogo {
+ background-repeat: no-repeat;
+ background-position: center center;
+ background-image: url(../img/cliplogo.png);
+}
+
+.report_menu_progress {
+ position: absolute;
+ top: 6px;
+ right: 0px;
+ width: 16px;
+ height: 16px;
+}
+
+.mobile_menu_div {
+ position: absolute;
+ top: 0px;
+ width: 100%;
+ height: 50px;
+ overflow: visible;
+ background-color: #fff;
+}
+
+.mobile_paint_div {
+ position: absolute;
+ top: 50px;
+ width: 100%;
+ bottom: 0px;
+ border: 1px solid silver;
+ background-color: #EEE;
+ overflow: auto;
+ text-align: center;
+}
+
+.mobile_menu_table_td_div {
+ position: relative;
+ height: 40px;
+ width: 100%;
+ font-size: 10pt;
+}
+
+.mobile_menu_button {
+ position: absolute;
+ width: 40px;
+ height: 40px;
+ background-size: contain;
+ border: 0px none;
+ background-color: transparent;
+}
+
+.mobile_input_table {
+ position: absolute;
+ left: 195px;
+ height: 40px;
+ width: 140px;
+}
+
+.mobile_input_table_td_input {
+ background-color: #FFFFFF;
+ width: 60px;
+}
+
+.mobile_input_table_td {
+ width: 80px;
+}
+
+.mobile_menu_print_button {
+ left: 15px;
+ background-image: url(../img/PNG/over/save.png);
+}
+.mobile_menu_dis_print_button {
+ left: 15px;
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/save.png);
+}
+
+.mobile_menu_leftEnd_button {
+ left: 95px;
+ background-image: url(../img/PNG/over/leftEnd.png);
+}
+
+.mobile_menu_dis_leftEnd_button {
+ left: 95px;
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/leftEnd.png);
+}
+
+.mobile_menu_left_button {
+ left: 145px;
+ background-image: url(../img/PNG/over/left.png);
+}
+
+.mobile_menu_dis_left_button {
+ left: 145px;
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/left.png);
+}
+
+.mobile_menu_right_button {
+ left: 345px;
+ background-image: url(../img/PNG/over/right.png);
+}
+
+.mobile_menu_dis_right_button{
+ left: 345px;
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/right.png);
+}
+
+.mobile_menu_rightEnd_button {
+ left: 395px;
+ background-image: url(../img/PNG/over/rightEnd.png);
+}
+
+.mobile_menu_dis_rightEnd_button {
+ left: 395px;
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/rightEnd.png);
+}
+
+.mobile_menu_close_button {
+ right: 25px;
+ background-image: url(../img/PNG/over/close.png);
+}
+
+.mobile_menu_dis_close_button {
+ right: 25px;
+ cursor:not-allowed;
+ background-image: url(../img/dis/PNG/close.png);
+}
+
+.mobile_menu_zoom_combo {
+ position: absolute;
+ left: 455px;
+ height: 40px;
+ width: 150px;
+ font-size: 14pt;
+}
+
+.mobile_menu_pageCount_input {
+ position: relative;
+ left: 0px;
+ width: 55px;
+ height: 30px;
+ line-height: 30px;
+ padding-top: 0px;
+ padding-bottom: 0px;
+ border: 0px none;
+ background: transparent;
+ font-size: 14pt;
+}
+
+.mobile_menu_pageCount_span {
+ position: relative;
+ left: 0px;
+ width: 75px;
+ height: 30px;
+ height: 30px;
+ line-height: 30px;
+ padding-top: 0px;
+ padding-bottom: 0px;
+ border: 0px none;
+ background: transparent;
+ font-size: 14pt;
+}
+
+.mobile_menu_progress {
+ position: absolute;
+ right: 5px;
+ width: 16px;
+ height: 16px;
+}
+
+.mRe_focus:focus{
+ filter:alpha(opacity=100) !important;
+ opacity:100 !important;
+}
+
+
+/*사인컨트롤 전체 배경*/
+.report_sign_div{
+ border:3px RGB(53,105,180) solid;
+ background-image:url(../img/tile.jpg);
+ background-repeat:repeat;
+}
+
+/*사인컨트롤 그리는 영역*/
+.report_sign_paint{
+ position:absolute;
+ left:25px;
+ top:25px;
+ right:25px;
+ bottom:85px;
+ background-color:white;
+ border:2px darkgray solid;
+ border-radius: 4px;
+}
+
+/*사인컨트롤 메뉴*/
+.report_sign_menu{
+ position:absolute;
+ left:0px;
+ bottom:25px;
+ right:0px;
+ height:35px;
+}
+
+/*사인컨트롤 버튼 공통*/
+.report_sign_button{
+ width:100px;
+ height:35px;
+ border-radius: 4px;
+ color:white;
+ font-size:10pt;
+ font-weight:bold;
+}
+
+/*사인컨트롤 버튼 확인*/
+.report_sign_save{
+ border:1px RGB(33,133,218) solid;
+ background-color:RGB(33,133,218);
+}
+
+/*사인컨트롤 버튼 초기화*/
+.report_sign_reset{
+ border:1px RGB(33,133,218) solid;
+ background-color:RGB(33,133,218);
+}
+
+/*사인컨트롤 버튼 취소*/
+.report_sign_cancel{
+ border:1px RGB(69,89,100) solid;
+ background-color:RGB(69,89,100);
+}
+
+
+.report_pageMoveLeft{
+ position:absolute;
+ left:10px;
+ width:50px;
+ height:50px;
+ background-image:url(../img/eform/shiftLeft.png);
+ border-radius:100%;
+ opacity:0.65;
+ z-index:500;
+}
+
+.report_pageMoveRight{
+ position:absolute;
+ right:10px;
+ width:50px;
+ height:50px;
+ background-image:url(../img/eform/shiftRight.png);
+ border-radius:100%;
+ opacity:0.65;
+ z-index:500;
+}
\ No newline at end of file
diff --git a/ClipReport4/ClipReport4/css/eform.css b/ClipReport4/ClipReport4/css/eform.css
new file mode 100644
index 0000000..9c97f72
--- /dev/null
+++ b/ClipReport4/ClipReport4/css/eform.css
@@ -0,0 +1,1131 @@
+
+svg,div,img{
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -khtml-user-select: none;
+ -ms-user-select: none;
+}
+
+.eform_menu_div {
+ position: absolute;
+ top: 0px;
+ width: 100%;
+ height: 40px;
+ overflow: visible;
+ background-color: #fafafa;
+}
+
+.eform_paint_div {
+ position: absolute;
+ top: 40px;
+ width: 100%;
+ bottom: 0px;
+ border: 1px solid silver;
+ background-color: #999999;
+ overflow: auto;
+ text-align: center;
+}
+
+.eform_menu_table_td_div {
+ position: relative;
+ height: 30px;
+ width: 100%;
+ font-size: 10pt;
+}
+
+.eform_menu_button {
+ position: absolute;
+ width: 30px;
+ height: 30px;
+ background-size: contain;
+ border: 0px none;
+ background-color: transparent;
+ /*
+ background-repeat: no-repeat;
+ background-position: center;
+ */
+}
+/*
+.eform_menu_button:focus{
+ outline: none;
+}*/
+
+.eform_input_table {
+ position: absolute;
+ left: 100px;
+ height: 28px;
+ width: 100px;
+}
+
+.eform_input_table_td_input {
+ width: 50px;
+}
+
+.eform_input_table_td {
+ width: 50px;
+}
+
+.eform_doodle_pageinfo_table{
+ position: absolute;
+ left: 35px;
+ height: 20px;
+ width: 60px;
+ text-align:center;
+ font-size:14pt;
+ font-family: 나눔고딕;
+}
+
+.eform_menu_save_button {
+ right: 55px;
+ background-image: url(../img/eform/save.png);
+ width:28px;
+ height:28px;
+}
+
+/*리포트 닫기 버튼*/
+.eform_menu_close_button {
+ right: 10px;
+ background-image: url(../img/eform/close.png);
+}
+
+/*메모기능 닫기 버튼*/
+.eform_menu_doodleClose_button {
+ right: 10px;
+ background-image: url(../img/eform/doodle/close.png);
+}
+
+
+.eform_menu_leftEnd_button {
+ left: 10px;
+ background-image: url(../img/eform/leftEnd.png);
+}
+
+
+.eform_menu_left_button {
+ left: 50px;
+ background-image: url(../img/eform/left.png);
+}
+
+.eform_menu_right_button {
+ left: 220px;
+ background-image: url(../img/eform/right.png);
+}
+
+.eform_menu_rightEnd_button {
+ left: 260px;
+ background-image: url(../img/eform/rightEnd.png);
+}
+
+
+/*프린트 버튼*/
+.eform_menu_print_button {
+ left: 520px;
+ background-image: url(../img/eform/print.png);
+}
+
+/*형광펜 버튼*/
+.eform_menu_doodle_button{
+ left: 580px;
+ background-image: url(../img/eform/doodle/pen.png);
+}
+
+
+.eform_menu_zoom_combo {
+ position: absolute;
+ left: 320px;
+ height: 30px;
+ width: 150px;
+ font-size: 13pt;
+}
+
+.eform_menu_pageCount_input {
+ position: relative;
+ left: 0px;
+ width: 55px;
+ height: 20px;
+ line-height: 20px;
+ padding-top: 0px;
+ padding-bottom: 0px;
+ border: 0px none;
+ background: transparent;
+ font-size: 13pt;
+}
+
+.eform_menu_pageCount_span {
+ position: relative;
+ left: 0px;
+ width: 55px;
+ height: 20px;
+ line-height: 20px;
+ padding-top: 0px;
+ padding-bottom: 0px;
+ border: 0px none;
+ background: transparent;
+ font-size: 13pt;
+}
+
+.eform_menu_doodleleft_button {
+ left: 5px;
+ background-image: url(../img/eform/left.png);
+}
+
+.eform_menu_doodleright_button {
+ left: 95px;
+ background-image: url(../img/eform/right.png);
+}
+
+.eform_menu_doodlePen_button{
+ left: 150px;
+ background-image: url(../img/eform/doodle/pen.png);
+}
+.eform_menu_doodlePallet_button{
+ left: 200px;
+ background-image: url(../img/eform/doodle/pallet.png);
+}
+
+.eform_menu_doodleEraser_button{
+ left: 250px;
+ background-image: url(../img/eform/doodle/eraser.png);
+}
+.eform_menu_doodleEraserAll_button{
+ left: 300px;
+ background-image: url(../img/eform/doodle/all_eraser.png);
+}
+
+.eform_menu_doodleMove_button{
+ display:none;
+ left: 350px;
+ background-image: url(../img/eform/doodle/move.png);
+}
+
+.m_eform_menu_doodlePen_button{
+ left: 150px;
+ background-image: url(../img/eform/doodle/pen.png);
+}
+.m_eform_menu_doodlePallet_button{
+ left: 210px;
+ background-image: url(../img/eform/doodle/pallet.png);
+}
+.m_eform_menu_doodleEraser_button{
+ left: 270px;
+ background-image: url(../img/eform/doodle/eraser.png);
+}
+.m_eform_menu_doodleEraserAll_button{
+ left: 330px;
+ background-image: url(../img/eform/doodle/all_eraser.png);
+}
+
+.m_eform_menu_doodleMove_button{
+ left: 380px;
+ background-image: url(../img/eform/doodle/move.png);
+}
+
+
+.m_eform_menu_div {
+ position: absolute;
+ top: 0px;
+ width: 100%;
+ height: 50px;
+ overflow: visible;
+ background-color: #fafafa;
+}
+
+.m_eform_paint_div {
+ position: absolute;
+ top: 50px;
+ left:0px;
+ right:0px;
+ bottom: 0px;
+ border: 1px solid silver;
+ background-color: #999999;
+ overflow: scroll;
+ text-align: center;
+ -webkit-overflow-scrolling: touch;
+}
+
+.m_eform_menu_table_td_div {
+ position: relative;
+ height: 40px;
+ width: 100%;
+ font-size: 10pt;
+}
+
+.m_eform_menu_button {
+ position: absolute;
+ width: 40px;
+ height: 40px;
+ background-size: contain;
+ border: 0px none;
+ background-color: transparent;
+ /*
+ background-repeat: no-repeat;
+ background-position: center;
+ */
+}
+
+.m_eform_input_table {
+ position: absolute;
+ left: 125px;
+ height: 40px;
+ width: 80px;
+}
+
+.m_eform_input_table_td_input {
+ width: 40px;
+}
+
+.m_eform_input_table_td {
+ width: 40px;
+}
+.m_eform_doodle_pageinfo_table{
+ position: absolute;
+ left: 40px;
+ height: 40px;
+ width: 60px;
+ text-align:center;
+ font-size:14pt;
+ font-family: 나눔고딕;
+}
+
+.m_eform_menu_save_button {
+ left: 510px;
+ background-image: url(../img/eform/save.png);
+}
+
+/*리포트 닫기 버튼*/
+.m_eform_menu_close_button {
+ right: 15px;
+ background-image: url(../img/eform/close.png);
+}
+/*메모기능 닫기 버튼*/
+.m_eform_menu_doodleClose_button {
+ right: 15px;
+ background-image: url(../img/eform/doodle/close.png);
+}
+
+
+.m_eform_menu_leftEnd_button {
+ left: 15px;
+ background-image: url(../img/eform/leftEnd.png);
+}
+
+.m_eform_menu_left_button {
+ left: 65px;
+ background-image: url(../img/eform/left.png);
+}
+
+.m_eform_menu_right_button {
+ left: 225px;
+ background-image: url(../img/eform/right.png);
+}
+
+
+.m_eform_menu_rightEnd_button {
+ left: 275px;
+ background-image: url(../img/eform/rightEnd.png);
+}
+
+
+/*프린트 버튼*/
+.m_eform_menu_print_button {
+ left: 580px;
+ background-image: url(../img/eform/print.png);
+}
+
+.m_eform_menu_doodle_button{
+ left: 580px;
+ background-image: url(../img/eform/doodle/pen.png);
+}
+
+.m_eform_menu_zoom_combo {
+ position: absolute;
+ left: 350px;
+ height: 40px;
+ width: 130px;
+ font-size: 14pt;
+}
+
+.m_eform_menu_pageCount_input {
+ position: relative;
+ left: 0px;
+ width: 40px;
+ height: 30px;
+ line-height: 30px;
+ padding-top: 0px;
+ padding-bottom: 0px;
+ border: 0px none;
+ background: transparent;
+ font-size: 14pt;
+}
+
+.m_eform_menu_pageCount_span {
+ position: relative;
+ left: 0px;
+ width: 40px;
+ height: 30px;
+ line-height: 30px;
+ padding-top: 0px;
+ padding-bottom: 0px;
+ border: 0px none;
+ background: transparent;
+ font-size: 14pt;
+}
+
+.m_eform_menu_doodleleft_button {
+ left: 5px;
+ background-image: url(../img/eform/left.png);
+}
+
+.m_eform_menu_doodleright_button {
+ left: 95px;
+ background-image: url(../img/eform/right.png);
+}
+
+.eform_menu_progress {
+ position: absolute;
+ right: 5px;
+ width: 16px;
+ height: 16px;
+}
+
+.eform_textarea {
+ position:absolute;
+ padding:0px 0px 0px 0px !important;
+ box-sizing:border-box;
+ margin-top:0 !important;
+ margin-bottom:0 !important;
+ resize:none;
+ overflow-y:hidden;
+ overflow-x:hidden;
+ filter:alpha(opacity=0);
+ opacity:0;
+}
+
+.eform_guide_textarea {
+ position:absolute;
+ padding:0px 0px 0px 0px !important;
+ box-sizing:border-box;
+ margin-top:0 !important;
+ margin-bottom:0 !important;
+ resize:none;
+ overflow-y:hidden;
+ overflow-x:hidden;
+ border:2pt solid white;
+ outline: none;
+ opacity:0;
+}
+
+.eform_table{
+ table-layout: fixed;
+ position:absolute;
+ left:0px;
+ height:100%;
+ top:0px;
+ width:100%;
+ padding:0 0 0 0;
+}
+
+.eForm_hidden_button{
+ opacity: 0;
+ filter:alpha(opacity=0);
+}
+
+
+.eform_textarea:focus{
+ border:2pt solid Orange;
+ outline: none;
+}
+
+.eform_control_focus{
+ border:2pt solid Orange;
+}
+
+/*리포트 프로그래스*/
+.eform_progress {
+ background-repeat: no-repeat;
+ background-position: 50% 30%;
+ background-image: url(../img/efromProgress.gif);
+ opacity: 0.5;
+}
+
+/*사인컨트롤 전체 배경*/
+.eform_sign_background {
+ position: absolute;
+ top: 40px;
+ width: 100%;
+ bottom: 0px;
+ overflow : hidden;
+ z-index:500;
+}
+
+
+/*사인컨트롤 전체 배경*/
+.m_eform_sign_background {
+ position: absolute;
+ top: 50px;
+ width: 100%;
+ bottom: 0px;
+ overflow : hidden;
+ z-index:500;
+}
+
+/*사인컨트롤 전체 배경*/
+.eform_sign_div{
+ /*
+ background-image:url(../img/eform/sign/background.png);
+ background-size: cover;
+ */
+ background-color:white;
+ border:5px #51920f solid;
+ border-radius: 7px;
+}
+
+/*사인컨트롤의 타이틀 */
+.eform_sign_title{
+ position:absolute;
+ left:15px;
+}
+
+/*사인컨트롤 그리는 영역 외각선*/
+.eform_sign_paint{
+ position:absolute;
+ left:25px;
+ top:25px;
+ right:25px;
+ bottom:85px;
+ background-color:white;
+ border:2px darkgray solid;
+ border-radius: 7px;
+}
+
+/*사인컨트롤 그리는 영역*/
+.eform_sign_canvas{
+ position:absolute;
+ left:0px;
+ top:0px;
+ background-color:transparent;
+}
+
+.eform_sign_canvas_in{
+ position:absolute;
+ left:0px;
+ top:0px;
+ background-color:transparent;
+ zoom:0.5;
+ -moz-transform:scale(0.5);
+ -moz-transform-origin:0 0 0;
+}
+
+/*사인컨트롤 메뉴*/
+.eform_sign_menu{
+ position:absolute;
+ left:0px;
+ bottom:25px;
+ right:0px;
+ height:40px;
+ text-align: center;
+}
+
+/*사인컨트롤 버튼 공통*/
+.eform_sign_button{
+ width:100px;
+ height:40px;
+ border-radius: 4px;
+ font-weight: bold;
+ font-size:11pt;
+ color:RGB(255,255,255);
+}
+
+/*사인컨트롤 직접서명 버튼 공통*/
+.eform_sign_button_in{
+ position: relative;
+ border-radius: 4px;
+ font-weight: bold;
+ font-size:10pt;
+ color:RGB(255,255,255);
+ margin-right: 3px;
+ margin-bottom: 3px;
+}
+
+/*사인컨트롤 버튼 확인*/
+.eform_sign_save{
+ border:2px #9a9f00 solid;
+ background-color:#9a9f00;
+}
+
+/*사인컨트롤 버튼 초기화*/
+.eform_sign_reset{
+ border:2px #9a9f00 solid;
+ background-color:#9a9f00;
+}
+
+/*사인컨트롤 버튼 취소*/
+.eform_sign_cancel{
+ border:2px #999999 solid;
+ background-color:#999999;
+}
+
+/*사인컨트롤의 가이드 텍스트*/
+.eform_sign_paint_guide{
+ position:absolute;
+ border:0px none;
+ background-color:transparent;
+ text-align:center;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -khtml-user-select: none;
+ -ms-user-select: none;
+ padding:0;
+}
+
+.eform_pallet_background {
+ position: absolute;
+ top: 40px;
+ width: 100%;
+ bottom: 0px;
+ overflow : hidden;
+ z-index:400;
+}
+
+.m_eform_pallet_background {
+ position: absolute;
+ top: 50px;
+ width: 100%;
+ bottom: 0px;
+ overflow : hidden;
+ z-index:400;
+}
+
+.eform_pallet_OP_background{
+ position:absolute;
+ left:0px;
+ top:0px;
+ width:100%;
+ height:100%;
+ opacity: 0;
+ background-color:#FFF;
+}
+
+.eform_pallet{
+ position: relative;
+ left: 10px;
+ top: 10px;
+ width: 250px;
+ height: 320px;
+ background-color: rgb(245,245,245);
+ border-radius: 18px;
+}
+.eform_pallet_width{
+ position: relative;
+ left: 10px;
+ top: 10px;
+ width: 500px;
+ height: 190px;
+ background-color: rgb(245,245,245);
+ border-radius: 18px;
+}
+
+.eform_pallet_button{
+ position: relative;
+ left: 45px;
+ top: 15px;
+ height: 35px;
+ width: 75px;
+ border-radius: 7px;
+ background-color:transparent;
+ font-size:13px;
+}
+
+.eform_pallet_button_ok{
+ border:2px solid RGB(122,122,122);
+ color: RGB(122,122,122);
+}
+
+.eform_pallet_button_cancel{
+ left:55px;
+ border:2px solid RGB(184,184,186);
+ color: RGB(184,184,186);
+}
+
+.eform_pallet_line{
+ position:absolute;
+ left:10px;
+ width:230px;
+ border:1px solid RGB(230,230,230);
+ height:0px;
+}
+
+.eform_pallet_outE{
+ position:absolute;
+ width:50px;
+ height:50px;
+ top:5px;
+}
+
+.eform_pallet_inE{
+ position:absolute;
+ left:5px;
+ top:5px;
+ width:40px;
+ height:40px;
+ background-color:white;
+ border-radius: 100%;
+}
+
+.eform_pallet_outText{
+ position:absolute;
+ width:50px;
+ height:20px;
+ top:5px;
+ text-align:center;
+ font-size:10pt;
+}
+
+.eform_pallet_Circle{
+ position:absolute;
+ top:5px;
+ left:5px;
+ width:30px;
+ height:30px;
+ border-radius: 100%;
+}
+
+.eform_zoomInOut{
+ position:absolute;
+ left:0px;
+ top:0px;
+ width:100%;
+ height:100%;
+ display:none;
+ /*
+ -webkit-filter:blur(5px);
+ */
+}
+
+.eform_IndexOrder{
+ position:absolute;
+ overflow:hidden;
+ left:0px;
+ top:0px;
+ right:0px;
+ bottom:0px;
+ display:none;
+ /*z-index:101;*/
+ opacity: 0;
+ background-color:white;
+}
+.eform_IndexOrder_inner{
+ position:absolute;
+ left:0px;
+ top:0px;
+ height:20px;
+ width:200px;
+ z-index:160;
+ display:none;
+}
+.eform_IndexOrder_left{
+ position:absolute;
+ left:0px;
+ bottom:0px;
+ width:20px;
+ height:20px;
+ background-image: url(../img/eform/navi/left.png);
+ background-size: contain;
+ background-repeat:no-repeat;
+ border: 0px none;
+ background-color: transparent;
+}
+
+.eform_IndexOrder_right{
+ position:absolute;
+ right:0px;
+ bottom:0px;
+ width:20px;
+ height:20px;
+ background-image: url(../img/eform/navi/right.png);
+ background-size: contain;
+ background-repeat:no-repeat;
+ border: 0px none;
+ background-color: transparent;
+}
+
+
+.eF_Rect{
+ position:absolute;
+ left:0px;
+ right:0px;
+ top:0px;
+ bottom:0px;
+ overflow:hidden;
+ box-sizing:border-box;
+}
+
+.eF_Rect2{
+ position:absolute;
+ left:0px;
+ top:0px;
+ width:100%;
+ height:100%;
+ overflow:hidden;
+ box-sizing:border-box;
+}
+
+
+.eform_toc_menu_top {
+ position: absolute;
+ left: 10px;
+ top: 55px;
+ height: 50px;
+ width: 250px;
+ background-color: rgba(243, 243, 243, 0.95);
+ border-bottom: 2px solid rgb(212, 212, 212);
+ box-sizing: border-box;
+ border-radius: 10px 10px 0px 0px;
+}
+
+.eform_toc_menu_top_text {
+ position: absolute;
+ left: 5px;
+ top: 15px;
+ font-family: 나눔고딕;
+ font-size: 13pt;
+ color: rgb(115, 197, 215);
+ font-weight: bold;
+}
+
+.eform_toc_menu_top_close {
+ position: absolute;
+ right: 10px;
+ top: 17px;
+ width: 19px;
+ height: 19px;
+ background-image: url(../img/eform/list_close.png);
+ background-size: contain;
+ cursor: pointer;
+}
+
+.eform_toc_menu_body {
+ position: absolute;
+ left: 10px;
+ top: 105px;
+ overflow-x: hidden;
+ overflow-y: auto;
+ width: 250px;
+ bottom: 35px;
+ background-color: rgba(243, 243, 243, 0.95);
+ box-sizing: border-box;
+}
+
+.eform_toc_list_depth {
+ position: relative;
+ left: 0px;
+ right: 0px;
+ height: 30px;
+ border-bottom: 1px solid rgb(212, 212, 212);
+}
+
+.eform_toc_nec_list_depth {
+ position: relative;
+ left: 0px;
+ right: 0px;
+ height: 30px;
+ border-bottom: 1px solid rgb(212, 212, 212);
+ background-image:url(../img/eform/nec_check.png);
+ background-size: 15px 15px;
+ background-repeat: no-repeat;
+ background-position : 5px center;
+}
+
+.eform_toc_list_depth_text{
+ position: absolute;
+ font-family : 나눔고딕;
+ font-weight: bold;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow:hidden;
+ cursor: pointer;
+}
+
+.eform_toc_list_depth_pageNumber{
+ position: absolute;
+ font-family : 나눔고딕;
+ white-space: nowrap;
+ overflow:hidden;
+ font-size: 10pt;
+ top:7px;
+ right:0px;
+ width:30px;
+ text-align: center;
+}
+
+.eform_toc_list_depth1_text {
+ font-size: 12pt;
+ color: rgb(215, 172, 135);
+ top: 5px;
+ bottom: 0px;
+
+}
+
+.eform_toc_list_depth2_text {
+ font-size: 12pt;
+ color: rgb(100, 100, 100);
+ top: 5px;
+ bottom: 0px;
+}
+
+.eform_toc_list_depth3_text {
+ font-size: 11pt;
+ color: rgb(100, 100, 100);
+ top: 7px;
+ bottom: 0px;
+}
+
+.eform_toc_menu_bottom {
+ position: absolute;
+ left: 10px;
+ bottom: 25px;
+ height: 10px;
+ width: 250px;
+ background-color: rgba(243, 243, 243, 0.95);
+ box-sizing: border-box;
+ border-radius: 0px 0px 10px 10px;
+}
+
+
+.eform_pageMoveLeft{
+ position:absolute;
+ left:10px;
+ width:50px;
+ height:50px;
+ background-image:url(../img/eform/shiftLeft.png);
+ border-radius:100%;
+ opacity:0.65;
+ z-index:500;
+}
+
+.eform_pageMoveRight{
+ position:absolute;
+ right:10px;
+ width:50px;
+ height:50px;
+ background-image:url(../img/eform/shiftRight.png);
+ border-radius:100%;
+ opacity:0.65;
+ z-index:500;
+}
+
+
+
+.eform_calendar_div{
+ position: absolute;
+ top: 40px;
+ width: 100%;
+ bottom: 0px;
+ background-color:rgba(255,255,255,0.6);
+ overflow: hidden;
+ z-index: 200;
+}
+
+.m_eform_calendar_div{
+ position: absolute;
+ top: 50px;
+ width: 100%;
+ bottom: 0px;
+ background-color:rgba(255,255,255,0.6);
+ overflow: hidden;
+ z-index: 200;
+}
+
+.eform_calendar_header_div{
+ position:absolute;
+ left:0px;
+ top:0px;
+ width:100%;
+ height:30%;
+ background-color: rgb(138,72,221);
+ border:0px solid;
+
+}
+
+
+.eform_calendar_body_div{
+ position:absolute;
+ left:0px;
+ top:30%;
+ width:100%;
+ height:70%;
+ border:0px solid;
+}
+
+
+.eform_calendar_year_header{
+ border-spacing:0;
+ text-align : center;
+ font-size:1.4em;
+ font-family: 나눔고딕;
+ width:100%;
+ height:60%;
+ font-weight:bold;
+}
+
+.eform_calendar_month_header{
+ text-align : center;
+ font-size:1.1em;
+ font-family: 나눔고딕;
+ color:white;
+ width:100%;
+ height:40%;
+}
+
+.eform_calendar_body{
+ border-spacing:0;
+ text-align : center;
+ width:100%;
+ height:100%;
+}
+
+
+.eform_calendar_prev_year{
+ width:75%;
+ height:50%;
+ background-image:url(../img/eform/calendar/leftEnd.png);
+ background-size: contain;
+ border: 0px none;
+ background-color: transparent;
+ background-repeat:no-repeat;
+ background-position:50% 50%;
+}
+
+.eform_calendar_prev_month{
+ width:100%;
+ height:50%;
+ background-image:url(../img/eform/calendar/left.png);
+ background-size: contain;
+ border: 0px none;
+ background-color: transparent;
+ background-repeat:no-repeat;
+ background-position:50% 50%;
+}
+
+.eform_calendar_next_year{
+ width:75%;
+ height:50%;
+ background-image:url(../img/eform/calendar/rightEnd.png);
+ background-size: contain;
+ border: 0px none;
+ background-color: transparent;
+ background-repeat:no-repeat;
+ background-position:50% 50%;
+}
+
+.eform_calendar_next_month{
+ width:100%;
+ height:50%;
+ background-image:url(../img/eform/calendar/right.png);
+ background-size: contain;
+ border: 0px none;
+ background-color: transparent;
+ background-repeat:no-repeat;
+ background-position:50% 50%;
+}
+.eform_calendar_day{
+ text-align: left;
+ font-family: 나눔고딕;
+ font-size: 1em;
+ border-bottom:1px solid rgb(220,220,220);
+ vertical-align: top;
+}
+
+.eform_calendar_day:focus{
+ border:2px solid rgb(138,72,221);
+ outline: none;
+}
+
+.eform_calendar_sunDay{
+ color:red;
+}
+.eform_calendar_saturday{
+ color:blue;
+}
+
+.eform_thumbnail_menu_top {
+ position: absolute;
+ left: 10px;
+ top: 55px;
+ height: 50px;
+ width: 250px;
+ background-color: rgba(243, 243, 243, 0.95);
+ border-bottom: 2px solid rgb(212, 212, 212);
+ box-sizing: border-box;
+ border-radius: 10px 10px 0px 0px;
+}
+
+.eform_thumbnail_menu_top_text {
+ position: absolute;
+ left: 5px;
+ top: 15px;
+ font-family: 나눔고딕;
+ font-size: 13pt;
+ color: rgb(115, 197, 215);
+ font-weight: bold;
+}
+
+.eform_thumbnail_menu_top_close {
+ position: absolute;
+ right: 10px;
+ top: 17px;
+ width: 19px;
+ height: 19px;
+ background-image: url(../img/eform/list_close.png);
+ background-size: contain;
+ cursor: pointer;
+}
+
+.eform_thumbnail_menu_body {
+ position: absolute;
+ left: 10px;
+ top: 105px;
+ overflow-x: hidden;
+ overflow-y: auto;
+ width: 250px;
+ bottom: 35px;
+ background-color: rgba(243, 243, 243, 0.95);
+ box-sizing: border-box;
+}
+
+.eform_thumbnail_menu_bottom {
+ position: absolute;
+ left: 10px;
+ bottom: 25px;
+ height: 10px;
+ width: 250px;
+ background-color: rgba(243, 243, 243, 0.95);
+ box-sizing: border-box;
+ border-radius: 0px 0px 10px 10px;
+}
+
+.eform_thumbnail_menu_body_div {
+ position: relative;
+ left: 15px;
+ width: 200px;
+ height: 220px;
+ text-align: center;
+}
+
+.eform_thumbnail_menu_body_focus_div{
+ background-color: rgba(255,100,20,0.1);
+ position: relative;
+ left: 15px;
+ width: 200px;
+ height: 220px;
+ text-align: center;
+ border-radius: 8%;
+}
+
+.eform_thumbnail_menu_body_img{
+ width: 200px;
+ height: 200px;
+ background-size:contain;
+ background-repeat: no-repeat;
+ background-position: center;
+}
diff --git a/ClipReport4/ClipReport4/css/export.css b/ClipReport4/ClipReport4/css/export.css
new file mode 100644
index 0000000..f8de5f5
--- /dev/null
+++ b/ClipReport4/ClipReport4/css/export.css
@@ -0,0 +1,68 @@
+@CHARSET "UTF-8";
+
+
+html, body {
+ height: 100%;
+ width: 100%;
+ margin: 0;
+}
+
+
+a {
+ color: #565656;
+}
+
+a:hover {
+ color: blue;
+}
+
+a:link {
+ text-decoration: none;
+}
+
+.export-container {
+ width: 100%;
+ height: 100%;
+ margin: 0;
+ background: white;
+}
+
+.export-outer {
+ display: table;
+ width: 100%;
+ height: 100%;
+}
+
+.export-inner {
+ display: table-cell;
+ vertical-align: middle;
+ text-align: center;
+}
+
+.export-centered {
+ position: relative;
+ display: inline-block;
+ width: 50%;
+ padding: 1em;
+ background: white;
+ color: #333333;
+}
+
+
+#export-description {
+ margin: 30px 0 0 0;
+
+}
+
+#export-description div {
+ font-size: 10pt;
+ margin: 2pt 0 2pt 0;
+}
+
+.status-wait {
+ color : #afafaf;
+}
+
+.status-current {
+ color : #333333;
+}
\ No newline at end of file
diff --git a/ClipReport4/ClipReport4/css/font.css b/ClipReport4/ClipReport4/css/font.css
new file mode 100644
index 0000000..82bfa19
--- /dev/null
+++ b/ClipReport4/ClipReport4/css/font.css
@@ -0,0 +1,31 @@
+/*
+ * Nanum Gothic (Korean) http://www.google.com/fonts/earlyaccess
+ */
+@font-face {
+ font-family: 'NanumGothic';
+ font-style: normal;
+ font-weight: 400;
+ src: url(../font/NanumGothic-Regular.eot);
+ src: url(../font/NanumGothic-Regular.eot?#iefix) format('embedded-opentype'),
+ url(../font/NanumGothic-Regular.woff2) format('woff2'),
+ url(../font/NanumGothic-Regular.woff) format('woff'),
+ url(../font/NanumGothic-Regular.ttf) format('truetype');
+ /*
+ url(../font/NanumGothic-Regular.svg#NanumGothic) format('svg');
+ */
+}
+
+@font-face {
+ font-family: '나눔고딕';
+ font-style: normal;
+ font-weight: 400;
+ src: url(../font/NanumGothic-Regular.eot);
+ src: url(../font/NanumGothic-Regular.eot?#iefix) format('embedded-opentype'),
+ url(../font/NanumGothic-Regular.woff2) format('woff2'),
+ url(../font/NanumGothic-Regular.woff) format('woff'),
+ url(../font/NanumGothic-Regular.ttf) format('truetype');
+ /*
+ url(../font/NanumGothic-Regular.svg#나눔고딕) format('svg');
+ */
+}
+
\ No newline at end of file
diff --git a/ClipReport4/ClipReport4/css/install.css b/ClipReport4/ClipReport4/css/install.css
new file mode 100644
index 0000000..c15f9d1
--- /dev/null
+++ b/ClipReport4/ClipReport4/css/install.css
@@ -0,0 +1,173 @@
+@charset "utf-8";
+
+@import url(font.css);
+
+
+html body {
+ font-family: "Nanum Gothic", sans-serif;
+ margin: 0 0 0 0 !important;
+ padding: 0 0 0 0;
+ width: 100%;
+ height: 100%;
+ background: #e0e0e0;
+}
+
+ul {
+ margin: 0 0 0 0;
+}
+
+li {
+ padding: 5px 0 10px 0;
+}
+
+input {
+ font-size: 13pt;
+ padding: 3px 3px 3px 3px;
+ width: 40%;
+ min-width: 200px;
+ color: #666666;
+ background: #eaeaea;
+ border: solid 1px #bababa;
+}
+
+
+input:focus {
+ outline: none;
+ background: #eaeaea;
+ color: #111111;
+ border: solid 1px #232323;
+}
+
+button {
+ font-size: 13pt;
+ padding: 3px 3px 3px 3px;
+ margin: 10px 3% 10px 3%;
+ width: 30%;
+ min-width: 200px;
+ color: #666666;
+ background: #dfdfdf;
+ border: solid 1px #bababa;
+}
+.enabled-button {
+ color: #666666;
+ border: solid 1px #bababa;
+}
+
+.disabled-button {
+ color: #bebebe !important;
+ border: solid 1px #dcdcdc !important;;
+}
+
+button:hover {
+ cursor: pointer;
+}
+
+button:focus {
+ color: #cccccc;
+ background: #444444;
+ outline: none;
+}
+
+
+.label {
+ color: #444444;
+ font-size: 16pt;
+ font-weight: 100;
+
+ margin: 0 0 3px 0;
+}
+
+.title {
+ font-size: 25pt;
+ color: #ababab;
+}
+
+
+.label-description {
+ color: #606060;
+ font-size: 10pt;
+ margin: 0 0 5px 0;
+}
+
+.space {
+ width: 100%;
+ height: 5px;
+}
+.space2 {
+ width: 100%;
+ height: 15px;
+}
+.space3 {
+ width: 100%;
+ height: 25px;
+}
+.space4 {
+ width: 100%;
+ height: 50px;color: #666666;
+}
+
+.container {
+ margin: auto;
+ max-width: 720px;
+ width: 100%;
+ height: 100%;
+
+}
+
+.path-view {
+ font-size: 16px;
+ width: 90%;
+ min-height: 22px;
+ color: #666666;
+ padding: 6px 3px 6px 6px;
+ background: #e8e8e8;
+ overflow-x: auto;
+ word-break:break-all;
+}
+
+.form-box {
+ padding: 15px 25px 15px 25px;
+ background: #f0f0f0;
+}
+
+.title-line {
+ width: 100%;
+ height: 1px;
+ background: #cbcbcb;
+ margin: 5px 0 5px 0;
+}
+
+
+.alert-input {
+ color: #ee7777;
+ height: 15px;
+ font-size: 10pt;
+ font-weight: bold;
+ margin: 4px 0 0 0;
+}
+
+.dlg {
+ width: 100%;
+ height: 100%;
+ margin: 0 0 0 0;
+ position: fixed;
+ z-index: 10000;
+}
+.dlg-outer {
+ display: table;
+ width: 100%;
+ height: 100%;
+}
+.dlg-inner {
+ display: table-cell;
+ vertical-align: middle;
+ text-align: center;
+}
+.dlg-centered {
+ position: relative;
+ display: inline-block;
+
+ width: 50%;
+ padding: 1em;
+ color: white;
+}
\ No newline at end of file
diff --git a/ClipReport4/ClipReport4/css/reset.css b/ClipReport4/ClipReport4/css/reset.css
new file mode 100644
index 0000000..03cab9f
--- /dev/null
+++ b/ClipReport4/ClipReport4/css/reset.css
@@ -0,0 +1,42 @@
+@charset "UTF-8";
+
+html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-weight: inherit;
+ font-style: inherit;
+ font-size: 100%;
+ font-family: inherit;
+ vertical-align: baseline;
+}
+body {
+ font:12px/1.5em Arial, dotum, AppleGothic, sans-serif
+}
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+caption, th, td {
+ text-align: left;
+ font-weight: normal;
+}
+table, td, th {
+ vertical-align: middle;
+}
+blockquote:before, blockquote:after, q:before, q:after {
+ content: "";
+}
+blockquote {
+ quotes: "" "";
+}
+a img {
+ border: none;
+}
+
+a {text-decoration:none}
+
+
+/* Hides from IE5-mac \*/
+* html { height: 1%; }
+/* End hide from IE5-mac */
\ No newline at end of file
diff --git a/ClipReport4/ClipReport4/eduannotation.aspx b/ClipReport4/ClipReport4/eduannotation.aspx
new file mode 100644
index 0000000..142f276
--- /dev/null
+++ b/ClipReport4/ClipReport4/eduannotation.aspx
@@ -0,0 +1,128 @@
+<%@ Page Language="C#" AutoEventWireup="true" %>
+<%@ Import Namespace="CLIPreport.OOF"%>
+
+
+<%
+
+
+
+
+
+ReportUtil reportUtil = ReportUtil.getInstance();
+Response.AddHeader("Cache-Control", "no-cache, no-store");
+
+
+OOFDocument oof = OOFDocument.newOOF();
+
+// Set report title
+oof.setTitle("입교통지서");
+
+OOFFile file = oof.addFile("crf", "eduannotation.crf");
+
+// DB Connection
+oof.addConnectionData("*","lmsynicte");
+
+// Add Field
+oof.addField("lectno",Request.QueryString["lectno"].ToString());
+
+
+
+
+
+//##############################################################################################################################
+
+//##############################################################################################################################
+// [Example] Inserting data in XML format from HTTP.
+//file.addConnectionHTTP("*", "http://rexpert.clipsoft.kr/rebfiles/demo/resign.xml", null).addContentParamXML();
+//################################################################# #############################################################
+
+
+
+//##############################################################################################################################
+// [Example] Inserting JSON data.
+//file.addConnectionMemo("*", "{\"value\":200}" ).addContentParamJSON();
+//##############################################################################################################################
+
+
+// Create a Report key.
+// This key is used in the Javascript-based report viewer.
+
+String reportKey = reportUtil.createReportToKey( oof);
+
+
+//##############################################################################################################################
+// [Example] You can use the comment code below.
+//String reportKey = reportUtil.createReportToKey(response, oof, request.getCharacterEncoding());
+//String reportKey = reportUtil.createReportToKey(response, oof.toBase64());
+//String reportKey = reportUtil.createReportToKey(response, oof);
+//##############################################################################################################################
+
+%>
+
+
+
+Report
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+s
\ No newline at end of file
diff --git a/ClipReport4/ClipReport4/educontract.aspx b/ClipReport4/ClipReport4/educontract.aspx
new file mode 100644
index 0000000..7695362
--- /dev/null
+++ b/ClipReport4/ClipReport4/educontract.aspx
@@ -0,0 +1,128 @@
+<%@ Page Language="C#" AutoEventWireup="true" %>
+<%@ Import Namespace="CLIPreport.OOF"%>
+
+
+<%
+
+
+
+
+
+ReportUtil reportUtil = ReportUtil.getInstance();
+Response.AddHeader("Cache-Control", "no-cache, no-store");
+
+
+OOFDocument oof = OOFDocument.newOOF();
+
+// Set report title
+oof.setTitle("교육훈련위탁계약서");
+
+OOFFile file = oof.addFile("crf", "educontract.crf");
+
+// DB Connection
+oof.addConnectionData("*","lmsynicte");
+
+// Add Field
+oof.addField("lectno",Request.QueryString["lectno"].ToString());
+
+
+
+
+
+//##############################################################################################################################
+
+//##############################################################################################################################
+// [Example] Inserting data in XML format from HTTP.
+//file.addConnectionHTTP("*", "http://rexpert.clipsoft.kr/rebfiles/demo/resign.xml", null).addContentParamXML();
+//################################################################# #############################################################
+
+
+
+//##############################################################################################################################
+// [Example] Inserting JSON data.
+//file.addConnectionMemo("*", "{\"value\":200}" ).addContentParamJSON();
+//##############################################################################################################################
+
+
+// Create a Report key.
+// This key is used in the Javascript-based report viewer.
+
+String reportKey = reportUtil.createReportToKey( oof);
+
+
+//##############################################################################################################################
+// [Example] You can use the comment code below.
+//String reportKey = reportUtil.createReportToKey(response, oof, request.getCharacterEncoding());
+//String reportKey = reportUtil.createReportToKey(response, oof.toBase64());
+//String reportKey = reportUtil.createReportToKey(response, oof);
+//##############################################################################################################################
+
+%>
+
+
+
+Report
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+s
\ No newline at end of file
diff --git a/ClipReport4/ClipReport4/export/exportForDATA.aspx b/ClipReport4/ClipReport4/export/exportForDATA.aspx
new file mode 100644
index 0000000..f63ce0e
--- /dev/null
+++ b/ClipReport4/ClipReport4/export/exportForDATA.aspx
@@ -0,0 +1,60 @@
+<%@ Page Language="C#" AutoEventWireup="true" %>
+<%@ Import Namespace="CLIPreport.OOF"%>
+<%@ Import Namespace="CLIPreport.SDK"%>
+
+
+<%
+ReportUtil reportUtil = ReportUtil.getInstance();
+
+OOFDocument oof = OOFDocument.newOOF();
+OOFFile file = oof.addFile("crf", "CLIP.crf");
+//OOFFile file = oof.addFile("crf", "http://192.168.1.33:90/temp/INQY010602_XLS.crf");
+//file.addConnectionData("*", "Mssql");
+
+OOFSaveDataOption option = oof.options().saveData();
+
+option.setDelimRow("{%enter%}"); // 행 구분자
+//option.setDelimCol("{%tab%}");
+option.setDelimCol(","); // 열 구분자
+option.setAddFieldName(true); // 필드 이름 추가?
+option.setOnlyMain(true); // 메인 데이터만 포함?
+option.setEncoding("UTF-8"); // 인코딩.
+option.setFileName("리포트.csv"); // 파일 이름
+
+
+
+//아래 주석을 해제하면 파일을 브라우저를 통하여 확인할 수 있다.
+// 단, 브라우저에 문서 뷰어 플러그인이 존재하는 경우 가능.
+//response.setContentType("application/pdf");
+//response.setHeader("Content-Disposition", "inline; filename=" + fileName + ";");
+/*
+try { */
+
+ // 웹 브라우저를 통하여 파일을 다운로드 받을 때 아래의 코드를 사용.
+ reportUtil.sendData(Request, Response, oof);
+
+ // 파일 저장시 아래 코드 사용.
+ //File directory = new File("저장될 파일이 위치할 디렉토리");
+ //reportUtil.saveExport(directory, oof, option);
+
+/*
+} catch(OutOfLicenseException e) {
+ e.printStackTrace();
+ // 라이센스 없음.
+} catch(CRFFileNotFoundException e) {
+ e.printStackTrace();
+ // CRF (혹은 reb) 파일 찾을 수 없음.
+} catch(ServerConnectionFailExecption e) {
+ e.printStackTrace();
+ // 서버와 연결할 수 없음.
+} catch(APIRemoteCallErrorException e) {
+ e.printStackTrace();
+ // 어떠한 이유로 API 를 호출할 수 없음. (주로 네트워크 오류)
+} catch(APIFailException e) {
+ e.printStackTrace();
+ // API 호출 실패.
+}
+*/
+
+return;
+%>
\ No newline at end of file
diff --git a/ClipReport4/ClipReport4/export/exportForDOC.aspx b/ClipReport4/ClipReport4/export/exportForDOC.aspx
new file mode 100644
index 0000000..b15e628
--- /dev/null
+++ b/ClipReport4/ClipReport4/export/exportForDOC.aspx
@@ -0,0 +1,105 @@
+<%@ Page Language="C#" AutoEventWireup="true" %>
+<%@ Import Namespace="CLIPreport.OOF"%>
+<%@ Import Namespace="CLIPreport.SDK"%>
+
+
+<%
+ReportUtil reportUtil = ReportUtil.getInstance();
+
+CLIPreport.OOF.OOFDocument oof = OOFDocument.newOOF();
+
+OOFFile file = oof.addFile("crf", "CLIP.crf");
+
+
+//DOC 저장에 대한 옵션을 설정합니다.
+RTFExportOption option = ExportOptions.doc();
+
+// 페이지 범위. 2-9, 1-, -5 와 같이 범위를 설정할 수 있습니다.
+//option.setPageRange("1-");
+
+// setDefaultCharSpace(float) 기본 자간
+option.setDefaultCharSpace(-0.5f);
+
+
+// setProcessEqualAlign(int) 균등 분할 처리 방법
+/* tableSplitMethod(Integer)
+
+>기존 버전(WAS) :
+ 0=왼쪽 정렬
+ 1=오른쪽 정렬
+ 2=가운데 정렬
+ 3=양쪽 정렬
+
+ >현재 버전(데몬) :
+ RTFExportOption.AlignLeft = 왼쪽 정렬
+ RTFExportOption.AlignCenter = 가운데 정렬
+ RTFExportOption.AlignRight = 오른쪽 정렬
+ RTFExportOption.AlignJustify = 양쪽 정렬
+*/
+
+option.setProcessEqualAlign(RTFExportOption.AlignJustify);
+
+
+// setSplitTextLine(boolean)
+// 리포트에 출력된 것 처럼 문자열을 여러줄로 잘라서 표현할지 여부
+// 기존 메소드 : option.setSplitTextByLine(true);
+option.setSplitTextLine(true);
+
+
+// setProcessAsUnicode(boolean)
+// text를 유니코드로 처리할지 여부
+option.setProcessAsUnicode(true);
+
+// setMergeTable(boolean)
+// 이웃한 테이블과 병합할 것인지 여부
+option.setMergeTable(false);
+
+
+//setTableWrapperBottomGap(int)
+//테이블을 감싸는 객체를 삽입할 것인지 여부
+//테이블을 감싸는 레이아웃와 테이블의 아래쪽 간격
+option.setTableWrapperBottomGap(0);
+
+
+// 확장자를 제외한 파일이름, 파일이름으로 사용될 수 없는 문자열은 '_' 으로 치환됩니다.
+String fileName = "----한글-파일-이름-테스트-문서(특수문자:#$%^&)";
+
+option.setName(fileName);
+
+
+//아래 주석을 해제하면 파일을 브라우저를 통하여 확인할 수 있다.
+// 단, 브라우저에 문서 뷰어 플러그인이 존재하는 경우 가능.
+//response.setContentType("application/pdf");
+//response.setHeader("Content-Disposition", "inline; filename=" + fileName + ";");
+/*
+try { */
+
+
+ // 웹 브라우저를 통하여 파일을 다운로드 받을 때 아래의 코드를 사용.
+ reportUtil.sendExport(Request,Response, oof, option);
+
+ // 파일 저장시 아래 코드 사용.
+ //File directory = new File("저장될 파일이 위치할 디렉토리");
+ //reportUtil.saveExport(directory, oof, option);
+
+/*
+} catch(OutOfLicenseException e) {
+ e.printStackTrace();
+ // 라이센스 없음.
+} catch(CRFFileNotFoundException e) {
+ e.printStackTrace();
+ // CRF (혹은 reb) 파일 찾을 수 없음.
+} catch(ServerConnectionFailExecption e) {
+ e.printStackTrace();
+ // 서버와 연결할 수 없음.
+} catch(APIRemoteCallErrorException e) {
+ e.printStackTrace();
+ // 어떠한 이유로 API 를 호출할 수 없음. (주로 네트워크 오류)
+} catch(APIFailException e) {
+ e.printStackTrace();
+ // API 호출 실패.
+}
+*/
+
+return;
+%>
\ No newline at end of file
diff --git a/ClipReport4/ClipReport4/export/exportForEXCEL.aspx b/ClipReport4/ClipReport4/export/exportForEXCEL.aspx
new file mode 100644
index 0000000..ba45193
--- /dev/null
+++ b/ClipReport4/ClipReport4/export/exportForEXCEL.aspx
@@ -0,0 +1,115 @@
+<%@ Page Language="C#" AutoEventWireup="true" %>
+<%@ Import Namespace="CLIPreport.OOF"%>
+<%@ Import Namespace="CLIPreport.SDK"%>
+
+
+<%
+ReportUtil reportUtil = ReportUtil.getInstance();
+
+OOFDocument oof = OOFDocument.newOOF();
+OOFFile file = oof.addFile("crf", "CLIP.crf");
+
+//file.addConnectionData("*", "oracle1");
+
+// 아래 옵션을 수정하여 파일 형식을 변경할 수 있습니다.
+// 파일 형식은 xlsx, xls, cell 을 지원합니다.
+XLSExportOption option = ExportOptions.xlsx(); // xlsx
+//XLSExportOption option = ExportOptions.cell(); // 한셀
+//XLSExportOption option = ExportOptions.xls(); // xls
+
+// 페이지 범위. 2-9, 1-, -5 와 같이 범위를 설정할 수 있습니다.
+//option.setPageRange("1-");
+
+/* exportMethod(Integer}
+
+>기존 버전(WAS) :
+ 0 = 페이지 마다 하나의 시트로 PagePerSheet
+ 1 = 페이지를 연속 저장 AllPageInOneSheet
+ 2 = 섹션을 연속하여 저장
+ 3 = 리포트마다 섹션을 연속하여 저장
+
+>현재 버전(데몬) :
+ XLSExportOption.PagePerSheet = 페이지마다 하나의 시트로
+ XLSExportOption.AllPageInOneSheet = 페이지를 연속 저장
+ XLSExportOption.AllSectionInOneSheet = 세션을 연속하여 저장
+ XLSExportOption.AllSectionInOneSheetForEachReport = 리포트마다 섹션을 연속하여 저장
+ XLSExportOption.AllPageInOneSheetForEachReport = 리포트마다 섹션을 연속하여 저장(페이지 영역 무시)
+
+ 만약, 기존 버전에서 마이그레이션이 필요한 상황이라면 참고하여 변환하시오. */
+option.setExportMethod(XLSExportOption.PagePerSheet);
+
+
+/* mergeCell(Boolean) 셀 합치기*/
+option.setMergeCell(true);
+
+/* mergeEmptyCell(Boolean) 공백 셀일 경우 합치기*/
+option.setMergeEmptyCell(false);
+
+/* splitCellAtPageSize(Boolean) 페이지 크기로 셀 분리*/
+option.setSplitCellAtPageSize(true);
+
+/* rightToLeft(Boolean) 열이 오른쪽에서 왼쪽으로 진행*/
+option.setRightToLeft(false);
+
+/* widthRate {Integer} 가로 비율 0 - 100*/
+option.setWidthRate(100);
+
+/* heightRate(Integer) 세로 비율 0 -100*/
+option.setHeightRate(100);
+
+/* coordinateErrorLimit(Integer) 좌표 오차 범위*/
+option.setCoordinateErrorLimit(10);
+
+/* processGerenalFormat(Integer)
+ 현재 버전(데몬) : 1 = 텍스트, 2 = 일반
+ 기존 버전 : XLSExportOption.Text = 텍스트, XLSExportOption.General = 일반
+ 만약, 기존 버전에서 마이그레이션이 필요한 상황이라면 참고하여 변환하시오. */;
+option.setProcessGeneralFormat(XLSExportOption.General);
+
+
+/* printingMagnification(Integer) 인쇄 확대/축소 비율*/
+option.setPrintingMagnification(100);
+
+
+/*fitToPageWhenPrinting (Boolean) 출력시 페이지 맞춤*/
+/* xlsx 사용시 무시됨. */
+option.setFitToPageWhenPrinting(false);
+
+// 확장자를 제외한 파일이름
+String fileName = "한글_파일_이름_테스트_문서(특수문자:#$%^&)";
+
+
+option.setName(fileName);
+
+/*
+try { */
+ // 웹 브라우저를 통하여 파일을 다운로드 받을 때 아래의 코드를 사용.
+ reportUtil.sendExport(Request, Response, oof, option);
+
+ // 파일 저장시 아래 코드 사용.
+ //File directory = new File("저장될 파일이 위치할 디렉토리");
+ //reportUtil.saveExport(directory, oof, option);
+
+/*
+} catch(OutOfLicenseException e) {
+ e.printStackTrace();
+ // 라이센스 없음.
+} catch(CRFFileNotFoundException e) {
+ e.printStackTrace();
+ // CRF (혹은 reb) 파일 찾을 수 없음.
+} catch(ServerConnectionFailExecption e) {
+ e.printStackTrace();
+ // 서버와 연결할 수 없음.
+} catch(APIRemoteCallErrorException e) {
+ e.printStackTrace();
+ // 어떠한 이유로 API 를 호출할 수 없음. (주로 네트워크 오류)
+} catch(APIFailException e) {
+ e.printStackTrace();
+ // API 호출 실패.
+}
+*/
+
+return;
+
+
+%>
\ No newline at end of file
diff --git a/ClipReport4/ClipReport4/export/exportForHWP.aspx b/ClipReport4/ClipReport4/export/exportForHWP.aspx
new file mode 100644
index 0000000..b097392
--- /dev/null
+++ b/ClipReport4/ClipReport4/export/exportForHWP.aspx
@@ -0,0 +1,92 @@
+<%@ Page Language="C#" AutoEventWireup="true" %>
+<%@ Import Namespace="CLIPreport.OOF"%>
+<%@ Import Namespace="CLIPreport.SDK"%>
+
+
+<%
+ReportUtil reportUtil = ReportUtil.getInstance();
+OOFDocument oof = OOFDocument.newOOF();
+OOFFile file = oof.addFile("crf", "CLIP.crf");
+
+
+//한글저장에 대한 옵션을 설정합니다.
+HWPExportOption option = ExportOptions.hwp();
+
+// 페이지 범위. 2-9, 1-, -5 와 같이 범위를 설정할 수 있습니다.
+//option.setPageRange("1-");
+
+/* fixSize(Boolean) 크기 고정*/
+option.setFixSize(true);
+/* allowOverlay(Boolean) 겹침 허용*/
+option.setAllowOverlay(true);
+/* setPageBottomMarginToZero(Boolean) 페이지 바닥 여백을 0으로 설정*/
+option.setSetPageBottomMarginToZero(true);
+/* outputLikeWord(Boolean) 글자처럼 출력*/
+option.setOutputLikeWord(false);
+/* tableSplitMethod(Integer)
+//http://snoworca.iptime.org:52090/setup/setupusermanagementchoice-start.action
+
+>기존 버전(WAS) :
+ 0 = 나눔
+ 1 = 셀 단위로 나눔
+ 2 = 나누지 않음
+
+>현재 버전(데몬) :
+ HWPExportOption.Split = 나눔
+ HWPExportOption.SplitByCell = 셀 단위로 나눔
+ HWPExportOption.NotSplit = 나누지 않음
+
+*/
+ option.setTableSplitMethod(HWPExportOption.SplitByCell);
+
+
+
+/* defaultCharGap(Integer) 기본 자간*/
+option.setDefaultCharGap(-8);
+/* charRatio(Integer) 자평*/
+option.setCharRatio(100);
+/* putCheckboxIntoCell (Boolean) 셀 안에 체크박스 넣기 */
+option.setPutCheckboxIntoCell(false);
+//이웃한 테이블과 병합할 것인지 여부
+option.setMergeTable(false);
+//줄간격 비율(%)
+option.setLineSpaceRate(100);
+
+// 확장자를 제외한 파일이름, 파일이름으로 사용될 수 없는 문자열은 '_' 으로 치환됩니다.
+String fileName = "----한글-파일-이름-테스트-문서(특수문자:#$%^&)";
+
+option.setName(fileName);
+
+
+/*
+try { */
+
+ // 웹 브라우저를 통하여 파일을 다운로드 받을 때 아래의 코드를 사용.
+ reportUtil.sendExport(Request,Response, oof, option);
+
+ // 파일 저장시 아래 코드 사용.
+ //File directory = new File("저장될 파일이 위치할 디렉토리");
+ //reportUtil.saveExport(directory, oof, option);
+
+/*
+} catch(OutOfLicenseException e) {
+ e.printStackTrace();
+ // 라이센스 없음.
+} catch(CRFFileNotFoundException e) {
+ e.printStackTrace();
+ // CRF (혹은 reb) 파일 찾을 수 없음.
+} catch(ServerConnectionFailExecption e) {
+ e.printStackTrace();
+ // 서버와 연결할 수 없음.
+} catch(APIRemoteCallErrorException e) {
+ e.printStackTrace();
+ // 어떠한 이유로 API 를 호출할 수 없음. (주로 네트워크 오류)
+} catch(APIFailException e) {
+ e.printStackTrace();
+ // API 호출 실패.
+}
+*/
+
+return;
+
+%>
\ No newline at end of file
diff --git a/ClipReport4/ClipReport4/export/exportForJPG.aspx b/ClipReport4/ClipReport4/export/exportForJPG.aspx
new file mode 100644
index 0000000..b1d7c20
--- /dev/null
+++ b/ClipReport4/ClipReport4/export/exportForJPG.aspx
@@ -0,0 +1,64 @@
+<%@ Page Language="C#" AutoEventWireup="true" %>
+<%@ Import Namespace="CLIPreport.OOF"%>
+<%@ Import Namespace="CLIPreport.SDK"%>
+
+
+<%
+ReportUtil reportUtil = ReportUtil.getInstance();
+
+
+OOFDocument oof = OOFDocument.newOOF();
+
+OOFFile file = oof.addFile("crf", "CLIP.crf");
+
+
+
+//DOC 저장에 대한 옵션을 설정합니다.
+JPGExportOption option = ExportOptions.jpg();
+
+
+// 페이지 범위. 2-9, 1-, -5 와 같이 범위를 설정할 수 있습니다.
+//option.setPageRange("1-");
+
+
+//option.setDpiX(96);
+//option.setDpiY(96);
+//option.setRotate90(false);
+//option.setQuality(100);
+
+
+// option.setName("리포트파일이름");
+
+
+
+//try {
+
+ // 웹 브라우저를 통하여 파일을 다운로드 받을 때 아래의 코드를 사용.
+ reportUtil.sendExport(Request,Response, oof, option);
+
+ // 파일 저장시 아래 코드 사용.
+ //File directory = new File("저장될 파일이 위치할 디렉토리");
+ //reportUtil.saveExport(directory, oof, option);
+
+
+/*
+} catch(OutOfLicenseException e) {
+ e.printStackTrace();
+ // 라이센스 없음.
+} catch(CRFFileNotFoundException e) {
+ e.printStackTrace();
+ // CRF (혹은 reb) 파일 찾을 수 없음.
+} catch(ServerConnectionFailExecption e) {
+ e.printStackTrace();
+ // 서버와 연결할 수 없음.
+} catch(APIRemoteCallErrorException e) {
+ e.printStackTrace();
+ // 어떠한 이유로 API 를 호출할 수 없음. (주로 네트워크 오류)
+} catch(APIFailException e) {
+ e.printStackTrace();
+ // API 호출 실패.
+}
+*/
+
+return;
+%>
\ No newline at end of file
diff --git a/ClipReport4/ClipReport4/export/exportForPDF.aspx b/ClipReport4/ClipReport4/export/exportForPDF.aspx
new file mode 100644
index 0000000..48da029
--- /dev/null
+++ b/ClipReport4/ClipReport4/export/exportForPDF.aspx
@@ -0,0 +1,61 @@
+<%@ Page Language="C#" AutoEventWireup="true" %>
+<%@ Import Namespace="CLIPreport.OOF"%>
+<%@ Import Namespace="CLIPreport.SDK"%>
+
+
+<%
+ReportUtil reportUtil = ReportUtil.getInstance();
+
+OOFDocument oof = OOFDocument.newOOF();
+OOFFile file = oof.addFile("crf", "CLIP.crf");
+
+
+PDFExportOption option = ExportOptions.pdf();
+
+// 페이지 범위. 2-9, 1-, -5 와 같이 범위를 설정할 수 있습니다.
+//option.setPageRange("1-");
+
+//option.setUserPassword("사용자(읽기) 암호");
+//option.setOwnerPassword("저자(쓰기) 암호");
+//option.setTextToImage(true); // 글자를 이미지로 처리 - unicode 처리시 사용
+//option.setNumCopies(1); // 프린팅 매수 미리 설정
+//option.setImportOriginImage(true); // 원본 이미지 삽입
+
+
+
+
+// 확장자를 제외한 파일이름, 파일이름으로 사용될 수 없는 문자열은 '_' 으로 치환됩니다.
+String fileName = "----한글-파일-이름-테스트-문서(특수문자:#$%^&)";
+
+option.setName(fileName);
+
+/*
+try { */
+
+ // 웹 브라우저를 통하여 파일을 다운로드 받을 때 아래의 코드를 사용.
+ reportUtil.sendExport(Request,Response, oof, option);
+
+
+ // 파일 저장시 아래 코드 사용.
+ //File directory = new File("저장될 파일이 위치할 디렉토리");
+ //reportUtil.saveExport(directory, oof, option);
+
+/*
+} catch(OutOfLicenseException e) {
+ e.printStackTrace();
+ // 라이센스 없음.
+} catch(CRFFileNotFoundException e) {4
+ e.printStackTrace();
+ // CRF (혹은 reb) 파일 찾을 수 없음.
+} catch(ServerConnectionFailExecption e) {
+ e.printStackTrace();
+ // 서버와 연결할 수 없음.
+} catch(APIRemoteCallErrorException e) {
+ e.printStackTrace();
+ // 어떠한 이유로 API 를 호출할 수 없음. (주로 네트워크 오류)
+} catch(APIFailException e) {
+ e.printStackTrace();
+ // API 호출 실패.
+}
+*/
+%>
\ No newline at end of file
diff --git a/ClipReport4/ClipReport4/export/exportForPPT.aspx b/ClipReport4/ClipReport4/export/exportForPPT.aspx
new file mode 100644
index 0000000..5318ff8
--- /dev/null
+++ b/ClipReport4/ClipReport4/export/exportForPPT.aspx
@@ -0,0 +1,65 @@
+<%@ Page Language="C#" AutoEventWireup="true" %>
+<%@ Import Namespace="CLIPreport.OOF"%>
+<%@ Import Namespace="CLIPreport.SDK"%>
+
+
+<%
+ReportUtil reportUtil = ReportUtil.getInstance();
+
+OOFDocument oof = OOFDocument.newOOF();
+OOFFile file = oof.addFile("crf", "CLIP.crf");
+
+
+PPTExportOption option = ExportOptions.ppt();
+
+// 페이지 범위. 2-9, 1-, -5 와 같이 범위를 설정할 수 있습니다.
+//option.setPageRange("1-");
+
+
+//이웃한 테이블과 병합할 것인지 여부
+option.setMergeTable(false);
+//행간에 라인 영역 무시
+option.setIgnoreLineSpace(true);
+
+
+
+// 확장자를 제외한 파일이름, 파일이름으로 사용될 수 없는 문자열은 '_' 으로 치환됩니다.
+String fileName = "----한글-파일-이름-테스트-문서(특수문자:#$%^&)";
+
+option.setName(fileName);
+
+
+//아래 주석을 해제하면 파일을 브라우저를 통하여 확인할 수 있다.
+// 단, 브라우저에 문서 뷰어 플러그인이 존재하는 경우 가능.
+//response.setContentType("application/pdf");
+//response.setHeader("Content-Disposition", "inline; filename=" + fileName + ";");
+/*
+try { */
+
+ // 웹 브라우저를 통하여 파일을 다운로드 받을 때 아래의 코드를 사용.
+ reportUtil.sendExport(Request,Response, oof, option);
+
+ // 파일 저장시 아래 코드 사용.
+ //File directory = new File("저장될 파일이 위치할 디렉토리");
+ //reportUtil.saveExport(directory, oof, option);
+
+/*
+} catch(OutOfLicenseException e) {
+ e.printStackTrace();
+ // 라이센스 없음.
+} catch(CRFFileNotFoundException e) {
+ e.printStackTrace();
+ // CRF (혹은 reb) 파일 찾을 수 없음.
+} catch(ServerConnectionFailExecption e) {
+ e.printStackTrace();
+ // 서버와 연결할 수 없음.
+} catch(APIRemoteCallErrorException e) {
+ e.printStackTrace();
+ // 어떠한 이유로 API 를 호출할 수 없음. (주로 네트워크 오류)
+} catch(APIFailException e) {
+ e.printStackTrace();
+ // API 호출 실패.
+}
+*/
+
+%>
\ No newline at end of file
diff --git a/ClipReport4/ClipReport4/export/exportForRTF.aspx b/ClipReport4/ClipReport4/export/exportForRTF.aspx
new file mode 100644
index 0000000..82abac3
--- /dev/null
+++ b/ClipReport4/ClipReport4/export/exportForRTF.aspx
@@ -0,0 +1,101 @@
+<%@ Page Language="C#" AutoEventWireup="true" %>
+<%@ Import Namespace="CLIPreport.OOF"%>
+<%@ Import Namespace="CLIPreport.SDK"%>
+
+
+<%
+ReportUtil reportUtil = ReportUtil.getInstance();
+
+OOFDocument oof = OOFDocument.newOOF();
+
+OOFFile file = oof.addFile("crf", "CLIP.crf");
+
+
+//DOC 저장에 대한 옵션을 설정합니다.
+RTFExportOption option = ExportOptions.rtf();
+
+// 페이지 범위. 2-9, 1-, -5 와 같이 범위를 설정할 수 있습니다.
+//option.setPageRange("1-");
+
+// setDefaultCharSpace(float) 기본 자간
+option.setDefaultCharSpace(-0.5f);
+
+
+// setProcessEqualAlign(int) 균등 분할 처리 방법
+/* tableSplitMethod(Integer)
+>기존 버전(WAS) :
+ 0=왼쪽 정렬
+ 1=오른쪽 정렬
+ 2=가운데 정렬
+ 3=양쪽 정렬
+
+ >현재 버전(데몬) :
+ RTFExportOption.AlignLeft = 왼쪽 정렬
+ RTFExportOption.AlignCenter = 가운데 정렬
+ RTFExportOption.AlignRight = 오른쪽 정렬
+ RTFExportOption.AlignJustify = 양쪽 정렬
+*/
+option.setProcessEqualAlign(RTFExportOption.AlignJustify);
+
+// setSplitTextLine(boolean)
+// 리포트에 출력된 것 처럼 문자열을 여러줄로 잘라서 표현할지 여부
+// 기존 메소드 : option.setSplitTextByLine(true);
+option.setSplitTextLine(true);
+
+
+// setProcessAsUnicode(boolean)
+// text를 유니코드로 처리할지 여부
+option.setProcessAsUnicode(true);
+
+// setMergeTable(boolean)
+// 이웃한 테이블과 병합할 것인지 여부
+option.setMergeTable(false);
+
+
+//setTableWrapperBottomGap(int)
+//테이블을 감싸는 객체를 삽입할 것인지 여부
+//테이블을 감싸는 레이아웃와 테이블의 아래쪽 간격
+option.setTableWrapperBottomGap(0);
+
+
+// 확장자를 제외한 파일이름, 파일이름으로 사용될 수 없는 문자열은 '_' 으로 치환됩니다.
+String fileName = "----한글-파일-이름-테스트-문서(특수문자:#$%^&)";
+
+option.setName(fileName);
+
+
+//아래 주석을 해제하면 파일을 브라우저를 통하여 확인할 수 있다.
+// 단, 브라우저에 문서 뷰어 플러그인이 존재하는 경우 가능.
+//response.setContentType("application/pdf");
+//response.setHeader("Content-Disposition", "inline; filename=" + fileName + ";");
+/*
+try { */
+
+ // 웹 브라우저를 통하여 파일을 다운로드 받을 때 아래의 코드를 사용.
+ reportUtil.sendExport(Request,Response, oof, option);
+
+ // 파일 저장시 아래 코드 사용.
+ //File directory = new File("저장될 파일이 위치할 디렉토리");
+ //reportUtil.saveExport(directory, oof, option);
+
+/*
+} catch(OutOfLicenseException e) {
+ e.printStackTrace();
+ // 라이센스 없음.
+} catch(CRFFileNotFoundException e) {
+ e.printStackTrace();
+ // CRF (혹은 reb) 파일 찾을 수 없음.
+} catch(ServerConnectionFailExecption e) {
+ e.printStackTrace();
+ // 서버와 연결할 수 없음.
+} catch(APIRemoteCallErrorException e) {
+ e.printStackTrace();
+ // 어떠한 이유로 API 를 호출할 수 없음. (주로 네트워크 오류)
+} catch(APIFailException e) {
+ e.printStackTrace();
+ // API 호출 실패.
+}
+*/
+
+return;
+%>
\ No newline at end of file
diff --git a/ClipReport4/ClipReport4/export/exportForTIF.aspx b/ClipReport4/ClipReport4/export/exportForTIF.aspx
new file mode 100644
index 0000000..5c48b6e
--- /dev/null
+++ b/ClipReport4/ClipReport4/export/exportForTIF.aspx
@@ -0,0 +1,72 @@
+<%@ Page Language="C#" AutoEventWireup="true" %>
+<%@ Import Namespace="CLIPreport.OOF"%>
+<%@ Import Namespace="CLIPreport.SDK"%>
+
+
+<%
+ReportUtil reportUtil = ReportUtil.getInstance();
+
+
+OOFDocument oof = OOFDocument.newOOF();
+
+OOFFile file = oof.addFile("crf", "CLIP.crf");
+
+
+//DOC 저장에 대한 옵션을 설정합니다.
+TIFExportOption option = ExportOptions.tif();
+
+
+// 페이지 범위. 2-9, 1-, -5 와 같이 범위를 설정할 수 있습니다.
+//option.setPageRange("1-");
+
+// true : 모든 페이지를 하나의 tif 파일에 넣습니다.
+// false : 웹 페이지에서 다운로드할 때 모든 페이지를 zip 으로 묶어서 내려줍니다.
+// 지정된 디렉토리에 저장할 때는 페이지별로 별개의 파일로 나누어 저장합니다.
+option.setMultiPage(false);
+
+//option.setBlackWhite(true);
+//option.setDpiX(96);
+//option.setDpiY(96);
+//option.setWidth(0);
+//option.setHeight(0);
+//option.setRotate90(false);
+
+
+option.setName("리포트_@#$@#$");
+
+
+//아래 주석을 해제하면 파일을 브라우저를 통하여 확인할 수 있다.
+// 단, 브라우저에 문서 뷰어 플러그인이 존재하는 경우 가능.
+//response.setContentType("application/pdf");
+//response.setHeader("Content-Disposition", "inline; filename=" + fileName + ";");
+/*
+try { */
+
+ // 웹 브라우저를 통하여 파일을 다운로드 받을 때 아래의 코드를 사용.
+ reportUtil.sendExport(Request,Response, oof, option);
+
+ // 파일 저장시 아래 코드 사용.
+ //File directory = new File("저장될 파일이 위치할 디렉토리");
+ //reportUtil.saveExport(directory, oof, option);
+
+/*
+} catch(OutOfLicenseException e) {
+ e.printStackTrace();
+ // 라이센스 없음.
+} catch(CRFFileNotFoundException e) {
+ e.printStackTrace();
+ // CRF (혹은 reb) 파일 찾을 수 없음.
+} catch(ServerConnectionFailExecption e) {
+ e.printStackTrace();
+ // 서버와 연결할 수 없음.
+} catch(APIRemoteCallErrorException e) {
+ e.printStackTrace();
+ // 어떠한 이유로 API 를 호출할 수 없음. (주로 네트워크 오류)
+} catch(APIFailException e) {
+ e.printStackTrace();
+ // API 호출 실패.
+}
+*/
+
+return;
+%>
\ No newline at end of file
diff --git a/ClipReport4/ClipReport4/export/exportMarkAny.aspx b/ClipReport4/ClipReport4/export/exportMarkAny.aspx
new file mode 100644
index 0000000..049b523
--- /dev/null
+++ b/ClipReport4/ClipReport4/export/exportMarkAny.aspx
@@ -0,0 +1,55 @@
+<%@ Page Language="C#" AutoEventWireup="true" %>
+<%@ Import Namespace="CLIPreport.OOF"%>
+<%@ Import Namespace="CLIPreport.SDK"%>
+
+<%
+
+ReportUtil reportUtil = ReportUtil.getInstance();
+
+
+// 다운로드될 파일이 위치할 디렉토리 경로.
+String downloadDirectory = System.Web.HttpContext.Current.Server.MapPath("~/resources/download");
+
+
+if (!System.IO.Directory.Exists(downloadDirectory))
+{
+ System.IO.Directory.CreateDirectory(downloadDirectory);
+}
+
+
+
+OOFDocument oof = OOFDocument.newOOF();
+//OOFFile file = oof.addFile("crf", "CLIPtoDRM.crf");
+OOFFile file = oof.addFile("crf", "CLIP.crf");
+
+//pdf 생성할 때 옵션
+PDFExportOption option = ExportOptions.pdf();
+//텍스트를 이미지로 표현할지 여부
+//option.setTextToImage(true);
+ResultMarkany result = reportUtil.createClipReportPDFForMarkAny(downloadDirectory, oof, option);
+int errorCode = result.getErrorCode();
+//errorCode == 0 정상
+//errorCode == 1 리포트 서버 오류.
+//errorCode == 2 oof 형식이 잘못되었거나 crf 를 찾을 수 없음.
+//errorCode == 4 데이터 혹은 pdf 파일을 WAS Client 디렉토리에 저장할 수 없음.
+//errorCode == 5 리포트와 pdf, dat 생성 오류();
+
+
+//이전 방식도 사용가능
+//ResultMarkany result = ClipReportPDFForMark.create(request, propertyPath, oof);
+//바코드로 만든 데이터 파일 위치
+//result.getDataFilePath();
+//생성된 pdf 파일 위치
+//result.getPdfFilePath();
+//바코드가 들어갈 좌표
+//result.getLeft();
+//result.getTop();
+//문서의 세로, 가로
+//세로 0
+//가로 1
+//int paperOrientation = result.getPaperOrientation();
+//임시 저장 삭제
+//result.end();
+%>
+
+ErrorCode=<%= errorCode %>
\ No newline at end of file
diff --git a/ClipReport4/ClipReport4/export/keyToExport/exportForRecordCount.aspx b/ClipReport4/ClipReport4/export/keyToExport/exportForRecordCount.aspx
new file mode 100644
index 0000000..3484935
--- /dev/null
+++ b/ClipReport4/ClipReport4/export/keyToExport/exportForRecordCount.aspx
@@ -0,0 +1,24 @@
+<%@ Page Language="C#" AutoEventWireup="true" %>
+<%@ Import Namespace="CLIPreport.SDK"%>
+
+
+<%
+ ReportUtil reportUtil = ReportUtil.getInstance();
+
+
+ String reportKey = Request.Params["report_key"];
+
+ int recordCount = -1;
+ if (null != reportKey && reportKey.Length != 0)
+ {
+ recordCount = reportUtil.getRecordCount(reportKey);
+ // recordCount == -1 : 리포트에 데이터셋이 없거나, 리포트 키 파라미터가 없음.
+ // recordCount == -2 : 라이선스 오류
+ // recordCount == -3 : 세션이 종료되어 리포트를 찾을 수 없음
+ // recordCount == -4 : 오류 발생
+ // recordCount == 0 : row 건수가 0
+ // recordCount >= 1 : row 건수가 1개 이상.
+ }
+
+
+%><%= recordCount %>
\ No newline at end of file
diff --git a/ClipReport4/ClipReport4/ico/favicon.ico b/ClipReport4/ClipReport4/ico/favicon.ico
new file mode 100644
index 0000000..b5e883c
Binary files /dev/null and b/ClipReport4/ClipReport4/ico/favicon.ico differ
diff --git a/ClipReport4/ClipReport4/img/PNG/close.png b/ClipReport4/ClipReport4/img/PNG/close.png
new file mode 100644
index 0000000..fb36063
Binary files /dev/null and b/ClipReport4/ClipReport4/img/PNG/close.png differ
diff --git a/ClipReport4/ClipReport4/img/PNG/doc.png b/ClipReport4/ClipReport4/img/PNG/doc.png
new file mode 100644
index 0000000..6f4c1cc
Binary files /dev/null and b/ClipReport4/ClipReport4/img/PNG/doc.png differ
diff --git a/ClipReport4/ClipReport4/img/PNG/excel.png b/ClipReport4/ClipReport4/img/PNG/excel.png
new file mode 100644
index 0000000..c7349c0
Binary files /dev/null and b/ClipReport4/ClipReport4/img/PNG/excel.png differ
diff --git a/ClipReport4/ClipReport4/img/PNG/hwp.png b/ClipReport4/ClipReport4/img/PNG/hwp.png
new file mode 100644
index 0000000..56174aa
Binary files /dev/null and b/ClipReport4/ClipReport4/img/PNG/hwp.png differ
diff --git a/ClipReport4/ClipReport4/img/PNG/info.png b/ClipReport4/ClipReport4/img/PNG/info.png
new file mode 100644
index 0000000..c4174e8
Binary files /dev/null and b/ClipReport4/ClipReport4/img/PNG/info.png differ
diff --git a/ClipReport4/ClipReport4/img/PNG/left.png b/ClipReport4/ClipReport4/img/PNG/left.png
new file mode 100644
index 0000000..d1936c3
Binary files /dev/null and b/ClipReport4/ClipReport4/img/PNG/left.png differ
diff --git a/ClipReport4/ClipReport4/img/PNG/leftEnd.png b/ClipReport4/ClipReport4/img/PNG/leftEnd.png
new file mode 100644
index 0000000..061d43e
Binary files /dev/null and b/ClipReport4/ClipReport4/img/PNG/leftEnd.png differ
diff --git a/ClipReport4/ClipReport4/img/PNG/over/close.png b/ClipReport4/ClipReport4/img/PNG/over/close.png
new file mode 100644
index 0000000..e4f6270
Binary files /dev/null and b/ClipReport4/ClipReport4/img/PNG/over/close.png differ
diff --git a/ClipReport4/ClipReport4/img/PNG/over/excel.png b/ClipReport4/ClipReport4/img/PNG/over/excel.png
new file mode 100644
index 0000000..3e42953
Binary files /dev/null and b/ClipReport4/ClipReport4/img/PNG/over/excel.png differ
diff --git a/ClipReport4/ClipReport4/img/PNG/over/hwp.png b/ClipReport4/ClipReport4/img/PNG/over/hwp.png
new file mode 100644
index 0000000..3b21640
Binary files /dev/null and b/ClipReport4/ClipReport4/img/PNG/over/hwp.png differ
diff --git a/ClipReport4/ClipReport4/img/PNG/over/info.png b/ClipReport4/ClipReport4/img/PNG/over/info.png
new file mode 100644
index 0000000..20efe44
Binary files /dev/null and b/ClipReport4/ClipReport4/img/PNG/over/info.png differ
diff --git a/ClipReport4/ClipReport4/img/PNG/over/left.png b/ClipReport4/ClipReport4/img/PNG/over/left.png
new file mode 100644
index 0000000..a32d7d1
Binary files /dev/null and b/ClipReport4/ClipReport4/img/PNG/over/left.png differ
diff --git a/ClipReport4/ClipReport4/img/PNG/over/leftEnd.png b/ClipReport4/ClipReport4/img/PNG/over/leftEnd.png
new file mode 100644
index 0000000..6e8636b
Binary files /dev/null and b/ClipReport4/ClipReport4/img/PNG/over/leftEnd.png differ
diff --git a/ClipReport4/ClipReport4/img/PNG/over/pdf.png b/ClipReport4/ClipReport4/img/PNG/over/pdf.png
new file mode 100644
index 0000000..4197691
Binary files /dev/null and b/ClipReport4/ClipReport4/img/PNG/over/pdf.png differ
diff --git a/ClipReport4/ClipReport4/img/PNG/over/print.png b/ClipReport4/ClipReport4/img/PNG/over/print.png
new file mode 100644
index 0000000..4ca5448
Binary files /dev/null and b/ClipReport4/ClipReport4/img/PNG/over/print.png differ
diff --git a/ClipReport4/ClipReport4/img/PNG/over/right.png b/ClipReport4/ClipReport4/img/PNG/over/right.png
new file mode 100644
index 0000000..91ca0f7
Binary files /dev/null and b/ClipReport4/ClipReport4/img/PNG/over/right.png differ
diff --git a/ClipReport4/ClipReport4/img/PNG/over/rightEnd.png b/ClipReport4/ClipReport4/img/PNG/over/rightEnd.png
new file mode 100644
index 0000000..f32c91b
Binary files /dev/null and b/ClipReport4/ClipReport4/img/PNG/over/rightEnd.png differ
diff --git a/ClipReport4/ClipReport4/img/PNG/over/save.png b/ClipReport4/ClipReport4/img/PNG/over/save.png
new file mode 100644
index 0000000..de36c30
Binary files /dev/null and b/ClipReport4/ClipReport4/img/PNG/over/save.png differ
diff --git a/ClipReport4/ClipReport4/img/PNG/pdf.png b/ClipReport4/ClipReport4/img/PNG/pdf.png
new file mode 100644
index 0000000..9841331
Binary files /dev/null and b/ClipReport4/ClipReport4/img/PNG/pdf.png differ
diff --git a/ClipReport4/ClipReport4/img/PNG/print.png b/ClipReport4/ClipReport4/img/PNG/print.png
new file mode 100644
index 0000000..5883281
Binary files /dev/null and b/ClipReport4/ClipReport4/img/PNG/print.png differ
diff --git a/ClipReport4/ClipReport4/img/PNG/right.png b/ClipReport4/ClipReport4/img/PNG/right.png
new file mode 100644
index 0000000..32369a2
Binary files /dev/null and b/ClipReport4/ClipReport4/img/PNG/right.png differ
diff --git a/ClipReport4/ClipReport4/img/PNG/rightEnd.png b/ClipReport4/ClipReport4/img/PNG/rightEnd.png
new file mode 100644
index 0000000..dedbb8c
Binary files /dev/null and b/ClipReport4/ClipReport4/img/PNG/rightEnd.png differ
diff --git a/ClipReport4/ClipReport4/img/PNG/save.png b/ClipReport4/ClipReport4/img/PNG/save.png
new file mode 100644
index 0000000..4e97687
Binary files /dev/null and b/ClipReport4/ClipReport4/img/PNG/save.png differ
diff --git a/ClipReport4/ClipReport4/img/cliplogo.png b/ClipReport4/ClipReport4/img/cliplogo.png
new file mode 100644
index 0000000..7bdf81b
Binary files /dev/null and b/ClipReport4/ClipReport4/img/cliplogo.png differ
diff --git a/ClipReport4/ClipReport4/img/close.svg b/ClipReport4/ClipReport4/img/close.svg
new file mode 100644
index 0000000..4a65b94
--- /dev/null
+++ b/ClipReport4/ClipReport4/img/close.svg
@@ -0,0 +1,110 @@
+
+
+
diff --git a/ClipReport4/ClipReport4/img/deploying.gif b/ClipReport4/ClipReport4/img/deploying.gif
new file mode 100644
index 0000000..0d88d30
Binary files /dev/null and b/ClipReport4/ClipReport4/img/deploying.gif differ
diff --git a/ClipReport4/ClipReport4/img/dis/PNG/cloes.png b/ClipReport4/ClipReport4/img/dis/PNG/cloes.png
new file mode 100644
index 0000000..e48ecf8
Binary files /dev/null and b/ClipReport4/ClipReport4/img/dis/PNG/cloes.png differ
diff --git a/ClipReport4/ClipReport4/img/dis/PNG/doc.png b/ClipReport4/ClipReport4/img/dis/PNG/doc.png
new file mode 100644
index 0000000..5e58dcf
Binary files /dev/null and b/ClipReport4/ClipReport4/img/dis/PNG/doc.png differ
diff --git a/ClipReport4/ClipReport4/img/dis/PNG/excel.png b/ClipReport4/ClipReport4/img/dis/PNG/excel.png
new file mode 100644
index 0000000..859da8e
Binary files /dev/null and b/ClipReport4/ClipReport4/img/dis/PNG/excel.png differ
diff --git a/ClipReport4/ClipReport4/img/dis/PNG/hwp.png b/ClipReport4/ClipReport4/img/dis/PNG/hwp.png
new file mode 100644
index 0000000..42584c6
Binary files /dev/null and b/ClipReport4/ClipReport4/img/dis/PNG/hwp.png differ
diff --git a/ClipReport4/ClipReport4/img/dis/PNG/info.png b/ClipReport4/ClipReport4/img/dis/PNG/info.png
new file mode 100644
index 0000000..7469eec
Binary files /dev/null and b/ClipReport4/ClipReport4/img/dis/PNG/info.png differ
diff --git a/ClipReport4/ClipReport4/img/dis/PNG/left.png b/ClipReport4/ClipReport4/img/dis/PNG/left.png
new file mode 100644
index 0000000..0bd903c
Binary files /dev/null and b/ClipReport4/ClipReport4/img/dis/PNG/left.png differ
diff --git a/ClipReport4/ClipReport4/img/dis/PNG/leftEnd.png b/ClipReport4/ClipReport4/img/dis/PNG/leftEnd.png
new file mode 100644
index 0000000..f61093c
Binary files /dev/null and b/ClipReport4/ClipReport4/img/dis/PNG/leftEnd.png differ
diff --git a/ClipReport4/ClipReport4/img/dis/PNG/pdf.png b/ClipReport4/ClipReport4/img/dis/PNG/pdf.png
new file mode 100644
index 0000000..112fab3
Binary files /dev/null and b/ClipReport4/ClipReport4/img/dis/PNG/pdf.png differ
diff --git a/ClipReport4/ClipReport4/img/dis/PNG/print.png b/ClipReport4/ClipReport4/img/dis/PNG/print.png
new file mode 100644
index 0000000..97dcf04
Binary files /dev/null and b/ClipReport4/ClipReport4/img/dis/PNG/print.png differ
diff --git a/ClipReport4/ClipReport4/img/dis/PNG/right.png b/ClipReport4/ClipReport4/img/dis/PNG/right.png
new file mode 100644
index 0000000..89b4446
Binary files /dev/null and b/ClipReport4/ClipReport4/img/dis/PNG/right.png differ
diff --git a/ClipReport4/ClipReport4/img/dis/PNG/rightEnd.png b/ClipReport4/ClipReport4/img/dis/PNG/rightEnd.png
new file mode 100644
index 0000000..4dc9322
Binary files /dev/null and b/ClipReport4/ClipReport4/img/dis/PNG/rightEnd.png differ
diff --git a/ClipReport4/ClipReport4/img/dis/PNG/save.png b/ClipReport4/ClipReport4/img/dis/PNG/save.png
new file mode 100644
index 0000000..5b4723f
Binary files /dev/null and b/ClipReport4/ClipReport4/img/dis/PNG/save.png differ
diff --git a/ClipReport4/ClipReport4/img/dis/close.svg b/ClipReport4/ClipReport4/img/dis/close.svg
new file mode 100644
index 0000000..4ea73b7
--- /dev/null
+++ b/ClipReport4/ClipReport4/img/dis/close.svg
@@ -0,0 +1,89 @@
+
+
+
diff --git a/ClipReport4/ClipReport4/img/dis/doc.svg b/ClipReport4/ClipReport4/img/dis/doc.svg
new file mode 100644
index 0000000..a6244de
--- /dev/null
+++ b/ClipReport4/ClipReport4/img/dis/doc.svg
@@ -0,0 +1,133 @@
+
+
+
diff --git a/ClipReport4/ClipReport4/img/dis/excel.svg b/ClipReport4/ClipReport4/img/dis/excel.svg
new file mode 100644
index 0000000..7e4ac11
--- /dev/null
+++ b/ClipReport4/ClipReport4/img/dis/excel.svg
@@ -0,0 +1,93 @@
+
+
+
diff --git a/ClipReport4/ClipReport4/img/dis/hwp.svg b/ClipReport4/ClipReport4/img/dis/hwp.svg
new file mode 100644
index 0000000..dc9b36c
--- /dev/null
+++ b/ClipReport4/ClipReport4/img/dis/hwp.svg
@@ -0,0 +1,112 @@
+
+
+
diff --git a/ClipReport4/ClipReport4/img/dis/info.svg b/ClipReport4/ClipReport4/img/dis/info.svg
new file mode 100644
index 0000000..a7a6c94
--- /dev/null
+++ b/ClipReport4/ClipReport4/img/dis/info.svg
@@ -0,0 +1,24 @@
+
+
+
diff --git a/ClipReport4/ClipReport4/img/dis/left.svg b/ClipReport4/ClipReport4/img/dis/left.svg
new file mode 100644
index 0000000..635e3f4
--- /dev/null
+++ b/ClipReport4/ClipReport4/img/dis/left.svg
@@ -0,0 +1,82 @@
+
+
+
diff --git a/ClipReport4/ClipReport4/img/dis/leftEnd.svg b/ClipReport4/ClipReport4/img/dis/leftEnd.svg
new file mode 100644
index 0000000..e95eb3c
--- /dev/null
+++ b/ClipReport4/ClipReport4/img/dis/leftEnd.svg
@@ -0,0 +1,86 @@
+
+
+
diff --git a/ClipReport4/ClipReport4/img/dis/pdf.svg b/ClipReport4/ClipReport4/img/dis/pdf.svg
new file mode 100644
index 0000000..bfea4d6
--- /dev/null
+++ b/ClipReport4/ClipReport4/img/dis/pdf.svg
@@ -0,0 +1,114 @@
+
+
+
diff --git a/ClipReport4/ClipReport4/img/dis/print.svg b/ClipReport4/ClipReport4/img/dis/print.svg
new file mode 100644
index 0000000..c0783d6
--- /dev/null
+++ b/ClipReport4/ClipReport4/img/dis/print.svg
@@ -0,0 +1,56 @@
+
+
+
diff --git a/ClipReport4/ClipReport4/img/dis/right.svg b/ClipReport4/ClipReport4/img/dis/right.svg
new file mode 100644
index 0000000..d233918
--- /dev/null
+++ b/ClipReport4/ClipReport4/img/dis/right.svg
@@ -0,0 +1,81 @@
+
+
+
diff --git a/ClipReport4/ClipReport4/img/dis/rightEnd.svg b/ClipReport4/ClipReport4/img/dis/rightEnd.svg
new file mode 100644
index 0000000..e442a25
--- /dev/null
+++ b/ClipReport4/ClipReport4/img/dis/rightEnd.svg
@@ -0,0 +1,85 @@
+
+
+
diff --git a/ClipReport4/ClipReport4/img/dis/save.svg b/ClipReport4/ClipReport4/img/dis/save.svg
new file mode 100644
index 0000000..f9672b1
--- /dev/null
+++ b/ClipReport4/ClipReport4/img/dis/save.svg
@@ -0,0 +1,35 @@
+
+
+
diff --git a/ClipReport4/ClipReport4/img/doc.svg b/ClipReport4/ClipReport4/img/doc.svg
new file mode 100644
index 0000000..3733c0c
--- /dev/null
+++ b/ClipReport4/ClipReport4/img/doc.svg
@@ -0,0 +1,23 @@
+
+
+
diff --git a/ClipReport4/ClipReport4/img/eform/calendar/left.png b/ClipReport4/ClipReport4/img/eform/calendar/left.png
new file mode 100644
index 0000000..03db76f
Binary files /dev/null and b/ClipReport4/ClipReport4/img/eform/calendar/left.png differ
diff --git a/ClipReport4/ClipReport4/img/eform/calendar/leftEnd.png b/ClipReport4/ClipReport4/img/eform/calendar/leftEnd.png
new file mode 100644
index 0000000..7c3a203
Binary files /dev/null and b/ClipReport4/ClipReport4/img/eform/calendar/leftEnd.png differ
diff --git a/ClipReport4/ClipReport4/img/eform/calendar/right.png b/ClipReport4/ClipReport4/img/eform/calendar/right.png
new file mode 100644
index 0000000..325a322
Binary files /dev/null and b/ClipReport4/ClipReport4/img/eform/calendar/right.png differ
diff --git a/ClipReport4/ClipReport4/img/eform/calendar/rightEnd.png b/ClipReport4/ClipReport4/img/eform/calendar/rightEnd.png
new file mode 100644
index 0000000..ef1f585
Binary files /dev/null and b/ClipReport4/ClipReport4/img/eform/calendar/rightEnd.png differ
diff --git a/ClipReport4/ClipReport4/img/eform/close.png b/ClipReport4/ClipReport4/img/eform/close.png
new file mode 100644
index 0000000..e7cb108
Binary files /dev/null and b/ClipReport4/ClipReport4/img/eform/close.png differ
diff --git a/ClipReport4/ClipReport4/img/eform/doodle/all_eraser.png b/ClipReport4/ClipReport4/img/eform/doodle/all_eraser.png
new file mode 100644
index 0000000..53f5ab4
Binary files /dev/null and b/ClipReport4/ClipReport4/img/eform/doodle/all_eraser.png differ
diff --git a/ClipReport4/ClipReport4/img/eform/doodle/close.png b/ClipReport4/ClipReport4/img/eform/doodle/close.png
new file mode 100644
index 0000000..fb269d4
Binary files /dev/null and b/ClipReport4/ClipReport4/img/eform/doodle/close.png differ
diff --git a/ClipReport4/ClipReport4/img/eform/doodle/eraser.png b/ClipReport4/ClipReport4/img/eform/doodle/eraser.png
new file mode 100644
index 0000000..743f03e
Binary files /dev/null and b/ClipReport4/ClipReport4/img/eform/doodle/eraser.png differ
diff --git a/ClipReport4/ClipReport4/img/eform/doodle/move.png b/ClipReport4/ClipReport4/img/eform/doodle/move.png
new file mode 100644
index 0000000..40820f5
Binary files /dev/null and b/ClipReport4/ClipReport4/img/eform/doodle/move.png differ
diff --git a/ClipReport4/ClipReport4/img/eform/doodle/pallet.png b/ClipReport4/ClipReport4/img/eform/doodle/pallet.png
new file mode 100644
index 0000000..6caee38
Binary files /dev/null and b/ClipReport4/ClipReport4/img/eform/doodle/pallet.png differ
diff --git a/ClipReport4/ClipReport4/img/eform/doodle/pen.png b/ClipReport4/ClipReport4/img/eform/doodle/pen.png
new file mode 100644
index 0000000..8aeb2df
Binary files /dev/null and b/ClipReport4/ClipReport4/img/eform/doodle/pen.png differ
diff --git a/ClipReport4/ClipReport4/img/eform/left.png b/ClipReport4/ClipReport4/img/eform/left.png
new file mode 100644
index 0000000..2b4fc25
Binary files /dev/null and b/ClipReport4/ClipReport4/img/eform/left.png differ
diff --git a/ClipReport4/ClipReport4/img/eform/leftEnd.png b/ClipReport4/ClipReport4/img/eform/leftEnd.png
new file mode 100644
index 0000000..77930a8
Binary files /dev/null and b/ClipReport4/ClipReport4/img/eform/leftEnd.png differ
diff --git a/ClipReport4/ClipReport4/img/eform/list_close.png b/ClipReport4/ClipReport4/img/eform/list_close.png
new file mode 100644
index 0000000..39c7a7c
Binary files /dev/null and b/ClipReport4/ClipReport4/img/eform/list_close.png differ
diff --git a/ClipReport4/ClipReport4/img/eform/navi/left.png b/ClipReport4/ClipReport4/img/eform/navi/left.png
new file mode 100644
index 0000000..48d37f1
Binary files /dev/null and b/ClipReport4/ClipReport4/img/eform/navi/left.png differ
diff --git a/ClipReport4/ClipReport4/img/eform/navi/right.png b/ClipReport4/ClipReport4/img/eform/navi/right.png
new file mode 100644
index 0000000..9f57e28
Binary files /dev/null and b/ClipReport4/ClipReport4/img/eform/navi/right.png differ
diff --git a/ClipReport4/ClipReport4/img/eform/nec_check.png b/ClipReport4/ClipReport4/img/eform/nec_check.png
new file mode 100644
index 0000000..749e47a
Binary files /dev/null and b/ClipReport4/ClipReport4/img/eform/nec_check.png differ
diff --git a/ClipReport4/ClipReport4/img/eform/print.png b/ClipReport4/ClipReport4/img/eform/print.png
new file mode 100644
index 0000000..2ca4cb8
Binary files /dev/null and b/ClipReport4/ClipReport4/img/eform/print.png differ
diff --git a/ClipReport4/ClipReport4/img/eform/right.png b/ClipReport4/ClipReport4/img/eform/right.png
new file mode 100644
index 0000000..30688c1
Binary files /dev/null and b/ClipReport4/ClipReport4/img/eform/right.png differ
diff --git a/ClipReport4/ClipReport4/img/eform/rightEnd.png b/ClipReport4/ClipReport4/img/eform/rightEnd.png
new file mode 100644
index 0000000..97400e8
Binary files /dev/null and b/ClipReport4/ClipReport4/img/eform/rightEnd.png differ
diff --git a/ClipReport4/ClipReport4/img/eform/save.png b/ClipReport4/ClipReport4/img/eform/save.png
new file mode 100644
index 0000000..f37b4eb
Binary files /dev/null and b/ClipReport4/ClipReport4/img/eform/save.png differ
diff --git a/ClipReport4/ClipReport4/img/eform/shiftLeft.png b/ClipReport4/ClipReport4/img/eform/shiftLeft.png
new file mode 100644
index 0000000..0f3cd6f
Binary files /dev/null and b/ClipReport4/ClipReport4/img/eform/shiftLeft.png differ
diff --git a/ClipReport4/ClipReport4/img/eform/shiftLeftLong.png b/ClipReport4/ClipReport4/img/eform/shiftLeftLong.png
new file mode 100644
index 0000000..5dacad8
Binary files /dev/null and b/ClipReport4/ClipReport4/img/eform/shiftLeftLong.png differ
diff --git a/ClipReport4/ClipReport4/img/eform/shiftRight.png b/ClipReport4/ClipReport4/img/eform/shiftRight.png
new file mode 100644
index 0000000..3102c67
Binary files /dev/null and b/ClipReport4/ClipReport4/img/eform/shiftRight.png differ
diff --git a/ClipReport4/ClipReport4/img/eform/shiftRightLong.png b/ClipReport4/ClipReport4/img/eform/shiftRightLong.png
new file mode 100644
index 0000000..b00efd9
Binary files /dev/null and b/ClipReport4/ClipReport4/img/eform/shiftRightLong.png differ
diff --git a/ClipReport4/ClipReport4/img/eform/sign/background.png b/ClipReport4/ClipReport4/img/eform/sign/background.png
new file mode 100644
index 0000000..fa4e7e6
Binary files /dev/null and b/ClipReport4/ClipReport4/img/eform/sign/background.png differ
diff --git a/ClipReport4/ClipReport4/img/efromProgress.gif b/ClipReport4/ClipReport4/img/efromProgress.gif
new file mode 100644
index 0000000..5e9f5e7
Binary files /dev/null and b/ClipReport4/ClipReport4/img/efromProgress.gif differ
diff --git a/ClipReport4/ClipReport4/img/excel.svg b/ClipReport4/ClipReport4/img/excel.svg
new file mode 100644
index 0000000..8f6290d
--- /dev/null
+++ b/ClipReport4/ClipReport4/img/excel.svg
@@ -0,0 +1,539 @@
+
+
+
diff --git a/ClipReport4/ClipReport4/img/hwp.svg b/ClipReport4/ClipReport4/img/hwp.svg
new file mode 100644
index 0000000..4380e62
--- /dev/null
+++ b/ClipReport4/ClipReport4/img/hwp.svg
@@ -0,0 +1,539 @@
+
+
+
diff --git a/ClipReport4/ClipReport4/img/info.svg b/ClipReport4/ClipReport4/img/info.svg
new file mode 100644
index 0000000..081516d
--- /dev/null
+++ b/ClipReport4/ClipReport4/img/info.svg
@@ -0,0 +1,542 @@
+
+
+
diff --git a/ClipReport4/ClipReport4/img/left.svg b/ClipReport4/ClipReport4/img/left.svg
new file mode 100644
index 0000000..62319af
--- /dev/null
+++ b/ClipReport4/ClipReport4/img/left.svg
@@ -0,0 +1,110 @@
+
+
+
diff --git a/ClipReport4/ClipReport4/img/leftEnd.svg b/ClipReport4/ClipReport4/img/leftEnd.svg
new file mode 100644
index 0000000..3040723
--- /dev/null
+++ b/ClipReport4/ClipReport4/img/leftEnd.svg
@@ -0,0 +1,110 @@
+
+
+
diff --git a/ClipReport4/ClipReport4/img/logo.jpg b/ClipReport4/ClipReport4/img/logo.jpg
new file mode 100644
index 0000000..6ed31d3
Binary files /dev/null and b/ClipReport4/ClipReport4/img/logo.jpg differ
diff --git a/ClipReport4/ClipReport4/img/over/close.svg b/ClipReport4/ClipReport4/img/over/close.svg
new file mode 100644
index 0000000..d6b39b2
--- /dev/null
+++ b/ClipReport4/ClipReport4/img/over/close.svg
@@ -0,0 +1,240 @@
+
+
+
diff --git a/ClipReport4/ClipReport4/img/over/excel.svg b/ClipReport4/ClipReport4/img/over/excel.svg
new file mode 100644
index 0000000..f1a9abe
--- /dev/null
+++ b/ClipReport4/ClipReport4/img/over/excel.svg
@@ -0,0 +1,622 @@
+
+
+
diff --git a/ClipReport4/ClipReport4/img/over/hwp.svg b/ClipReport4/ClipReport4/img/over/hwp.svg
new file mode 100644
index 0000000..f1a9abe
--- /dev/null
+++ b/ClipReport4/ClipReport4/img/over/hwp.svg
@@ -0,0 +1,622 @@
+
+
+
diff --git a/ClipReport4/ClipReport4/img/over/info.svg b/ClipReport4/ClipReport4/img/over/info.svg
new file mode 100644
index 0000000..d702726
--- /dev/null
+++ b/ClipReport4/ClipReport4/img/over/info.svg
@@ -0,0 +1,542 @@
+
+
+
diff --git a/ClipReport4/ClipReport4/img/over/left.svg b/ClipReport4/ClipReport4/img/over/left.svg
new file mode 100644
index 0000000..d4e44d4
--- /dev/null
+++ b/ClipReport4/ClipReport4/img/over/left.svg
@@ -0,0 +1,247 @@
+
+
+
diff --git a/ClipReport4/ClipReport4/img/over/leftEnd.svg b/ClipReport4/ClipReport4/img/over/leftEnd.svg
new file mode 100644
index 0000000..d1f9912
--- /dev/null
+++ b/ClipReport4/ClipReport4/img/over/leftEnd.svg
@@ -0,0 +1,247 @@
+
+
+
diff --git a/ClipReport4/ClipReport4/img/over/pdf.svg b/ClipReport4/ClipReport4/img/over/pdf.svg
new file mode 100644
index 0000000..f1a9abe
--- /dev/null
+++ b/ClipReport4/ClipReport4/img/over/pdf.svg
@@ -0,0 +1,622 @@
+
+
+
diff --git a/ClipReport4/ClipReport4/img/over/print.svg b/ClipReport4/ClipReport4/img/over/print.svg
new file mode 100644
index 0000000..1ed9a8c
--- /dev/null
+++ b/ClipReport4/ClipReport4/img/over/print.svg
@@ -0,0 +1,594 @@
+
+
+
diff --git a/ClipReport4/ClipReport4/img/over/right.svg b/ClipReport4/ClipReport4/img/over/right.svg
new file mode 100644
index 0000000..dd9b458
--- /dev/null
+++ b/ClipReport4/ClipReport4/img/over/right.svg
@@ -0,0 +1,247 @@
+
+
+
diff --git a/ClipReport4/ClipReport4/img/over/rightEnd.svg b/ClipReport4/ClipReport4/img/over/rightEnd.svg
new file mode 100644
index 0000000..512d6f1
--- /dev/null
+++ b/ClipReport4/ClipReport4/img/over/rightEnd.svg
@@ -0,0 +1,245 @@
+
+
+
diff --git a/ClipReport4/ClipReport4/img/over/save.svg b/ClipReport4/ClipReport4/img/over/save.svg
new file mode 100644
index 0000000..e3cd9df
--- /dev/null
+++ b/ClipReport4/ClipReport4/img/over/save.svg
@@ -0,0 +1,621 @@
+
+
+
diff --git a/ClipReport4/ClipReport4/img/pdf.svg b/ClipReport4/ClipReport4/img/pdf.svg
new file mode 100644
index 0000000..424e64b
--- /dev/null
+++ b/ClipReport4/ClipReport4/img/pdf.svg
@@ -0,0 +1,540 @@
+
+
+
diff --git a/ClipReport4/ClipReport4/img/print.svg b/ClipReport4/ClipReport4/img/print.svg
new file mode 100644
index 0000000..e5baa4a
--- /dev/null
+++ b/ClipReport4/ClipReport4/img/print.svg
@@ -0,0 +1,611 @@
+
+
+
diff --git a/ClipReport4/ClipReport4/img/right.svg b/ClipReport4/ClipReport4/img/right.svg
new file mode 100644
index 0000000..6830a88
--- /dev/null
+++ b/ClipReport4/ClipReport4/img/right.svg
@@ -0,0 +1,111 @@
+
+
+
diff --git a/ClipReport4/ClipReport4/img/rightEnd.svg b/ClipReport4/ClipReport4/img/rightEnd.svg
new file mode 100644
index 0000000..aca9e65
--- /dev/null
+++ b/ClipReport4/ClipReport4/img/rightEnd.svg
@@ -0,0 +1,110 @@
+
+
+
diff --git a/ClipReport4/ClipReport4/img/save.svg b/ClipReport4/ClipReport4/img/save.svg
new file mode 100644
index 0000000..013533c
--- /dev/null
+++ b/ClipReport4/ClipReport4/img/save.svg
@@ -0,0 +1,461 @@
+
+
+
diff --git a/ClipReport4/ClipReport4/img/tile.jpg b/ClipReport4/ClipReport4/img/tile.jpg
new file mode 100644
index 0000000..baf611b
Binary files /dev/null and b/ClipReport4/ClipReport4/img/tile.jpg differ
diff --git a/ClipReport4/ClipReport4/js/UserConfig.js b/ClipReport4/ClipReport4/js/UserConfig.js
new file mode 100644
index 0000000..43fb444
--- /dev/null
+++ b/ClipReport4/ClipReport4/js/UserConfig.js
@@ -0,0 +1,966 @@
+/**
+ * 리포트 결과에 따른 event의 값으로 함수를 호출합니다.
+ *
+ * @example 사용자는 아래에 기본 설정된 함수가 아닌 다른 기능으로 대체하여 사용하실 수 있습니다.
+ * case 8:ReportWebLog("리포트 서버가 정상적으로 설치되지 않았습니다.!!"); break;
+ * //위에 코드 대신
+ * case 8:alert("관리자에게 문의 하세요"); break;
+ *
+ * @method UserConfig
+ * @param event {Integer} 값
+ * @since version 1.0.0.9
+ */
+function ReportEventHandler(event){
+ switch(event){
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ case 5:
+ case 6:
+ case 7:
+ case 8: ReportWebLog("Report Server is not installed properly.!!"); break;
+ case 10: ReportWebLog("It is during the generation of reports.!!"); break;
+ case 11: ReportWebLog("You do not have permission for the license of the report..!!"); break;
+ case 12: ReportWebLog("You do not have permission for the license of the EForm..!!"); break;
+ case 13: ReportWebLog("XSS attack is suspected...!!"); break;
+ case 20: ReportWebLog("Target and become TAG (div or body) is NULL.!!"); break;
+ case 30: ReportWebLog("There is a problem with the creation of the report.!!");break;
+ case 31: ReportWebLog("There is a problem with the dynamic attribute script of the report..!!");break;
+ case 35: ReportWebLog("Another use is ID access.");break;
+ case 40: ReportWebLog("It failed to connect to the report server.!!");break;
+ case 50: ReportWebLog("Failed to delete the report.!!");break;
+ case 60: ReportWebLog("Section of the report server has ended.!!");break;
+ case 70: ReportWebLog("There was a problem OOF document.!!");break;
+ case 100: ReportWebLog("not found pdf reader ."); break;
+ case 101: ReportWebLog("not found hwp viewer."); break;
+ case 102: ReportWebLog("There was a problem to html Print."); break;
+ case 103: ReportWebLog("not found exe Print."); break;
+ case 104: ReportWebLog("There was a problem EXE Print."); break;
+ case 105: ReportWebLog("There was a problem Print Service."); break;
+ case 106: ReportWebLog("finish EXE Print.."); break;
+ case 107: ReportWebLog("cancel EXE Print.."); break;
+ case 150: ReportWebLog("pdf reader version is low.."); break;
+ case 200: ReportWebLog("The report was completed successfully.");break;
+ case 300: ReportWebLog("It was saved.");break;
+ case 301: ReportWebLog("There was a problem when you save.");break;
+ case 1000:
+ case 1001:
+ case 1002:
+ case 1003: ReportWebLog("In connection with the license problem occurred.");break;
+ case 1004: ReportWebLog("You do not have permission for the license");break;
+ default:break;
+ }
+}
+
+/**
+ * console이 존재할 경우 메시지를 console에 출력합니다.
+ * console이 없는 브라우져는 alert 창으로 메시지를 출력합니다.
+ *
+ * @method UserConfig
+ * @param message {String} 값
+ * @since version 1.0.0.9
+ */
+function ReportWebLog(message){
+ if(typeof window.console != 'undefined'){
+ window.console.log(message);
+ }
+ else{
+ alert(message);
+ }
+}
+
+/**
+ * eForm-Viewer 사용할 때 필수항목에 대한 체크 메시지를 변경합니다.
+ * @method UserConfig
+ * @param message {Array} 값
+ * @returns {String}
+ * @since version 1.0.0.67
+ */
+function EFormNecessaryCheckMessage(arrMessage){
+ var message = new Array();
+ message.push("필수 항목이 모두 체크되지 않았습니다.\n");
+ for(var i=0; i";
+ }
+}
+
+
+/**
+ * 리포트 전체에 저장 선택부분에서 기본 타입을 지정합니다.
+ * @example
+ *{String} excel, excelx, pdf, hwp, rtf, ppt, html5, hancell, doc, jpg, txt, tif, multiTif
+ *
+ * @method UserConfig
+ * @since version 1.0.0.18
+ */
+function getDefaultSaveOption(){
+ return "excel";
+}
+
+
+/**
+ * 뷰어에서 저장 선택 메뉴의 순서를 지정합니다.
+ * 기본적으로 excel, excelx, pdf, hwp, rtf, ppt, html5, hancell, doc, jpg, txt, tif, multiTif, excelData
+ *
+ * @method UserConfig
+ * @since version 1.0.0.136
+ */
+function ReportSaveMenuOrder(){
+ var MenuOrder =[
+ "excel",
+ "excelx",
+ "pdf",
+ "hwp",
+ "rtf",
+ "ppt",
+ "html5",
+ "hancell",
+ "doc",
+ "jpg",
+ "txt",
+ "tif",
+ "multiTif",
+ "excelData"
+ ];
+ return MenuOrder;
+
+}
+
+/**
+ * 전체 리포트에 대한 Excel 저장 옵션 기본값을 설정합니다.
+ * @example
+ * exportMethod {Integer}
+ * 1 = 페이지 마다
+ * 2 = 하나의 시트
+ * 3 = 하나의 시트(페이지영역 무시)
+ * 4 = 리포트 마다(페이지영역 무시)
+ * 5 = 리포트 마다
+ * mergeCell {Boolean} 셀 합치기
+ * mergeEmptyCell {Boolean} 공백 셀일 경우 합치기
+ * splitCellAtPageSize {Boolean} 페이지 크기로 셀 분리
+ * rightToLeft {Boolean} 열이 오른쪽에서 왼쪽으로 진행
+ * widthRate {Integer} 가로 비율
+ * heightRate {Integer} 세로 비율
+ * coordinateErrorLimit {Integer} 좌표 오차 범위
+ * processGerenalFormat {Integer}
+ * 1 = 텍스트
+ * 2 = 일반
+ * printingMagnification {Integer} 인쇄 확대/축소 비율
+ * fitToPageWhenPrinting {Boolean} 출력시 페이지 맞춤
+ * removeHyperlink {Boolean} 하이퍼링크 제거
+ * repeatPageSectionWhenAllSectionInOneSheet {Boolean} 페이지 머리글/바닥글 반복
+ *
+ * @method UserConfig
+ * @since version 1.0.0.18
+ */
+function getDefaultSaveExcelOption(){
+ var option = {
+ exportMethod : "1",
+ mergeCell : true,
+ mergeEmptyCell : false,
+ splitCellAtPageSize : true,
+ rightToLeft : false,
+ widthRate : 100,
+ heightRate : 100,
+ coordinateErrorLimit : 10,
+ processGerenalFormat : 1,
+ printingMagnification : 100,
+ fitToPageWhenPrinting : false,
+ removeHyperlink : false,
+ repeatPageSectionWhenAllSectionInOneSheet:false
+ };
+ return option;
+}
+
+
+/**
+ * 전체 리포트에 대한 Excel(xlsx) 저장 옵션 기본값을 설정합니다.
+ * @example
+ * exportMethod {Integer}
+ * 1 = 페이지 마다
+ * 2 = 하나의 시트
+ * 3 = 하나의 시트(페이지영역 무시)
+ * 4 = 리포트 마다(페이지영역 무시)
+ * 5 = 리포트 마다
+ * mergeCell {Boolean} 셀 합치기
+ * mergeEmptyCell {Boolean} 공백 셀일 경우 합치기
+ * splitCellAtPageSize {Boolean} 페이지 크기로 셀 분리
+ * rightToLeft {Boolean} 열이 오른쪽에서 왼쪽으로 진행
+ * widthRate {Integer} 가로 비율
+ * heightRate {Integer} 세로 비율
+ * coordinateErrorLimit {Integer} 좌표 오차 범위
+ * processGerenalFormat {Integer}
+ * 1 = 텍스트
+ * 2 = 일반
+ * printingMagnification {Integer} 인쇄 확대/축소 비율
+ * fitToPageWhenPrinting {Boolean} 출력시 페이지 맞춤
+ * removeHyperlink {Boolean} 하이퍼링크 제거
+ * repeatPageSectionWhenAllSectionInOneSheet {Boolean} 페이지 머리글/바닥글 반복
+ *
+ * @method UserConfig
+ * @since version 1.0.0.54
+ */
+function getDefaultSaveExcelxOption(){
+ var option = {
+ exportMethod : "1",
+ mergeCell : true,
+ mergeEmptyCell : false,
+ splitCellAtPageSize : true,
+ rightToLeft : false,
+ widthRate : 100,
+ heightRate : 100,
+ coordinateErrorLimit : 10,
+ processGerenalFormat : 1,
+ printingMagnification : 100,
+ fitToPageWhenPrinting : false,
+ removeHyperlink : false,
+ repeatPageSectionWhenAllSectionInOneSheet:false
+ };
+ return option;
+}
+
+/**
+ * 전체 리포트에 대한 HanCell 저장 옵션 기본값을 설정합니다.
+ * @example
+ * exportMethod {Integer}
+ * 1 = 페이지 마다
+ * 2 = 하나의 시트
+ * 3 = 하나의 시트(페이지영역 무시)
+ * 4 = 리포트 마다(페이지영역 무시)
+ * 5 = 리포트 마다
+ * mergeCell {Boolean} 셀 합치기
+ * mergeEmptyCell {Boolean} 공백 셀일 경우 합치기
+ * splitCellAtPageSize {Boolean} 페이지 크기로 셀 분리
+ * rightToLeft {Boolean} 열이 오른쪽에서 왼쪽으로 진행
+ * widthRate {Integer} 가로 비율
+ * heightRate {Integer} 세로 비율
+ * coordinateErrorLimit {Integer} 좌표 오차 범위
+ * processGerenalFormat {Integer}
+ * 1 = 텍스트
+ * 2 = 일반
+ * printingMagnification {Integer} 인쇄 확대/축소 비율
+ * fitToPageWhenPrinting {Boolean} 출력시 페이지 맞춤
+ * removeHyperlink {Boolean} 하이퍼링크 제거
+ * repeatPageSectionWhenAllSectionInOneSheet {Boolean} 페이지 머리글/바닥글 반복
+ *
+ * @method UserConfig
+ * @since version 1.0.0.18
+ *
+ */
+
+
+function getDefaultSaveHanCellOption(){
+ var option = {
+ exportMethod : "1",
+ mergeCell : true,
+ mergeEmptyCell : false,
+ splitCellAtPageSize : true,
+ rightToLeft : false,
+ widthRate : 100,
+ heightRate : 100,
+ coordinateErrorLimit : 10,
+ processGerenalFormat : 1,
+ printingMagnification : 100,
+ fitToPageWhenPrinting : false,
+ removeHyperlink : false,
+ repeatPageSectionWhenAllSectionInOneSheet:false
+ };
+ return option;
+}
+
+/**
+ * 전체 리포트에 대한 HWP 저장 옵션 기본값을 설정합니다.
+* @example
+* fixSize {Boolean} 크기 고정
+* allowOverlay {Boolean} 겹침 허용
+* setPageBottomMarginToZero {Boolean} 페이지 바닥 여백을 0으로 설정
+* outputLikeWord {Boolean} 글자처럼 출력
+* tableSplitMethod {Integer}
+* 1 = 나눔
+* 2 = 셀 단위로 나눔
+* 3 = 나누지 않음
+* defaultCharGap {Integer} 기본 자간
+* charRatio {Integer} 자평
+* putCheckboxIntoCell {Boolean} 셀 안에 체크박스 넣기(version 1.0.0.22)
+* splitTextByLine {Boolean} 텍스트를 라인별로 나눠서 표현(version 1.0.0.23)
+* mergeTable{Boolean} 이웃한 테이블과 병합할 것인지 여부(version 1.0.0.55)
+* lineSpaceRate{Integer} 줄간격 비율(version 1.0.0.58)
+* positionRelTo{Integer} 좌표 기준(version 1.0.0.63)
+* 1 = 종이
+* 2 = 문단
+* hwpExportMethod{Integer} 저장 방식(version 1.0.0.99)
+* 1 = 일반
+* 2 = 표만 나열하기
+* 표만 나열하기 옵션 사용 시[크기고정(false), 겸침 허용(false), 표 합치기(false), 페이지 바닥 여백 0로 설정(false),
+* 글자처럼(true), 테이블셀에 표 넣기(true), 페이지영역에서 표 나눔(셀 단위로 나눔) , 위치 기준(문단) 으로 고정]
+* splitPageOnListTableOnly{Boolean} “표만 나열하기” 시 페이지 나눔 (version 1.0.0.102)
+* pageBottomMarginApplicationRate {Integer} “페이지 바닥 여백을 0으로 설정” 이 false일때 사용가능하며 페이지 아래쪽 여백 적용비율(1~100) (version 1.0.0.107)
+
+* @method UserConfig
+* @since version 1.0.0.18
+*
+*/
+function getDefaultSaveHWPOption(){
+ var option = {
+ fixSize : true,
+ allowOverlay : true,
+ setPageBottomMarginToZero : true,
+ outputLikeWord : false,
+ tableSplitMethod : 2,
+ defaultCharGap : -8,
+ charRatio : 100,
+ putCheckboxIntoCell : true,
+ splitTextByLine : true,
+ mergeTable : false,
+ lineSpaceRate : 100,
+ positionRelTo : 1,
+ hwpExportMethod : 1,
+ splitPageOnListTableOnly : true,
+ pageBottomMarginApplicationRate : 100
+ };
+ return option;
+}
+
+/**
+ * 전체 리포트에 대한 RTF 저장 옵션 기본값을 설정합니다.
+ * @example
+ * splitTextLine {Boolean} 문자열을 여러 줄로 나누어 표현
+ * processAsUnicode {Boolean} 유니코드로 문자열을 처리
+ * processEqualAlign {Integer}
+ * 1 = 왼쪽 정렬
+ * 2 = 가운데 정렬
+ * 3 = 오른쪽 정렬
+ * 4 = 양쪽 정렬
+ * defaultCharSpace {Double} 기본 자간
+ * tableWrapperBottomGap {Integer} 표를 감싸는 객체의 아래쪽 여백
+ * insertTableWrapper {Boolean} 표를 감싸는 객체의 아래쪽 여백
+ * mergeTable {Boolean} 이웃한 테이블과 병합할 것인지 여부
+ * fitShapeToText {Boolean} 도형을 텍스트 크기에 맟춤
+ * TableRowHeightSort {Integer} 표의 행높이 설정
+ * 1 = 고정
+ * 2 = 최소(워드에서 표 셀의 글자를 넣으면 셀이 늘어남)
+ * @method UserConfig
+ * @since version 1.0.0.18
+ */
+function getDefaultSaveRTFOption(){
+ var option = {
+ splitTextLine : true,
+ processAsUnicode : true,
+ processEqualAlign : 4,
+ defaultCharSpace : -0.5,
+ tableWrapperBottomGap : 0,
+ insertTableWrapper : true,
+ mergeTable : false,
+ fitShapeToText : false,
+ TableRowHeightSort:1
+ };
+ return option;
+}
+
+/**
+ * 전체 리포트에 대한 DOC 저장 옵션 기본값을 설정합니다.
+ * @example
+ * splitTextLine {Boolean} 문자열을 여러 줄로 나누어 표현
+ * processAsUnicode {Boolean} 유니코드로 문자열을 처리
+ * processEqualAlign {Integer}
+ * 1 = 왼쪽 정렬
+ * 2 = 가운데 정렬
+ * 3 = 오른쪽 정렬
+ * 4 = 양쪽 정렬
+ * defaultCharSpace {Double} 기본 자간
+ * tableWrapperBottomGap {Integer} 표를 감싸는 객체의 아래쪽 여백
+ * insertTableWrapper {Boolean} 표를 감싸는 객체의 아래쪽 여백
+ * mergeTable {Boolean} 이웃한 테이블과 병합할 것인지 여부
+ * fitShapeToText {Boolean} 도형을 텍스트 크기에 맟춤
+ * TableRowHeightSort {Integer} 표의 행높이 설정
+ * 1 = 고정
+ * 2 = 최소(워드에서 표 셀의 글자를 넣으면 셀이 늘어남)
+ * @method UserConfig
+ * @since version 1.0.0.23
+ */
+function getDefaultSaveDOCOption(){
+ var option = {
+ splitTextLine : true,
+ processAsUnicode : true,
+ processEqualAlign : 4,
+ defaultCharSpace : -0.5,
+ tableWrapperBottomGap : 0,
+ insertTableWrapper : true,
+ mergeTable : false,
+ fitShapeToText : false,
+ TableRowHeightSort:1
+ };
+ return option;
+}
+
+/**
+ * 전체 리포트에 대한 HTML 저장 옵션 기본값을 설정합니다.
+ * @example
+ * processCellLikeShape {Boolean} 테이블 셀을 라벨처럼 저정
+ * displayPageLine {Boolean} 페이지 분리선 표시
+ * keepPageHeight {Boolean} 페이지 높이 유지
+ * applyWordBreak {Boolean} 글자 감싸기 적용
+ * setTextProperiesToEmptyCell {Boolean} 빈 셀에 택스트 속성 설정
+ * putTagIntoEmptyCell {Boolean} 빈 셀에 공백 삽입
+ * textOverflowHidden {Boolean} overflow=hidden 스타일 적용
+ * coordinateRateForX {Double} X축 비율
+ * coordinateRateForY {Double} Y축 비율
+ * encodingType {Integer} 인코딩
+ * 1 = UTF=8
+ * 2 = Unicode
+ * 3 = EUC-KR
+ *
+ * @method UserConfig
+ * @since version 1.0.0.18
+ */
+function getDefaultSaveHTMLOption(){
+ var option = {
+ processCellLikeShape : false,
+ displayPageLine : true,
+ keepPageHeight : true,
+ applyWordBreak : false,
+ setTextProperiesToEmptyCell : false,
+ putTagIntoEmptyCell : false,
+ textOverflowHidden : false,
+ coordinateRateForX : 2.6,
+ coordinateRateForY : 2.6,
+ encodingType : 1
+ };
+ return option;
+}
+
+/**
+ * 전체 리포트에 대한 PDF 저장 옵션 기본값을 설정합니다.
+ * @example
+ * isSplit {Boolean} 분할 저장 선택
+ * pageCount {Integer} 페이지 수
+ * userpw {String} 문서암호 (version 1.0.0.25)
+ * textToImage {Boolean} pdf에 문자를 이미지로 표현 (version 1.0.0.29)
+ * importOriginImage {Boolean} 원본 이미지 사용 (version 1.0.0.31)
+ * removeHyperlink {Boolean} 하이퍼 링크 제거 (version 1.0.0.141)
+ *
+ * @method UserConfig
+ * @since version 1.0.0.18
+ *
+ */
+function getDefaultSavePDFOption(){
+ var option = {
+ isSplite : false,
+ spliteValue : 1,
+ userpw : "",
+ textToImage : false,
+ importOriginImage : false,
+ removeHyperlink : false
+ };
+ return option;
+}
+
+
+/**
+ * 전체 리포트에 대한 html5 저장 옵션 기본값을 설정합니다.
+ * @example
+ * isSplite {Boolean} 페이지 구분
+ * dpiValue {Integer} DPI 값
+ *
+ * @method UserConfig
+ * @since version 1.0.0.22
+ *
+ */
+function getDefaultSaveHTML5Option(){
+ var option = {
+ isSplite : true,
+ dpiValue : 96
+ };
+ return option;
+}
+
+/**
+ * 전체 리포트에 대한 JPG 저장 옵션 기본값을 설정합니다.
+ * @example
+ * rotate90 {Boolean} 90도 회전
+ * dpiX {Integer} DPI X
+ * dpiY {Integer} DPI X
+ * quality {Integer} 품질
+ *
+ * @method UserConfig
+ * @since version 1.0.0.60
+ *
+ */
+function getDefaultSaveJPGOption(){
+ var option = {
+ rotate90 : false,
+ dpiX : 96,
+ dpiY : 96,
+ quality : 100
+ };
+ return option;
+}
+
+
+/**
+ * 전체 리포트에 대한 TIF 저장 옵션 기본값을 설정합니다.
+ * @example
+ * rotate90 {Boolean} 90도 회전
+ * dpiX {Integer} DPI X
+ * dpiY {Integer} DPI X
+ * blackWhite {Boolean} blackWhite
+ * gray {Boolean} gray(version 1.0.0.140)
+ *
+ * @method UserConfig
+ * @since version 1.0.0.128
+ *
+ */
+function getDefaultSaveTIFOption(){
+ var option = {
+ rotate90 : false,
+ blackWhite : true,
+ gray : false,
+ dpiX : 96,
+ dpiY : 96
+ };
+ return option;
+}
+
+/**
+ * 전체 리포트에 대한 Multi TIF 저장 옵션 기본값을 설정합니다.
+ * @example
+ * rotate90 {Boolean} 90도 회전
+ * dpiX {Integer} DPI X
+ * dpiY {Integer} DPI X
+ * blackWhite {Boolean} blackWhite
+ * gray {Boolean} gray(version 1.0.0.140)
+ *
+ * @method UserConfig
+ * @since version 1.0.0.130
+ *
+ */
+function getDefaultSaveMultiTIFOption(){
+ var option = {
+ rotate90 : false,
+ blackWhite : true,
+ gray : false,
+ dpiX : 96,
+ dpiY : 96
+ };
+ return option;
+}
+
+
+/**
+ * 전체 리포트에 대한 EXCEL DATA 저장 옵션 기본값을 설정합니다.
+ * @example
+ outputPageSectionMethod {Integer} 페이지 머리글/바닥글 반복
+ * 0 = 저장안함
+ * 1 = 한번만
+ * 2 = 페이지 마다
+ *
+ * @method UserConfig
+ * @since version 1.0.0.140
+ *
+ */
+function getDefaultSaveEXCELDATAOption(){
+ var option = {
+ outputPageSectionMethod : 0
+ };
+ return option;
+}
+/**
+ * 전체 리포트에 대한 PPT 저장 옵션 기본값을 설정합니다.
+ * @example
+ * mergeTable {Boolean} 이웃한 표 병합
+ * ignoreLineSpace {Boolean} 행간 무시
+ * removeHyperlink {Boolean} 하이퍼 링크 제거(ver 1.0.0.141)
+ *
+ * @method UserConfig
+ * @since version 1.0.0.63
+ *
+ */
+function getDefaultSavePPTOption(){
+ var option = {
+ mergeTable : false,
+ ignoreLineSpace : true,
+ removeHyperlink : false
+ };
+ return option;
+}
+
+/**
+ * 빠른 PDF 저장 대한 옵션 기본값을 설정합니다.
+ * @example
+ * fileName{String} 문서를 저장 할 파일 이름
+ * isSplit {Boolean} 분할 저장 선택
+ * pageCount {Integer} 페이지 수
+ * userpw {String} 문서암호 (version 1.0.0.25)
+ * textToImage {Boolean} pdf에 문자를 이미지로 표현 (version 1.0.0.29)
+ * importOriginImage {Boolean} 원본 이미지 사용 (version 1.0.0.31)
+ * removeHyperlink {Boolean} 하이퍼 링크 제거 (version 1.0.0.141)
+ *
+ * @method UserConfig
+ * @since version 1.0.0.20
+ *
+ */
+function getDirectSavePDFOption(){
+ var option = {
+ fileName : "report",
+ isSplite : false,
+ spliteValue : 1,
+ userpw : "",
+ textToImage : false,
+ importOriginImage : false,
+ removeHyperlink : false
+ };
+ return option;
+}
+
+/**
+ * 빠른 HWP 저장 대한 옵션 기본값을 설정합니다.
+* @example
+* fileName{String} 문서를 저장 할 파일 이름
+* fixSize {Boolean} 크기 고정
+* allowOverlay {Boolean} 겹침 허용
+* setPageBottomMarginToZero {Boolean} 페이지 바닥 여백을 0으로 설정
+* outputLikeWord {Boolean} 글자처럼 출력
+* tableSplitMethod {Integer}
+* 1 = 나눔
+* 2 = 셀 단위로 나눔
+* 3 = 나누지 않음
+* defaultCharGap {Integer} 기본 자간
+* charRatio {Integer} 자평
+* putCheckboxIntoCell {Boolean} 셀 안에 체크박스 넣기(version 1.0.0.22)
+* splitTextByLine {Boolean} 텍스트를 라인별로 나눠서 표현(version 1.0.0.23)
+* mergeTable{Boolean} 이웃한 테이블과 병합할 것인지 여부(version 1.0.0.55)
+* lineSpaceRate{Integer} 줄간격 비율(version 1.0.0.58)
+* positionRelTo{Integer} 좌표 기준(version 1.0.0.63)
+* 1 = 종이
+* 2 = 문단
+* hwpExportMethod{Integer} 저장 방식(version 1.0.0.99)
+* 1 = 일반
+* 2 = 표만 나열하기
+* 표만 나열하기 옵션 사용 시[크기고정(false), 겸침 허용(false), 표 합치기(false), 페이지 바닥 여백 0로 설정(false),
+* 글자처럼(true), 테이블셀에 표 넣기(true), 페이지영역에서 표 나눔(셀 단위로 나눔) , 위치 기준(문단) 으로 고정]
+* splitPageOnListTableOnly{Boolean} “표만 나열하기” 시 페이지 나눔 (version 1.0.0.102)
+* pageBottomMarginApplicationRate {Integer} “페이지 바닥 여백을 0으로 설정” 이 false일때 사용가능하며 페이지 아래쪽 여백 적용비율(1~100) (version 1.0.0.107)
+
+* @method UserConfig
+* @since version 1.0.0.20
+*
+*/
+function getDirectSaveHWPOption(){
+ var option = {
+ fileName : "report",
+ fixSize : true,
+ allowOverlay : true,
+ setPageBottomMarginToZero : true,
+ outputLikeWord : false,
+ tableSplitMethod : 2,
+ defaultCharGap : -8,
+ charRatio : 100,
+ putCheckboxIntoCell : true,
+ splitTextByLine : true,
+ mergeTable : false,
+ lineSpaceRate : 100,
+ positionRelTo : 1,
+ hwpExportMethod : 1,
+ splitPageOnListTableOnly : true,
+ pageBottomMarginApplicationRate : 100
+ };
+ return option;
+}
+
+/**
+ * 빠른 EXCEL 저장 대한 옵션 기본값을 설정합니다.
+ * @example
+ * fileName{String} 문서를 저장 할 파일 이름
+ * exportMethod {Integer}
+ * 1 = 페이지 마다
+ * 2 = 하나의 시트
+ * 3 = 하나의 시트(페이지영역 무시)
+ * 4 = 리포트 마다(페이지영역 무시)
+ * 5 = 리포트 마다
+ * mergeCell {Boolean} 셀 합치기
+ * mergeEmptyCell {Boolean} 공백 셀일 경우 합치기
+ * splitCellAtPageSize {Boolean} 페이지 크기로 셀 분리
+ * rightToLeft {Boolean} 열이 오른쪽에서 왼쪽으로 진행
+ * widthRate {Integer} 가로 비율
+ * heightRate {Integer} 세로 비율
+ * coordinateErrorLimit {Integer} 좌표 오차 범위
+ * processGerenalFormat {Integer}
+ * 1 = 텍스트
+ * 2 = 일반
+ * printingMagnification {Integer} 인쇄 확대/축소 비율
+ * removeHyperlink {Boolean} 하이퍼링크 제거
+ * repeatPageSectionWhenAllSectionInOneSheet {Boolean} 페이지 머리글/바닥글 반복
+ *
+ * @method UserConfig
+ * @since version 1.0.0.20
+ *
+ */
+function getDirectSaveEXCELOption(){
+ var option = {
+ fileName : "report",
+ exportMethod : "1",
+ mergeCell : true,
+ mergeEmptyCell : false,
+ splitCellAtPageSize : true,
+ rightToLeft : false,
+ widthRate : 100,
+ heightRate : 100,
+ coordinateErrorLimit : 10,
+ processGerenalFormat : 1,
+ printingMagnification : 100,
+ fitToPageWhenPrinting : false,
+ removeHyperlink : false,
+ repeatPageSectionWhenAllSectionInOneSheet : false
+ };
+ return option;
+}
+
+/**
+ * 빠른 DOC 저장 대한 옵션 기본값을 설정합니다.
+ * @example
+ * fileName{String} 문서를 저장 할 파일 이름
+ * splitTextLine {Boolean} 문자열을 여러 줄로 나누어 표현
+ * processAsUnicode {Boolean} 유니코드로 문자열을 처리
+ * processEqualAlign {Integer}
+ * 1 = 왼쪽 정렬
+ * 2 = 가운데 정렬
+ * 3 = 오른쪽 정렬
+ * 4 = 양쪽 정렬
+ * defaultCharSpace {Double} 기본 자간
+ * tableWrapperBottomGap {Integer} 표를 감싸는 객체의 아래쪽 여백
+ * insertTableWrapper {Boolean} 테이블을 감싸는 객체를 삽입할 것인지 여부
+ * mergeTable {Boolean} 이웃한 테이블과 병합할 것인지 여부
+* @method UserConfig
+* @since version 1.0.0.62
+*
+*/
+function getDirectSaveDOCOption(){
+ var option = {
+ fileName : "report",
+ type : "doc",
+ splitTextLine : true,
+ processAsUnicode : true,
+ processEqualAlign : 4,
+ defaultCharSpace : -0.5,
+ tableWrapperBottomGap : 0,
+ insertTableWrapper : true,
+ mergeTable : false
+ };
+ return option;
+}
+
+/**
+ * 리포트서버와의 통신으로 리포트상태를 체크하는 함수
+ * @example 리포트 키를 사용하여 리포트서버에 리포트 생성 진행 상태를 체크합니다.
+ * var report_status = ReportStatus('http://localhost:8080/ClipReport4/Clip.jsp', '49368ee12e5a4ca9b35f315994c81bd2');
+ *if(report_status.status) // 리포트 생성중에 상태값 (true :정상적으로 생성중, false: 리포트생성중 오류)
+ *{
+ * if(report_status.endReport) //리포트 생성이 완료되었는지에 대한 상태값
+ * {
+ * alert('리포트 생성이 완료되었습니다');
+ * }
+ *}
+ *
+ * @param clipServerPath 리포트서버와 연결하는 주소 ex)http://localhost:8080/ClipReport4/Clip.jsp
+ * @param reportKey 리포트에서 사용하는 리포트 키 ex)49368ee12e5a4ca9b35f315994c81bd2
+ * @returns json object
+ * @since version 1.0.0.78
+ */
+function ReportStatus(clipServerPath, reportKey){
+ var s_time = new Date().getTime();
+ var sendData = "ClipID=R03&uid=" + reportKey + "clipUID=" + reportKey + "&s_time=" + s_time;
+ sendData = mRe_onBeforeSend(sendData);
+ var objHttpClient = new HttpClient();
+ try{
+ var resultText = objHttpClient.send(clipServerPath, sendData, false, null);
+ resultText = mRe_onAfterSend(resultText);
+
+ var data = objectCall(ClipStrTrim(resultText));
+ if(typeof data == "string"){
+ data = objectCall(data);
+ }
+ return data;
+ }catch(e){
+ ReportWebLog(e);
+ return {status:false, endReport:false};
+ }
+}
+
+/**
+ * EForm 팔레트의 기본색상을 설정합니다.
+* @method UserConfig
+* @since version 1.0.0.72
+*
+*/
+function getPalletColor(index){
+ switch(index){
+ case 0:return "RGB(237, 68, 61)";break;
+ case 1:return "RGB(247, 176, 52)";break;
+ case 2:return "RGB(252, 227, 72)";break;
+ case 3:return "RGB(120, 230, 107)";break;
+ case 4:return "RGB(92, 26, 124)";break;
+ case 5:return "RGB(0, 0, 0)";break;
+ case 6:return "RGB(184, 184, 186)";break;
+ case 7:return "RGB(230, 230, 230)";break;
+ case 8:return "RGB(31, 144, 250)";break;
+ case 9:return "RGB(111, 222, 252)";break;
+ default:break;
+ }
+}
+
+/**
+ * EForm 팔레트의 기본두께(px)을 설정합니다.
+* @method UserConfig
+* @since version 1.0.0.72
+*
+*/
+function getPalletPenWidth(index){
+ switch(index){
+ case 0:return 4;break;
+ case 1:return 8;break;
+ case 2:return 12;break;
+ case 3:return 16;break;
+ case 4:return 24;break;
+ default:break;
+ }
+}
+
+/**
+ * EForm 팔레트의 기본투명도(0~1)을 설정합니다.
+* @method UserConfig
+* @since version 1.0.0.72
+*
+*/
+function getPalletOpacity(index){
+ switch(index){
+ case 0:return 0.1;break;
+ case 1:return 0.2;break;
+ case 2:return 0.3;break;
+ case 3:return 0.5;break;
+ case 4:return 1;break;
+ default:break;
+ }
+}
+
+/**
+ * text에 관하여 서버로 데이터를 전송이 일어나기전에 호출하는 함수입니다.
+ * 서버로 text/html 통신이 일어나기전에 아래 선언된 함수를 거쳐서 통신합니다.
+ *
+ * @param strData {String} 서버로 전송할 데이터
+ * @returns
+ * @since version 1.0.0.72
+ */
+function onBeforeSend (strData){
+ //strData ="report_param=" + Base64.encode(strData);
+ //ReportWebLog("sendData:" + strData);
+ return strData;
+}
+
+
+/**
+ * text에 관하여 서버에서 내려온 데이터를 뷰어에 적용하기전에 호출하는 함수입니다.
+ * 서버에서 text/html 형태의 데이터가 내려왔을 때 뷰어에 데이터를 적용하기 전에 함수를 거쳐서 적용합니다.
+ *
+ * @param strData {String} 서버에서 받은 데이터
+ * @returns
+ * @since version 1.0.0.72
+ */
+function onAfterSend (strData){
+ //strData = Base64.decode(strData);
+ //ReportWebLog("afterData:" + strData);
+ return strData;
+}
+
+function onSaveBeforeSend(report, strData, printType){
+ return true;
+
+// if("pdf" == printType){ //R08
+// report.mRe_printView_demon();
+// }
+// else if("mobile_pdf" == printType){ //R09
+// report.mRe_mobilePDF_demon();
+// }
+// else if("save" == printType){//R09
+// report.mRe_saveFile_demon();
+// }
+//
+// return false;
+}
+
+
+
+/**
+ * 기본적인 리포트서버와의 통신 대신 다른 통신 모듈을 연결 할 수 있도록 지원하는 함수입니다
+ * 이폼 뷰어에서만 사용가능하며 서버에서의 나온 결과를 리포트 객체의 eformReceiveData 함수로 받아서 사용합니다.
+ * 서버에 연결 jsp는 소스코드의 주석된 부분을 참고하시면 됩니다.
+ *
+ *
+ *
+ * @param eform {Obeject} 리포트&이폼 객체
+ * @param jsonData {Obejct} 서버 보내는 json 데이터
+ * @returns
+ * @since version 1.0.0.121
+ */
+function onBrokenSendData(eform, jsonData){
+ //기존 통신 사용 여부 (true:사용, false:사용안함)
+ return true;
+
+//서버와 통신할 데이터 (json 데이터를 문자열 변환 및 URI 인코딩)
+// var strData = "ClipData=" + encodeURIComponent(JSON.stringify(jsonData));
+//
+// $.ajax({
+// type : "POST",
+// url : "./ClipReport/eform_server.jsp",
+// data : strData,
+// success : function(strResult) {
+// if (null != strResult) {
+// //통신에 대한 콜백 함수
+// eform.eformReceiveData(strResult);
+// }
+// },
+// error : function(strErr) {
+// alert("error : " + strErr);
+// }
+// });
+// return false;
+}
\ No newline at end of file
diff --git a/ClipReport4/ClipReport4/js/_clipreport.js b/ClipReport4/ClipReport4/js/_clipreport.js
new file mode 100644
index 0000000..bb2479c
--- /dev/null
+++ b/ClipReport4/ClipReport4/js/_clipreport.js
@@ -0,0 +1,21237 @@
+var report_version = "1.0.0.144";
+var exe_print_version = "1.0.0.1";
+var agt = navigator.userAgent.toLowerCase();
+var view_domain = document.domain;
+is_major = parseInt(navigator.appVersion);
+is_minor = parseFloat(navigator.appVersion);
+is_moz = ((agt.indexOf("mozilla") != -1) && (agt.indexOf("spoofer") == -1) && (agt.indexOf("compatible") == -1) && (agt.indexOf("opera") == -1) && (agt.indexOf("webtv") == -1) && (agt.indexOf("hotjava") == -1));
+is_moz2 = (is_moz && (is_major == 2));
+is_moz3 = (is_moz && (is_major == 3));
+is_moz4 = (is_moz && (is_major == 4));
+is_gecko = (agt.indexOf("gecko") != -1);
+is_firefox = (agt.indexOf("firefox") != -1);
+is_nav2 = is_moz2;
+is_nav3 = is_moz3;
+is_nav4 = is_moz4;
+is_nav4up = (is_nav4 || ((is_major >= 4) && (agt.indexOf("netscape") != -1)));
+is_nav = (is_nav2 || is_nav3 || is_nav4);
+is_mozilla = (is_moz && is_gecko);
+is_mozilla1 = (is_moz && is_gecko && (agt.indexOf("rv:1") != -1));
+is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
+is_ieVersion = 0;
+is_ie6 = (is_ie && (is_major == 4) && (agt.indexOf("msie 6.") != -1));
+if (is_ie6) {
+ is_ieVersion = 6;
+}
+is_ie7 = (is_ie && (is_major == 4) && (agt.indexOf("msie 7.") != -1));
+if (is_ie7) {
+ is_ie6 = false;
+ is_ieVersion = 7;
+}
+is_ie8 = (is_ie && (is_major == 4) && (agt.indexOf("msie 8.") != -1));
+if (is_ie8) {
+ is_ie6 = false;
+ is_ie7 = false;
+ is_ieVersion = 8;
+}
+is_ie9 = (is_ie && (is_major == 5) && (agt.indexOf("msie 9.") != -1));
+if (is_ie9) {
+ is_ie6 = false;
+ is_ie7 = false;
+ is_ie8 = false;
+ is_ieVersion = 9;
+}
+is_ie10 = (is_ie && (is_major == 5) && (agt.indexOf("msie 10.") != -1));
+if (is_ie10) {
+ is_ie6 = false;
+ is_ie7 = false;
+ is_ie8 = false;
+ is_ie9 = false;
+ is_ieVersion = 10;
+}
+is_ie11 = (is_gecko && !is_firefox && (is_major == 5) && (agt.indexOf("rv:11.") != -1));
+if (is_ie11) {
+ is_ie6 = false;
+ is_ie7 = false;
+ is_ie8 = false;
+ is_ie9 = false;
+ is_ie10 = false;
+ is_ie = true;
+ is_ieVersion = 11;
+}
+is_window = (agt.indexOf("windows") != -1);
+is_chrome = !is_ie && (agt.indexOf("chrome") != -1) ? true : false;
+is_chrome58 = false;
+if (is_chrome) {
+ var tempVer = agt.match(/chrome\/([0-9]+)\./g);
+ if (null != tempVer) {
+ if (Number(tempVer[0].substring(7)) > 57) {
+ is_chrome58 = true;
+ }
+ }
+}
+is_edge = is_chrome && (agt.indexOf("edge") != -1);
+is_opera = is_chrome && (agt.indexOf("opr/") != -1);
+is_safari = (agt.indexOf("safari") != -1 && !is_chrome);
+is_window_safari = (is_safari && agt.indexOf("windows") != -1);
+is_crOs = is_chrome && (agt.indexOf("csos") != -1);
+is_chromeFrame = !is_ie && is_chrome;
+is_webkit = is_safari || is_chrome;
+is_mozBrowser = is_firefox || is_opera;
+is_ipad = ((is_safari || is_moz || (agt.indexOf("applewebkit") != -1)) && (agt.indexOf("ipad") != -1));
+is_iphone = ((is_safari || is_moz || (agt.indexOf("applewebkit") != -1)) && (agt.indexOf("iphone") != -1));
+is_apple = (is_ipad || is_iphone);
+is_android = (agt.indexOf("android") != -1);
+is_opera_mini = (agt.indexOf("opera mini") != -1);
+is_android_mobile = (is_android && agt.indexOf("mobile") != -1);
+is_android_tablet = (is_android && !is_android_mobile);
+is_android_mobile44 = (is_android_mobile && agt.indexOf("android 4.") != -1);
+is_samsung_browser = (is_android && (agt.indexOf("samsungbrowser") != -1));
+is_mobile = (is_iphone || is_android_mobile);
+is_tablet = (is_ipad || is_android_tablet);
+is_smartphone = false;
+is_smartphone = (is_iphone || is_opera_mini || is_ipad || is_android);
+is_svg = true;
+if (typeof window.SVGAElement == "undefined") {
+ is_svg = false;
+ if (!is_ie6 && !is_ie7 && !is_ie8) {
+ is_ie7 = true;
+ }
+ is_ie = true;
+ is_ie9 = false;
+ is_ie10 = false;
+ is_ie11 = false;
+ is_ieVersion = 7;
+} else {
+ if (is_ie7 || is_ie8) {
+ is_svg = false;
+ }
+}
+var Re_zoom = {
+ isPop: false,
+ rate: 1
+};
+var mRe_pallet = null;
+is_PosiFix = true;
+var getAcrobatInfo = function() {
+ var e = function(f) {
+ try {
+ return new ActiveXObject(f);
+ } catch (g) {
+ window.mRe_ccancels = g.message;
+ }
+ };
+ var b = function(f) {
+ for (key in navigator.plugins) {
+ var g = navigator.plugins[key];
+ if (g.name == f) {
+ return g;
+ }
+ }
+ };
+ var c = function() {
+ return this.plugin = this.plugin || function() {
+ if (is_ie || is_ie11) {
+ return e("AcroPDF.PDF") || e("PDF.PdfCtrl");
+ } else {
+ return b("Chromium PDF Viewer") || b("Chrome PDF Viewer") || b("Adobe Acrobat") || b("WebKit built-in PDF");
+ }
+ }();
+ };
+ var d = function() {
+ return !!c();
+ };
+ var a = function() {
+ try {
+ var h = c();
+ if (is_ie || is_ie11) {
+ var f = h.GetVersions().split(",");
+ var g = f[0].split("=");
+ return parseFloat(g[1]);
+ }
+ if (h.version) {
+ return parseInt(h.version);
+ }
+ return h.name;
+ } catch (i) {
+ return null;
+ }
+ };
+ return {
+ acrobat: d() ? true : false,
+ acrobatVersion: a()
+ };
+};
+m_report_printOption = getAcrobatInfo();
+is_win78_reader9 = (((agt.indexOf("windows nt 6.1") != -1) || (agt.indexOf("windows nt 6.2") != -1) || (agt.indexOf("windows nt 10.") != -1)) && (null != m_report_printOption.acrobatVersion) && (m_report_printOption.acrobatVersion < 10));
+is_reader8 = (null != m_report_printOption.acrobatVersion) && (m_report_printOption.acrobatVersion < 9);
+is_winxp_reader10 = ((is_ie6 || is_ie7 || is_ie8) && (null != m_report_printOption.acrobatVersion) && (m_report_printOption.acrobatVersion < 11 && m_report_printOption.acrobatVersion > 9));
+
+function HttpClient() {
+ try {
+ var b = new XMLHttpRequest();
+ if (null != b) {
+ this.m_objHttpRequest = b;
+ }
+ } catch (a) {
+ try {
+ var b = new ActiveXObject("Msxml2.XMLHTTP");
+ if (null != b) {
+ this.m_objHttpRequest = b;
+ }
+ } catch (a) {
+ try {
+ var b = new ActiveXObject("Microsoft.XMLHTTP");
+ if (null != b) {
+ this.m_objHttpRequest = b;
+ }
+ } catch (a) {
+ mRe_ReportWebLog("HttpRequest not supported");
+ }
+ }
+ }
+}
+HttpClient.prototype.send = function(e, b, c, d) {
+ if (c) {
+ this.m_objHttpRequest.onreadystatechange = d;
+ } else {
+ this.m_objHttpRequest.onreadystatechange = null;
+ }
+ var a = "";
+ if (-1 != e.indexOf("?")) {
+ a = e + "&" + b;
+ this.m_objHttpRequest.open("GET", a, c);
+ this.m_objHttpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
+ this.m_objHttpRequest.send();
+ } else {
+ this.m_objHttpRequest.open("POST", e, c);
+ this.m_objHttpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
+ this.m_objHttpRequest.send(b);
+ }
+ if (!c) {
+ if (4 == this.m_objHttpRequest.readyState) {
+ if (200 == this.m_objHttpRequest.status) {
+ return this.m_objHttpRequest.responseText;
+ } else {
+ mRe_ReportWebLog(this.m_objHttpRequest.status);
+ }
+ }
+ return this._handleSyncHttpResponse();
+ }
+};
+if (window.addEventListener) {
+ addEventListener("message", receiveMessage, false);
+} else {
+ attachEvent("onmessage", receiveMessage);
+}
+var m_reportHashMap = function() {};
+
+function createReport(b, c, d) {
+ if (null == d) {
+ mRe_ReportEventHandler(20);
+ }
+ var a = new Report(b, null, null, c, d);
+ return a;
+}
+
+function createJSPReport(c, d, b, e) {
+ if (null == e) {
+ mRe_ReportEventHandler(20);
+ }
+ var a = new Report(c, d, b, null, e);
+ return a;
+}
+
+function createImportJSPReport(b, d, c) {
+ if (null == c) {
+ mRe_ReportEventHandler(20);
+ }
+ var a = new Report(b, null, null, null, c);
+ a.m_reportKey = d;
+ return a;
+}
+
+function Report(d, f, b, e, g) {
+ this.servletPath = d;
+ this.beforePageIndex = 0;
+ this.checkCountLoop = null;
+ this.oof = e;
+ this.userJsp = f;
+ this.postData = b;
+ this.m_reportKey = null;
+ this.targetDiv = g;
+ this.input = null;
+ this.paintDiv = null;
+ this.signPaintDiv = null;
+ this.m_tempPaintDiv = null;
+ this.menuDiv = null;
+ this.totalCountSpan = null;
+ this.totalCountText = null;
+ this.progressImg = null;
+ this.zoomCombo = null;
+ this.next_button = null;
+ this.prev_button = null;
+ this.first_button = null;
+ this.last_button = null;
+ this.save_button = null;
+ this.print_button = null;
+ this.pdf_button = null;
+ this.hwp_button = null;
+ this.doc_button = null;
+ this.excel_button = null;
+ this.reportInfo_button = null;
+ this.close_button = null;
+ this.hwp_object = null;
+ this.doodleDiv = null;
+ this.doodle_button = null;
+ this.m_uid = null;
+ this.m_pageCount = 0;
+ this.m_isEndReport = false;
+ this.m_isEndReportEvent = true;
+ this.pageWidth = null;
+ this.pageHeight = null;
+ this.m_language = 0;
+ this.m_languageMap = null;
+ this.fileDownLoding = false;
+ this.formTag = null;
+ this.formTag_clipid = null;
+ this.formTag_uid = null;
+ this.formTag_print = null;
+ this.formTag_path = null;
+ this.formTag_option = null;
+ this.formTag_ChromeFitToPage = null;
+ this.formTag_s_time = null;
+ this.fileDownloadCheckTimer = null;
+ this.saveFormTag = {
+ form: null,
+ clipid: null,
+ uid: null,
+ option: null
+ };
+ this.deleteImgTag = null;
+ this.m_isMenu = true;
+ this.m_isBigData = false;
+ this.m_isMemoryDump = false;
+ this.m_isEncode = false;
+ this.m_isCrossDomain = false;
+ this.m_isFadeView = false;
+ this.m_isSlidePage = false;
+ this.m_isButtonLock = false;
+ this.m_printDisplay = {
+ pdf: true,
+ html: true,
+ hwp: true,
+ exe: false
+ };
+ this.m_isHWPPrint = false;
+ this.m_DPI = 96;
+ this.m_ratio = "100%";
+ this.m_directPrint = false;
+ this.m_directPrintOp = {
+ endReport: false,
+ key: null
+ };
+ this.m_pageCountTime = 700;
+ this.m_isCloseFunction = null;
+ this.m_isReportEndFunction = null;
+ this.m_progress = {
+ URL: "",
+ x: 0,
+ y: 0
+ };
+ this.m_printprogress = {
+ URL: "",
+ x: 0,
+ y: 0,
+ domDiv: null
+ };
+ this.m_hwpprogress = {
+ URL: "",
+ x: 0,
+ y: 0,
+ domDiv: null
+ };
+ this.m_excelprogress = {
+ URL: "",
+ x: 0,
+ y: 0,
+ domDiv: null
+ };
+ this.m_saveprogress = {
+ URL: "",
+ x: 0,
+ y: 0,
+ domDiv: null
+ };
+ this.m_endreportprogress = {
+ is_visible: false,
+ URL: "",
+ x: 0,
+ y: 0,
+ domDiv: null
+ };
+ this.m_endPrintProgressEvent = null;
+ this.saveOptionVisible = {
+ excel: true,
+ excelx: true,
+ pdf: true,
+ hwp: true,
+ rtf: true,
+ ppt: true,
+ html: false,
+ hancell: true,
+ html5: true,
+ doc: true,
+ jpg: false,
+ txt: false,
+ tif: false,
+ multiTif: false,
+ excelData: false
+ };
+ this.adobe9Permission = false;
+ this.adobeMessage = {
+ is_message: false,
+ message: ""
+ };
+ this.defaultSaveOption = typeof window.getDefaultSaveOption != "undefined" ? getDefaultSaveOption() : "excel";
+ this.m_defaultSaveExcelOp = null;
+ this.m_defaultSaveExcelxOp = null;
+ this.m_defaultSavePDFOp = null;
+ this.m_defaultSaveHWPOp = null;
+ this.m_defaultSaveRTFOp = null;
+ this.m_defaultSavePPTOp = null;
+ this.m_defaultSaveHTMLOp = null;
+ this.m_defaultSaveHanCellOp = null;
+ this.m_defaultSaveHTML5Op = null;
+ this.m_defaultSaveDOCOp = null;
+ this.m_defaultSaveJPGOp = null;
+ this.m_defaultSaveTIFOp = null;
+ this.m_defaultSaveMultiTIFOp = null;
+ this.m_defaultSaveExcelDataOp = null;
+ this.m_saveDirectPDFOp = null;
+ this.m_saveDirectHWPOp = null;
+ this.m_saveDirectDOCOp = null;
+ this.m_saveDirectExcelOp = null;
+ this.printOptionValue = {
+ isNetPrint: false,
+ localStorage: mRe_getLocalStorage("mRe_print_report"),
+ pageCount: 1,
+ startNum: 0,
+ endNum: 0,
+ netPrintList: []
+ };
+ this.splitPDFFileNames = null;
+ var c = location.pathname.lastIndexOf("/");
+ var a = "/";
+ if (0 != c) {
+ a = location.pathname.substring(0, c);
+ }
+ this.clientPath = a;
+ this.m_versionInfo = null;
+ this.m_webViewVersionInfo = null;
+ this.m_reportInfo_view = null;
+ this.m_saveInfo_view = null;
+ this.m_printInfo_view = null;
+ this.m_popupViewDiv = null;
+ this.m_limitedPrint = null;
+ this.m_isAccessibility = false;
+ this.m_fileDownLoadServerCheck = true;
+ this.m_buttonEvent = {
+ startSaveButton: null,
+ startPDFButton: null,
+ startExcelButton: null,
+ startHWPButton: null,
+ startDOCButton: null,
+ startPrintButton: null,
+ startCloseButton: null,
+ startFirstButton: null,
+ startPrevButton: null,
+ startNextButton: null,
+ startLastButton: null,
+ startZoomInSelect: null,
+ startPageCountLabel: null,
+ endSaveButton: null,
+ endPDFButton: null,
+ endExcelButton: null,
+ endHWPButton: null,
+ endDOCButton: null,
+ printOkButton: null,
+ printCancelButton: null,
+ closeDoodleButton: null,
+ PDFPrintAlertCloseButton: null
+ };
+ this.m_pageMoveEvent = {
+ start: null,
+ end: null
+ };
+ this.m_exePrintEvent = {
+ ok: null,
+ cancel: null
+ };
+ this.m_disControl = {
+ save: false,
+ prev: false,
+ next: false,
+ first: false,
+ last: false,
+ print: false,
+ close: false,
+ pdf: false,
+ hwp: false,
+ excel: false,
+ reportInfo: false,
+ zoomIn: false,
+ input: false,
+ caption: false,
+ doodle: false
+ };
+ this.m_strFileName = "report";
+ this.m_strAppendFileName = "";
+ this.m_isPaintImage = false;
+ this.m_isUseOriginImage = false;
+ this.m_pdfLink = null;
+ this.m_exeLink = null;
+ this.isPDFPrintImage = false;
+ this.m_printPage = {
+ pageWidth: 2100,
+ pageHeight: 2970
+ };
+ this.isChromePrintFitToPage = false;
+ this.isEnabledAdobeRead = true;
+ this.m_isMarkAny = false;
+ this.m_isRedBC = false;
+ this.m_isChartToImage = false;
+ this.pESaveButtonVisible = true;
+ this.m_isPrintPop = false;
+ this.m_firefoxPrint = {
+ isPopup: true,
+ width: 750,
+ height: 600
+ };
+ this.m_mobile = {
+ scrollTop: true
+ };
+ this.m_pcView = {
+ scrollTop: true
+ };
+ this.m_scrollEv = {
+ isScrollPaging: false,
+ isBottomEvent: null
+ };
+ this.m_drilingTop = null;
+ this.m_comboNames = {
+ num50: {
+ name: "50%",
+ visible: true
+ },
+ num75: {
+ name: "75%",
+ visible: true
+ },
+ num100: {
+ name: "100%",
+ visible: true
+ },
+ num125: {
+ name: "125%",
+ visible: true
+ },
+ num150: {
+ name: "150%",
+ visible: true
+ },
+ num200: {
+ name: "200%",
+ visible: true
+ },
+ num300: {
+ name: "300%",
+ visible: true
+ },
+ num400: {
+ name: "400%",
+ visible: true
+ },
+ pagewidth: {
+ name: "PageWidth",
+ visible: true
+ },
+ wholepage: {
+ name: "WholePage",
+ visible: true
+ }
+ };
+ this.m_signOption = {
+ offsetLeft: 0,
+ offsetTop: 0,
+ staticPos: false,
+ staticLeft: null,
+ staticTop: null
+ };
+ this.m_necessaryCheck = false;
+ this.m_debug = {
+ isDebug: false,
+ isConsole: false,
+ isLock: false,
+ message: null
+ };
+ this.m_editOp = true;
+ this.is_eForm = false;
+ this.is_eFormData = false;
+ this.eForm_isNecessary = {
+ pageList: null,
+ check: false,
+ is_start: false
+ };
+ this.eFormData = null;
+ this.eFormCheckImage = null;
+ this.eFormRadioImage = null;
+ this.eFormControlList = null;
+ this.eFormControlGroupList = null;
+ this.eFormDoodleOption = {
+ is_Ds: false,
+ is_eraser: false,
+ is_eraser_down: false,
+ is_move: false,
+ zoomIn: 1,
+ tos: null,
+ path: null,
+ pathArray: null,
+ gesture: {
+ isStart: false,
+ pos: null,
+ zoom: 1,
+ line: 0,
+ zoomUp: 1
+ },
+ pens: {
+ width: 16,
+ color: "rgb(237, 68, 61)",
+ op: 0.5
+ },
+ tempPens: {
+ width: 16,
+ color: "rgb(237, 68, 61)",
+ op: 0.5,
+ penList: [],
+ opList: [],
+ colorList: []
+ },
+ pagePathSave: [],
+ pageImgSave: []
+ };
+ this.printNames = {
+ pdf: "PDF",
+ hwp: "HWP",
+ html: "HTML",
+ exe: "EXE"
+ };
+ this.m_selectPageType = {
+ print: 1,
+ save: 1
+ };
+ this.m_exePrintStatus = {
+ url: "http://127.0.0.1:",
+ port: [22000, 33000, 11000],
+ httpPort: [22000, 33000, 11000],
+ httpsPort: [22443, 33443, 11443],
+ intervalKey: null,
+ disConnectCount: 0,
+ isSet: false,
+ portNumber: null
+ };
+ this.m_exePrintOption = {
+ isPrintPopup: true,
+ printName: "",
+ tray: "",
+ startNumber: 1,
+ endNumber: -1,
+ copies: 1,
+ option: ""
+ };
+ this.m_isViewer = true;
+ this.m_TPC = {
+ before: "/ ",
+ after: ""
+ };
+ this.m_isTOCVisible = false;
+ this.m_isSwipe = false;
+ this.m_PageMove = {
+ ButtonDisabled: true,
+ leftDOM: null,
+ rightDOM: null,
+ eventKey: null,
+ doubleEventKey: null
+ };
+ this.m_firefox_Reevent = null;
+ this.m_bodyWidth = document.body.offsetWidth;
+ this.m_is_eform_nextPage = false;
+ this.m_isCrossDomainPDF = false;
+ this.m_html_info = null;
+ this.m_ignorePDFObject = false;
+ this.m_splitPage = 0;
+ this.m_is_serverSaveFile = true;
+ this.m_syncPageServletPath = null;
+}
+Report.prototype.createUserProgress = function() {
+ var a = document.createElement("div");
+ a.className = "user_progress";
+ a.style.cssText = "position:absolute;left:0px;right:0px;top:0px;bottom:0px;overflow:hidden;background-repeat:no-repeat;z-index:500;";
+ this.targetDiv.appendChild(a);
+ this.m_userProg = a;
+};
+Report.prototype.removeUserProgress = function() {
+ this.targetDiv.removeChild(this.m_userProg);
+ this.m_userProg = null;
+};
+Report.prototype.createProgress = function() {
+ var a = "";
+ var b = this.is_eForm ? "eform_progress" : "report_progress";
+ if (!this.m_directPrint) {
+ if (this.m_progress.URL == "") {
+ a = "";
+ } else {
+ a = "";
+ }
+ }
+ this.paintDiv.innerHTML = a;
+ this.debugMeg("report log :: 리포트 프로그래스 동작....");
+};
+Report.prototype.createEditableProgress = function() {
+ var a = document.createElement("div");
+ var c = this.is_eForm ? "eform_progress" : "report_progress";
+ if (this.m_progress.URL == "") {
+ a.setAttribute("class", c);
+ a.style.cssText = "position:absolute;left:" + this.paintDiv.scrollLeft + "px;width:" + this.paintDiv.offsetWidth + "px;top:" + this.paintDiv.scrollTop + "px;height:" + this.paintDiv.offsetHeight + "px;overflow:hidden;";
+ } else {
+ var b = "position:absolute;left:" + this.paintDiv.scrollLeft + "px;width:" + this.paintDiv.offsetWidth + "px;top:" + this.paintDiv.scrollTop + "px;height:" + this.paintDiv.offsetHeight + "px;overflow:hidden;";
+ b += "background-position:" + this.m_progress.x + " " + this.m_progress.y + ";";
+ b += "background-repeat:no-repeat;background-image:url(" + this.m_progress.URL + ");";
+ a.style.cssText = b;
+ }
+ this.paintDiv.appendChild(a);
+ this.debugMeg("report log :: 리포트 프로그래스 동작....");
+};
+Report.prototype.createPageSyncProgress = function() {
+ var a = this.paintDiv.lastChild;
+ if (null != a) {
+ var c = a.getAttribute("class");
+ if (c == "report_progress") {
+ return;
+ }
+ }
+ var b = document.createElement("div");
+ var e = "report_progress";
+ if (this.m_progress.URL == "") {
+ b.setAttribute("class", e);
+ b.style.cssText = "position:absolute;left:" + this.paintDiv.scrollLeft + "px;width:" + (this.paintDiv.offsetWidth - 20) + "px;top:" + this.paintDiv.scrollTop + "px;height:" + this.paintDiv.offsetHeight + "px;overflow:hidden;";
+ } else {
+ var d = "position:absolute;left:" + this.paintDiv.scrollLeft + "px;width:" + this.paintDiv.offsetWidth + "px;top:" + this.paintDiv.scrollTop + "px;height:" + this.paintDiv.offsetHeight + "px;overflow:hidden;";
+ d += "background-position:" + this.m_progress.x + " " + this.m_progress.y + ";";
+ d += "background-repeat:no-repeat;background-image:url(" + this.m_progress.URL + ");";
+ b.style.cssText = d;
+ }
+ this.paintDiv.appendChild(b);
+ this.debugMeg("report log :: 리포트 프로그래스 동작....");
+};
+Report.prototype.createPrintProgress = function() {
+ this.disabledMenu(true);
+ var a = document.createElement("div");
+ this.m_printprogress.domDiv = a;
+ var c = this.is_eForm ? "eform_progress" : "report_progress";
+ if (this.m_printprogress.URL == "") {
+ strDiv = "";
+ a.setAttribute("class", c);
+ a.style.cssText = "position:absolute;left:0px;right:0px;top:0px;bottom:0px;overflow:hidden;";
+ } else {
+ var b = "position:absolute;left:0px;right:0px;top:0px;bottom:0px;overflow:hidden;";
+ b += "background-position:" + this.m_printprogress.x + " " + this.m_printprogress.y + ";";
+ b += "background-repeat:no-repeat;background-image:url(" + this.m_printprogress.URL + ");";
+ a.style.cssText = b;
+ }
+ this.paintDiv.appendChild(a);
+ this.debugMeg("report log :: 리포트 프로그래스 동작....");
+};
+Report.prototype.removePrintProgress = function() {
+ this.disabledMenu(false);
+ try {
+ this.paintDiv.removeChild(this.m_printprogress.domDiv);
+ this.m_printprogress.domDiv = null;
+ window.clearInterval(this.fileDownloadCheckTimer);
+ clearListCookies(this.clientPath);
+ this.isEnabledAdobeRead = true;
+ this.debugMeg("report log :: 리포트 프로그래스 종료");
+ if (null != this.m_endPrintProgressEvent) {
+ this.m_endPrintProgressEvent();
+ }
+ } catch (a) {}
+};
+Report.prototype.createHWPProgress = function() {
+ this.disabledMenu(true);
+ var a = document.createElement("div");
+ this.m_hwpprogress.domDiv = a;
+ var c = this.is_eForm ? "eform_progress" : "report_progress";
+ if (this.m_hwpprogress.URL == "") {
+ strDiv = "";
+ a.setAttribute("class", c);
+ a.style.cssText = "position:absolute;left:0px;right:0px;top:0px;bottom:0px;overflow:hidden;";
+ } else {
+ var b = "position:absolute;left:0px;right:0px;top:0px;bottom:0px;overflow:hidden;";
+ b += "background-position:" + this.m_hwpprogress.x + " " + this.m_hwpprogress.y + ";";
+ b += "background-repeat:no-repeat;background-image:url(" + this.m_hwpprogress.URL + ");";
+ a.style.cssText = b;
+ }
+ this.paintDiv.appendChild(a);
+ this.debugMeg("report log :: 리포트 프로그래스 동작....");
+};
+Report.prototype.removeHWPProgress = function() {
+ this.disabledMenu(false);
+ this.paintDiv.removeChild(this.m_hwpprogress.domDiv);
+ this.m_hwpprogress.domDiv = null;
+ window.clearInterval(this.fileDownloadCheckTimer);
+ clearListCookies(this.clientPath);
+ if (this.m_buttonEvent.endHWPButton != null) {
+ this.m_buttonEvent.endHWPButton();
+ }
+ this.debugMeg("report log :: 리포트 프로그래스 종료");
+};
+Report.prototype.createEXCELProgress = function() {
+ this.disabledMenu(true);
+ var a = document.createElement("div");
+ this.m_excelprogress.domDiv = a;
+ var c = this.is_eForm ? "eform_progress" : "report_progress";
+ if (this.m_excelprogress.URL == "") {
+ strDiv = "";
+ a.setAttribute("class", c);
+ a.style.cssText = "position:absolute;left:0px;right:0px;top:0px;bottom:0px;overflow:hidden;";
+ } else {
+ var b = "position:absolute;left:0px;right:0px;top:0px;bottom:0px;overflow:hidden;";
+ b += "background-position:" + this.m_excelprogress.x + " " + this.m_excelprogress.y + ";";
+ b += "background-repeat:no-repeat;background-image:url(" + this.m_excelprogress.URL + ");";
+ a.style.cssText = b;
+ }
+ this.paintDiv.appendChild(a);
+ this.debugMeg("report log :: 리포트 프로그래스 동작....");
+};
+Report.prototype.removeEXCELProgress = function() {
+ this.disabledMenu(false);
+ this.paintDiv.removeChild(this.m_excelprogress.domDiv);
+ this.m_excelprogress.domDiv = null;
+ window.clearTimeout(this.fileDownloadCheckTimer);
+ clearListCookies(this.clientPath);
+ if (this.m_buttonEvent.endExcelButton != null) {
+ this.m_buttonEvent.endExcelButton();
+ }
+ this.debugMeg("report log :: 리포트 프로그래스 종료");
+};
+Report.prototype.createSAVEProgress = function() {
+ this.disabledMenu(true);
+ var b = document.getElementById("re_iframe" + this.m_uid);
+ b.src = "about:blank";
+ var a = document.createElement("div");
+ this.m_saveprogress.domDiv = a;
+ var d = this.is_eForm ? "eform_progress" : "report_progress";
+ if (this.m_saveprogress.URL == "") {
+ a.setAttribute("class", d);
+ a.style.cssText = "position:absolute;left:0px;right:0px;top:0px;bottom:0px;overflow:hidden;";
+ } else {
+ var c = "position:absolute;left:0px;right:0px;top:0px;bottom:0px;overflow:hidden;";
+ c += "background-position:" + this.m_saveprogress.x + " " + this.m_saveprogress.y + ";";
+ c += "background-repeat:no-repeat;background-image:url(" + this.m_saveprogress.URL + ");";
+ a.style.cssText = c;
+ }
+ this.paintDiv.appendChild(a);
+ this.debugMeg("report log :: 리포트 프로그래스 동작....");
+};
+Report.prototype.removeSAVEProgress = function() {
+ this.disabledMenu(false);
+ this.paintDiv.removeChild(this.m_saveprogress.domDiv);
+ this.m_saveprogress.domDiv = null;
+ window.clearInterval(this.fileDownloadCheckTimer);
+ clearListCookies(this.clientPath);
+ if (this.m_buttonEvent.endSaveButton != null) {
+ this.m_buttonEvent.endSaveButton();
+ }
+ this.debugMeg("report log :: 리포트 프로그래스 종료");
+};
+Report.prototype.removePDFProgress = function() {
+ this.disabledMenu(false);
+ this.paintDiv.removeChild(this.m_saveprogress.domDiv);
+ this.m_saveprogress.domDiv = null;
+ window.clearInterval(this.fileDownloadCheckTimer);
+ clearListCookies(this.clientPath);
+ if (this.m_buttonEvent.endPDFButton != null) {
+ this.m_buttonEvent.endPDFButton();
+ }
+ this.debugMeg("report log :: 리포트 프로그래스 종료");
+};
+Report.prototype.createEndReportProgress = function() {
+ this.disabledMenu(true);
+ var a = document.createElement("div");
+ this.m_endreportprogress.domDiv = a;
+ var c = this.is_eForm ? "eform_progress" : "report_progress";
+ if (this.m_endreportprogress.URL == "") {
+ a.setAttribute("class", c);
+ a.style.cssText = "position:absolute;left:" + this.paintDiv.scrollLeft + "px;right:0px;top:" + this.paintDiv.scrollTop + "px;bottom:0px;overflow:hidden;";
+ } else {
+ var b = "position:absolute;left:" + this.paintDiv.scrollLeft + "px;right:0px;top:" + this.paintDiv.scrollTop + "px;bottom:0px;overflow:hidden;";
+ b += "background-position:" + this.m_endreportprogress.x + " " + this.m_endreportprogress.y + ";";
+ b += "background-repeat:no-repeat;background-image:url(" + this.m_endreportprogress.URL + ");";
+ a.style.cssText = b;
+ }
+ this.paintDiv.appendChild(a);
+ this.debugMeg("report log :: 리포트 프로그래스 동작....");
+};
+Report.prototype.removeEndReportProgress = function() {
+ this.disabledMenu(false);
+ this.m_endreportprogress.domDiv = null;
+ this.debugMeg("report log :: 리포트 프로그래스 종료");
+};
+Report.prototype.view = function() {
+ if (this.is_eForm) {
+ if (this.multiView.isSocket) {
+ this.multiView.socket.connect();
+ return;
+ }
+ }
+ this.default_view();
+};
+Report.prototype.default_view = function() {
+ this.debugMeg("<<<<<<<<<<<< 리포트 디버깅 로그를 시작합니다 >>>>>>>>>>>>>>>");
+ this.debugMeg("userAgent Check :: " + agt);
+ this.debugMeg("PDF check :: " + m_report_printOption.acrobatVersion);
+ if (!is_svg) {
+ if (this.is_eForm) {
+ this.debugMeg("report log :: IE8 버전 이하로 체크되었습니다. 웹이폼에서는 지원하지 않는 버전입니다.");
+ return;
+ }
+ if (!this.m_isPaintImage) {
+ this.debugMeg("report log :: IE8 버전 이하로 체크되었습니다. 접근성 뷰어 일 경우 화면 비율를 100%로 고정합니다.");
+ this.m_ratio = "100%";
+ this.m_disControl.zoomIn = true;
+ }
+ }
+ if (this.m_reportKey != null) {
+ this.checkReportCreate();
+ } else {
+ if (this.userJsp == null) {
+ this.newReportCreate(this.servletPath, this.oof);
+ } else {
+ this.newReportCreate(this.userJsp, null);
+ }
+ }
+};
+Report.prototype.debugMeg = function(b, a) {
+ if (this.m_debug.isDebug) {
+ if (this.m_debug.isConsole) {
+ window.console.log(b);
+ } else {
+ this.m_debug.message.push(b);
+ }
+ if (null != a) {
+ this.m_debug.isLock = a;
+ }
+ }
+};
+Report.prototype.endDebugMeg = function(a) {
+ if (this.m_debug.isDebug) {
+ if (!this.m_debug.isConsole) {
+ if (!a || (this.m_debug.isLock == a)) {
+ alert(this.m_debug.message.join("\n"));
+ this.m_debug.message = new Array();
+ this.m_debug.isLock = false;
+ }
+ }
+ }
+};
+Report.prototype.setSlidePage = function(a) {
+ this.m_isSlidePage = a;
+};
+Report.prototype.mRe_DirectPrintCall = function() {
+ if (this.m_directPrintOp.endReport) {
+ this.m_directPrintOp.endReport = false;
+ window.clearInterval(this.m_directPrintOp.key);
+ this.m_directPrintOp.key = null;
+ this.printView();
+ }
+};
+Report.prototype.createView = function(f, l) {
+ var k = new Array();
+ var h = "";
+ var g, i;
+ this.debugMeg("report log :: 리포트 뷰어를 생성합니다...");
+ if (this.m_directPrint) {
+ var j = this;
+ this.m_directPrintOp.key = window.setInterval(function() {
+ j.mRe_DirectPrintCall();
+ }, 300);
+ f.style.cssText += "position:absolute !important;width:1px !important;height:1px !important;visibility:hidden !important;opacity:0 !important;filter:alpha(opacity=0) !important;";
+ if (is_safari && !is_smartphone) {
+ window.open("", "report_SubWindow", "height=" + this.m_firefoxPrint.height + ",width=" + this.m_firefoxPrint.width);
+ }
+ }
+ if (this.m_isFadeView) {
+ g = f.style.width;
+ i = f.style.height;
+ $(f).css({
+ width: "0px",
+ height: "0px",
+ opacity: "0"
+ });
+ }
+ k.push("");
+ if (this.is_eForm) {
+ if (this.eForm_isNecessary.is_start) {
+ this.eForm_isNecessary.check = true;
+ }
+ this.eformCreateTag(k, l);
+ } else {
+ if (is_mobile) {
+ this.debugMeg("report log :: 모바일 환경으로 체크됨");
+ this.mobileCreateTag(k, l);
+ } else {
+ if (is_tablet) {
+ this.debugMeg("report log :: 테블릿 pc 환경으로 체크됨");
+ this.tabletCreateTag(k, l);
+ } else {
+ this.debugMeg("report log :: 데스트탑 pc 환경으로 체크됨");
+ this.pcCreateTag(k, l);
+ }
+ }
+ }
+ k.push("
");
+ k.push("
");
+ k.push("
");
+ k.push("
![]()
");
+ k.push("
");
+ k.push("
");
+ k.push("
");
+ if (is_ie7 || is_ie8) {
+ var e = document.createElement("div");
+ e.innerHTML = k.join("");
+ f.appendChild(e.firstChild);
+ e = null;
+ } else {
+ f.innerHTML = k.join("");
+ }
+ this.debugMeg("report log :: 리포트 뷰어 완성....");
+ this.paintDiv = document.getElementById("re_paintDiv" + l);
+ this.menuDiv = document.getElementById("re_menu" + l);
+ if (this.is_eForm) {
+ this.doodleDiv = document.getElementById("re_doodleDiv" + l);
+ this.doodle_button = document.getElementById("re_doodle" + l);
+ }
+ this.input = document.getElementById("re_input" + l);
+ this.totalCountSpan = document.getElementById("re_totalCount" + l);
+ this.totalCountText = document.getElementById("re_totalCountNumber" + l);
+ this.progressImg = document.getElementById("re_progressImg" + l);
+ this.zoomCombo = document.getElementById("re_zoomSelect" + l);
+ this.next_button = document.getElementById("re_next" + l);
+ this.prev_button = document.getElementById("re_prev" + l);
+ this.first_button = document.getElementById("re_first" + l);
+ this.last_button = document.getElementById("re_last" + l);
+ this.save_button = document.getElementById("re_save" + l);
+ this.print_button = document.getElementById("re_print" + l);
+ this.pdf_button = document.getElementById("re_pdf" + l);
+ this.hwp_button = document.getElementById("re_hwp" + l);
+ this.doc_button = document.getElementById("re_doc" + l);
+ this.excel_button = document.getElementById("re_excel" + l);
+ this.reportInfo_button = document.getElementById("re_reportInfo" + l);
+ this.close_button = document.getElementById("re_close" + l);
+ this.formTag = document.getElementById("re_form" + l);
+ this.formTag_clipid = document.getElementById("re_form_clipid" + l);
+ this.formTag_uid = document.getElementById("re_form_uid" + l);
+ this.formTag_clipUID = document.getElementById("re_form_clipUID" + l);
+ this.formTag_print = document.getElementById("re_form_print" + l);
+ this.formTag_printImage = document.getElementById("re_form_printImage" + l);
+ this.formTag_path = document.getElementById("re_form_path" + l);
+ this.formTag_option = document.getElementById("re_form_option" + l);
+ this.formTag_ChromeFitToPage = document.getElementById("re_form_ChromeFitToPage" + l);
+ this.formTag_s_time = document.getElementById("re_form_s_time" + l);
+ this.saveFormTag.form = document.getElementById("re_saveform" + l);
+ this.saveFormTag.clipid = document.getElementById("re_saveform_clipid" + l);
+ this.saveFormTag.uid = document.getElementById("re_saveform_uid" + l);
+ this.saveFormTag.clipUID = document.getElementById("re_saveform_clipUID" + l);
+ this.saveFormTag.path = document.getElementById("re_saveform_path" + l);
+ this.saveFormTag.option = document.getElementById("re_saveform_option" + l);
+ this.saveFormTag.filename = document.getElementById("re_saveform_fileName" + l);
+ this.saveFormTag.filetype = document.getElementById("re_saveform_fileType" + l);
+ this.deleteImgTag = document.getElementById("re_deleteImg" + l);
+ var n = document.getElementById("re_iframe2" + l);
+ var m = document.getElementById("re_iframe3" + l);
+ n.src = "about:blank";
+ if (view_domain != document.domain) {
+ m.src = "javascript:'
+
+
+
+
+
+
+
+
+
+
+
+
+
+