Forguncy 도움말
홈페이지온라인 스터디문의하기다운로드
V10 버전
V10 버전
  • 시작하기
    • Forguncy | 포건시
    • 시스템 요구사항
    • 포건시 빌더|디자이너
      • 빌더(Builder) 설치
      • 빌더(Builder) 온라인 라이선싱
      • 빌더(Builder) 오프라인 라이선싱
      • 빌더(Builder) 제거
    • 포건시 서버|Server
      • Windows 시스템에서 서버(Server) 설치
      • Linux 시스템에서 서버(server) 설치
      • Linux 용 Forguncy Server의 차이점과 주의점
      • 서버(Server) 온라인 라이선싱
      • 서버(Server) 오프라인 라이선싱
      • Windows 시스템에서 서버(Server) 제거
      • Linux 시스템에서 서버제거
  • 데이터베이스
    • 데이터 설정
      • 데이터 테이블 만들기
      • 필드 만들기
      • Excel 파일로 데이터 테이블 만들기
      • 텍스트 파일로 데이터 테이블 만들기
      • Access 파일로 데이터 테이블만들기
      • 뷰 만들기
      • 감사 로그
      • 기본 제공 데이터베이스 동시성 제어
      • 포건시 파일 가져오기
    • 필드 유형
      • 텍스트 필드
      • 정수 필드
      • 소수 필드
      • 날짜 필드
      • 시간 필드
      • 예/아니오 필드
      • 사용자 필드
      • 이미지 필드
      • 첨부 파일 필드
      • 내장 필드
      • 수식 필드
      • 통계 필드
      • 자동 ID 생성
    • 데이터 권한
      • 데이터 추가/생성 권한 편집
      • 행 권한
      • 열 권한
    • 외부 데이터베이스 연결
      • SQL Server에 연결
      • Oracle에 연결
      • MySQL 및 MariaDB에 연결
      • PostgreSQL에 연결
      • Dameng 데이터베이스에 연결
      • 데이터베이스 연결 변경
      • 필드 형식을 다시 가져오기
      • 외부 데이터베이스 사용하기
      • 내장 테이블을 외부 테이블로 변환
      • ODBC를 통해 다른 데이터베이스에 연결
      • 데이터 보안 설정
      • 외부테이블의 복사본 만들기
  • 페이지 & 데이터 바인딩
    • 페이지 설정
      • 일반 페이지
      • 일반 페이지 설정
        • 오버플로 모드
      • 모바일 페이지 만들기
      • 모바일 페이지 설정
      • 마스터 페이지 만들기
      • 마스터 페이지 설정
      • 페이지 늘이기 모드
      • 페이지 로드 모드
      • 페이지 작업
      • 기본 제공 페이지
        • 로그인 페이지
        • 개인 구성 페이지 수정
        • 비밀번호 분실 및 변경 페이지
        • 이메일 알림 설정 페이지
        • 임시 점검 중 페이지
        • 2단계 인증 스캔 코드 및 인증 페이지
        • 401 권한 없음 페이지
    • 데이터테이블 및 페이지 연결
      • 바인딩 필드
      • 리스트뷰 바인딩
    • Excel에서 가져오기
    • 인쇄
      • 페이지 설정
      • 인쇄 영역
      • 페이지 인쇄
      • 이미지 목록 인쇄
      • 인쇄 양식
      • 피벗 테이블을 인쇄
      • 반복영역 인쇄
    • 마스터-하위 테이블을 설정
      • 마스터-하위 테이블 만들기
      • 하위 테이블 설정
      • 하위 테이블 업데이트 모드
      • 하위 테이블 삭제 모드
    • OData
      • OData의 기본 사용
      • OData 매개 변수 설정 - 선택
      • OData 매개 변수 설정 - 쿼리
      • OData 매개 변수 설정 - 상위 제한
      • OData 매개 변수 설정 - 정렬
      • 리스트뷰에 OData 적용
      • OData 연산자에 대한 자세한 설명
      • OData를 Excel 함수와 함께 사용
    • 전역변수
    • 데이터 유효성 검사
      • 페이지 측 검사
        • 필수 입력 설정
        • 수치 검사
        • 수식 검사
        • 정규식
        • 데이터 유효성 검사 트리거
        • 명령 확인
      • 서버단 검사
        • 고유성 검사
        • 필수 유효성 검사
    • 데이터 쿼리 조건
      • 쿼리 명령
      • 리스트뷰 쿼리
    • 키워드
  • 웹 페이지 구성
    • 셀 유형
      • 셀 기본 작업
      • 셀 스타일
      • 버튼
      • 텍스트 상자
      • 여러 줄 텍스트
      • 체크박스
      • 체크박스 그룹
      • 라디오 버튼 그룹
        • 라디오 버튼 데이터 바인딩
        • 라디오 버튼 연동 설정
      • 하이퍼링크
      • 드롭다운/콤보 상자
        • 콤보상자 데이터 바인딩
        • 콤보 상자 연결 설정
      • 숫자 형식
      • 날짜
      • 시간 표시
      • 이미지
      • 이미지 버튼형 업로드 셀
      • 첨부 파일 업로드 버튼형 셀
      • 사용자 목록 선택기
      • 페이지 네비게이션
      • 페이지 탐색
      • 현재 사용자
      • 바코드
      • 페이지 내 컨텐츠가 포함된 셀
      • 페이지 내 탭 방식 셀
      • 자료반복 셀
      • 사용자 정의 컨트롤 컨테이너
      • 프로세스 바
      • 피벗 테이블
    • 리스트뷰 디자인
      • 기본 속성
      • 빠른 스타일
      • 리스트뷰 열 헤더
      • 행 헤더 표시하기
      • 열 선택 기능
      • 요약 행 표시하기
      • 자동 병합
      • 편집 및 선택
      • 데이터 유효성 검사 기간
      • 셀 단위 / 행 단위 선택 단위
      • 선택 설정
      • 열 헤더 작업
      • 포커스 동작
      • 리스트뷰 상태 자동 저장
      • 리스트뷰 열 헤더 필터 및 정렬
      • 리스트뷰 포커스
      • 가로 틀 고정
      • 자동 맞춤
      • 초기 로딩 데이터 및 불러올 행 수
      • 데이터로드 설정
      • 즉시 저장 해제
      • 행 헤더 삽입/복제/삭제
      • 기타 설정
      • 두번 클릭 명령
      • 현재 행 변경 명령 편집
      • 리스트뷰 로딩 애니메이션
      • 항목이 없을 때 내용 설정
    • Excel 수식
      • 기본 수식 사용
      • 참조 스타일
      • 변수명 수식
      • 배열 수식
      • Excel 함수 목록
    • 조건부 서식
      • 셀 조건부 서식
      • 리스트뷰 조건부 서식
    • 차트
      • 기본 사용
      • 데이터 소스 선택
      • 지도차트
      • 복합차트
      • 차트 명령
      • 차트의 조건부 서식
    • 피벗 테이블
      • 피벗 테이블 기본 사용
      • 피벗 테이블 스타일
      • 피벗 테이블 조건부 형식
      • 채우기 모드
      • 고정 및 확장 필드 설정
      • 피벗테이블을 Excel로 내보내기
    • 보고서
      • 보고서 개요
        • RDL 보고서
        • 페이지 보고서
      • 보고서 라이선스
      • 보고서 만들기
      • 보고서 데이터 소스 만들기
      • 보고서 디자이너 및 일반적인 작업
      • 테이블 구성 요소를 사용하여 보고서를 디자인하기
        • 단일 수준 그룹화 및 통계
        • 여러개 그룹화 및 통계
        • 식 그룹화
        • 보고서 정렬
        • 그룹화 필터링 및 정렬
        • 테이블 행 번호
        • 머리글 반복해서 표시
        • 행/열을 고정
        • 테이블 스타일
      • 테이블릭스(모멘트테이블)를 사용하여 보고서를 디자인
        • 모멘트테이블 설계 마법사
        • 다차원 피벗 테이블
      • 보고서 매개 변수 및 데이터 필터링
        • 보고서 매개변수
        • 데이터 필터링
        • 라디오 드롭다운 목록
        • 필터 표시
      • 보고서 제어
        • 바코드
      • 대화형 보고서
        • 매개변수를 이용한 보고서 이동
        • URL 이동
      • 식
      • 보고 명령
        • 보고서 열기 명령
        • 보고서 내보내기 명령
        • 보고서 웹 디자이너 열기
    • 페이지 디자인
      • 이미지 삽입
      • 배경 이미지 삽입
      • 테마
      • 페이지 스트리밍 레이아웃
    • Excel을 페이지로 가져오기
    • 프로젝트 문서
    • 사용자 컨트롤
      • 사용자 컨트롤 만들기
      • 사용자 정의 컨트롤 컨테이너
      • 사용자 컨트롤 속성
      • 사용자 컨트롤 이벤트
      • 사용자정의컨트롤 명령
      • 사용자 컨트롤 관련 명령
      • 사용자 컨트롤 가져오기 및 내보내기
    • 이미지 리소스
  • 명령 및 동작
    • 명령
      • 페이지 명령 - 페이지 이동
        • 고급 설정 - 페이지 전송 값
        • 고급설정 - 캐시 제거
        • 고급 설정 - 바인딩된 데이터 설정 로드
      • 페이지 명령 - 팝업 페이지
      • 페이지 명령 - 팝업 페이지 닫기
        • 입력 값을 상위페이지에 반환
        • 전달받을 값 변경 발생 시 상위 페이지의 입력란에 반환
        • 실행한 쿼리 결과를 상위 페이지에 전달
        • 고급설정
      • 페이지 명령 - 메세지 보여주기
      • 데이터 명령 - 데이터 테이블 작업
        • 고급 설정 - 기타 바인딩되지 않은 필드
        • 고급 설정 - 작업별 레코드
        • 데이터베이스 트랜젝션
        • 기타 고급 설정
      • 데이터 명령 - 리스트뷰 업데이트 명령 만들기
        • 행작동
        • 데이터
        • 셀작동
        • 열 작동
        • 선택
        • 상태정보
      • 데이터 명령 -쿼리
        • 고급 검색
      • 데이터 명령 - 정렬
      • 데이터 명령 - 데이터 간 이동하기
      • 데이터 명령 - 데이터 삭제
      • Excel 명령 - 테이블을 Excel로 내보내기
      • Excel 명령 - 페이지를 Excel로 내보내기
      • Excel명령 - 파일 다운로드 링크 만들기
      • Excel명령 - Excel 을 리스트뷰로 가져오기
      • 논리 명령 - 조건
        • 조건 형식 - 조건식
        • 조건 형식 - 확인 대화 상자
        • 조건형식 - JavaScript 조건
      • 논리 명령 - 루프 명령
        • 지정된 횟수만큼 반복
        • 리스트뷰로 루프
        • 셀에 따라 루프
      • 논리명령 - 중단명령
      • 논리명령 -중지명령
      • 셀 명령 - 셀 속성과 내용 변경하기
      • 인쇄 명령 - 웹 페이지 인쇄 명령
      • 인쇄 명령 - 페이지 PDF로 내보내기
      • 알림 명령 - 이메일 알림 설정 생성하기
      • 알림 명령 - 메일 보내기 명령
      • 프로그래밍 명령 - JavaScript 명령
      • 리스트뷰의 열 속성 변경하기
      • 저장 프로시저 호출하기
      • 행 및 열 레이아웃 설정 명령
      • 미 저장 변경사항 알림
      • 파라미터 설정
      • 셀유형 작동 명령
      • 리스트뷰 쿼리 대화 상자 명령
      • 런타임 중 언어 전환
    • 서버단 명령
      • 서버단 명령이란?
      • 서버단 명령 만들기
      • 서버단 명령의 매개변수
        • 기본유형
        • 배열 형식
      • 서버단 명령의 반환값
      • 서버단 명령의 권한
      • 서버단 명령의 사용범위
      • 서버단 명령을 관리
      • 서버단 명령을 디버그
      • 서버단 명령을 호출
        • 고급 설정 표시
      • 서버단 명령에서 지원하는 명령
        • 페이지 Excel 내보내기
          • 고급설정
        • 페이지 PDF로 내보내기
        • 데이터 테이블 작업
          • 데이터 테이블 추가하기
          • 데이터 테이블 편집하기
          • 데이블 테이블 데이터 삭제하기
          • 추가/업데이트 작업
        • 프로그램 명령 호출
        • Excel 가져오기/내보내기 명
          • 서버에서 Excel 파일 가져오기
          • 서버단에서 Excel 파일 내보내기
        • CSV 가져오기, 내보내기
          • CSV 가져오기
          • CSV 내보내기
        • 메일 전송 명령 생성하기
        • 조건명령
        • 반환 명령 생성하기
        • 트랜젝션 생성하기
        • 루프 명령
        • 파라미터 설정
        • 저장 프로시저 호출하기
        • 페이지를 HTML로 내보내기
        • 예외처리 명령
        • SQL 실행 명령
        • 중단명령
        • 서버알림
          • 서버단 알림 생성 및 적용
          • 클라이언트 명령
          • 서버단 명령
    • 재사용 명령
    • 예약 작업
      • 예약된 작업 만들기
      • 예약된 작업에서 지원하는 명령
    • 워크플로우
      • 워크플로우 설정
      • 일반 프로세스
      • 승인 프로세스
    • 로컬 실행 및 디버깅
      • 앱 실행
      • 앱 디버깅
        • 페이지 새로고침 시 수정 결과 표시
        • 모바일 디버깅
        • 숨겨진 정보 표시
        • 모든 참조 찾기
        • 애플리케이션 작동 모드
    • 자바 스크립트 프로그래밍
      • CSS 사용하기
      • JavaScript 사용
        • 응용 프로그램 수준 JavaScirpt 파일 등록
        • 지정된 페이지의 JavaScript 파일 등록
        • 사용자 정의 JavaScript 지정
      • 작업 페이지
      • 작업 셀
      • 작업 리스트뷰
      • JavaScript 및 CSS 코드 디버그
      • JavaScript API 인덱스
        • Forguncy 인터페이스
          • CellLocationinfo 인터페이스
          • CellRange 인터페이스
          • CurrentRowInfoParam 인터페이스
          • FormulaCalcContext 인터페이스
          • GetTableDataByConditionParams 인터페이스
          • IMergedColumnInfo 인터페이스
          • ListviewPaginationInfo 인터페이스
          • ListViewValueChangedEventArg 인터페이스
          • ModifyData 인터페이스
          • OrganizationLevelValueInfo 인터페이스
          • PageingInfoChangedEventArg 인터페이스
          • RowData 인터페이스
          • TableDataQueryPolicy 인터페이스
          • UserExtendProperties 인터페이스
          • UserInfo 인터페이스
        • Forguncy 매서드
          • addTableData 메서드
          • addUserToRole 메서드
          • addUser 메서드
          • ConvertDateToOADate 메서드
          • ConvertOADateToDate 메서드
          • ConvertToCssColor 메서드
          • deleteTableData 메서드
          • deleteUserFromRole 메서드
          • deleteUser메서드
          • forceSyncTableData 메서드
          • getTableDataByCondition 메서드
          • getTableDataByOData 메서드
          • getTableData 메서드
          • logIn 메서드
          • logOut 메서드
          • modifyTablesData 메서드
          • SendMail 메서드
          • updateTableData 메서드
        • Forguncy 열거형
          • ListviewColumnType 열거형
          • QueryNullPolicy 열거형
        • Forguncy 클래스
          • CellEvents클래스
            • Click 이벤트
            • MouseEnter 이벤트
            • MouseLeave 이벤트
            • PivottableClick 이벤트
            • SelectionChanged 이벤트
            • ValueChanged 이벤트
          • Cell 클래스
            • bind 메서드
            • disable 메서드
            • enable 메서드
            • getActiveTabIndex 메서드
            • getContentPage 메서드
            • getTabCount 메서드
            • getTabPage 메서드
            • getValue 메서드
            • hasFocus 메서드
            • hide 메서드
            • show 메서드
            • setBackColor 메서드
            • setFocus 메서드
            • setForeColor 메서드
            • setValue 메서드
            • showTab 메서드
            • unbind 메서드
            • unbindAll 메서드
            • setReadOnly 메서드
          • CommandHelper 클래스
            • executeCellCommand 메서드
            • getAllVariableValues 메서드
            • getVariableValue 메서드
            • setVariableValue 메서드
          • ForguncyCommandHelper클래스
            • executeCellCommand 메서드
            • getAllVariableValues 메서드
            • getVariableValue 메서드
            • setVariableValue 메서드
          • ListViewEvents 클래스
            • PageingInfoChanged 이벤트
            • Reloaded 이벤트
            • SelectedRowsChanged 이벤트
            • SelectionChanged 이벤트
            • ValueChanged 이벤트
          • ForguncyHelper 클래스
            • getCellLocation 메서드
            • post 메서드
            • SpecialPath 속성
          • ListView 클래스
            • addNewRow 메서드
            • addSelectedRow 메서드
            • bind 메서드
            • clearAllSelectedRows 메서드
            • clearSelectedRowByQuery 메서드
            • clearSelectedRow 메서드
            • deleteRow 메서드
            • getDataTableName 메서드
            • getDesignerRangeInfo 메서드
            • getMergedColumnInfos 메서드
            • getName 메서드
            • getPaginationInfo 메서드
            • getQuery 메서드
            • getRowCount 메서드
            • getSelectedRowIndexs 메서드
            • getSelectedRowIndex 메서드
            • getSelectedRowsData 메서드
            • getText 메서드
            • getValue 메서드
            • goToFirstPage 메서드
            • goToLastPage 메서드
            • goToNextPage 메서드
            • goToPreviousPage 메서드
            • goToSpecifiedPage 메서드
            • usePaginationDisplay 메서드
            • hiddenLoadingIndicator 메서드
            • showLoadingIndicator 메서드
            • isSelectedRow 메서드
            • reload 메서드
            • selectAllRows 메서드
            • selectRow 메서드
            • setText 메서드
            • setValue 메서드
            • unbind 메서드
            • unbindAll 메서드
            • hideColumns 메서드
            • showColumns 메서드
            • clearAllColumnFilters 메서드
            • getRunTimePageName 메서드
          • PageEvents 클래스
            • Loaded 이벤트
            • PageDefaultDataLoaded 이벤트
            • PopupClosed 이벤트
          • Page 클래스
            • AutoDisconnectTimeout 메서드
            • bind 메서드
            • getCellArray 메서드
            • getCellByLocation 메서드
            • getCell 메서드
            • getContainerCells 메서드
            • getListViews 메서드
            • getListView 메서드
            • getMasterPageName 메서드
            • getPageName 메서드
            • getSubPageInfoByPageID 메서드
            • getUserInfo 메서드
            • getUserName 메서드
            • ready 메서드
            • recalc 메서드
            • reloadBindingData 메서드
            • resumeCalc 메서드
            • setCurrentRow 메서드
            • suspendCalc 메서드
            • unbindAll 메서드
            • unbind 메서드
          • PivotTableCellType 클래스
            • setCustomFunction 메서드
          • PivotTableEventParameter 클래스
          • PivotTableHeaderInfo 클래스
          • SpecialPath 클래스
            • getBaseUrl 메소드
            • getBuiltInImageFolderPath 메서드
            • getImageEditorUploadImageFolderPath 메소드
            • getPluginRootPath 메서드
            • getUploadFileFolderPathInDesigner 메서드
            • getUploadImageFolderPathInServer 메소드
            • getUserFileFolderPath 메서드
          • SubPage 클래스
            • getCellArray 메서드
            • getCell 메서드
            • getContainerCells 메서드
            • getListViews 메서드
            • getListView 메서드
            • getMasterPageName 메서드
            • getPageName 메서드
          • Page 변수
    • 다국어
  • 배포 및 권한
    • 권한 및 보안
      • 인증 모드
        • 윈도우 도메인 인증
        • Windows Active Directory
        • 보안 공급자를 구현하는 방법
      • Single Sign-On
      • 빌더 측에서 권한 설정
        • 데이터 권한
          • 행 권한
          • 열 권한
          • 데이터 추가/생성 권한 편집
        • 리소스권한
          • 셀 권한
          • 페이지 권한
          • 서버 명령 권한
          • 서버 알림 권한
          • 보고서 권한
    • 서버 측 설정 권한
      • 데이터 권한
      • 역할 권한
      • 리소스 권한
    • 웹 사이트에 배포
      • 웹사이트 배포
      • 릴리즈 구성 관리
      • 오프라인 배포
      • Https 배포
      • 웹사이트 아이콘 설정
      • 지속적인 배포
        • TeamCity 구성
        • Jenkins 구성
  • 포건시 서버 | Server
    • 사용자, 역할 및 조직 구조 설정
      • 서버 관리자 개발과 서버 관리자
      • 사용자 생성
      • 역할 만들기
      • 조직 구조 만들기
      • 사용자 관리 보기 생성
      • Excel 가져오기 및 내보내기
      • 암호 정책
    • 서버단 응용 프로그램 관리
      • 기본작업
      • 기본 응용 프로그램 설정
      • 도메인 이름 설정
      • 외부 데이터베이스 연결 문자열 구성
      • 예약된 작업
      • 앱 배포 내역
    • 서버 단 구성
      • 메일 서버 구성
      • Windows 도메인 사용자 동기화
      • Https 인증서
      • 저장소 경로 설정
      • 보안 설정
      • Single Sign-On 암호 변경
      • 서버 실행 계정 변경
      • 사용자 정보 데이터베이스 구성
      • 외부서비스 인증
      • 계정 2단계 인증 설정
      • 동시 사용자 제어
      • 로그 및 모니터링
        • 모니터링
        • 로그
        • 애플리케이션 접속 통계
      • 클라우드 스토리지
        • Google 드라이브
        • OneDrive 구성
    • 백업 및 복원
      • 서버 측 자동 백업 및 복원
      • 서버 단 수동 백업 및 복원
      • 빌더 백업 및 복원
    • 웹사이트 유지보수
      • 일시 중지 및 활성화
      • 데이터 병합 및 마이그레이션
      • 서비스 재시작
      • 서버단 문제 해결
      • 명령 백업
      • 데이터 및 권한 동기화
  • 공동작업
    • 공동작업
      • 공동작업에 대한 개념
      • 기능 소개
      • 프로젝트 생성 및 열기
      • 협업개발을 수행하는 방법
        • 체크아웃
        • 전체 모듈 보기
        • 체크인 및 실행 취소
        • 이력보기
        • 최신 버전을 가져오기
      • 권장사항 사용
  • 플러그인
    • 플러그인 설치하기
      • 플러그인 일괄 설치
    • 플러그인 사용하기
      • 데이터베이스 연결 플러그인
        • Hana 데이터 베이스
        • MySQL 데이터베이스
        • Oracle 데이터베이스
        • PostgreSQL 데이터베이스
        • Azure Synapse Analytics 데이터베이스
        • Snowflake 데이터베이스
        • Sql server 데이터베이스
        • Tibero 데이터베이스
      • 셀유형 플러그인
        • Echart
        • 이미지 편집기(CaroselCellType)
        • 엘리먼트 UI (Element UI)
          • 입력상자
          • 숫자표시상자
          • 항목선택기
          • 날짜 선택기
          • 시간 선택기
          • 달력
          • 아바타
          • 파일업로드
          • 태그
          • 별점
          • 슬라이더
          • 게시판 형태 페이지
          • 네비게이션 메뉴
          • 탭헤더
          • 브레드크럼
          • 진행률
          • 단계
          • 타임라인
          • 전송
          • 맨위로 돌아가기
          • 표
          • Tree
          • TreeSelect
        • 포커스설정 (Vant)
          • 입력
          • 숫자
          • 스탭퍼
          • 선택기
          • Cascader
          • 날짜/시간 선택기
          • 달력
          • 업로드
          • 태그
          • 비율
          • 슬라이더
          • 스와이퍼
          • Notice Bar
          • 페이지 매김
          • 텝 헤더
          • 그리드
          • 진행률
          • 원 진행률
          • 단계
          • 타임라인
        • 사용자 메뉴 설정 (Forguncy.CustomMenu)
          • 메뉴
          • 트리 메뉴
        • 페이지 탭 컨트롤 (TabManager)
        • HTML 편집기 (HtmlRichEditor)
        • 작은 리치 텍스트 편집기
        • ListView 선택 항목 표시기(SelectionPanel)
        • 간트차트 (Gantt)
        • FilePreviewer
        • 서명 (SignatureCellType)
        • 비디오, 음원 파일 플레이어 (VideoPlayCellType)
      • 명령유형 플러그인
        • JSON 데이터소스 가져오기(JSONDataSource)
        • JSON 직렬화/역직렬화 명령 (JSonUtilityCommand)
          • JSON 직렬화
          • JSON 역직렬화
        • 이미지뷰어 명령(ImageViewerCommand)
        • 로딩 표시 시작 (LoadingCommand)
        • 셀 위치 설정 명령 (SetCellLocationCommand)
        • 현재 행 설정 변경 (SetCurrentRowCommand)
        • 리스트뷰로 데이터 전달(PassListviewDataCommand)
        • CSV 가져오기와 내보내기(ImportExportCSV)
          • CSV 가져오기
          • CSV 내보내기
        • 워크플로우 명령 (WorkflowCommand)
        • 사용자 관리 명령 V2 (UserManagementCommand)
        • Post 데이터 명령(SendHTTPRequestCommand)
        • 포커스 설정 명령 (SetFocusCommand)
        • 서버 파일 관리 (Operate Filescommand)
        • 암호화 및 복호화 알고리즘(EncryptDecryptCommand)
        • MS 팀즈에 메세지 전송 (TeamsWebHookCommand)
        • 대기명령 (SleepCommand)
        • 추적 프로세스 상태
        • WebSocket클라이언트 명령
        • 스마트폰 QR코드 스캔 명령
        • Office 365 로그인(Office365LoginCommand)
          • Office365 통합인증
            • 새로운 생성자 사용
            • 기존 사용자 정보 연동
          • 사용자 생성 (Office 365 계정으로 로그인)
    • 플러그인 개발하기
      • 포건시 플러그인 예제- 자료형 소개
      • 포건시 플러그인 예제 - LayDate
Powered by GitBook
On this page
  • LayDate 소개
  • LayDate 라이선스 정보
  • LayDate달력 플러그인 제작하기
  • 포건시에서 LayDate달력 플러그인 사용하기
  1. 플러그인
  2. 플러그인 개발하기

포건시 플러그인 예제 - LayDate

Previous포건시 플러그인 예제- 자료형 소개

LayDate 소개

LayDate는 예쁜 모양의 달력을 웹에서 사용할 수 있도록 제작된 JavaScript 도구입니다. 이 페이지에서는 JavaScript 도구를 포건시에서 사용하는 플러그인을 만드는 방법을 소개하려 합니다.

향후 이 페이지에서는 이 JavaScript를 「LayDate」라 칭하고, Forguncy Plugin은 「LayDate달력」이라 호칭하겠습니다.

공식 홈페이지에서 다운로드 받은 layDate-v5.0.9를 실행했을 때 실제 작동하는 방식은 아래와 같습니다.

LayDate 라이선스 정보

LayDate는 중국에서 제작되었으며, MIT License로 제공되는 오픈소스입니다. 라이선스와 관련한 자세한 내용은 해당 홈페이지에서 확인해 주세요.

제작자의 공식 홈페이지는 입니다. 해당 홈페이지로 이동하시면 오픈소스 도구의 Git Repository, 활용 예제, 문서 등을 보실 수 있습니다. 중국어로만 제공됩니다.

LayDate달력 플러그인 제작하기

  1. 하신 뒤 압축을 풀고, ForguncyPluginCreator.exe를 실행하십시오.

  2. 프로젝트 이름(Project Name)은 ‘LayDateCellType’으로 정의하시고, 플러그인 유형(PluginType)은 ‘셀 유형(CellType)’, 출력 경로(Output Path)는 플러그인을 작업하실 경로로 입력해 주십시오.

  3. 플러그인 개발 환경을 생성하신 위치에서 .csproj 파일을 더블 클릭하시면 Visual Studio에서 프로젝트가 열립니다.

  4. VS의 솔루션 탐색기(Solution Explorer)에서 “참고”를 확장하신 후, 나타나는 Forguncy.CellTypes 및 Forguncy.PluginCommon을 제거하십시오.

  5. 다시 솔루션 탐색기의 “참조”에서 마우스 오른쪽 클릭하여 “참조 추가(Add Reference)”를 선택하십시오.

  6. “참조 추가”창의 하단에 있는 “찾아보기(Browse…)”을 클릭하신 후, 포건시 설치 폴더의 Website\bin 폴더로 이동하십시오. 예를 들면, C:\Program Files (x86)\Forguncy\Website\bin 입니다.

  7. 포건시 설치 위치에서 3개의 라이브러리 파일 GrapeCity.Forguncy.Plugin.dll, GrapeCity.Forguncy.CellTypes.dll, Forguncy.Commands.dll을 찾아 솔루션 탐색기에 추가하십시오.

  8. 해당 라이브러리 파일들을 추가하시려면 화면에서 OK를 눌러 진행하십시오.

  9. 파일 3개를 추가한 솔루션 탐색기의 모습은 다음과 같습니다.

  10. LatDateCellType.cs을 열어 상단의 using 부분을 확인합니다. 포건시에서 가져온 파일을 가져오면 아래 그림과 같이 자동으로 등록이 됩니다. 이번 플러그인을 위해서는 System.ComponentModel을 추가하고 진행하겠습니다.

  11. LayDateCellType.cs를 열어 아래와 같이 편집합니다.

    //포건시 셀유형 선택 시 왼쪽에 표시할 아이콘의 모양을 정의하는 부분입니다.
    [Icon("pack://application:,,,/LayDateCellType;component/Resources/Icon.png")]
    
    //셀에 표시할 기본값, 셀의 표시 모드의 선택, IReferenceFormular 등을 구현합니다.
    public class LayDateCellType : CellType, ISupportStyleInitialize, IReferenceFormula
    {
        //포건시 셀유형 선택 목록에 표시되는 이름을 정의합니다.
        public override string ToString()
        {
            return "LayDate달력";
        }
    
        //포건시에서 셀유형 선택 시 오른쪽 패널에 나타날 옵션1을 정의합니다.
        [DisplayName("기본값")]
        [FormulaProperty]
        public object DefaultValue
        {
            get;
            set;
        }
    
        //포건시에서 셀유형 선택 시 오른쪽 패널에 나타날 옵션2를 정의합니다.
        [DisplayName("모드선택")]
        public LayDateMode LayDateMode
        {
            get;
            set;
        }
          
        //셀을 병합할 때 테두리가 남도록 합니다.
        public override DisplayBehaviour DisplayBehaviour
        {
            get
            {
                return DisplayBehaviour.KeepBorderWhenMerge;
            }
        }
    
        public Dictionary<StylePropertyName, object> GetDefaultStyleInfos(ICellInfo cellInfo)
        {
            var styles = new Dictionary<StylePropertyName, object>();
            //LayDateCellType은 오른쪽 정렬이 기본입니다.
            styles.Add(StylePropertyName.HorizontalAlignment, ForguncyCellHorizontalAlignment.Right);
            return styles;
        }
    
        public IEnumerable<LocatedObject<object>> GetFormulaReferObjects(LocationIndicator location)
        {
            yield return new LocatedObject<object>(this.DefaultValue, location.AppendProperty("기본값"));
        }
    }
    
    //포건시에서 셀유형 선택 시 오른쪽 패널에 나타날 옵션2의 값들을 정의합니다.
    public enum LayDateMode
    {
        [Description("날짜")]
        Date,
        [Description("시간")]
        Time,
        [Description("날짜와 시간")]
        DateTime
    }
  12. 다음 단계로는 웹에서 표현할 수 있는 JavaScript 작업을 해야 합니다. 하고 theme 폴더와 laydate.js 파일을 Resources 폴더에 복사하십시오.

  13. 솔루션 탐색기에서 Resource 폴더를 열고 laydate.js 파일을 선택하신 후, 아래 특성창에서 “출력 디렉토리로 복사”규칙을 “최신인 경우 복사”로 수정하십시오.

  14. PluginConfig.json 파일을 열어 아래 그림과 같이 laydate.js와 laydate.css 파일의 경로를 추가하십시오.

  15. 이제 Resources 폴더 안에 잇는 LayDateCellType.js에 아래의 코드를 추가해 주십시오.

    //LayDateCellType 객체를 지정합니다.
    var LayDateCellType = (function (_super) {
      __extends(LayDateCellType, _super);
      function LayDateCellType() {
        return _super !== null && _super.apply(this, arguments) || this;
      }
      LayDateCellType.prototype.OADateValue = null;
    
      //상위 CellTypeBase의 메소드에서 달력을 웹에 표시하는 모양을 정의합니다.
      LayDateCellType.prototype.createContent = function () {
          var self = this;
          var element = this.CellElement;
          var cellTypeMetaData = element.CellType;
          var container = $("<div id='" + this.ID + "'></div>");
          var innerContainer = $('<input type="text" id=' + this.ID + '_laydate />');
    
          innerContainer.css("width", element.Width);
          innerContainer.css("height", element.Height);
          innerContainer.css("box-sizing", "border-box");
          innerContainer.css("border", "0px");
          innerContainer.css("outline", "none");
    
          var hAlign = this.getHorizontalAlignment(element.StyleInfo);
          if (hAlign) {
              innerContainer.css("text-align", hAlign);
          }
          container.append(innerContainer);
          return container;
      }
    
      //셀의 좌우 정렬을 설정합니다.
      LayDateCellType.prototype.getHorizontalAlignment = function (styleInfo) {
          if (styleInfo) {
              if (styleInfo.HorizontalAlignment === Forguncy.CellHorizontalAlignment.Left) {
                  return "left";
              } else if (styleInfo.HorizontalAlignment === Forguncy.CellHorizontalAlignment.Center) {
                  return "center";
              } else if (styleInfo.HorizontalAlignment === Forguncy.CellHorizontalAlignment.Right) {
                  return "right";
              }
          }
          return null;
      }
    
      //셀에 선택된 값을 표시하기 위해 가져옵니다.
      LayDateCellType.prototype.getValueFromElement = function () {
          return this.OADateValue;
      }
    
      //셀의 선택된 값을 가져와 표시합니다.
      LayDateCellType.prototype.setValueToElement = function (element, value) {
          if (!(value instanceof Date)) {
              if (typeof (value) === "number") {
                  value = Forguncy.ConvertOADateToDate(value);
              } else {
                  try {
                      value = new Date(value);
                  } catch (e) {
                      value = null;
                  }
              }
          }
          var info = this.getDateCellTypeTypeAndFormat();
          var type = info.type;
          var format = info.format;
          if (value == null) {
              laydate.render({
                  elem: "#" + this.ID + "_laydate",
                  type: type,
                  format: format
              });
          } else {
              laydate.render({
                  elem: "#" + this.ID + "_laydate",
                  type: type,
                  format: format,
                  value: value
              });
          }
      }
    
      //포건시에서 기본값 설정을 했다면 상위 CellTypeBase의 메소드로부터 값을 가져와 표시합니다.
      LayDateCellType.prototype.getDefaultValue = function () {
          var cellTypeMetaData = this.CellElement.CellType;
          var defaultValue = cellTypeMetaData.DefaultValue;
          return {
              Value: defaultValue
          };
      }
    
      //화면에 데이터를 표시할 때 포건시의 '표시 형태 선택'에서 설정한 방식으로 표시합니다.
      LayDateCellType.prototype.onLoad = function () {
          var info = this.getDateCellTypeTypeAndFormat();
          var type = info.type;
          var format = info.format;
          var self = this;
          laydate.render({ //laydate.js 라이브러리에서 참조합니다.
              elem: "#" + this.ID + "_laydate",
              type: type,
              format: format,
              done: function (value, date, endDate) {
                  var newValue = Forguncy.ConvertDateToOADate(new Date(date.year, date.month - 1, date.date, date.hours, date.minutes, date.seconds));
                  if (type === "time") {
                      newValue = newValue % 1;
                  } else if (type === "date") {
                      newValue = Math.floor(newValue);
                  }
                  self.OADateValue = newValue;
                  self.commitValue(); //데이터를 화면으로 보내 표시
              }
          });
      }
    
      //포건시의 '표시 형태 선택'에서 설정한 날짜/시간 표시 방식을 설정합니다.
      LayDateCellType.prototype.getDateCellTypeTypeAndFormat = function () {
          var cellTypeMetaData = this.CellElement.CellType;
          var type = "date";
          var format = "yyyy-MM-dd";
          if (cellTypeMetaData.LayDateMode === LayDateMode.Time) {
              type = "time";
              format = "HH:mm:ss";
          } else if (cellTypeMetaData.LayDateMode === LayDateMode.DateTime) {
              type = "datetime";
              format = "yyyy-MM-dd HH:mm:ss";
          }
          return {
              type: type,
              format: format
          };
      }
      return LayDateCellType;
    }(Forguncy.CellTypeBase));
    
    //포건시 옵션 표시시 C# 데이터와 일관성을 유지하기 위해 index를 설정합니다.
    var LayDateMode = {
      Date: 0,
      Time: 1,
      DateTime: 2
    };
    
    //다음의 키 형태는 "Namespace.ClassName, AssemblyName"입니다.
    Forguncy.CellTypeHelper.registerCellType("LayDateCellType.LayDateCellType, LayDateCellType", LayDateCellType);
  16. 다음은 포건시에서 표시할 플러그인의 아이콘을 설정하겠습니다. 포건시 플러그인 프로젝트 생성 시 기본으로 추가되는 Icon.png은 제거하시고, 새로 만든 LayDateIcon을 Resouces 폴더에 복사해 주십시오.

    • 아이콘을 복사하신 다음 속성에서 “Build Action”을 “Resource”로 변경하십시오.

    • 해당 는 링크에서 확인하시면 됩니다.

    • 아이콘은 16x16 크기로 줄이셔야 포건시에서 정상적으로 출력됩니다. 이미 작업된 파일이 필요하시면 하십시오.

  17. LayDateCellType.cs 파일을 열어 아이콘의 위치 지정하는 부분에 새 아이콘의 이름으로 변경해 주십시오.

  18. PluginLogo.png를 삭제 후 변경하고자 하시는 로고로 바꿔 주십시오.

    • 이미 작업된 파일이 필요하시면 하십시오.

    PluginLogo.png 파일의 속성창에서 “출력 디렉터리로 복사” 규칙을 “항상 복사”로 변경하십시오.

  19. PluginConfig.json 파일을 열어 플러그인의 이미지 파일 이름, 플러그인 소개 설명, 플러그인 이름 등의 정보를 변경하십시오.

  20. 솔루션 탐색기에서 플러그인 이름을 마우스 오른쪽으로 클릭하신 후 “빌드(Build)”합니다.

    아래와 같이 빌드의 결과가 나타나면, 해당 위치로 이동하십시오.

    빌드 결과물이 나온 위치에 아래 그림과 같이 zip 파일이 나타납니다. 해당 파일을 따로 복사해서 특정 폴더에 모으셔도 되고, 해당 위치에 두셔도 됩니다.

포건시에서 LayDate달력 플러그인 사용하기

  1. 포건시를 실행하시고 「파일 > 플러그인」으로 이동하셔서 “플러그인 설치”를 클릭합니다.

    빌드 결과물이 나온 위치에 생성된 zip 파일을 불러옵니다.아래와 같이 플러그인 폴더에 추가되면 성공입니다.

  2. 다음은 생성한 플러그인을 활용하는 방법입니다.

    위 프로젝트를 간략히 설명하면 다음과 같습니다. ① 통합 셀을 만든 뒤 “LayDate달력 셀유형” 이라고 적고, 배경색을 회색으로 칠했습니다. ② 또 다른 통합 셀을 만들고, 까만색 테두리로 둘레를 표시 했습니다. ③ 생성한 통합 셀의 유형을 LayDateCellType으로 지정했습니다. ④ 셀의 기본 값을 오늘 날짜를 표시할 수 있도록 =TODAY()를 설정했습니다.

    LayDate달력 셀유형을 활용한 프로젝트를 실행시키면 다음과 같이 나타납니다.

해당 하셔서 직접 열어 보실 수 있도록 해 두었습니다. 해당 프로젝트 파일은 Forguncy v6.0 이상을 사용하셔야 합니다.

위에서 설명드린 내용은 여기 를 클릭하셔서 다운로드 후 Microsoft Visual Studio에서 열어 작업하실 수 있습니다.

포건시 프로젝트 파일을 다운로드
▶LayDate달력 소스코드
https://www.layui.com
포건시 플러그인 생성 도구 다운로드
LayDate 한글화 버전 다운로드
아이콘의 출처
이곳을 클릭하여 다운로드
이곳을 클릭하여 다운로드