first commit
This commit is contained in:
87
.gitignore
vendored
Normal file
87
.gitignore
vendored
Normal file
@@ -0,0 +1,87 @@
|
||||
# Created by https://www.gitignore.io/api/maven,eclipse,java-web
|
||||
|
||||
### Eclipse ###
|
||||
|
||||
.metadata
|
||||
bin/
|
||||
tmp/
|
||||
*.tmp
|
||||
*.bak
|
||||
*.swp
|
||||
*~.nib
|
||||
local.properties
|
||||
.settings/
|
||||
.loadpath
|
||||
.recommenders
|
||||
|
||||
# External tool builders
|
||||
.externalToolBuilders/
|
||||
|
||||
# Locally stored "Eclipse launch configurations"
|
||||
*.launch
|
||||
|
||||
# PyDev specific (Python IDE for Eclipse)
|
||||
*.pydevproject
|
||||
|
||||
# CDT-specific (C/C++ Development Tooling)
|
||||
.cproject
|
||||
|
||||
# CDT- autotools
|
||||
.autotools
|
||||
|
||||
# Java annotation processor (APT)
|
||||
.factorypath
|
||||
|
||||
# PDT-specific (PHP Development Tools)
|
||||
.buildpath
|
||||
|
||||
# sbteclipse plugin
|
||||
.target
|
||||
|
||||
# Tern plugin
|
||||
.tern-project
|
||||
|
||||
# TeXlipse plugin
|
||||
.texlipse
|
||||
|
||||
# STS (Spring Tool Suite)
|
||||
.springBeans
|
||||
|
||||
# Code Recommenders
|
||||
.recommenders/
|
||||
|
||||
# Annotation Processing
|
||||
.apt_generated/
|
||||
|
||||
# Scala IDE specific (Scala & Java development for Eclipse)
|
||||
.cache-main
|
||||
.scala_dependencies
|
||||
.worksheet
|
||||
|
||||
### Eclipse Patch ###
|
||||
# Eclipse Core
|
||||
.project
|
||||
|
||||
# JDT-specific (Eclipse Java Development Tools)
|
||||
.classpath
|
||||
|
||||
# Annotation Processing
|
||||
.apt_generated
|
||||
|
||||
### Java-Web ###
|
||||
## ignoring target file
|
||||
target/
|
||||
|
||||
### Maven ###
|
||||
pom.xml.tag
|
||||
pom.xml.releaseBackup
|
||||
pom.xml.versionsBackup
|
||||
pom.xml.next
|
||||
release.properties
|
||||
dependency-reduced-pom.xml
|
||||
buildNumber.properties
|
||||
.mvn/timing.properties
|
||||
.mvn/wrapper/maven-wrapper.jar
|
||||
|
||||
|
||||
# End of https://www.gitignore.io/api/maven,eclipse,java-web
|
||||
1
lombok.config
Normal file
1
lombok.config
Normal file
@@ -0,0 +1 @@
|
||||
lombok.log.fieldName = logger
|
||||
244
pom.xml
Normal file
244
pom.xml
Normal file
@@ -0,0 +1,244 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>com.terry</groupId>
|
||||
<artifactId>xplatform</artifactId>
|
||||
<name>xplatform</name>
|
||||
<packaging>war</packaging>
|
||||
<version>1.0.0-BUILD-SNAPSHOT</version>
|
||||
<properties>
|
||||
<java-version>1.8</java-version>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||
|
||||
<!-- Web -->
|
||||
<jsp.version>2.2</jsp.version>
|
||||
<jstl.version>1.2</jstl.version>
|
||||
<servlet.version>2.5</servlet.version>
|
||||
|
||||
<!-- Spring -->
|
||||
<spring-framework.version>4.3.18.RELEASE</spring-framework.version>
|
||||
|
||||
<!-- AspectJ -->
|
||||
<aspectj.version>1.8.13</aspectj.version>
|
||||
|
||||
<!-- 데이터베이스 버전 -->
|
||||
<h2db.version>1.4.197</h2db.version>
|
||||
<oracle.version>11.2.0</oracle.version>
|
||||
|
||||
<!-- Mybatis -->
|
||||
<mybatis.version>3.4.6</mybatis.version>
|
||||
<mybatis-spring.version>1.3.2</mybatis-spring.version>
|
||||
|
||||
<!-- Logging -->
|
||||
<logback.version>1.2.3</logback.version>
|
||||
<slf4j.version>1.7.25</slf4j.version>
|
||||
<log4jdbc.version>1.16</log4jdbc.version>
|
||||
|
||||
<!-- Jackson Json Version -->
|
||||
<jackson.version>2.5.1</jackson.version>
|
||||
<!-- jackson.version>1.9.13</jackson.version -->
|
||||
</properties>
|
||||
<dependencies>
|
||||
<!-- Spring -->
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-context</artifactId>
|
||||
<version>${spring-framework.version}</version>
|
||||
<exclusions>
|
||||
<!-- Exclude Commons Logging in favor of SLF4j -->
|
||||
<exclusion>
|
||||
<groupId>commons-logging</groupId>
|
||||
<artifactId>commons-logging</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
|
||||
<!-- Spring Transactions -->
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-jdbc</artifactId>
|
||||
<version>${spring-framework.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- Spring Transactions -->
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-tx</artifactId>
|
||||
<version>${spring-framework.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- Spring MVC -->
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-webmvc</artifactId>
|
||||
<version>${spring-framework.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- AspectJ -->
|
||||
<dependency>
|
||||
<groupId>org.aspectj</groupId>
|
||||
<artifactId>aspectjrt</artifactId>
|
||||
<version>${aspectj.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.aspectj</groupId>
|
||||
<artifactId>aspectjweaver</artifactId>
|
||||
<version>${aspectj.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- Logging with SLF4J & LogBack -->
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>jcl-over-slf4j</artifactId>
|
||||
<version>${slf4j.version}</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ch.qos.logback</groupId>
|
||||
<artifactId>logback-classic</artifactId>
|
||||
<version>${logback.version}</version>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- Servlet -->
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>servlet-api</artifactId>
|
||||
<version>${servlet.version}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.servlet.jsp</groupId>
|
||||
<artifactId>jsp-api</artifactId>
|
||||
<version>${jsp.version}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>jstl</artifactId>
|
||||
<version>${jstl.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<version>1.18.2</version>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.h2database</groupId>
|
||||
<artifactId>h2</artifactId>
|
||||
<version>${h2db.version}</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- Mybatis -->
|
||||
<dependency>
|
||||
<groupId>org.mybatis</groupId>
|
||||
<artifactId>mybatis</artifactId>
|
||||
<version>${mybatis.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.mybatis</groupId>
|
||||
<artifactId>mybatis-spring</artifactId>
|
||||
<version>${mybatis-spring.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.bgee.log4jdbc-log4j2</groupId>
|
||||
<artifactId>log4jdbc-log4j2-jdbc4.1</artifactId>
|
||||
<version>${log4jdbc.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- jackson json -->
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-core</artifactId>
|
||||
<version>${jackson.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-databind</artifactId>
|
||||
<version>${jackson.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-annotations</artifactId>
|
||||
<version>${jackson.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>javax.validation</groupId>
|
||||
<artifactId>validation-api</artifactId>
|
||||
<version>2.0.1.Final</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.hibernate.validator</groupId>
|
||||
<artifactId>hibernate-validator</artifactId>
|
||||
<version>6.0.12.Final</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.tobesoft</groupId>
|
||||
<artifactId>xplatform</artifactId>
|
||||
<version>1.0</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/xplatform-xapi-1.0.jar</systemPath>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.tobesoft</groupId>
|
||||
<artifactId>miplatform</artifactId>
|
||||
<version>3.2</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/miplatform-3.2.jar</systemPath>
|
||||
</dependency>
|
||||
|
||||
|
||||
</dependencies>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-eclipse-plugin</artifactId>
|
||||
<version>2.9</version>
|
||||
<configuration>
|
||||
<additionalProjectnatures>
|
||||
<projectnature>org.springframework.ide.eclipse.core.springnature</projectnature>
|
||||
</additionalProjectnatures>
|
||||
<additionalBuildcommands>
|
||||
<buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand>
|
||||
</additionalBuildcommands>
|
||||
<downloadSources>true</downloadSources>
|
||||
<downloadJavadocs>true</downloadJavadocs>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>2.5.1</version>
|
||||
<configuration>
|
||||
<source>1.8</source>
|
||||
<target>1.8</target>
|
||||
<compilerArgument>-Xlint:all</compilerArgument>
|
||||
<showWarnings>true</showWarnings>
|
||||
<showDeprecation>true</showDeprecation>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>exec-maven-plugin</artifactId>
|
||||
<version>1.2.1</version>
|
||||
<configuration>
|
||||
<mainClass>org.test.int1.Main</mainClass>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
146
readme.txt
Normal file
146
readme.txt
Normal file
@@ -0,0 +1,146 @@
|
||||
살펴봐야 할 내용을 정리한겁니다..
|
||||
여기 문서에 적힌 대로 셋팅해보시고 테스트 꼭 진행하세요..
|
||||
크게는 2가지 내용에 대해 설명할껍니다..
|
||||
먼저 첫번째로 Mapper 인터페이스로 DAO를 대체하는 방법은..
|
||||
|
||||
1. 먼저 mybatis mapper 파일을 보세요..
|
||||
제가 드린 소스를 기준으로 설명드리면 src/main/resources/com/terry/xplatform/resources/mybatis/mapper 디렉토리에 있는 sample.xml 입니다..
|
||||
그 파일을 열어보세요..
|
||||
그 파일을 보면 <mapper namespace="com.terry.xplatform.dao.SampleDAO"> 요렇게 있을겁니다..
|
||||
즉 이 파일은 com.terry.xplatform.dao 패키지에 있는 SampleDAO 인터페이스와 매핑되는거에요..
|
||||
그리고 현재 열어놓은 xml 파일을 보시면 insert, update 태그들이 보이실겁니다..이때 보셔야 할 것이 id 부분이에요..
|
||||
왜냐면 이 아이디와 동일한 이름의 메소드를 만들어야 합니다..
|
||||
일단 이렇게만 기억해두시고 com.terry.xplatform.dao 패키지에 있는 SampleDAO 인터페이스 파일을 열어보세요..
|
||||
인터페이스이기 때문에 구체적으로 코딩된 내용은 없고 메소드의 정의만 있습니다..
|
||||
|
||||
@Mapper
|
||||
public interface SampleDAO {
|
||||
|
||||
public void insertSample(SampleVO sampleVO);
|
||||
public void updateSample(SampleVO sampleVO);
|
||||
public void deleteSample(@Param("id") int id);
|
||||
public SampleVO selectSample(@Param("id") int id);
|
||||
public List<SampleVO> selectSampleList(SampleDefaultVO sampleDefaultVO);
|
||||
public long selectSampleListTotCnt(SampleDefaultVO sampleDefaultVO);
|
||||
public Map<String, String> dataType();
|
||||
|
||||
}
|
||||
|
||||
여기서 보셔야 할 것은 @Mapper 인터페이스에요..이걸 적어줘야 합니다..
|
||||
그리고 메소드 이름들을 보세요..위에서 언급했던 sample.xml 에 있는 각 태그들의 id와 일치되죠?
|
||||
즉 해당 태그의 id에 대한 부분을 같은 이름의 메소드가 처리한다고 보시면 됩니다..
|
||||
query 가 있는 xml을 저는 VO로 하기 때문에 메소드의 파라미터들을 VO로 받았지만 SQL 작업을 하면 VO로 받지 않고 int 값 같은 단일 타입으로 받아야 할 때도 있습니다..
|
||||
그때 사용되는게 @Param 어노테이션입니다..
|
||||
|
||||
public void deleteSample(@Param("id") int id); 이걸 기준으로 설명드리면 얘와 매핑되는 것은
|
||||
|
||||
<delete id="deleteSample" parameterType="int">
|
||||
<![CDATA[
|
||||
DELETE FROM SAMPLE
|
||||
WHERE ID=#{id}
|
||||
]]>
|
||||
</delete>
|
||||
|
||||
이것과 매핑되겠죠? 여기서 보시면 parameterType 속성을 vo의 alias가 아닌 int 타입으로 줬습니다..
|
||||
그렇기땜에 #{id}는 특정 VO의 id란 이름의 멤버변수가 아니에요..
|
||||
이럴때 사용되는게 @Param 어노테이션입니다..
|
||||
@Param("id")로 해서 query 문에서 사용되는 변수명을 적어주는거에요..
|
||||
그러면 그게 해당 query문의 변수와 매핑이 됩니다..
|
||||
|
||||
그러면 이렇게 만든 Mapper 인터페이스를 어떻게 사용하냐면..
|
||||
src/main/java/com/terry/xplatform/service/impl 패키지에 있는 SampleServiceImpl 클래스를 열어보세요..
|
||||
그러면 다음과 같은 부분이 있을 겁니다..
|
||||
|
||||
@Autowired
|
||||
private SqlSession sqlSession;
|
||||
|
||||
SampleDAO sampleDAO;
|
||||
|
||||
@PostConstruct
|
||||
public void init() {
|
||||
sampleDAO = sqlSession.getMapper(SampleDAO.class);
|
||||
}
|
||||
|
||||
이렇게 SqlSession 타입 멤버변수를 하나 설정하고
|
||||
@PostConstruct 어노테이션을 통해 SampleServiceImpl이 초기화될때 sampleDAO 변수를 sqlSession.getMapper 메소드를 통해 설정해주는거에요..
|
||||
여기서 SampleDAO는 위에서 언급했던 @Mapper 어노테이션이 붙은 SampleDAO 인터페이스입니다..
|
||||
그 다음엔 Service에서 우리가 DAO 사용하듯 그냥 하시면 되요..
|
||||
기존에 SqlSession.select 메소드나 insert 메소드를 DAO 클래스에서 일일이 작성할 필요가 없습니다..
|
||||
|
||||
이렇게 크게 2가지 설명한다는 내용중 하나 설명했고 또 하나는 VO 클래스의 alias 등록하는 방법이에요..
|
||||
일전에 저랑 스터디 카페에서 이 부분에 대해 얘기할때 일일이 mubatis config 파일에 등록한다고 했는데..
|
||||
좀더 찾아보니 스캔해서 등록해주는 기능이 있더군요..
|
||||
|
||||
/src/main/resources/com/terry/xplatform/resources/mybatis/config 에 가시면 mybatis-config.xml 파일이 있습니다..
|
||||
그 내용도 얼마 안되니 여기다가 쓸께요..
|
||||
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "HTTP://mybatis.org/dtd/mybatis-3-config.dtd">
|
||||
<configuration>
|
||||
<settings>
|
||||
<setting name="cacheEnabled" value="false" />
|
||||
</settings>
|
||||
<typeAliases>
|
||||
<package name="com.terry.xplatform.vo" />
|
||||
</typeAliases>
|
||||
</configuration>
|
||||
|
||||
여기서 봐야 할것은 <typeAliases> 태그의 하위 태그로 있는 <package> 태그 입니다..
|
||||
여기에 VO가 들어있는 패키지를 써주는거에요..그러나 패키지를 써준다고 끝나는게 아닙니다..
|
||||
왜냐면 패키지 안에 있는것들중 mybatis vo로 등록할 것도 있고 그렇지 않은 것도 있기 때문에..
|
||||
VO에 별도 기술해줘야 할 것이 있어요..
|
||||
com.terry.xplatform.vo 패키지에 있는 SampleVO 클래스를 열어보세요..
|
||||
소스도 얼마안되니 여기다가 바로 써드릴께요..
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@Alias("SampleVO")
|
||||
public class SampleVO extends XplatformVO {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = -4891478433457788136L;
|
||||
|
||||
/** 아이디 */
|
||||
private String id;
|
||||
|
||||
/** 이름 */
|
||||
private String name;
|
||||
|
||||
/** 내용 */
|
||||
private String description;
|
||||
|
||||
/** 사용여부 */
|
||||
private String useYn;
|
||||
|
||||
/** 등록자 */
|
||||
private String regUser;
|
||||
}
|
||||
|
||||
여기서 봐야 할 부분중 @Alias가 있습니다..
|
||||
@Alias 어노테이션에 mybatis 에서 사용할 VO의 이름을 써주는거에요..
|
||||
그러면 위에서 <package> 태그에 설정되어 있는 패키지 안의 클래스들에서 @Alias 어노테이션이 있는 것만 Mybatis의 VO로 등록해서 사용하게 됩니다..
|
||||
@Alias("SampleVO") 로 했기 때문에 query 문이 있는 sample.xml 문에서 다음과 같이 이 클래스를 사용할 수 있는거에요..
|
||||
|
||||
<insert id="insertSample" parameterType="SampleVo">
|
||||
<![CDATA[
|
||||
INSERT INTO SAMPLE
|
||||
( ID
|
||||
, NAME
|
||||
, DESCRIPTION
|
||||
, USE_YN
|
||||
, REG_USER )
|
||||
VALUES ( #{id}
|
||||
, #{name}
|
||||
, #{description}
|
||||
, #{useYn}
|
||||
, #{regUser} )
|
||||
]]>
|
||||
</insert>
|
||||
|
||||
parameterType 속성에 있는 SampleVO를 @Alias 어노테이션에 붙인 이름으로 찾아서 매핑하는거죠..
|
||||
|
||||
그리고 제가 보내드린 query xml 파일을 보시면 거기에 동적 sql 하는 부분이 있습니다..
|
||||
그 부분이 ibatis하고는 다른 부분이 있으니까 꼭 보세요..
|
||||
문서 보시고 모르는 부분은 전화주세요..
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.terry.xplatform.config.handler;
|
||||
|
||||
import org.springframework.dao.DataAccessException;
|
||||
import org.springframework.web.bind.annotation.ControllerAdvice;
|
||||
import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
@ControllerAdvice
|
||||
public class GlobalExceptionHandler {
|
||||
|
||||
@ExceptionHandler(value={DataAccessException.class})
|
||||
public ModelAndView processDataAccessException(DataAccessException ex){
|
||||
ModelAndView modelAndView = new ModelAndView();
|
||||
modelAndView.addObject("ErrorCode", "-1");
|
||||
modelAndView.addObject("ErrorMsg", ex.getMessage());
|
||||
modelAndView.setViewName("errorView");
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
@ExceptionHandler(value={Exception.class})
|
||||
public ModelAndView processException(Exception ex){
|
||||
ModelAndView modelAndView = new ModelAndView();
|
||||
modelAndView.addObject("ErrorCode", "-1");
|
||||
modelAndView.addObject("ErrorMsg", ex.getMessage());
|
||||
modelAndView.setViewName("errorView");
|
||||
return modelAndView;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,386 @@
|
||||
package com.terry.xplatform.config.utils;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.ParameterizedType;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Calendar;
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.springframework.core.MethodParameter;
|
||||
import org.springframework.util.ReflectionUtils;
|
||||
|
||||
import com.tobesoft.xplatform.data.ColumnHeader;
|
||||
import com.tobesoft.xplatform.data.DataSet;
|
||||
import com.tobesoft.xplatform.data.DataTypes;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
public class XplatformReflectionUtils {
|
||||
|
||||
/**
|
||||
* Xplatform의 DataSet에 있는 특정 컬럼의 값을 VO와 매핑하는 메소드
|
||||
* @param field
|
||||
* @param columnHeader
|
||||
* @param obj
|
||||
* @param columnValue
|
||||
*/
|
||||
public static void setField(Field field, ColumnHeader columnHeader, Object obj, String columnValue) {
|
||||
|
||||
ReflectionUtils.makeAccessible(field); //Field가 private 등의 접근할 수 없는 상황일때도 접근할 수 있게 한다
|
||||
|
||||
Class<?> fieldType = field.getType();
|
||||
|
||||
if(fieldType == String.class) {
|
||||
ReflectionUtils.setField(field, obj, columnValue);
|
||||
} else if(fieldType == char.class || fieldType == Character.class) {
|
||||
ReflectionUtils.setField(field, obj, columnValue.charAt(0));
|
||||
} else if(fieldType == short.class || fieldType == Short.class) {
|
||||
ReflectionUtils.setField(field, obj, Short.parseShort(columnValue, 10));
|
||||
} else if(fieldType == int.class || fieldType == Integer.class) {
|
||||
ReflectionUtils.setField(field, obj, Integer.parseInt(columnValue, 10));
|
||||
} else if(fieldType == long.class || fieldType == Long.class) {
|
||||
ReflectionUtils.setField(field, obj, Long.parseLong(columnValue, 10));
|
||||
} else if(fieldType == float.class || fieldType == Float.class) {
|
||||
ReflectionUtils.setField(field, obj, Float.parseFloat(columnValue));
|
||||
} else if(fieldType == double.class || fieldType == Double.class) {
|
||||
ReflectionUtils.setField(field, obj, Double.parseDouble(columnValue));
|
||||
} else if(fieldType == Date.class) {
|
||||
int dataType = columnHeader.getDataType();
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
if(dataType == DataTypes.DATE) {
|
||||
if(columnValue.length() == 8) { // yyyyMMdd
|
||||
String year = columnValue.substring(0, 4);
|
||||
String month = columnValue.substring(4, 6);
|
||||
String day = columnValue.substring(6, 8);
|
||||
|
||||
calendar.set(Calendar.YEAR, Integer.parseInt(year, 10));
|
||||
calendar.set(Calendar.MONTH, Integer.parseInt(month, 10) - 1);
|
||||
calendar.set(Calendar.DAY_OF_MONTH, Integer.parseInt(day, 10));
|
||||
|
||||
} else { // DataTypes.DATE 타입에 8자리 숫자가 들어와야 하는데 그러지 않은 것이므로 예외처리 대상이다
|
||||
|
||||
}
|
||||
} else if(dataType == DataTypes.TIME) {
|
||||
if(columnValue.length() > 6) {
|
||||
String hour = columnValue.substring(0, 2);
|
||||
String minute = columnValue.substring(2, 4);
|
||||
String second = columnValue.substring(4, 6);
|
||||
String milisecond = columnValue.substring(6, 9);
|
||||
|
||||
calendar.set(Calendar.HOUR_OF_DAY, Integer.parseInt(hour, 10));
|
||||
calendar.set(Calendar.MINUTE, Integer.parseInt(minute, 10));
|
||||
calendar.set(Calendar.SECOND, Integer.parseInt(second, 10));
|
||||
calendar.set(Calendar.MILLISECOND, Integer.parseInt(milisecond, 10));
|
||||
} else { // DataTypes.DATE 타입에 6자리 이상의 숫자가 들어와야 하는데 그러지 않은 것이므로 예외처리 대상이다
|
||||
|
||||
}
|
||||
} else if(dataType == DataTypes.DATE_TIME) {
|
||||
if(columnValue.length() == 17) {
|
||||
String year = columnValue.substring(0, 4);
|
||||
String month = columnValue.substring(4, 6);
|
||||
String day = columnValue.substring(6, 8);
|
||||
String hour = columnValue.substring(8, 10);
|
||||
String minute = columnValue.substring(10, 12);
|
||||
String second = columnValue.substring(12, 14);
|
||||
String milisecond = columnValue.substring(14);
|
||||
|
||||
calendar.set(Calendar.YEAR, Integer.parseInt(year, 10));
|
||||
calendar.set(Calendar.MONTH, Integer.parseInt(month, 10) - 1);
|
||||
calendar.set(Calendar.DAY_OF_MONTH, Integer.parseInt(day, 10));
|
||||
calendar.set(Calendar.HOUR_OF_DAY, Integer.parseInt(hour, 10));
|
||||
calendar.set(Calendar.MINUTE, Integer.parseInt(minute, 10));
|
||||
calendar.set(Calendar.SECOND, Integer.parseInt(second, 10));
|
||||
calendar.set(Calendar.MILLISECOND, Integer.parseInt(milisecond, 10));
|
||||
|
||||
} else { // DataTypes.DATE 타입에 14자리 이상의 숫자가 들어와야 하는데 그러지 않은 것이므로 예외처리 대상이다
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
ReflectionUtils.setField(field, obj, calendar.getTime());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
public static <T> Collection<T> getCollection(Class clazz) {
|
||||
Collection<T> result = null;
|
||||
if(clazz == ArrayList.class) {
|
||||
result = new ArrayList<T>();
|
||||
} else if(clazz == HashSet.class) {
|
||||
result = new HashSet<T>();
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
*/
|
||||
|
||||
/**
|
||||
* Java Reflection에서 Field 객체를 가져올때 해당 객체의 Super 클래스들에 대한 Field를 같이 가져오는 것이 없어서 별도로 제작했다
|
||||
* @param t
|
||||
* @return 해당 객체가 가지고 있는 Field 객체들 및 해당 객체의 Super 클래스들이 가지고 있는 Field 객체들이 들어있는 List 객체
|
||||
*/
|
||||
public static <T> List<Field> getFields(T t) {
|
||||
List<Field> fields = new ArrayList<>();
|
||||
Class<?> clazz = t.getClass();
|
||||
while (clazz != Object.class) {
|
||||
fields.addAll(Arrays.asList(clazz.getDeclaredFields()));
|
||||
clazz = clazz.getSuperclass();
|
||||
}
|
||||
return fields;
|
||||
}
|
||||
|
||||
/**
|
||||
* DataSet 클래스 객체를 Collection 인터페이스 계열의 클래스 객체로 변환하는 메소드
|
||||
* @param dataSet 변환대상이 되는 DataSet
|
||||
* @param collectionType 변환되는 Collection 계열 인터페이스 및 클래스 타입
|
||||
* @param genericClass 변환되는 Collection 계열 인터페이스 및 클래스의 내부에 들어사는 클래스 타입
|
||||
* @return
|
||||
* @throws InstantiationException
|
||||
* @throws IllegalAccessException
|
||||
*/
|
||||
public static Object convertDataSetToCollection(DataSet dataSet, Class<?> collectionType, Class<?> genericClass) throws InstantiationException, IllegalAccessException {
|
||||
Object result = null;
|
||||
int insertUpdateRowCount = dataSet.getRowCount();
|
||||
int removeRowCount = dataSet.getRemovedRowCount();
|
||||
int columnCount = dataSet.getColumnCount(); // 데이터셋에서 삭제된 데이터행(DataRow)는 별도 공간에 저장되기 때문에 이에 대한 처리를 위해 별도 변수를 잡고 이에 대한 작업을 진행한다
|
||||
|
||||
if(collectionType.isInterface()) { // Colleciton 계열 인터페이스로 선언한 경우
|
||||
if(collectionType.equals(List.class)) { // List 타입으로 받을 경우(ArrayList를 생성해서 return 해준다)
|
||||
List<Object> listResult = new ArrayList<Object>();
|
||||
|
||||
// 저장(insert, update)되어야 할 DataSet의 row들에 대한 처리
|
||||
for(int i=0; i < insertUpdateRowCount; i++) {
|
||||
if(Map.class.isAssignableFrom(genericClass)) {
|
||||
Map<String, Object> obj = makeDataAsMap(genericClass, dataSet, columnCount, i);
|
||||
listResult.add(obj);
|
||||
} else {
|
||||
Object obj = makeDataAsObject(genericClass, dataSet, columnCount, i);
|
||||
listResult.add(obj);
|
||||
}
|
||||
}
|
||||
|
||||
// 삭제(delete)되어야 할 DataSet의 row들에 대한 처리
|
||||
for(int i = 0; i < removeRowCount; i++) {
|
||||
if(Map.class.isAssignableFrom(genericClass)) {
|
||||
Map<String, Object> obj = makeRemovedDataAsMap(genericClass, dataSet, columnCount, i);
|
||||
listResult.add(obj);
|
||||
} else {
|
||||
Object obj = makeRemovedDataAsObject(genericClass, dataSet, columnCount, i);
|
||||
listResult.add(obj);
|
||||
}
|
||||
}
|
||||
|
||||
result = listResult;
|
||||
} else if(collectionType.equals(Set.class)) { // Set 타입으로 받을 경우(HashSet을 생성해서 return 해준다)
|
||||
Set<Object> setResult = new HashSet<Object>();
|
||||
|
||||
// 저장(insert, update)되어야 할 DataSet의 row들에 대한 처리
|
||||
for(int i=0; i < insertUpdateRowCount; i++) {
|
||||
if(Map.class.isAssignableFrom(genericClass)) {
|
||||
Map<String, Object> obj = makeDataAsMap(genericClass, dataSet, columnCount, i);
|
||||
setResult.add(obj);
|
||||
} else {
|
||||
Object obj = makeDataAsObject(genericClass, dataSet, columnCount, i);
|
||||
setResult.add(obj);
|
||||
}
|
||||
}
|
||||
|
||||
// 삭제(delete)되어야 할 DataSet의 row들에 대한 처리
|
||||
for(int i = 0; i < removeRowCount; i++) {
|
||||
if(Map.class.isAssignableFrom(genericClass)) {
|
||||
Map<String, Object> obj = makeRemovedDataAsMap(genericClass, dataSet, columnCount, i);
|
||||
setResult.add(obj);
|
||||
} else {
|
||||
Object obj = makeRemovedDataAsObject(genericClass, dataSet, columnCount, i);
|
||||
setResult.add(obj);
|
||||
}
|
||||
}
|
||||
|
||||
result = setResult;
|
||||
}
|
||||
} else { // List, Set 같은 인터페이스가 아니라 ArrayList, HashSet 같은 Collection 인터페이스 구현 클래스로 받은 경우
|
||||
Object checkObject = collectionType.newInstance();
|
||||
Class<?> checkType = checkObject.getClass();
|
||||
if(Collection.class.isAssignableFrom(checkType)) {
|
||||
|
||||
// 저장(insert, update)되어야 할 DataSet의 row들에 대한 처리
|
||||
for(int i=0; i < insertUpdateRowCount; i++) {
|
||||
if(Map.class.isAssignableFrom(genericClass)) {
|
||||
Map<String, Object> obj = makeDataAsMap(genericClass, dataSet, columnCount, i);
|
||||
((Collection)(checkObject)).add(obj);
|
||||
} else {
|
||||
Object obj = makeDataAsObject(genericClass, dataSet, columnCount, i);
|
||||
((Collection)(checkObject)).add(obj);
|
||||
}
|
||||
}
|
||||
|
||||
// 삭제(delete)되어야 할 DataSet의 row들에 대한 처리
|
||||
for(int i = 0; i < removeRowCount; i++) {
|
||||
if(Map.class.isAssignableFrom(genericClass)) {
|
||||
Map<String, Object> obj = makeRemovedDataAsMap(genericClass, dataSet, columnCount, i);
|
||||
((Collection)(checkObject)).add(obj);
|
||||
} else {
|
||||
Object obj = makeRemovedDataAsObject(genericClass, dataSet, columnCount, i);
|
||||
((Collection)(checkObject)).add(obj);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
result = checkObject;
|
||||
}
|
||||
|
||||
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* DataSet 객체에서 특정 row에 해당되는 객체를 Map<String, Object> 형태로 변환한다
|
||||
* 변환된 Map에서 key는 해당 DataSet의 column 이름이다.
|
||||
* @param dataSet DataSet 객체
|
||||
* @param colCount DataSet 객체의 컬럼 갯수
|
||||
* @param rowIdx DataSet 객체에서 읽고자 하는 row의 인덱스
|
||||
* @return
|
||||
* @throws IllegalAccessException
|
||||
* @throws InstantiationException
|
||||
*/
|
||||
private static Map<String, Object> makeDataAsMap(Class<?> mapType, DataSet dataSet, int colCount, int rowIdx) throws InstantiationException, IllegalAccessException {
|
||||
Map<String, Object> result = null;
|
||||
if(mapType.isInterface()) {
|
||||
result = new HashMap<String, Object>();
|
||||
} else {
|
||||
result = (Map<String, Object>) mapType.newInstance();
|
||||
}
|
||||
|
||||
result.put("rowType", dataSet.getRowType(rowIdx));
|
||||
result.put("storeDataChanges", dataSet.isStoreDataChanges());
|
||||
for(int j=0; j < colCount; j++) {
|
||||
Object columnValue = dataSet.getObject(rowIdx, j); // 데이터셋에서 해당 row에 대한 column 값을 Object로 가져온다
|
||||
|
||||
ColumnHeader columnHeader = dataSet.getColumn(j);
|
||||
String columnName = columnHeader.getName();
|
||||
result.put(columnName, columnValue);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* DataSet 객체에 저장되어 있는 삭제된 데이터에서 특정 row에 해당되는 객체를 Map<String, Object> 형태로 변환한다
|
||||
* 변환된 Map에서 key는 해당 DataSet의 column 이름이다.
|
||||
* @param dataSet DataSet 객체
|
||||
* @param colCount DataSet 객체의 컬럼 갯수
|
||||
* @param rowIdx DataSet 객체에서 읽고자 하는 row의 인덱스
|
||||
* @return
|
||||
* @throws IllegalAccessException
|
||||
* @throws InstantiationException
|
||||
*/
|
||||
private static Map<String, Object> makeRemovedDataAsMap(Class<?> mapType, DataSet dataSet, int colCount, int rowIdx) throws InstantiationException, IllegalAccessException {
|
||||
Map<String, Object> result = null;
|
||||
if(mapType.isInterface()) {
|
||||
result = new HashMap<String, Object>();
|
||||
} else {
|
||||
result = (Map<String, Object>) mapType.newInstance();
|
||||
}
|
||||
|
||||
result.put("rowType", DataSet.ROW_TYPE_DELETED);
|
||||
result.put("storeDataChanges", dataSet.isStoreDataChanges());
|
||||
for(int j=0; j < colCount; j++) {
|
||||
Object columnValue = dataSet.getRemovedData(rowIdx, j); // 데이터셋에서 해당 row에 대한 column 값을 Object로 가져온다
|
||||
|
||||
ColumnHeader columnHeader = dataSet.getColumn(j);
|
||||
String columnName = columnHeader.getName();
|
||||
result.put(columnName, columnValue);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* DataSet 객체에서 특정 row에 해당되는 객체를 특정 클래스의 객체로 변환한다
|
||||
* @param innerClass 특정 클래스타입
|
||||
* @param dataSet DataSet 객체
|
||||
* @param colCount DataSet 객체의 컬럼 갯수
|
||||
* @param rowIdx DataSet 객체에서 읽고자 하는 row의 인덱스
|
||||
* @return
|
||||
* @throws InstantiationException
|
||||
* @throws IllegalArgumentException
|
||||
* @throws IllegalAccessException
|
||||
*/
|
||||
private static Object makeDataAsObject(Class<?> innerClass, DataSet dataSet, int colCount, int rowIdx) throws InstantiationException, IllegalArgumentException, IllegalAccessException {
|
||||
Object obj = innerClass.newInstance();
|
||||
Field rowTypeField = ReflectionUtils.findField(innerClass, "rowType");
|
||||
Field storeDataChangesField = ReflectionUtils.findField(innerClass, "storeDataChanges");
|
||||
ReflectionUtils.makeAccessible(rowTypeField);
|
||||
ReflectionUtils.makeAccessible(storeDataChangesField);
|
||||
rowTypeField.setInt(obj, dataSet.getRowType(rowIdx));
|
||||
storeDataChangesField.setBoolean(obj, dataSet.isStoreDataChanges());
|
||||
|
||||
for(int j=0; j < colCount; j++) {
|
||||
String columnValue = dataSet.getString(rowIdx, j); // 데이터셋에서 해당 row에 대한 column 값을 String으로 가져온다
|
||||
|
||||
ColumnHeader columnHeader = dataSet.getColumn(j);
|
||||
String columnName = columnHeader.getName();
|
||||
|
||||
Field field = ReflectionUtils.findField(innerClass, columnName);
|
||||
|
||||
if(field == null) { // 컬럼이름으로 된 멤버변수를 찾지 못한 경우
|
||||
continue;
|
||||
} else {
|
||||
XplatformReflectionUtils.setField(field, columnHeader, obj, columnValue);
|
||||
}
|
||||
}
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
||||
/**
|
||||
* DataSet 객체에서 특정 row에 해당되는 객체를 특정 클래스의 객체로 변환한다
|
||||
* @param innerClass 특정 클래스타입
|
||||
* @param dataSet DataSet 객체
|
||||
* @param colCount DataSet 객체의 컬럼 갯수
|
||||
* @param rowIdx DataSet 객체에서 읽고자 하는 row의 인덱스
|
||||
* @return
|
||||
* @throws InstantiationException
|
||||
* @throws IllegalArgumentException
|
||||
* @throws IllegalAccessException
|
||||
*/
|
||||
private static Object makeRemovedDataAsObject(Class<?> innerClass, DataSet dataSet, int colCount, int rowIdx) throws InstantiationException, IllegalArgumentException, IllegalAccessException {
|
||||
Object obj = innerClass.newInstance();
|
||||
Field rowTypeField = ReflectionUtils.findField(innerClass, "rowType");
|
||||
Field storeDataChangesField = ReflectionUtils.findField(innerClass, "storeDataChanges");
|
||||
ReflectionUtils.makeAccessible(rowTypeField);
|
||||
ReflectionUtils.makeAccessible(storeDataChangesField);
|
||||
|
||||
// 삭제된 행의 rowType을 읽어오는 메소드는 없기 때문에(DataSet 클래스의 getRowType 메소드는 저장이나 변경된 데이터셋에 대한 rowType 을 읽어오는 것이지 삭제된 행에 대한 rowType을 읽는 것이 아니다)
|
||||
// 이렇게 된 원인은 삭제된 행을 별도로 저장하는 상황때문에 그리 된거지만 어차피 삭제된 행은 rowType이 DataSet.ROW_TYPE_DELETED로 설정되기 때문에 이것으로 강제 설정을 해준다
|
||||
rowTypeField.setInt(obj, DataSet.ROW_TYPE_DELETED);
|
||||
storeDataChangesField.setBoolean(obj, dataSet.isStoreDataChanges());
|
||||
|
||||
for(int j=0; j < colCount; j++) {
|
||||
String columnValue = dataSet.getRemovedStringData(rowIdx, j); // 삭제된 데이터의 해당 row에 대한 column 값을 String으로 가져온다
|
||||
|
||||
ColumnHeader columnHeader = dataSet.getColumn(j);
|
||||
String columnName = columnHeader.getName();
|
||||
|
||||
Field field = ReflectionUtils.findField(innerClass, columnName);
|
||||
|
||||
if(field == null) { // 컬럼이름으로 된 멤버변수를 찾지 못한 경우
|
||||
continue;
|
||||
} else {
|
||||
XplatformReflectionUtils.setField(field, columnHeader, obj, columnValue);
|
||||
}
|
||||
}
|
||||
|
||||
return obj;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package com.terry.xplatform.config.xplatform;
|
||||
|
||||
import com.tobesoft.xplatform.tx.PlatformType;
|
||||
|
||||
public class XplatformConstants implements PlatformType {
|
||||
public static final String CONTENT_TYPE_CSV = "csv";
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.terry.xplatform.config.xplatform.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
@Target({ElementType.PARAMETER})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
public @interface RequestDataSet {
|
||||
|
||||
String name() default ""; // 읽고자하는 데이터셋 이름을 받아들이는 부분
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.terry.xplatform.config.xplatform.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
@Target({ElementType.PARAMETER})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
public @interface RequestDataSetList {
|
||||
|
||||
String name() default ""; // 읽고자하는 데이터셋 리스트 이름을 받아들이는 부분
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.terry.xplatform.config.xplatform.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
@Target({ElementType.PARAMETER})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
public @interface RequestVariable {
|
||||
|
||||
String name() default ""; // 읽고자하는 변수명 이름을 받아들이는 부분
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.terry.xplatform.config.xplatform.data;
|
||||
|
||||
import com.terry.xplatform.vo.SampleDefaultVO;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
* XPlatform의 DataSet에서 변환되는 VO는 이 클래스를 반드시 상속받아야 한다
|
||||
* @author Terry Chang
|
||||
*
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
public abstract class XplatformVO extends SampleDefaultVO {
|
||||
|
||||
private int rowType;
|
||||
private boolean storeDataChanges;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.terry.xplatform.config.xplatform.support;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
|
||||
import javax.servlet.ServletInputStream;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletRequestWrapper;
|
||||
|
||||
import org.springframework.util.StreamUtils;
|
||||
|
||||
public class HttpRequestWrapper extends HttpServletRequestWrapper {
|
||||
|
||||
private byte[] bodyData;
|
||||
|
||||
public HttpRequestWrapper(HttpServletRequest request) throws IOException {
|
||||
super(request);
|
||||
// TODO Auto-generated constructor stub
|
||||
InputStream is = request.getInputStream();
|
||||
bodyData = StreamUtils.copyToByteArray(is);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ServletInputStream getInputStream() throws IOException {
|
||||
// TODO Auto-generated method stub
|
||||
final ByteArrayInputStream bis = new ByteArrayInputStream(bodyData);
|
||||
return new ServletImpl(bis);
|
||||
}
|
||||
}
|
||||
|
||||
class ServletImpl extends ServletInputStream {
|
||||
|
||||
private InputStream is;
|
||||
|
||||
public ServletImpl(InputStream bis) {
|
||||
is = bis;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int read() throws IOException {
|
||||
return is.read();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int read(byte[] b) throws IOException {
|
||||
return is.read(b);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
package com.terry.xplatform.config.xplatform.support;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import javax.servlet.Filter;
|
||||
import javax.servlet.FilterChain;
|
||||
import javax.servlet.FilterConfig;
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.ServletRequest;
|
||||
import javax.servlet.ServletResponse;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* HttpServletRequest 객체를 한번 감싸주어서 request로 전달해주는 Filter이다.
|
||||
* 일반적으로 HttpServletRequest 객체의 request body를 읽었을 경우 Stream으로 읽어나가기 때문에
|
||||
* 한번 읽게 되면 다시 읽을수가 없는 상황이 된다.
|
||||
* 그래서 HttpServletRequest 객체를 한번 감싸는 Wrapper 클래스를 만든뒤에 그 클래스에 원래 request의 InputStream을 배열로 보관한뒤
|
||||
* 이 Wrapper 클래스 객체를 전달함으로써 이걸 이용하는 클래스는 Wrapper 클래스 객체의 배열을 읽게 함으로써 여러번 읽을수 있게끔 해준다
|
||||
*
|
||||
* 이 클래스를 Spring Bean으로 등록할땐 Servlet Context가 아닌 Root Context에 등록해야 한다
|
||||
* 그래야 web.xml에서 Spring의 DelegatingFilterProxy 클래스를 통해 이 Filter 클래스를 사용할 수 있다(Spring의 Bean Injection 기능 사용이 가능)
|
||||
* Spring Security에서 설정 xml이 Root Context에 등록되는 것과 같은 의미이다
|
||||
*
|
||||
* @author Terry Chang
|
||||
*
|
||||
*/
|
||||
@Service
|
||||
public class HttpServletRequestWrapperFilter implements Filter {
|
||||
|
||||
@Override
|
||||
public void init(FilterConfig filterConfig) throws ServletException {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
|
||||
throws IOException, ServletException {
|
||||
// TODO Auto-generated method stub
|
||||
HttpServletRequest httpServletRequest = (HttpServletRequest)request;
|
||||
HttpRequestWrapper httpRequestWrapper = new HttpRequestWrapper(httpServletRequest);
|
||||
chain.doFilter(httpRequestWrapper, response);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void destroy() {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,264 @@
|
||||
package com.terry.xplatform.config.xplatform.support;
|
||||
|
||||
import java.lang.annotation.Annotation;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.ParameterizedType;
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.springframework.core.MethodParameter;
|
||||
import org.springframework.util.ReflectionUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.web.bind.support.WebArgumentResolver;
|
||||
import org.springframework.web.bind.support.WebDataBinderFactory;
|
||||
import org.springframework.web.context.request.NativeWebRequest;
|
||||
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
|
||||
import org.springframework.web.method.support.ModelAndViewContainer;
|
||||
|
||||
import com.terry.xplatform.config.utils.XplatformReflectionUtils;
|
||||
import com.terry.xplatform.config.xplatform.annotation.RequestDataSet;
|
||||
import com.terry.xplatform.config.xplatform.annotation.RequestDataSetList;
|
||||
import com.terry.xplatform.config.xplatform.annotation.RequestVariable;
|
||||
import com.tobesoft.xplatform.data.DataSet;
|
||||
import com.tobesoft.xplatform.data.DataSetList;
|
||||
import com.tobesoft.xplatform.data.PlatformData;
|
||||
import com.tobesoft.xplatform.data.Variable;
|
||||
import com.tobesoft.xplatform.data.VariableList;
|
||||
import com.tobesoft.xplatform.tx.HttpPlatformRequest;
|
||||
import com.tobesoft.xplatform.tx.PlatformRequest;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
public class XplatformArgumentResolver implements HandlerMethodArgumentResolver {
|
||||
|
||||
/**
|
||||
* DataSetList 객체를 HttpServletRequest의 setAttribute 메소드를 이용해서 저장할 때 사용되는 이름
|
||||
*/
|
||||
private final String DATASETLIST_NAME;
|
||||
|
||||
/**
|
||||
* VariableList 객체를 HttpServletRequest의 setAttribute 메소드를 이용해서 저장할 때 사용되는 이름
|
||||
*/
|
||||
private final String VARIABLELIST_NAME;
|
||||
|
||||
public XplatformArgumentResolver() {
|
||||
this.DATASETLIST_NAME = "dataSetList";
|
||||
this.VARIABLELIST_NAME = "variableList";
|
||||
}
|
||||
|
||||
public XplatformArgumentResolver(String dataSetListName, String variableListName) {
|
||||
this.DATASETLIST_NAME = dataSetListName;
|
||||
this.VARIABLELIST_NAME = variableListName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsParameter(MethodParameter parameter) {
|
||||
// TODO Auto-generated method stub
|
||||
boolean result = false;
|
||||
|
||||
if(parameter.hasParameterAnnotation(RequestDataSet.class)){
|
||||
result = true;
|
||||
}else if(parameter.hasParameterAnnotation(RequestVariable.class)){
|
||||
result = true;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
Class<?> type = parameter.getParameterType();
|
||||
Annotation[] annotations = parameter.getParameterAnnotations();
|
||||
HttpServletRequest request = (HttpServletRequest)webRequest.getNativeRequest();
|
||||
// HttpServletRequest request = webRequest.getNativeRequest(HttpServletRequest.class);
|
||||
// PlatformRequest platformRequest = new HttpPlatformRequest(request, "utf-8");
|
||||
|
||||
DataSetList dataSetList = null;
|
||||
VariableList variableList = null;
|
||||
|
||||
// 관련 처리를 할때마다 매번 Request의 Body에 있는 DataSetList와 VariableList를 만들면 오버헤드 소지가 있어서
|
||||
// 처음에 한번만 읽고 DataSetList와 VariableList를 HttpServletRequest에 setAttribute를 통해 저장을 한 뒤에
|
||||
// 다시 읽을때는 Request의 Body를 읽는게 아니라 저장되어 있는 것을 다시 읽어서 재활용한다
|
||||
if(request.getAttribute(DATASETLIST_NAME) == null || request.getAttribute(VARIABLELIST_NAME) == null) {
|
||||
PlatformRequest platformRequest = new HttpPlatformRequest(request.getInputStream());
|
||||
platformRequest.receiveData();
|
||||
PlatformData platformData = platformRequest.getData();
|
||||
dataSetList = platformData.getDataSetList();
|
||||
variableList = platformData.getVariableList();
|
||||
|
||||
request.setAttribute(DATASETLIST_NAME, dataSetList);
|
||||
request.setAttribute(VARIABLELIST_NAME, variableList);
|
||||
} else {
|
||||
dataSetList = (DataSetList)request.getAttribute(DATASETLIST_NAME);
|
||||
variableList = (VariableList)request.getAttribute(VARIABLELIST_NAME);
|
||||
}
|
||||
|
||||
Object result = null;
|
||||
|
||||
|
||||
for(Annotation annotation : annotations){
|
||||
Class<? extends Annotation> annotationClass = annotation.annotationType();
|
||||
|
||||
if(annotationClass.equals(RequestDataSetList.class)){ // @RequestDataSetList 어노테이션에 대한 처리(이 어노테이션은 DataSetList 클래스객체만 파라미터 타입으로 받을 수 있다)
|
||||
if(type.equals(DataSetList.class)) {
|
||||
result = dataSetList;
|
||||
}else{
|
||||
result = WebArgumentResolver.UNRESOLVED;
|
||||
}
|
||||
} else if(annotationClass.equals(RequestDataSet.class)){ // @RequestDataSet 어노테이션에 대한 처리
|
||||
RequestDataSet requestDataSet = (RequestDataSet)annotation;
|
||||
String dataSetName = requestDataSet.name();
|
||||
if(!StringUtils.hasText(dataSetName)) { // DataSet 이름이 빠진것이므로 이거는 예외처리 진행하자
|
||||
result = WebArgumentResolver.UNRESOLVED;
|
||||
} else {
|
||||
DataSet dataSet = dataSetList.get(dataSetName);
|
||||
if(type.equals(DataSet.class)) { // DataSet 파라미터 타입으로 받을 경우는 해당 이름으로 DataSet을 찾아서 이를 return 해주면 된다
|
||||
result = dataSet;
|
||||
} else { // DataSet 클래스 객체는 Collection 인터페이스 계열 클래스들만 변환이 가능하기 때문에 이에 대한 체크
|
||||
if(Collection.class.isAssignableFrom(type)) {
|
||||
// Type[] typeArray = ((ParameterizedType)parameter.getGenericParameterType()).getActualTypeArguments();
|
||||
// Class<?> genericClassType = (Class<?>) ((ParameterizedType)parameter.getGenericParameterType()).getActualTypeArguments()[0];
|
||||
|
||||
Type genericType = ((ParameterizedType)parameter.getGenericParameterType()).getActualTypeArguments()[0];
|
||||
Class<?> genericClass = null;
|
||||
if(genericType instanceof Class) {
|
||||
genericClass = (Class<?>)genericType;
|
||||
} else {
|
||||
Type rawType = ((ParameterizedType)genericType).getRawType();
|
||||
genericClass = (Class<?>)rawType;
|
||||
}
|
||||
|
||||
result = XplatformReflectionUtils.convertDataSetToCollection(dataSet, type, genericClass);
|
||||
} else {
|
||||
result = WebArgumentResolver.UNRESOLVED;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// XplatformReflectionUtils.convertDataSetToCollection 메소드로 변환할 수 없는 타입일 경우 null이 return 되기 때문에 이에 대한 처리
|
||||
if(result == null) {
|
||||
result = WebArgumentResolver.UNRESOLVED;
|
||||
}
|
||||
} else if(annotationClass.equals(RequestVariable.class)) { // @RequestVariable 어노테이션에 대한 처리
|
||||
RequestVariable requestVariable = (RequestVariable)annotation;
|
||||
String variableName = requestVariable.name();
|
||||
Variable variable = variableList.get(variableName);
|
||||
if(StringUtils.hasText(variableName)) { // 특정 변수 이름이 있기 때문에 해당 이름에 대한 값을 낸다
|
||||
if(type.equals(int.class)) {
|
||||
result = variable.getInt();
|
||||
} else if(type.equals(Integer.class)) {
|
||||
result = new Integer(variable.getInt());
|
||||
} else if(type.equals(long.class)) {
|
||||
result = variable.getLong();
|
||||
} else if(type.equals(Long.class)) {
|
||||
result = new Long(variable.getLong());
|
||||
} else if(type.equals(float.class)) {
|
||||
result = variable.getFloat();
|
||||
} else if(type.equals(Float.class)) {
|
||||
result = new Float(variable.getFloat());
|
||||
} else if(type.equals(double.class)) {
|
||||
result = variable.getDouble();
|
||||
} else if(type.equals(Double.class)) {
|
||||
result = new Double(variable.getDouble());
|
||||
} else if(type.equals(Date.class)) {
|
||||
result = variable.getDateTime();
|
||||
} else if(type.equals(String.class)) {
|
||||
result = variable.getString();
|
||||
} else {
|
||||
result = variable.getObject();
|
||||
}
|
||||
} else { // 특정 변수 이름이 없으면 VO로 매핑하는 것이기 때문에 오히려 이런 경우 자바의 데이터타입과는 매핑을 할 수 없다
|
||||
List<String> keyList = variableList.keyList();
|
||||
|
||||
if(Collection.class.isAssignableFrom(type)) {
|
||||
Collection collectionResult = null;
|
||||
if(type.isInterface()) {
|
||||
if(type == List.class) {
|
||||
collectionResult = new ArrayList<Object>();
|
||||
} else if(type == Set.class) {
|
||||
collectionResult = new HashSet<Object>();
|
||||
}
|
||||
} else {
|
||||
collectionResult = (Collection)type.newInstance();
|
||||
}
|
||||
|
||||
for(String key : keyList) {
|
||||
collectionResult.add(variableList.getObject(key));
|
||||
}
|
||||
|
||||
result = collectionResult;
|
||||
} else if(Map.class.isAssignableFrom(type)) {
|
||||
Map<String, Object> mapResult = null;
|
||||
if(type.isInterface()) {
|
||||
mapResult = new HashMap<String, Object>();
|
||||
} else {
|
||||
mapResult = (Map<String, Object>)type.newInstance();
|
||||
}
|
||||
|
||||
for(String key : keyList) {
|
||||
mapResult.put(key, variableList.getObject(key));
|
||||
}
|
||||
|
||||
result = mapResult;
|
||||
} else {
|
||||
// 객체로 변환하는 과정에서 예외가 발생하면 지원하지 않는 타입이기 때문에 그에 대한 처리를 한다
|
||||
try {
|
||||
|
||||
Object obj = type.newInstance();
|
||||
|
||||
for(String key : keyList) {
|
||||
Field keyField = ReflectionUtils.findField(type, key);
|
||||
ReflectionUtils.makeAccessible(keyField);
|
||||
|
||||
Class<?> keyFieldType = keyField.getType();
|
||||
|
||||
if(keyFieldType == int.class) {
|
||||
keyField.setInt(obj, variableList.getInt(key));
|
||||
} else if(keyFieldType == Integer.class) {
|
||||
keyField.set(obj, new Integer(variableList.getInt(key)));
|
||||
} else if(keyFieldType == long.class) {
|
||||
keyField.setLong(obj, variableList.getLong(key));
|
||||
} else if(keyFieldType == Long.class) {
|
||||
keyField.set(obj, new Long(variableList.getLong(key)));
|
||||
} else if(keyFieldType == float.class) {
|
||||
keyField.setFloat(obj, variableList.getFloat(key));
|
||||
} else if(keyFieldType == Float.class) {
|
||||
keyField.set(obj, new Float(variableList.getFloat(key)));
|
||||
} else if(keyFieldType == double.class) {
|
||||
keyField.setDouble(obj, variableList.getDouble(key));
|
||||
} else if(keyFieldType == Double.class) {
|
||||
keyField.set(obj, new Double(variableList.getFloat(key)));
|
||||
} else if(keyFieldType == Date.class) {
|
||||
keyField.set(obj, variableList.getDateTime(key));
|
||||
} else if(keyFieldType == String.class) {
|
||||
keyField.set(obj, variableList.getString(key));
|
||||
} else {
|
||||
keyField.set(obj, variableList.getObject(key));
|
||||
}
|
||||
}
|
||||
|
||||
result = obj;
|
||||
} catch(Exception e) {
|
||||
result = WebArgumentResolver.UNRESOLVED;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,317 @@
|
||||
package com.terry.xplatform.config.xplatform.web;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.validation.BeanPropertyBindingResult;
|
||||
import org.springframework.web.servlet.support.RequestContext;
|
||||
import org.springframework.web.servlet.view.AbstractTemplateView;
|
||||
|
||||
import com.terry.xplatform.config.utils.XplatformReflectionUtils;
|
||||
import com.terry.xplatform.config.xplatform.XplatformConstants;
|
||||
import com.tobesoft.xplatform.data.DataSet;
|
||||
import com.tobesoft.xplatform.data.DataSetList;
|
||||
import com.tobesoft.xplatform.data.DataTypes;
|
||||
import com.tobesoft.xplatform.data.PlatformData;
|
||||
import com.tobesoft.xplatform.data.Variable;
|
||||
import com.tobesoft.xplatform.data.VariableList;
|
||||
import com.tobesoft.xplatform.data.datatype.PlatformDataType;
|
||||
import com.tobesoft.xplatform.tx.HttpPlatformResponse;
|
||||
|
||||
public class XplatformView extends AbstractTemplateView {
|
||||
|
||||
/**
|
||||
* Xplatform의 작업결과가 성공적이었을때의 ErrorCode 값을 설정한다
|
||||
*/
|
||||
private final String ERROR_CODE_VALUE;
|
||||
|
||||
/**
|
||||
* Xplatform의 작업결과가 성공적이었을때의 ErrorMsg 값을 설정한다
|
||||
*/
|
||||
private final String ERROR_MSG_VALUE;
|
||||
|
||||
public XplatformView() {
|
||||
this.ERROR_CODE_VALUE = "0";
|
||||
this.ERROR_MSG_VALUE = "";
|
||||
}
|
||||
|
||||
public XplatformView(String errorCodeValue, String errorMsgValue) {
|
||||
this.ERROR_CODE_VALUE = errorCodeValue;
|
||||
this.ERROR_MSG_VALUE = errorMsgValue;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void renderMergedTemplateModel(Map<String, Object> model, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
|
||||
// TODO Auto-generated method stub
|
||||
String contentType = StringUtils.hasText((String)model.get("contentType")) ? (String)model.get("contentType") : XplatformConstants.CONTENT_TYPE_XML;
|
||||
model.remove("contentType");
|
||||
|
||||
if(contentType == XplatformConstants.CONTENT_TYPE_XML) {
|
||||
VariableList variableList = new VariableList();
|
||||
DataSetList dataSetList = new DataSetList();
|
||||
HttpPlatformResponse httpPlatformResponse = new HttpPlatformResponse(httpServletResponse, XplatformConstants.CONTENT_TYPE_XML);
|
||||
|
||||
for(Entry<String, Object> entry : model.entrySet()) {
|
||||
String key = entry.getKey();
|
||||
Object object = entry.getValue();
|
||||
if(object instanceof Collection) {
|
||||
@SuppressWarnings("unchecked")
|
||||
DataSet dataSet = makeDataSet(key, (Collection<Object>)object);
|
||||
dataSetList.add(dataSet);
|
||||
} else {
|
||||
Variable variable = null;
|
||||
if(object instanceof Integer) {
|
||||
variable = new Variable(key, PlatformDataType.INT, (Integer)object);
|
||||
} else if(object instanceof Long) {
|
||||
variable = new Variable(key, PlatformDataType.LONG, (Long)object);
|
||||
} else if(object instanceof Float) {
|
||||
variable = new Variable(key, PlatformDataType.FLOAT, (Float)object);
|
||||
} else if(object instanceof Double) {
|
||||
variable = new Variable(key, PlatformDataType.DOUBLE, (Double)object);
|
||||
} else if(object instanceof Date) {
|
||||
variable = new Variable(key, PlatformDataType.DATE, (Date)object);
|
||||
} else if(object instanceof String){
|
||||
variable = new Variable(key, PlatformDataType.STRING, (String)object);
|
||||
} else if(object instanceof Variable) {
|
||||
variable = (Variable)object;
|
||||
} else {
|
||||
// model에 들어있는 클래스 객체중에 DataSet으로 변환할 수 없는 클래스 객체가 들어있는것은 bypass 하게끔 한다
|
||||
|
||||
if(skipDataSet(object)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// 객체의 멤버변수들 값을 읽어서 한 행짜리 데이터셋으로 return 하는 방법을 고민해보자
|
||||
DataSet dataSet = makeDataSet(key, object);
|
||||
dataSetList.add(dataSet);
|
||||
}
|
||||
if(variable != null) {
|
||||
variableList.add(variable);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// XplatformView를 만든다는 것은 그 이전단계까지는 예외없이 진행되었다는 뜻이기 때문에 Xplatform에서 읽어들일변수인 ErrorCode 와 ErrorMsg 변수에 작업이 성공했다는 내용을 설정한다
|
||||
// Controller에서 ErrorCode와 ErrorMsg를 설정한 것이 없으면 XplatformView에서 설정하도록 한다
|
||||
if(!model.containsKey("ErrorCode")) {
|
||||
variableList.add("ErrorCode", ERROR_CODE_VALUE);
|
||||
}
|
||||
|
||||
if(!model.containsKey("ErrorMsg")) {
|
||||
variableList.add("ErrorMsg", ERROR_MSG_VALUE);
|
||||
}
|
||||
|
||||
PlatformData platformData = new PlatformData();
|
||||
platformData.setVariableList(variableList);
|
||||
platformData.setDataSetList(dataSetList);
|
||||
httpPlatformResponse.setData(platformData);
|
||||
httpPlatformResponse.sendData();
|
||||
|
||||
} else if(contentType == XplatformConstants.CONTENT_TYPE_CSV) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Collection 객체와 DataSet 이름을 파라미터로 받아 해당 객체가 들어있는 DataSet을 return 한다
|
||||
* @param dataSetName
|
||||
* @param collection
|
||||
* @return
|
||||
* @throws IllegalArgumentException
|
||||
* @throws IllegalAccessException
|
||||
*/
|
||||
private DataSet makeDataSet(String dataSetName, Collection<Object> collection) throws IllegalArgumentException, IllegalAccessException {
|
||||
DataSet dataSet = new DataSet(dataSetName);
|
||||
Object objColumn = null;
|
||||
if(collection != null && collection.size() != 0) {
|
||||
objColumn = collection.iterator().next();
|
||||
setColumnHeader(dataSet, objColumn);
|
||||
addCollectionToDataSet(dataSet, collection);
|
||||
}
|
||||
return dataSet;
|
||||
}
|
||||
|
||||
/**
|
||||
* Object 객체와 DataSet 이름을 파라미터로 받아 해당 객체가 들어있는 DataSet을 return 한다
|
||||
* @param dataSetName
|
||||
* @param object
|
||||
* @return
|
||||
* @throws IllegalArgumentException
|
||||
* @throws IllegalAccessException
|
||||
*/
|
||||
private DataSet makeDataSet(String dataSetName, Object object) throws IllegalArgumentException, IllegalAccessException {
|
||||
DataSet dataSet = new DataSet(dataSetName);
|
||||
setColumnHeader(dataSet, object);
|
||||
addObjectToDataSet(dataSet, object);
|
||||
return dataSet;
|
||||
}
|
||||
|
||||
/**
|
||||
* DataSet 객체와 DataSet에 들어갈 객체를 파라미터로 받아 DataSet 객체에 ColumnHeader 정보를 설정한다
|
||||
* @param dataSet
|
||||
* @param object
|
||||
*/
|
||||
private void setColumnHeader(DataSet dataSet, Object object) {
|
||||
if(object instanceof Map) {
|
||||
@SuppressWarnings("unchecked")
|
||||
Map<String, Object> map = (Map<String, Object>) object;
|
||||
for(Map.Entry<String, Object> entry : map.entrySet()) {
|
||||
Object value = entry.getValue();
|
||||
|
||||
if(value instanceof Integer) {
|
||||
dataSet.addColumn(entry.getKey(), DataTypes.INT);
|
||||
} else if(value instanceof Long) {
|
||||
dataSet.addColumn(entry.getKey(), DataTypes.LONG);
|
||||
} else if(value instanceof Float) {
|
||||
dataSet.addColumn(entry.getKey(), DataTypes.FLOAT);
|
||||
} else if(value instanceof Double) {
|
||||
dataSet.addColumn(entry.getKey(), DataTypes.DOUBLE);
|
||||
} else if(value instanceof Date) {
|
||||
dataSet.addColumn(entry.getKey(), DataTypes.DATE);
|
||||
} else {
|
||||
dataSet.addColumn(entry.getKey(), DataTypes.STRING);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
List<Field> fieldList = XplatformReflectionUtils.getFields(object);
|
||||
for(Field field : fieldList) {
|
||||
field.setAccessible(true);
|
||||
String fieldName = field.getName();
|
||||
Class<?> classType = field.getType();
|
||||
if(classType == int.class || classType == Integer.class) {
|
||||
dataSet.addColumn(fieldName, DataTypes.INT);
|
||||
} else if(classType == long.class || classType == Long.class) {
|
||||
dataSet.addColumn(fieldName, DataTypes.LONG);
|
||||
} else if(classType == float.class || classType == Float.class) {
|
||||
dataSet.addColumn(fieldName, DataTypes.FLOAT);
|
||||
} else if(classType == double.class || classType == Double.class) {
|
||||
dataSet.addColumn(fieldName, DataTypes.DOUBLE);
|
||||
} else if(classType == Date.class) {
|
||||
dataSet.addColumn(fieldName, DataTypes.DATE);
|
||||
} else {
|
||||
dataSet.addColumn(fieldName, DataTypes.STRING);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Collection 객체를 받아 Collection 객체 안에 있는 객체들을 묶어서 하나의 DataSet으로 만들어서 추가한다
|
||||
* @param dataSet
|
||||
* @param collection
|
||||
* @throws IllegalArgumentException
|
||||
* @throws IllegalAccessException
|
||||
*/
|
||||
private void addCollectionToDataSet(DataSet dataSet, Collection<Object> collection) throws IllegalArgumentException, IllegalAccessException {
|
||||
Iterator<Object> iterator = collection.iterator();
|
||||
// Object value = collection.iterator().next();
|
||||
|
||||
while(iterator.hasNext()) {
|
||||
Object value = iterator.next();
|
||||
addObjectToDataSet(dataSet, value);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Object 객체를 받아 DataSet에 추가한다
|
||||
* @param dataSet 대상이 되는 DataSet
|
||||
* @param object 추가되는 Object 객체
|
||||
* @throws IllegalArgumentException
|
||||
* @throws IllegalAccessException
|
||||
*/
|
||||
private void addObjectToDataSet(DataSet dataSet, Object object) throws IllegalArgumentException, IllegalAccessException {
|
||||
int rowIdx = dataSet.newRow();
|
||||
|
||||
if(object instanceof Map) {
|
||||
@SuppressWarnings("unchecked")
|
||||
Map<String, Object> map = (Map<String, Object>)object;
|
||||
for(Map.Entry<String, Object> entry : map.entrySet()) {
|
||||
String columnName = entry.getKey();
|
||||
Object mapValue = entry.getValue();
|
||||
|
||||
if(mapValue instanceof Integer) {
|
||||
dataSet.set(rowIdx, columnName, (int)mapValue);
|
||||
} else if(mapValue instanceof Long) {
|
||||
dataSet.set(rowIdx, columnName, (long)mapValue);
|
||||
} else if(mapValue instanceof Float) {
|
||||
dataSet.set(rowIdx, columnName, (float)mapValue);
|
||||
} else if(mapValue instanceof Double) {
|
||||
dataSet.set(rowIdx, columnName, (double)mapValue);
|
||||
} else if(mapValue instanceof Date) {
|
||||
dataSet.set(rowIdx, columnName, (Date)mapValue);
|
||||
} else if(mapValue instanceof Boolean) { // boolean 계열은 String의 valueOf 메소드로 값을 설정한다
|
||||
dataSet.set(rowIdx, columnName, String.valueOf((Boolean)mapValue));
|
||||
} else {
|
||||
dataSet.set(rowIdx, columnName, (String)mapValue);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
List<Field> fieldList = XplatformReflectionUtils.getFields(object);
|
||||
|
||||
for(Field field : fieldList) {
|
||||
field.setAccessible(true);
|
||||
String columnName = field.getName();
|
||||
Class<?> classType = field.getType();
|
||||
|
||||
if(classType == int.class ) {
|
||||
dataSet.set(rowIdx, columnName, field.getInt(object));
|
||||
} else if(classType == Integer.class) {
|
||||
dataSet.set(rowIdx, columnName, field.get(object) == null ? null : ((Integer)field.get(object)).intValue());
|
||||
} else if(classType == long.class) {
|
||||
dataSet.set(rowIdx, columnName, field.getLong(object));
|
||||
} else if(classType == Long.class) {
|
||||
dataSet.set(rowIdx, columnName, field.get(object) == null ? null : ((Long)field.get(object)).longValue());
|
||||
} else if(classType == float.class) {
|
||||
dataSet.set(rowIdx, columnName, field.getFloat(object));
|
||||
} else if(classType == Float.class) {
|
||||
dataSet.set(rowIdx, columnName, field.get(object) == null ? null : ((Float)field.get(object)).floatValue());
|
||||
} else if(classType == double.class) {
|
||||
dataSet.set(rowIdx, columnName, field.getDouble(object));
|
||||
} else if(classType == Double.class) {
|
||||
dataSet.set(rowIdx, columnName, field.get(object) == null ? null : ((Double)field.get(object)).doubleValue());
|
||||
} else if(classType == Date.class) {
|
||||
dataSet.set(rowIdx, columnName, (Date)(field.get(object)));
|
||||
} else if(classType == boolean.class || classType == Boolean.class) { // boolean 계열은 String의 valueOf 메소드로 값을 설정한다
|
||||
dataSet.set(rowIdx, columnName, String.valueOf((field.get(object))));
|
||||
} else {
|
||||
dataSet.set(rowIdx, columnName, (String)(field.get(object)));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* renderMergedTemplateModel 메소드의 model 파라미터에 있는 객체들 중에 DataSet으로 표현할 수 없는 클래스들이 있다(주로 Spring이 자체적으로 넣어놓은 property bind 등의 클래스)
|
||||
* model에 있는 객체중 이런 클래스 객체는 DataSet으로의 변환을 제외시킬 목적으로 만든 메소드이며 개발하는 도중에 이런 성격의 클래스가 있으면 classArray 배열에 클래스를 객체에 있는 것중ㅇ
|
||||
* @param object
|
||||
* @return
|
||||
*/
|
||||
private boolean skipDataSet(Object object) {
|
||||
Class<?> [] classArray = new Class<?>[] {BeanPropertyBindingResult.class, RequestContext.class};
|
||||
|
||||
boolean result = false;
|
||||
Class<?> objectClass = object.getClass();
|
||||
|
||||
for(Class<?> clazz : classArray) {
|
||||
if(clazz == objectClass) {
|
||||
result = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.terry.xplatform.config.xplatform.web;
|
||||
|
||||
import org.springframework.web.servlet.view.AbstractTemplateViewResolver;
|
||||
import org.springframework.web.servlet.view.AbstractUrlBasedView;
|
||||
|
||||
public class XplatformViewResolver extends AbstractTemplateViewResolver {
|
||||
|
||||
@Override
|
||||
protected Class getViewClass() {
|
||||
// TODO Auto-generated method stub
|
||||
return XplatformView.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected AbstractUrlBasedView buildView(String viewName) throws Exception {
|
||||
// TODO Auto-generated method stub
|
||||
XplatformView view = (XplatformView)super.buildView(viewName);
|
||||
return view;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
23
src/main/java/com/terry/xplatform/dao/SampleDAO.java
Normal file
23
src/main/java/com/terry/xplatform/dao/SampleDAO.java
Normal file
@@ -0,0 +1,23 @@
|
||||
package com.terry.xplatform.dao;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import com.terry.xplatform.vo.SampleDefaultVO;
|
||||
import com.terry.xplatform.vo.SampleVO;
|
||||
|
||||
@Mapper
|
||||
public interface SampleDAO {
|
||||
|
||||
public void insertSample(SampleVO sampleVO);
|
||||
public void updateSample(SampleVO sampleVO);
|
||||
public void deleteSample(@Param("id") int id);
|
||||
public SampleVO selectSample(@Param("id") int id);
|
||||
public List<SampleVO> selectSampleList(SampleDefaultVO sampleDefaultVO);
|
||||
public long selectSampleListTotCnt(SampleDefaultVO sampleDefaultVO);
|
||||
public Map<String, String> dataType();
|
||||
|
||||
}
|
||||
14
src/main/java/com/terry/xplatform/service/SampleService.java
Normal file
14
src/main/java/com/terry/xplatform/service/SampleService.java
Normal file
@@ -0,0 +1,14 @@
|
||||
package com.terry.xplatform.service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.dao.DataAccessException;
|
||||
|
||||
import com.terry.xplatform.vo.SampleDefaultVO;
|
||||
import com.terry.xplatform.vo.SampleVO;
|
||||
|
||||
public interface SampleService {
|
||||
|
||||
public void modify(List<SampleVO> dataSet) throws DataAccessException;
|
||||
public List<SampleVO> list(SampleDefaultVO sampleDefaultVO) throws DataAccessException;
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
package com.terry.xplatform.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
|
||||
import org.apache.ibatis.session.SqlSession;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.dao.DataAccessException;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.terry.xplatform.dao.SampleDAO;
|
||||
import com.terry.xplatform.service.SampleService;
|
||||
import com.terry.xplatform.vo.SampleDefaultVO;
|
||||
import com.terry.xplatform.vo.SampleVO;
|
||||
import com.tobesoft.xplatform.data.DataSet;
|
||||
|
||||
@Service
|
||||
public class SampleServiceImpl implements SampleService {
|
||||
|
||||
@Autowired
|
||||
private SqlSession sqlSession;
|
||||
|
||||
SampleDAO sampleDAO;
|
||||
|
||||
@PostConstruct
|
||||
public void init() {
|
||||
sampleDAO = sqlSession.getMapper(SampleDAO.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SampleVO> list(SampleDefaultVO sampleDefaultVO) throws DataAccessException {
|
||||
// TODO Auto-generated method stub
|
||||
List<SampleVO> result = sampleDAO.selectSampleList(sampleDefaultVO);
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void modify(List<SampleVO> dataSet) throws DataAccessException {
|
||||
// TODO Auto-generated method stub
|
||||
for(SampleVO sampleVO : dataSet) {
|
||||
if(sampleVO.isStoreDataChanges()) {
|
||||
int rowType = sampleVO.getRowType();
|
||||
switch(rowType) {
|
||||
case DataSet.ROW_TYPE_INSERTED :
|
||||
sampleDAO.insertSample(sampleVO);
|
||||
break;
|
||||
case DataSet.ROW_TYPE_UPDATED :
|
||||
sampleDAO.updateSample(sampleVO);
|
||||
break;
|
||||
case DataSet.ROW_TYPE_DELETED :
|
||||
sampleDAO.deleteSample(sampleVO.getId());
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
int rowType = sampleVO.getRowType();
|
||||
switch(rowType) {
|
||||
case DataSet.ROW_TYPE_NORMAL : // ROW_TYPE_NORMAL로 받을 경우 현재 행이 insert 상태인지 update 상태인지를 알 수 없기 때문에 delete, insert 작업을 통해서 두 가지 상황을 모두 만족시키도록 한다
|
||||
sampleDAO.deleteSample(sampleVO.getId());
|
||||
sampleDAO.insertSample(sampleVO);
|
||||
break;
|
||||
case DataSet.ROW_TYPE_DELETED :
|
||||
sampleDAO.deleteSample(sampleVO.getId());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
39
src/main/java/com/terry/xplatform/vo/SampleDefaultVO.java
Normal file
39
src/main/java/com/terry/xplatform/vo/SampleDefaultVO.java
Normal file
@@ -0,0 +1,39 @@
|
||||
package com.terry.xplatform.vo;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import org.apache.ibatis.type.Alias;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@Alias("SampleDefaultVO")
|
||||
public class SampleDefaultVO implements Serializable {
|
||||
|
||||
/** 검색조건 */
|
||||
private String searchCondition = "";
|
||||
|
||||
/** 검색Keyword */
|
||||
private String searchKeyword = "";
|
||||
|
||||
/** 검색사용여부 */
|
||||
private String searchUseYn = "";
|
||||
|
||||
/** 현재페이지 */
|
||||
private int pageIndex = 1;
|
||||
|
||||
/** 페이지갯수 */
|
||||
private int pageUnit = 10;
|
||||
|
||||
/** 페이지사이즈 */
|
||||
private int pageSize = 10;
|
||||
|
||||
/** firstIndex */
|
||||
private int firstIndex = 1;
|
||||
|
||||
/** lastIndex */
|
||||
private int lastIndex = 1;
|
||||
|
||||
/** recordCountPerPage */
|
||||
private int recordCountPerPage = 10;
|
||||
}
|
||||
36
src/main/java/com/terry/xplatform/vo/SampleVO.java
Normal file
36
src/main/java/com/terry/xplatform/vo/SampleVO.java
Normal file
@@ -0,0 +1,36 @@
|
||||
package com.terry.xplatform.vo;
|
||||
|
||||
import org.apache.ibatis.type.Alias;
|
||||
|
||||
import com.terry.xplatform.config.xplatform.data.XplatformVO;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Alias("SampleVO")
|
||||
public class SampleVO extends XplatformVO {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = -4891478433457788136L;
|
||||
|
||||
/** 아이디 */
|
||||
private Integer id;
|
||||
|
||||
/** 이름 */
|
||||
private String name;
|
||||
|
||||
/** 내용 */
|
||||
private String description;
|
||||
|
||||
/** 사용여부 */
|
||||
private String useYn;
|
||||
|
||||
/** 등록자 */
|
||||
private String regUser;
|
||||
}
|
||||
57
src/main/java/com/terry/xplatform/web/SampleController.java
Normal file
57
src/main/java/com/terry/xplatform/web/SampleController.java
Normal file
@@ -0,0 +1,57 @@
|
||||
package com.terry.xplatform.web;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import com.terry.xplatform.config.xplatform.annotation.RequestDataSet;
|
||||
import com.terry.xplatform.config.xplatform.annotation.RequestVariable;
|
||||
import com.terry.xplatform.service.SampleService;
|
||||
import com.terry.xplatform.vo.SampleVO;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Controller
|
||||
@Slf4j
|
||||
public class SampleController {
|
||||
|
||||
@Autowired
|
||||
SampleService sampleService;
|
||||
|
||||
@RequestMapping("/egovSampleSelect")
|
||||
public void list(Model model
|
||||
, SampleVO sampleVO
|
||||
, @RequestVariable SampleVO requestVariableSampleVO
|
||||
, @RequestVariable Map<String, Object> requestVariableMap
|
||||
, @RequestVariable(name="firstIndex") int firstIndex
|
||||
, @RequestVariable(name="recordCountPerPage") String recordCountPerPage
|
||||
, HttpServletRequest httpServletRequest) {
|
||||
// public void list(Model model, SampleVO sampleVO, @RequestVariable SampleVO requestVariableSampleVO) {
|
||||
List<SampleVO> sampleList = sampleService.list(sampleVO);
|
||||
model.addAttribute("ds_output", sampleList);
|
||||
}
|
||||
|
||||
/*
|
||||
@RequestMapping("/egovSampleSelect")
|
||||
public void list(HttpServletRequest httpServletRequest) {
|
||||
String firstIndex = httpServletRequest.getParameter("firstIndex");
|
||||
String recordCountPerPage = httpServletRequest.getParameter("recordCountPerPage");
|
||||
}
|
||||
*/
|
||||
|
||||
@RequestMapping("/egovSampleModify")
|
||||
public void modify(@RequestDataSet(name="ds_input")ArrayList<SampleVO> dataSet
|
||||
, @RequestDataSet(name="ds_input")List<Map<String, Object>> dataSetMap
|
||||
, @RequestDataSet(name="ds_input")Set<SampleVO> dataHashSet) {
|
||||
sampleService.modify(dataSet);
|
||||
}
|
||||
|
||||
}
|
||||
19
src/main/resources/XPLATFORM_Server_License.xml
Normal file
19
src/main/resources/XPLATFORM_Server_License.xml
Normal file
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<license version="1.0">
|
||||
<product>
|
||||
<name>XPLATFORM</name>
|
||||
<version>9</version>
|
||||
<function>Runtime, Widget, AJAX</function>
|
||||
</product>
|
||||
<customer>
|
||||
<name>TOBESOFT</name>
|
||||
<coreCount>0</coreCount>
|
||||
<ipAddress>0.0.0.0</ipAddress>
|
||||
<targetPlatform>Windows,CE,Linux</targetPlatform>
|
||||
</customer>
|
||||
<date>
|
||||
<activation>2018-08-01</activation>
|
||||
<term unit="month">2</term>
|
||||
</date>
|
||||
<key>RDUTZJQZYZVS42PMV7NP4WGXE53J4VWM9</key>
|
||||
</license>
|
||||
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "HTTP://mybatis.org/dtd/mybatis-3-config.dtd">
|
||||
<configuration>
|
||||
<settings>
|
||||
<setting name="cacheEnabled" value="false" />
|
||||
<setting name="mapUnderscoreToCamelCase" value="true"/> <!-- 컬럼에 대한 필드 매핑시 camelcase에 대한 처리를 지정(컬렴명 USE_YN, 필드명 useYn) -->
|
||||
</settings>
|
||||
<typeAliases>
|
||||
<package name="com.terry.xplatform.vo" />
|
||||
</typeAliases>
|
||||
</configuration>
|
||||
@@ -0,0 +1,115 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
|
||||
<mapper namespace="com.terry.xplatform.dao.SampleDAO">
|
||||
<insert id="insertSample" parameterType="SampleVO">
|
||||
<![CDATA[
|
||||
INSERT INTO SAMPLE
|
||||
( ID
|
||||
, NAME
|
||||
, DESCRIPTION
|
||||
, USE_YN
|
||||
, REG_USER )
|
||||
VALUES ( #{id}
|
||||
, #{name}
|
||||
, #{description}
|
||||
, #{useYn}
|
||||
, #{regUser} )
|
||||
]]>
|
||||
</insert>
|
||||
|
||||
<update id="updateSample" parameterType="SampleVO">
|
||||
<![CDATA[
|
||||
UPDATE SAMPLE
|
||||
SET ID=#{id}
|
||||
, NAME=#{name}
|
||||
, DESCRIPTION=#{description}
|
||||
, USE_YN=#{useYn}
|
||||
WHERE ID=#{id}
|
||||
]]>
|
||||
</update>
|
||||
|
||||
<delete id="deleteSample" parameterType="int">
|
||||
<![CDATA[
|
||||
DELETE FROM SAMPLE
|
||||
WHERE ID=#{id}
|
||||
]]>
|
||||
</delete>
|
||||
|
||||
<select id="selectSample" parameterType="int" resultType="SampleVO">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
ID, NAME, DESCRIPTION, USE_YN, REG_USER
|
||||
FROM SAMPLE
|
||||
WHERE ID=#{id}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<select id="selectSampleList" parameterType="SampleDefaultVO" resultType="SampleVO">
|
||||
SELECT
|
||||
ID, NAME, DESCRIPTION, USE_YN, REG_USER
|
||||
FROM SAMPLE
|
||||
<where>
|
||||
<if test="!searchCondition.equals('')">
|
||||
<if test="searchCondition == 0">
|
||||
ID = #{searchKeyword}
|
||||
</if>
|
||||
<if test="searchCondition == 1">
|
||||
NAME LIKE '%' || #{searchKeyword} || '%'
|
||||
</if>
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY ID DESC
|
||||
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
||||
</select>
|
||||
|
||||
<select id="selectSampleListTotCnt" parameterType="SampleDefaultVO" resultType="long">
|
||||
|
||||
SELECT COUNT(*) totcnt
|
||||
FROM SAMPLE
|
||||
<where>
|
||||
<if test="searchCondition == 0">
|
||||
ID = #{searchKeyword}
|
||||
</if>
|
||||
<if test="searchCondition == 1">
|
||||
NAME LIKE '%' || #{searchKeyword} || '%'
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<!--
|
||||
<resultMap type="Employee" id="Employee_Result">
|
||||
<id property="employee_no" column="employee_no" />
|
||||
<result property="employee_name" column="employee_name" />
|
||||
<association property="dept" resultMap="Dept_Result" />
|
||||
<collection property='job_list' ofType='Job' resultMap='Job_Result' />
|
||||
</resultMap>
|
||||
|
||||
<resultMap type="Dept" id="Dept_Result">
|
||||
<id property="dept_no" column="dept_no" />
|
||||
<result property="dept_name" column="dept_name" />
|
||||
</resultMap>
|
||||
|
||||
<resultMap type="Job" id="Job_Result">
|
||||
<id property="job_no" column="job_no" />
|
||||
<result property="job_name" column="job_name" />
|
||||
</resultMap>
|
||||
|
||||
<select id="employee_dept" resultMap="Employee_Result">
|
||||
SELECT A.EMPLOYEE_NO AS EMPLOYEE_NO, A.EMPLOYEE_NAME AS EMPLOYEE_NAME, C.DEPT_NAME AS DEPT_NAME
|
||||
FROM MYBATIS_EMPLOYEE A, MYBATIS_EMPLOYEE_DEPT B, MYBATIS_DEPT C
|
||||
WHERE A.EMPLOYEE_NO = B.EMPLOYEE_NO
|
||||
AND B.DEPT_NO = C.DEPT_NO
|
||||
</select>
|
||||
|
||||
<select id="employee_dept_job" resultMap="Employee_Result">
|
||||
SELECT A.EMPLOYEE_NO AS EMPLOYEE_NO, A.EMPLOYEE_NAME AS EMPLOYEE_NAME, C.DEPT_NO AS DEPT_NO, C.DEPT_NAME AS DEPT_NAME, E.JOB_NAME AS JOB_NAME
|
||||
FROM MYBATIS_EMPLOYEE A, MYBATIS_EMPLOYEE_DEPT B, MYBATIS_DEPT C, MYBATIS_EMPLOYEE_JOB D, MYBATIS_JOB E
|
||||
WHERE A.EMPLOYEE_NO = B.EMPLOYEE_NO
|
||||
AND B.DEPT_NO = C.DEPT_NO
|
||||
AND A.EMPLOYEE_NO = D.EMPLOYEE_NO
|
||||
AND D.JOB_NO = E.JOB_NO
|
||||
</select>
|
||||
|
||||
-->
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:p="http://www.springframework.org/schema/p"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
|
||||
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd">
|
||||
|
||||
|
||||
|
||||
</beans>
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
|
||||
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
|
||||
|
||||
<context:component-scan base-package="com.terry.xplatform">
|
||||
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
|
||||
<context:exclude-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice" />
|
||||
</context:component-scan>
|
||||
|
||||
</beans>
|
||||
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:jdbc="http://www.springframework.org/schema/jdbc"
|
||||
xsi:schemaLocation="
|
||||
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
|
||||
http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.3.xsd
|
||||
">
|
||||
<jdbc:embedded-database id="dataSource" type="H2">
|
||||
<jdbc:script location="classpath:schema.sql" encoding="UTF-8" />
|
||||
<jdbc:script location="classpath:createdata.sql" encoding="UTF-8" />
|
||||
</jdbc:embedded-database>
|
||||
</beans>
|
||||
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:aop="http://www.springframework.org/schema/aop"
|
||||
xmlns:tx="http://www.springframework.org/schema/tx"
|
||||
xmlns:util="http://www.springframework.org/schema/util"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
|
||||
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
|
||||
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd
|
||||
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
|
||||
|
||||
<!-- mybatis 연동과 관련하여 연동 환경 정의 및 SQL Query Map 파일 정의 -->
|
||||
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
|
||||
<property name="dataSource" ref="dataSource" />
|
||||
<property name="configLocation" value="classpath:com/terry/xplatform/resources/mybatis/config/mybatis-config.xml" /> <!-- mybatis 연동 환경 정의 -->
|
||||
<property name="mapperLocations"> <!-- mybatis 쿼리 맵들이 있는 경로 -->
|
||||
<list>
|
||||
<value>classpath:com/terry/xplatform/resources/mybatis/mapper/*.xml</value>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
|
||||
<qualifier value="sqlSession" />
|
||||
<constructor-arg index="0" ref="sqlSessionFactory" />
|
||||
</bean>
|
||||
|
||||
<bean id="sqlBatchSession" class="org.mybatis.spring.SqlSessionTemplate">
|
||||
<qualifier value="sqlBatchSession" />
|
||||
<constructor-arg index="0" ref="sqlSessionFactory" />
|
||||
<constructor-arg index="1" value="BATCH" />
|
||||
</bean>
|
||||
|
||||
</beans>
|
||||
@@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:aop="http://www.springframework.org/schema/aop"
|
||||
xmlns:tx="http://www.springframework.org/schema/tx"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
|
||||
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd
|
||||
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd">
|
||||
|
||||
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
|
||||
<property name="dataSource" ref="dataSource"/>
|
||||
</bean>
|
||||
|
||||
<tx:advice id="txAdvice" transaction-manager="txManager">
|
||||
<tx:attributes>
|
||||
<tx:method name="*" rollback-for="Exception"/>
|
||||
</tx:attributes>
|
||||
</tx:advice>
|
||||
|
||||
<aop:config>
|
||||
<aop:pointcut id="requiredTx"
|
||||
expression="execution(* com.terry.xplatform..impl.*Impl.*(..))"/>
|
||||
<aop:advisor advice-ref="txAdvice"
|
||||
pointcut-ref="requiredTx" />
|
||||
</aop:config>
|
||||
|
||||
</beans>
|
||||
4
src/main/resources/createdata.sql
Normal file
4
src/main/resources/createdata.sql
Normal file
@@ -0,0 +1,4 @@
|
||||
INSERT INTO SAMPLE(ID, NAME, DESCRIPTION, USE_YN, REG_USER) VALUES('1','카테고리명1','설명1','1','등록자1');
|
||||
INSERT INTO SAMPLE(ID, NAME, DESCRIPTION, USE_YN, REG_USER) VALUES('2','카테고리명2','설명2','2','등록자2');
|
||||
INSERT INTO SAMPLE(ID, NAME, DESCRIPTION, USE_YN, REG_USER) VALUES('3','카테고리명3','설명3','1','등록자3');
|
||||
INSERT INTO IDS VALUES('SAMPLE',175);
|
||||
3
src/main/resources/log4jdbc.log4j2.properties
Normal file
3
src/main/resources/log4jdbc.log4j2.properties
Normal file
@@ -0,0 +1,3 @@
|
||||
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
|
||||
# log4jdbc.spylogdelegator.name=com.terry.springboard.common.log.CustomSlf4jSpyLogDelegator
|
||||
log4jdbc.dump.sql.maxlinelength=0
|
||||
51
src/main/resources/logback.xml
Normal file
51
src/main/resources/logback.xml
Normal file
@@ -0,0 +1,51 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- configuration file for LogBack (slf4J implementation)
|
||||
See here for more details: http://gordondickens.com/wordpress/2013/03/27/sawing-through-the-java-loggers/ -->
|
||||
<configuration scan="true" scanPeriod="30 seconds">
|
||||
|
||||
<contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
|
||||
<resetJUL>true</resetJUL>
|
||||
</contextListener>
|
||||
|
||||
<!-- To enable JMX Management -->
|
||||
<jmxConfigurator/>
|
||||
|
||||
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
<pattern>%-5level %logger{50} - %msg%n</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<logger name="com.terry.xplatform" level="debug" additivity="false">
|
||||
<appender-ref ref="console" />
|
||||
</logger>
|
||||
<logger name="org.hibernate" level="info" additivity="false">
|
||||
<appender-ref ref="console" />
|
||||
</logger>
|
||||
<logger name="org.springframework.security" level="debug" additivity="false">
|
||||
<appender-ref ref="console" />
|
||||
</logger>
|
||||
<logger name="org.springframework" level="info" additivity="false">
|
||||
<appender-ref ref="console" />
|
||||
</logger>
|
||||
<logger name="javax.sql" level="info" additivity="false">
|
||||
<appender-ref ref="console" />
|
||||
</logger>
|
||||
|
||||
<!-- log4jdbc setting(turn on : info or debug, turn off : fatal -->
|
||||
<logger name="jdbc.sqlonly" level="off" additivity="false">
|
||||
<appender-ref ref="console" />
|
||||
</logger>
|
||||
<logger name="jdbc.sqltiming" level="info" additivity="false">
|
||||
<appender-ref ref="console" />
|
||||
</logger>
|
||||
<logger name="jdbc.audit" level="off" additivity="false" />
|
||||
<logger name="jdbc.resultset" level="off" additivity="false" />
|
||||
<logger name="jdbc.resultsettable" level="off" additivity="false" />
|
||||
<logger name="jdbc.connection" level="off" additivity="false" />
|
||||
|
||||
<root level="info">
|
||||
<appender-ref ref="console" />
|
||||
</root>
|
||||
|
||||
</configuration>
|
||||
13
src/main/resources/schema.sql
Normal file
13
src/main/resources/schema.sql
Normal file
@@ -0,0 +1,13 @@
|
||||
CREATE TABLE SAMPLE (
|
||||
ID VARCHAR(16) NOT NULL PRIMARY KEY,
|
||||
NAME VARCHAR(50),
|
||||
DESCRIPTION VARCHAR(100),
|
||||
USE_YN CHAR(1),
|
||||
REG_USER VARCHAR(10),
|
||||
REG_DATE DATE NOT NULL DEFAULT CURRENT_DATE()
|
||||
);
|
||||
|
||||
CREATE TABLE IDS (
|
||||
TABLE_NAME VARCHAR(16) NOT NULL PRIMARY KEY
|
||||
,NEXT_ID DECIMAL(30) NOT NULL
|
||||
);
|
||||
36
src/main/webapp/WEB-INF/config/spring/servlet-context.xml
Normal file
36
src/main/webapp/WEB-INF/config/spring/servlet-context.xml
Normal file
@@ -0,0 +1,36 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:mvc="http://www.springframework.org/schema/mvc"
|
||||
xmlns:context="http://www.springframework.org/schema/context"
|
||||
xmlns:tx="http://www.springframework.org/schema/tx"
|
||||
xmlns:util="http://www.springframework.org/schema/util"
|
||||
xmlns:p="http://www.springframework.org/schema/p"
|
||||
xmlns:aop="http://www.springframework.org/schema/aop"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
|
||||
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
|
||||
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
|
||||
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd
|
||||
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.3.xsd
|
||||
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
|
||||
">
|
||||
|
||||
<mvc:annotation-driven>
|
||||
<mvc:argument-resolvers>
|
||||
<bean id="xplatformArgumentResolver" class="com.terry.xplatform.config.xplatform.support.XplatformArgumentResolver">
|
||||
<constructor-arg name="dataSetListName" value="dataSetList" />
|
||||
<constructor-arg name="variableListName" value="variableList" />
|
||||
</bean>
|
||||
</mvc:argument-resolvers>
|
||||
</mvc:annotation-driven>
|
||||
|
||||
<context:component-scan base-package="com.terry.xplatform">
|
||||
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/>
|
||||
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository"/>
|
||||
</context:component-scan>
|
||||
|
||||
<bean id="xplatformViewResolver" class="com.terry.xplatform.config.xplatform.web.XplatformViewResolver">
|
||||
<property name="order" value="1" />
|
||||
</bean>
|
||||
|
||||
</beans>
|
||||
BIN
src/main/webapp/WEB-INF/lib/miplatform-3.2.jar
Normal file
BIN
src/main/webapp/WEB-INF/lib/miplatform-3.2.jar
Normal file
Binary file not shown.
BIN
src/main/webapp/WEB-INF/lib/xplatform-xapi-1.0.jar
Normal file
BIN
src/main/webapp/WEB-INF/lib/xplatform-xapi-1.0.jar
Normal file
Binary file not shown.
14
src/main/webapp/WEB-INF/views/home.jsp
Normal file
14
src/main/webapp/WEB-INF/views/home.jsp
Normal file
@@ -0,0 +1,14 @@
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||
<%@ page session="false" %>
|
||||
<html>
|
||||
<head>
|
||||
<title>Home</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>
|
||||
Hello world!
|
||||
</h1>
|
||||
|
||||
<P> The time on the server is ${serverTime}. </P>
|
||||
</body>
|
||||
</html>
|
||||
44
src/main/webapp/WEB-INF/web.xml
Normal file
44
src/main/webapp/WEB-INF/web.xml
Normal file
@@ -0,0 +1,44 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
|
||||
|
||||
<!-- The definition of the Root Spring Container shared by all Servlets and Filters -->
|
||||
<context-param>
|
||||
<param-name>contextConfigLocation</param-name>
|
||||
<!-- param-value>/WEB-INF/spring/root-context.xml</param-value -->
|
||||
<param-value>classpath*:com/terry/xplatform/resources/spring/context-*.xml</param-value>
|
||||
</context-param>
|
||||
|
||||
<!-- Creates the Spring Container shared by all Servlets and Filters -->
|
||||
<listener>
|
||||
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
|
||||
</listener>
|
||||
|
||||
<!-- Processes application requests -->
|
||||
<servlet>
|
||||
<servlet-name>appServlet</servlet-name>
|
||||
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
|
||||
<init-param>
|
||||
<param-name>contextConfigLocation</param-name>
|
||||
<!-- param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value -->
|
||||
<param-value>/WEB-INF/config/spring/servlet-context.xml</param-value>
|
||||
</init-param>
|
||||
<load-on-startup>1</load-on-startup>
|
||||
</servlet>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>appServlet</servlet-name>
|
||||
<url-pattern>*.do</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<filter>
|
||||
<filter-name>httpServletRequestWrapperFilter</filter-name>
|
||||
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
|
||||
</filter>
|
||||
|
||||
<filter-mapping>
|
||||
<filter-name>httpServletRequestWrapperFilter</filter-name>
|
||||
<url-pattern>*.do</url-pattern>
|
||||
</filter-mapping>
|
||||
</web-app>
|
||||
115
src/main/webapp/xui/DefaultTheme.xadl
Normal file
115
src/main/webapp/xui/DefaultTheme.xadl
Normal file
@@ -0,0 +1,115 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ADL version="1.0">
|
||||
<TypeDefinition url="default_typedef.xml"/>
|
||||
<GlobalVariables url="globalvars.xml"/>
|
||||
<Application id="DefautTheme" codepage="utf-8" language="Korean" loginformurl="" loginformstyle="" windowopeneffect="" windowcloseeffect="" version="" tracemode="" themeid="DefaultTheme.xtheme" onload="application_onload" licenseurl="http://localhost:8080/template-xplatform/xui/license/XPLATFORM_Client_License.xml" httpretry="0" httptimeout="0">
|
||||
<Layout>
|
||||
<MainFrame id="mainFrame" title="maintitle" defaultfont="" resizable="true" showtitlebar="true" showstatusbar="true" position="absolute 0 0 1024 738" style="showzoomcombo:true;" showcascadetitletext="true" statustext="1" text="2" titletext="3" visible="false">
|
||||
<VFrameSet id="VFrameSet" separatesize="37,*,0">
|
||||
<Frames>
|
||||
<ChildFrame id="topFrame" formurl="frame::topFrame.xfdl" showtitlebar="false" dragmovetype="none"/>
|
||||
<HFrameSet id="HFrameSet" separatesize="30,165,*">
|
||||
<Frames>
|
||||
<ChildFrame id="myFrame" showtitlebar="false" formurl="frame::myFrame.xfdl"/>
|
||||
<ChildFrame id="leftFrame" formurl="frame::leftFrame.xfdl" showtitlebar="false"/>
|
||||
<VFrameSet id="VFrameSet2" separatesize="29,*">
|
||||
<Frames>
|
||||
<ChildFrame id="tabFrame" formurl="frame::tabFrame.xfdl" showtitlebar="false" dragmovetype="none"/>
|
||||
<FrameSet id="workFrameSet">
|
||||
<Frames/>
|
||||
</FrameSet>
|
||||
</Frames>
|
||||
</VFrameSet>
|
||||
</Frames>
|
||||
</HFrameSet>
|
||||
<ChildFrame id="commFrame" formurl="frame::commFrame.xfdl"/>
|
||||
</Frames>
|
||||
</VFrameSet>
|
||||
</MainFrame>
|
||||
</Layout>
|
||||
</Application>
|
||||
<Script type="xscript4.0"><![CDATA[// UI 프레임셋 alias 정의
|
||||
var gv_topFrame; //상단메뉴 Frame
|
||||
var gv_myFrame; //마이메뉴 Frame
|
||||
var gv_leftFrame; //좌측메뉴 Frame
|
||||
var gv_HFrameSet; //좌측메뉴, 업무영역 FrameSet
|
||||
var gv_workFrame; //업무영역 Frame
|
||||
var gv_tabFrame; //Tab메뉴 Frame
|
||||
|
||||
// Application에서 Global하게 사용하는 변수
|
||||
var gv_activeWinId; // Active화면 Id
|
||||
var gv_initWidth = 1024; //업무화면 초기 width
|
||||
var gv_initHeight = 738; //업무화면 초기 height
|
||||
var gv_menuHideWidth = 30;
|
||||
var gv_menuShowWidth = 30;
|
||||
var gv_menuHideHeight = 8;
|
||||
var gv_menuShowHeight;
|
||||
|
||||
// Application 최초 실행시 발생하는 이벤트
|
||||
function application_onload(obj:Object, e:LoadEventInfo)
|
||||
{
|
||||
trace("1111111111111111111111111111111111111111111");
|
||||
application.mainFrame.titletext = "Default Template";
|
||||
//각각의 Frame alias 정의
|
||||
gv_topFrame = application.mainFrame.VFrameSet.topFrame;
|
||||
gv_tabFrame = application.mainFrame.VFrameSet.HFrameSet.VFrameSet2.tabFrame;
|
||||
gv_myFrame = application.mainFrame.VFrameSet.HFrameSet.myFrame;
|
||||
gv_leftFrame = application.mainFrame.VFrameSet.HFrameSet.leftFrame;
|
||||
gv_HFrameSet = application.mainFrame.VFrameSet.HFrameSet;
|
||||
gv_VFrameSet = application.mainFrame.VFrameSet.HFrameSet.VFrameSet2;
|
||||
gv_workFrame = application.mainFrame.VFrameSet.HFrameSet.VFrameSet2.workFrameSet;
|
||||
|
||||
var rtn = "OK";
|
||||
//로그인 페이지 호출
|
||||
rtn = afn_loginProcess();
|
||||
|
||||
if(rtn=="OK")
|
||||
{
|
||||
application.mainframe.visible = true;
|
||||
application.mainframe.activate();
|
||||
}else if(rtn=="CLOSE")
|
||||
{
|
||||
exit();
|
||||
}
|
||||
}
|
||||
|
||||
function afn_loginProcess()
|
||||
{
|
||||
var nMoniterIndex;
|
||||
var nScreenLeft;
|
||||
var nScreenTop;
|
||||
var nScreenRight;
|
||||
var nScreenBottom;
|
||||
var nScreenWidth;
|
||||
var nScreenHeight;
|
||||
var arrScreenSize;
|
||||
|
||||
nMoniterIndex = system.getMonitorIndex(system.cursorx, system.cursory); //모니터번호
|
||||
objScreenSize = system.getScreenRect(nMoniterIndex);
|
||||
nScreenLeft = objScreenSize.left;
|
||||
nScreenTop = objScreenSize.top;
|
||||
nScreenRight = objScreenSize.right;
|
||||
nScreenBottom = objScreenSize.bottom;
|
||||
nScreenWidth = nScreenRight - nScreenLeft;
|
||||
nScreenHeight = nScreenBottom - nScreenTop;
|
||||
|
||||
//로그인 화면 기동
|
||||
application.mainframe.visible = false;
|
||||
var objFrame = new ChildFrame("Login", nScreenLeft+(nScreenWidth/2)-235, nScreenTop+(nScreenHeight/2)-130, nScreenLeft+(nScreenWidth/2)+235, nScreenTop+(nScreenHeight/2)+130);
|
||||
objFrame.showtitlebar = false;
|
||||
objFrame.layered = true;
|
||||
objFrame.style.background = "transparent";
|
||||
objFrame.formurl = "frame::login.xfdl";
|
||||
var rtn = objFrame.showModal("Login");
|
||||
|
||||
return rtn;
|
||||
}
|
||||
|
||||
|
||||
// tabFrame에 메뉴클릭시 페이지 활성화
|
||||
// function workArea_onactivate(obj:ChildFrame, e:ActivateEventInfo)
|
||||
// {
|
||||
// obj.openstatus = "maximize";
|
||||
// }
|
||||
]]></Script>
|
||||
</ADL>
|
||||
20
src/main/webapp/xui/DefaultTheme.xprj
Normal file
20
src/main/webapp/xui/DefaultTheme.xprj
Normal file
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project active_adl="DefautTheme" version="1.1">
|
||||
<TypeDefinition url="default_typedef.xml"/>
|
||||
<GlobalVariables url="globalvars.xml"/>
|
||||
<ADL id="110425_XP_Template_T1" url="DefaultTheme.xadl"/>
|
||||
<Services>
|
||||
<Service id="CSS" file_ext="" include_subdir="false"/>
|
||||
<Service id="IMG" file_ext="" include_subdir="false"/>
|
||||
<Service id="css" file_ext="" include_subdir="false"/>
|
||||
<Service id="img" file_ext="" include_subdir="false"/>
|
||||
</Services>
|
||||
<Themes>
|
||||
<RecentlyUsed>
|
||||
<Theme url="DefaultTheme.xtheme"/>
|
||||
</RecentlyUsed>
|
||||
</Themes>
|
||||
<ComponentInfoGroup>
|
||||
<ComponentInfo name="grd_basic" defaultwidth="" defaultheight="" image="18"/>
|
||||
</ComponentInfoGroup>
|
||||
</Project>
|
||||
BIN
src/main/webapp/xui/DefaultTheme.xtheme
Normal file
BIN
src/main/webapp/xui/DefaultTheme.xtheme
Normal file
Binary file not shown.
98
src/main/webapp/xui/body.html
Normal file
98
src/main/webapp/xui/body.html
Normal file
@@ -0,0 +1,98 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>XPlatform Run Page</TITLE>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr" />
|
||||
<SCRIPT type="text/javascript" src="./install/checkBrowser.js" ></SCRIPT>
|
||||
<SCRIPT LANGUAGE="JavaScript" src="./install/launch_etc_Browser.js"></SCRIPT> <!-- launch_etc_Browser JavaScript include -->
|
||||
<script language="javascript">
|
||||
|
||||
var Server_Path = window.location.href;
|
||||
Server_Path = Server_Path.substring(0, Server_Path.lastIndexOf("/")) + "/";
|
||||
|
||||
//v_xadl : 알맞은 xadl값을 설정하십시오. (url로 입력)
|
||||
//현재 연결된 프로젝트는 url로 설정시 오류가 있어 로컬경로로 설정함
|
||||
var v_xadl = Server_Path + "DefaultTheme.xadl";
|
||||
|
||||
function fn_start()
|
||||
{
|
||||
/** 웹브라우저에서 실행 **/
|
||||
if ( checkBrowser.browser == "Explorer"){
|
||||
fn_load_ie();
|
||||
}else{ // 익스플로러가 아닐 경우
|
||||
/** launch_etc_Browser.js의 fn_load_crom를 호출함 **/
|
||||
fn_load_crom();
|
||||
}
|
||||
}
|
||||
|
||||
/** IE Embed 형태 구동 **/
|
||||
function fn_load_ie()
|
||||
{
|
||||
|
||||
XPlatformAXCtrl.xadl = v_xadl; //xadl
|
||||
XPlatformAXCtrl.autosize = false; //autosize
|
||||
XPlatformAXCtrl.key = "EgovXPLATFORM"; //key
|
||||
XPlatformAXCtrl.retry = 2; //retry
|
||||
XPlatformAXCtrl.timeout = 30; //timeout
|
||||
XPlatformAXCtrl.run();
|
||||
}
|
||||
</script>
|
||||
|
||||
<!------------------------------------------
|
||||
X P l a t f o r m A X C t r l E v e n t
|
||||
-------------------------------------------->
|
||||
<SCRIPT LANGUAGE=javascript FOR=XPlatformAXCtrl EVENT="loadtypedefinition(strurl)">
|
||||
//alert("loadtypedefinition : "+strurl);
|
||||
</SCRIPT>
|
||||
<SCRIPT LANGUAGE=javascript FOR=XPlatformAXCtrl EVENT="load()">
|
||||
//alert("load completed !!");
|
||||
</SCRIPT>
|
||||
<SCRIPT LANGUAGE=javascript FOR=XPlatformAXCtrl EVENT="loadingglobalvariables(strurl)">
|
||||
//alert("loadingglobalvariables : "+strurl);
|
||||
</SCRIPT>
|
||||
<SCRIPT LANGUAGE=javascript FOR=XPlatformAXCtrl EVENT="beforeexit(close, handled)">
|
||||
//alert("beforeexit");
|
||||
</SCRIPT>
|
||||
<SCRIPT LANGUAGE=javascript FOR=XPlatformAXCtrl EVENT="exit()">
|
||||
//alert("exit");
|
||||
</SCRIPT>
|
||||
<SCRIPT LANGUAGE=javascript FOR=XPlatformAXCtrl EVENT="communication(bstart)">
|
||||
//alert("communication:"+bstart);
|
||||
</SCRIPT>
|
||||
<SCRIPT LANGUAGE=javascript FOR=XPlatformAXCtrl EVENT="usernotify(nNotifyID, strMsg)">
|
||||
//alert("nNotifyID:"+nNotifyID +" strMsg:"+strMsg);
|
||||
</SCRIPT>
|
||||
<SCRIPT LANGUAGE=javascript FOR=XPlatformAXCtrl EVENT="error(nerror, strerrmsg)">
|
||||
//alert("err:"+strerrmsg);
|
||||
</SCRIPT>
|
||||
<SCRIPT LANGUAGE=javascript FOR=XPlatformAXCtrl EVENT="addlog(strMsg)">
|
||||
//alert("strMsg:"+strMsg);
|
||||
</SCRIPT>
|
||||
<!------------------------------------------
|
||||
X P l a t f o r m A X C t r l E v e n t (End)
|
||||
-------------------------------------------->
|
||||
<HEAD>
|
||||
<BODY border="0" cellpadding="0" cellspacing="0" onload="fn_start()">
|
||||
<script language="javascript">
|
||||
document.write("<OBJECT ID=\"XPlatformAXCtrl\" CLASSID=\"CLSID:43C5FE00-DD32-4792-83DB-19AE4F88F2A6\" " );
|
||||
document.write(" CodeBase=\""+Server_Path+"Engine/XPLATFORM9.2_SetupEngine.cab#VERSION=2012,8,21,1\"" );
|
||||
document.write(" width=\"100%\" height=\"100%\">" );
|
||||
document.write("<embed " );
|
||||
document.write(" id=\"plugin1\"" );
|
||||
document.write(" type=\"Application/XPlatform9.2-PlugIn\" " );
|
||||
document.write(" load=\"p1_onload\"" );
|
||||
document.write(" width=100%" );
|
||||
document.write(" height=100%" );
|
||||
document.write(" loadtypedefinition=\"my_loadtypedefinition\"" );
|
||||
document.write(" load=\"my_load\"" );
|
||||
document.write(" loadingglobalvariables=\"my_loadingglobalvariables\"" );
|
||||
document.write(" beforeexit=\"my_beforeexit\"" );
|
||||
document.write(" exit=\"my_exit\"" );
|
||||
document.write(" communication=\"my_communication\"" );
|
||||
document.write(" usernotify=\"my_usernotify\" " );
|
||||
document.write(" error=\"my_error\" " );
|
||||
document.write(" addlog=\"my_addlog\"" );
|
||||
document.write(" />" );
|
||||
document.write("</OBJECT>" );
|
||||
</script>
|
||||
</BODY>
|
||||
</HTML>
|
||||
1
src/main/webapp/xui/css/Template.css
Normal file
1
src/main/webapp/xui/css/Template.css
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
50
src/main/webapp/xui/default_typedef.xml
Normal file
50
src/main/webapp/xui/default_typedef.xml
Normal file
@@ -0,0 +1,50 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TypeDefinition>
|
||||
<Components>
|
||||
<Component type="Bin" id="Div" classname="Div" module="XComCmp" version="1000"/>
|
||||
<Component type="Bin" id="Button" classname="Button" module="XComCmp" version="1000"/>
|
||||
<Component type="Bin" id="PopupDiv" classname="PopupDiv" module="XComCmp" version="1000"/>
|
||||
<Component type="Bin" id="Combo" classname="Combo" module="XComCmp" version="1000"/>
|
||||
<Component type="Bin" id="CheckBox" classname="CheckBox" module="XComCmp" version="1000"/>
|
||||
<Component type="Bin" id="ListBox" classname="ListBox" module="XComCmp" version="1000"/>
|
||||
<Component type="Bin" id="Edit" classname="Edit" module="XComCmp" version="1000"/>
|
||||
<Component type="Bin" id="MaskEdit" classname="MaskEdit" module="XComCmp" version="1000"/>
|
||||
<Component type="Bin" id="TextArea" classname="TextArea" module="XComCmp" version="1000"/>
|
||||
<Component type="Bin" id="Menu" classname="Menu" module="XComCmp" version="1000"/>
|
||||
<Component type="Bin" id="Tab" classname="Tab" module="XComCmp" version="1000"/>
|
||||
<Component type="Bin" id="ImageViewer" classname="ImageViewer" module="XComCmp" version="1000"/>
|
||||
<Component type="Bin" id="Radio" classname="Radio" module="XComCmp" version="1000"/>
|
||||
<Component type="Bin" id="Shape" classname="Shape" module="XComCmp" version="1000"/>
|
||||
<Component type="Bin" id="Calendar" classname="Calendar" module="XComCmp" version="1000"/>
|
||||
<Component type="Bin" id="Static" classname="Static" module="XComCmp" version="1000"/>
|
||||
<Component type="Bin" id="Grid" classname="Grid" module="XGridCmp" version="1000"/>
|
||||
<Component type="Bin" id="Spin" classname="Spin" module="XComCmp" version="1000"/>
|
||||
<Component type="Bin" id="PopupMenu" classname="PopupMenu" module="XComCmp" version="1000"/>
|
||||
<Component type="Bin" id="Splitter" classname="Splitter" module="XComCmp" version="1000"/>
|
||||
<Component type="Bin" id="GroupBox" classname="GroupBox" module="XComCmp" version="1000"/>
|
||||
<Component type="Bin" id="ProgressBar" classname="ProgressBar" module="XComCmp" version="1000"/>
|
||||
<Component type="Bin" id="ActiveX" classname="ActiveX" module="XAxCmp" version="1000"/>
|
||||
<Component type="Bin" id="PropertyAnimation" classname="PropertyAnimation" module="XPlatformLib" version="1000"/>
|
||||
<Component type="Bin" id="TransitionAnimation" classname="TransitionAnimation" module="XPlatformLib" version="1000"/>
|
||||
<Component type="Bin" id="MoveAnimation" classname="MoveAnimation" module="XPlatformLib" version="1000"/>
|
||||
<Component type="Bin" id="CompositeAnimation" classname="CompositeAnimation" module="XPlatformLib" version="1000"/>
|
||||
<Component type="Bin" id="Dataset" classname="Dataset" module="XPlatformLib" version="1000"/>
|
||||
<Component type="Bin" id="FilteredDataset" classname="FilteredDataset" module="XClassLib" version="1000"/>
|
||||
<Component type="Bin" id="FileDialog" classname="FileDialog" module="XComCmp" version="1000"/>
|
||||
<Component type="Bin" id="GraphicPath" classname="GraphicPath" module="XComCmp" version="1000"/>
|
||||
<Component type="Bin" id="VirtualFile" classname="VirtualFile" module="XComCmp" version="1000"/>
|
||||
<Component type="Script" id="grd_basic" classname="grd_basic" module="frame_userobject::grd_basic.xjs" version="1000"/>
|
||||
</Components>
|
||||
<Services>
|
||||
<Service prefixid="css" type="file" url="./css/" version="0" communicationversion="0"/>
|
||||
<Service prefixid="img" type="file" url="./images/" version="0" communicationversion="0"/>
|
||||
<Service prefixid="frame" type="form" url="./frame/" version="0" communicationversion="0"/>
|
||||
<Service prefixid="lib" type="js" url="./lib/" version="0" communicationversion="0"/>
|
||||
<Service prefixid="work" type="form" url="./work/" version="0" communicationversion="0"/>
|
||||
<Service prefixid="compguide" type="form" url="./ui/" version="0" communicationversion="0"/>
|
||||
<Service prefixid="template" type="form" url="./template/" version="0" communicationversion="0"/>
|
||||
<Service prefixid="svc" type="JSP" url="http://localhost:8080/xplatform/" cachelevel="none" version="0" communicationversion="0"/>
|
||||
<Service prefixid="frame_userobject" type="form" url="./frame/userobject/" version="0" communicationversion="0"/>
|
||||
</Services>
|
||||
<Update/>
|
||||
</TypeDefinition>
|
||||
30
src/main/webapp/xui/frame/commFrame.xfdl
Normal file
30
src/main/webapp/xui/frame/commFrame.xfdl
Normal file
@@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FDL version="1.4">
|
||||
<TypeDefinition url="..\default_typedef.xml"/>
|
||||
<Form id="commFrame" classname="commFrame" inheritanceid="" position="absolute 0 0 1 1" titletext="New Form" onload="commFrame_onload">
|
||||
<Layouts>
|
||||
<Layout/>
|
||||
</Layouts>
|
||||
<Script type="xscript4.0"><![CDATA[/*
|
||||
* 01. 업무구분 : Frame 공통
|
||||
* 02. 화면명 : commFrame.xfdl
|
||||
* 03. 화면설명 :
|
||||
* 04. 작성일 : 2012-08-22
|
||||
* 05. 작성자 : sian
|
||||
* 06. 수정이력 :
|
||||
*********************************************************************
|
||||
* 수정일 이 름 사유
|
||||
*********************************************************************
|
||||
* 2012-08-22 sian 최초 작성
|
||||
*********************************************************************
|
||||
*/
|
||||
include "lib::commLib.xjs";
|
||||
|
||||
|
||||
// Hidden Frame으로 공통 스크립트를 포함하고 있음.
|
||||
// 업무 또는 공통영역에서 사용할 추가 컴포넌트를 commFrame에서 처리한다.
|
||||
function commFrame_onload(obj:Form, e:LoadEventInfo)
|
||||
{
|
||||
}]]></Script>
|
||||
</Form>
|
||||
</FDL>
|
||||
911
src/main/webapp/xui/frame/leftFrame.xfdl
Normal file
911
src/main/webapp/xui/frame/leftFrame.xfdl
Normal file
@@ -0,0 +1,911 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FDL version="1.4">
|
||||
<TypeDefinition url="..\default_typedef.xml"/>
|
||||
<Form id="leftFrame" classname="Left" inheritanceid="" position="absolute 0 0 165 647" class="frm_LF" scrollbars="none" onload="leftMenu_onload">
|
||||
<Layouts>
|
||||
<Layout>
|
||||
<PopupDiv id="PopLink" onmouseleave="PopLink_onmouseleave" onmouseenter="PopLink_onmouseenter" visible="false" position="absolute 182 40 528 302" style="background:#f0f2f6ff;border:2 solid #235798ff ;bordertype:round 5 5 ;shadow:drop 0,2 3 gray;">
|
||||
<Layouts>
|
||||
<Layout width="346" height="262"/>
|
||||
</Layouts>
|
||||
</PopupDiv>
|
||||
<Static id="sta_LF_DivLine" position="absolute 12 28 157 31" class="sta_LF_DivLine" text=""/>
|
||||
<Static id="sta_LF_GuideShadow" transparenthittest="true" position="absolute -3 0 2 648" style="background:@gradation; gradation:liner 0,0 #33333300 100,0 #33333333; " text="" visible="false"/>
|
||||
<Div id="divMenu" taborder="1" position="absolute 3 34 161 645" scrollbars="none" anchor="left top bottom">
|
||||
<Layouts>
|
||||
<Layout>
|
||||
<Grid id="grdMenu" class="grd_LF_SubMenu" taborder="0" binddataset="DsMenu" scrollpixel="default" wheelscrollrow="1" useinputpanel="false" selecttype="treecell" autofittype="col" treeuseline="false" treeusecheckbox="false" treeinitstatus="expand,null" position="absolute 0 0 161 467" style="padding:0 0 0 -10;" oncellclick="divMenu_grdMenu_oncellclick">
|
||||
<Formats>
|
||||
<Format id="default">
|
||||
<Columns>
|
||||
<Column size="165"/>
|
||||
</Columns>
|
||||
<Rows>
|
||||
<Row size="18"/>
|
||||
</Rows>
|
||||
<Band id="body">
|
||||
<Cell displaytype="tree" edittype="tree" style="background:EXPR((Level==2)?"#ffffff00":"");background2:EXPR((Level==2)?"#ffffff00":"");color:EXPR((Level==2)?"#1c81beff":"");color2:EXPR((Level==2)?"#1c81beff":"");font:EXPR((Level==2)?"Dotum,9,bold":"");selectbackground:EXPR((Level==0)?"#ffffff00":"");selectcolor:EXPR((Level==0)?"#1c81beff":"");selectfont:EXPR((Level==0)?"Dotum,9,bold":"");" text="bind:MENU_NM" treestartlevel="2" treelevel="bind:MENU_LVL" tooltiptype="top,center" tooltiptext="bind:MENU_NM"/>
|
||||
</Band>
|
||||
</Format>
|
||||
</Formats>
|
||||
</Grid>
|
||||
</Layout>
|
||||
</Layouts>
|
||||
</Div>
|
||||
<Static id="sta_LF_TopHilight" position="absolute 4 0 165 18" style="background:@gradation; gradation:liner 0,0 #ffffffff 0,100 #ffffff00; " onclick="sta_LF_TopHilight_onclick"/>
|
||||
<Combo id="Combo00" taborder="1" innerdataset="ds_menu_combo" codecolumn="idx" datacolumn="context" displayrowcount="5" class="cmb_TP_Search" position="absolute 11 2 161 27" anchor="left top right"/>
|
||||
<Edit id="edt_search" taborder="1" position="absolute 14 4 136 26" style="background:transparent;border:0 none #808080ff ;opacity:100;" ontextchanged="edt_search_ontextchanged" onkeydown="edt_search_onkeydown"/>
|
||||
<ListBox id="lst_search" taborder="1" innerdataset="fds_Find" codecolumn="text" datacolumn="text" onitemclick="lst_search_onitemclick" onkeydown="lst_search_onkeydown" visible="false" position="absolute 11 31 161 208"/>
|
||||
<Button id="btn_search" taborder="1" position="absolute 140 4 159 25" style="opacity:0;" onclick="btn_search_onclick"/>
|
||||
<PopupDiv id="PopFMLink" style="background:#ffffffff;border:2 solid #72cdf4ff ;bordertype:round 3 3 ;" onmouseleave="PopLink_onmouseleave" onmouseenter="PopLink_onmouseenter" visible="false" position="absolute 206 0 1176 630">
|
||||
<Layouts>
|
||||
<Layout>
|
||||
<Static id="Static01" text="전력수요" class="stc_PopupAllmenuTil" position="absolute 30 47 190 75" style="background:antiquewhite;" anchor="default"/>
|
||||
<Static id="Static00" text="일간" class="stc_Allmenu_default" position="absolute 48 79 192 107" anchor="default"/>
|
||||
<Static id="Static03" text="주간" class="stc_Allmenu_default" position="absolute 48 103 192 131" anchor="default"/>
|
||||
<Static id="Static04" text="월간" class="stc_Allmenu_default" position="absolute 48 127 192 155" anchor="default"/>
|
||||
<Static id="Static05" text="지역별 수요실적" class="stc_Allmenu_default" position="absolute 48 151 192 179" anchor="default"/>
|
||||
<Static id="Static06" text="전력공급입찰" class="stc_PopupAllmenuTil" position="absolute 214 47 374 75" style="background:antiquewhite;" anchor="default"/>
|
||||
<Static id="Static07" text="입찰" class="stc_Allmenu_1depth" position="absolute 232 79 376 107" anchor="default"/>
|
||||
<Static id="Static08" text="초기입찰" class="stc_Allmenu_2depth" position="absolute 232 103 376 131" anchor="default"/>
|
||||
<Static id="Static09" text="변경입찰" class="stc_Allmenu_2depth" position="absolute 232 127 376 155" anchor="default"/>
|
||||
<Static id="Static10" text="변경입찰 확인" class="stc_Allmenu_1depth" position="absolute 232 151 376 179" anchor="default"/>
|
||||
<Static id="Static11" text="시장가격" class="stc_PopupAllmenuTil" position="absolute 398 47 558 75" style="background:antiquewhite;" anchor="default"/>
|
||||
<Static id="Static12" text="가격결정발전계획" class="stc_Allmenu_default" position="absolute 416 79 560 107" anchor="default"/>
|
||||
<Static id="Static13" text="가격결정발전기" class="stc_Allmenu_default" position="absolute 416 103 560 131" anchor="default"/>
|
||||
<Static id="Static14" text="계통한계가격" class="stc_Allmenu_default" position="absolute 416 127 560 155" anchor="default"/>
|
||||
<Static id="Static15" text="발전가격" class="stc_Allmenu_default" position="absolute 416 151 560 179" anchor="default"/>
|
||||
<Static id="Static16" text="계통운영" class="stc_PopupAllmenuTil" position="absolute 590 47 750 75" style="background:antiquewhite;" anchor="default"/>
|
||||
<Static id="Static17" text="급전지시" class="stc_Allmenu_default" position="absolute 608 79 752 107" anchor="default"/>
|
||||
<Static id="Static18" text="운영발전계획" class="stc_Allmenu_default" position="absolute 608 103 752 131" anchor="default"/>
|
||||
<Static id="Static19" text="예비력계획" class="stc_Allmenu_default" position="absolute 608 127 752 155" anchor="default"/>
|
||||
<Static id="Static20" text="휴전계획" class="stc_Allmenu_default" position="absolute 608 151 752 179" anchor="default"/>
|
||||
<Static id="Static21" text="계량운영" class="stc_PopupAllmenuTil" position="absolute 774 47 934 75" style="background:antiquewhite;" anchor="default"/>
|
||||
<Static id="Static22" text="발전기별 계량정보" class="stc_Allmenu_default" position="absolute 792 79 936 107" anchor="default"/>
|
||||
<Static id="Static23" text="시간대별 계량정보" class="stc_Allmenu_default" position="absolute 792 103 936 131" anchor="default"/>
|
||||
<Static id="Static24" text="미취득 계량정" class="stc_Allmenu_default" position="absolute 792 127 936 155" anchor="default"/>
|
||||
<Static id="Static26" text="변경입찰 목록조회" class="stc_Allmenu_2depth" position="absolute 232 199 376 227" anchor="default"/>
|
||||
<Static id="Static27" text="변경입찰 확인" class="stc_Allmenu_2depth" position="absolute 232 175 376 203" anchor="default"/>
|
||||
<Static id="Static28" text="입찰 결과" class="stc_Allmenu_default" position="absolute 232 223 376 251" anchor="default"/>
|
||||
<Static id="Static29" text="임시발전가격" class="stc_Allmenu_default" position="absolute 416 175 560 203" anchor="default"/>
|
||||
<Static id="Static30" text="발전정비계획" class="stc_Allmenu_default" position="absolute 608 175 752 203" anchor="default"/>
|
||||
<Static id="Static31" text="송전가능용량" class="stc_Allmenu_default" position="absolute 608 199 752 227" anchor="default"/>
|
||||
<Static id="Static32" text="계통운영정보" class="stc_Allmenu_default" position="absolute 608 223 752 251" anchor="default"/>
|
||||
<Static id="Static33" text="자체기동발전기" class="stc_Allmenu_default" position="absolute 608 247 752 275" anchor="default"/>
|
||||
<Static id="Static34" text="전기고장통계" class="stc_Allmenu_default" position="absolute 608 271 752 299" anchor="default"/>
|
||||
<Static id="Static25" text="전력거래정산" class="stc_PopupAllmenuTil" position="absolute 30 310 190 338" style="background:burlywood;" anchor="default"/>
|
||||
<Static id="Static35" text="정산금" class="stc_Allmenu_default" position="absolute 48 342 192 370" anchor="default"/>
|
||||
<Static id="Static36" text="통지서/청구서 접수" class="stc_Allmenu_default" position="absolute 48 366 192 394" anchor="default"/>
|
||||
<Static id="Static37" text="청구서 발행" class="stc_Allmenu_default" position="absolute 48 390 192 418" anchor="default"/>
|
||||
<Static id="Static38" text="수정청구서 접수" class="stc_Allmenu_default" position="absolute 48 414 192 442" anchor="default"/>
|
||||
<Static id="Static39" text="전력공급입찰" class="stc_PopupAllmenuTil" position="absolute 214 310 374 338" style="background:burlywood;" anchor="default"/>
|
||||
<Static id="Static44" text="시장가격" class="stc_PopupAllmenuTil" position="absolute 398 310 558 338" style="background:burlywood;" anchor="default"/>
|
||||
<Static id="Static45" text="사용자 조회" class="stc_Allmenu_default" position="absolute 416 342 560 370" anchor="default"/>
|
||||
<Static id="Static46" text="회원사 관리" class="stc_Allmenu_1depth" position="absolute 416 366 560 394" anchor="default"/>
|
||||
<Static id="Static47" text="발전회사 등록" class="stc_Allmenu_2depth" position="absolute 416 390 560 418" anchor="default"/>
|
||||
<Static id="Static48" text="발전소 등록" class="stc_Allmenu_2depth" position="absolute 416 414 560 442" anchor="default"/>
|
||||
<Static id="Static51" text="시장운영실적" class="stc_Allmenu_default" position="absolute 232 486 376 514" anchor="default"/>
|
||||
<Static id="Static52" text="발전기 등록" class="stc_Allmenu_2depth" position="absolute 416 438 560 466" anchor="default"/>
|
||||
<Static id="Static53" text="수정청구서 발행" class="stc_Allmenu_default" position="absolute 48 438 192 466" anchor="default"/>
|
||||
<Static id="Static54" text="청구서 발행목록" class="stc_Allmenu_default" position="absolute 48 462 192 490" anchor="default"/>
|
||||
<Static id="Static55" text="정산명세서" class="stc_Allmenu_default" position="absolute 48 486 192 514" anchor="default"/>
|
||||
<Static id="Static56" text="가정산 집계표" class="stc_Allmenu_default" position="absolute 48 510 192 538" anchor="default"/>
|
||||
<Static id="Static57" text="세무자료" class="stc_Allmenu_default" position="absolute 48 534 192 562" anchor="default"/>
|
||||
<Static id="Static58" text="세금계산서" class="stc_Allmenu_default" position="absolute 48 558 192 586" anchor="default"/>
|
||||
<Static id="Static59" text="위원회" class="stc_Allmenu_1depth" position="absolute 232 510 376 538" anchor="default"/>
|
||||
<Static id="Static60" text="비용평가위원회" class="stc_Allmenu_2depth" position="absolute 232 534 376 562" anchor="default"/>
|
||||
<Static id="Static40" text="CP/AS/기준가격 관리" class="stc_Allmenu_default" position="absolute 232 462 376 490" anchor="default"/>
|
||||
<Static id="Static41" text="용량가격" class="stc_Allmenu_default" position="absolute 232 438 376 466" anchor="default"/>
|
||||
<Static id="Static42" text="송전손실계수" class="stc_Allmenu_default" position="absolute 232 414 376 442" anchor="default"/>
|
||||
<Static id="Static43" text="발전비용 평가자료" class="stc_Allmenu_default" position="absolute 232 390 376 418" anchor="default"/>
|
||||
<Static id="Static49" text="기저한계가격(구)" class="stc_Allmenu_default" position="absolute 232 366 376 394" anchor="default"/>
|
||||
<Static id="Static50" text="기저상한가격(구)" class="stc_Allmenu_default" position="absolute 232 342 376 370" anchor="default"/>
|
||||
<Static id="Static61" text="규칙개정위원회" class="stc_Allmenu_2depth" position="absolute 232 558 376 586" anchor="default"/>
|
||||
<Static id="Static62" text="정보공개위원회" class="stc_Allmenu_2depth" position="absolute 232 582 376 610" anchor="default"/>
|
||||
<Static id="Static63" text="거래일 관리" class="stc_Allmenu_1depth" position="absolute 416 462 560 490" anchor="default"/>
|
||||
<Static id="Static64" text="휴일 관리" class="stc_Allmenu_2depth" position="absolute 416 486 560 514" anchor="default"/>
|
||||
<Static id="Static65" text="예약입찰일 관리" class="stc_Allmenu_2depth" position="absolute 416 510 560 538" anchor="default"/>
|
||||
<Static id="Static66" text="입잘시간정의 관리" class="stc_Allmenu_1depth" position="absolute 416 534 560 562" anchor="default"/>
|
||||
<Static id="Static67" text="입잘시간 관리" class="stc_Allmenu_2depth" position="absolute 416 558 560 586" anchor="default"/>
|
||||
<Static id="Static68" text="계량 수동입력시간 관리" class="stc_Allmenu_2depth" position="absolute 416 582 560 610" anchor="default"/>
|
||||
<Static id="Static02" text="e-power market 전체 메뉴" position="absolute 0 0 966 29" style="background:darkkhaki;" anchor="default"/>
|
||||
<Button id="Button00" taborder="1" onclick="btnCancel_onclick" class="btn_tab_close" position="absolute 948 8 961 21" anchor="default"/>
|
||||
</Layout>
|
||||
</Layouts>
|
||||
</PopupDiv>
|
||||
</Layout>
|
||||
</Layouts>
|
||||
<Objects>
|
||||
<Dataset id="DsMenu">
|
||||
<ColumnInfo>
|
||||
<Column id="MENU_LVL" type="STRING" size="256"/>
|
||||
<Column id="menuId" type="STRING" size="256"/>
|
||||
<Column id="MENU_NM" type="STRING" size="256"/>
|
||||
<Column id="menuUrl" type="STRING" size="256"/>
|
||||
<Column id="lvl1Code" type="STRING" size="256"/>
|
||||
<Column id="lvl1Name" type="STRING" size="256"/>
|
||||
<Column id="lvl2Code" type="STRING" size="256"/>
|
||||
<Column id="lvl2Name" type="STRING" size="256"/>
|
||||
</ColumnInfo>
|
||||
<Rows>
|
||||
<Row/>
|
||||
</Rows>
|
||||
</Dataset>
|
||||
<FilteredDataset id="fds_Find" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false" binddataset="@ds_Find" filterstr="text == ''"/>
|
||||
<Dataset id="ds_Find" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
|
||||
<ColumnInfo>
|
||||
<Column id="pseudocode" type="STRING" size="256"/>
|
||||
<Column id="text" type="STRING" size="256"/>
|
||||
</ColumnInfo>
|
||||
<Rows>
|
||||
<Row>
|
||||
<Col id="pseudocode"/>
|
||||
<Col id="text">전력수요</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="pseudocode"/>
|
||||
<Col id="text">초기입찰</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="pseudocode"/>
|
||||
<Col id="text">계통한계가격</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="pseudocode"/>
|
||||
<Col id="text">매출보관함</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="pseudocode"/>
|
||||
<Col id="text">발전기계량실적</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="pseudocode"/>
|
||||
<Col id="text">정산금통지서</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="pseudocode"/>
|
||||
<Col id="text">정산금청구서</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="pseudocode"/>
|
||||
<Col id="text">공지사항</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="pseudocode"/>
|
||||
<Col id="text">시장운용속보</Col>
|
||||
</Row>
|
||||
</Rows>
|
||||
</Dataset>
|
||||
<Dataset id="ds_TmenuLt00">
|
||||
<ColumnInfo>
|
||||
<Column id="MENU_LEVEL1_CD" type="STRING" size="255"/>
|
||||
<Column id="MENU_NM" type="STRING" size="255"/>
|
||||
<Column id="TREE" type="STRING" size="55"/>
|
||||
<Column id="PGM_FILE_NM" type="STRING" size="55"/>
|
||||
<Column id="PGM_PATH_NM" type="STRING" size="55"/>
|
||||
<Column id="MENU_CD" type="STRING" size="255"/>
|
||||
<Column id="MENU_LEVEL" type="INT" size="15"/>
|
||||
<Column id="MYMENU" type="STRING" size="256"/>
|
||||
</ColumnInfo>
|
||||
<Rows>
|
||||
<Row>
|
||||
<Col id="MENU_LEVEL1_CD">M3</Col>
|
||||
<Col id="MENU_NM">GUIDE1</Col>
|
||||
<Col id="TREE">---2</Col>
|
||||
<Col id="PGM_FILE_NM"/>
|
||||
<Col id="PGM_PATH_NM"/>
|
||||
<Col id="MENU_CD">COA</Col>
|
||||
<Col id="MENU_LEVEL">0</Col>
|
||||
<Col id="MYMENU">0</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_LEVEL1_CD">M3</Col>
|
||||
<Col id="MENU_NM">GUIDE2_1</Col>
|
||||
<Col id="TREE">-------3</Col>
|
||||
<Col id="PGM_FILE_NM"/>
|
||||
<Col id="PGM_PATH_NM"/>
|
||||
<Col id="MENU_CD">COA01</Col>
|
||||
<Col id="MENU_LEVEL">1</Col>
|
||||
<Col id="MYMENU">0</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_LEVEL1_CD">M3</Col>
|
||||
<Col id="MENU_NM">GUIDE0100</Col>
|
||||
<Col id="TREE">-----------4</Col>
|
||||
<Col id="PGM_FILE_NM">GUIDE0100.xfdl</Col>
|
||||
<Col id="PGM_PATH_NM">design</Col>
|
||||
<Col id="MENU_CD">GUIDE0100</Col>
|
||||
<Col id="MENU_LEVEL">2</Col>
|
||||
<Col id="MYMENU">0</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_LEVEL1_CD">M3</Col>
|
||||
<Col id="MENU_NM">GUIDE0200</Col>
|
||||
<Col id="TREE">-----------4</Col>
|
||||
<Col id="PGM_FILE_NM">GUIDE0200.xfdl</Col>
|
||||
<Col id="PGM_PATH_NM">design</Col>
|
||||
<Col id="MENU_CD">GUIDE0200</Col>
|
||||
<Col id="MENU_LEVEL">2</Col>
|
||||
<Col id="MYMENU">0</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_LEVEL1_CD">M3</Col>
|
||||
<Col id="MENU_NM">GUIDE0210</Col>
|
||||
<Col id="TREE">-----------4</Col>
|
||||
<Col id="PGM_FILE_NM">GUIDE0210.xfdl</Col>
|
||||
<Col id="PGM_PATH_NM">design</Col>
|
||||
<Col id="MENU_CD">GUIDE0210</Col>
|
||||
<Col id="MENU_LEVEL">2</Col>
|
||||
<Col id="MYMENU">0</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_LEVEL1_CD">M3</Col>
|
||||
<Col id="MENU_NM">GUIDE0300</Col>
|
||||
<Col id="TREE">-----------4</Col>
|
||||
<Col id="PGM_FILE_NM">GUIDE0300.xfdl</Col>
|
||||
<Col id="PGM_PATH_NM">design</Col>
|
||||
<Col id="MENU_CD">GUIDE0300</Col>
|
||||
<Col id="MENU_LEVEL">2</Col>
|
||||
<Col id="MYMENU">0</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_LEVEL1_CD">M3</Col>
|
||||
<Col id="MENU_NM">GUIDE0310</Col>
|
||||
<Col id="TREE">-----------4</Col>
|
||||
<Col id="PGM_FILE_NM">GUIDE0310.xfdl</Col>
|
||||
<Col id="PGM_PATH_NM">design</Col>
|
||||
<Col id="MENU_CD">GUIDE0310</Col>
|
||||
<Col id="MENU_LEVEL">2</Col>
|
||||
<Col id="MYMENU">0</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_LEVEL1_CD">M3</Col>
|
||||
<Col id="MENU_NM">GUIDE0320</Col>
|
||||
<Col id="TREE">-----------4</Col>
|
||||
<Col id="PGM_FILE_NM">GUIDE0320.xfdl</Col>
|
||||
<Col id="PGM_PATH_NM">design</Col>
|
||||
<Col id="MENU_CD">GUIDE0320</Col>
|
||||
<Col id="MENU_LEVEL">2</Col>
|
||||
<Col id="MYMENU">0</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_LEVEL1_CD">M3</Col>
|
||||
<Col id="MENU_NM">GUIDE0330</Col>
|
||||
<Col id="TREE">-----------4</Col>
|
||||
<Col id="PGM_FILE_NM">GUIDE0330.xfdl</Col>
|
||||
<Col id="PGM_PATH_NM">design</Col>
|
||||
<Col id="MENU_CD">GUIDE0330</Col>
|
||||
<Col id="MENU_LEVEL">2</Col>
|
||||
<Col id="MYMENU">0</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_LEVEL1_CD">M3</Col>
|
||||
<Col id="MENU_NM">GUIDE0400</Col>
|
||||
<Col id="TREE">-----------4</Col>
|
||||
<Col id="PGM_FILE_NM">GUIDE0400.xfdl</Col>
|
||||
<Col id="PGM_PATH_NM">design</Col>
|
||||
<Col id="MENU_CD">GUIDE0400</Col>
|
||||
<Col id="MENU_LEVEL">2</Col>
|
||||
<Col id="MYMENU">0</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_LEVEL1_CD">M3</Col>
|
||||
<Col id="MENU_NM">GUIDE0500</Col>
|
||||
<Col id="TREE">-----------4</Col>
|
||||
<Col id="PGM_FILE_NM">GUIDE0500.xfdl</Col>
|
||||
<Col id="PGM_PATH_NM">design</Col>
|
||||
<Col id="MENU_CD">GUIDE0500</Col>
|
||||
<Col id="MENU_LEVEL">2</Col>
|
||||
<Col id="MYMENU">0</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_LEVEL1_CD">M3</Col>
|
||||
<Col id="MENU_NM">GUIDE0600</Col>
|
||||
<Col id="TREE">-----------4</Col>
|
||||
<Col id="PGM_FILE_NM">GUIDE0600.xfdl</Col>
|
||||
<Col id="PGM_PATH_NM">design</Col>
|
||||
<Col id="MENU_CD">GUIDE0600</Col>
|
||||
<Col id="MENU_LEVEL">2</Col>
|
||||
<Col id="MYMENU">0</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_LEVEL1_CD">M3</Col>
|
||||
<Col id="MENU_NM">GUIDE0700</Col>
|
||||
<Col id="TREE">-----------4</Col>
|
||||
<Col id="PGM_FILE_NM">GUIDE0700.xfdl</Col>
|
||||
<Col id="PGM_PATH_NM">design</Col>
|
||||
<Col id="MENU_CD">GUIDE0700</Col>
|
||||
<Col id="MENU_LEVEL">2</Col>
|
||||
<Col id="MYMENU">0</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_LEVEL1_CD">M3</Col>
|
||||
<Col id="MENU_NM">GUIDE0800</Col>
|
||||
<Col id="TREE">-----------4</Col>
|
||||
<Col id="PGM_FILE_NM">GUIDE0800.xfdl</Col>
|
||||
<Col id="PGM_PATH_NM">design</Col>
|
||||
<Col id="MENU_CD">GUIDE0800</Col>
|
||||
<Col id="MENU_LEVEL">2</Col>
|
||||
<Col id="MYMENU">0</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_LEVEL1_CD">M3</Col>
|
||||
<Col id="MENU_NM">GUIDE0900</Col>
|
||||
<Col id="TREE">-----------4</Col>
|
||||
<Col id="PGM_FILE_NM">GUIDE0900.xfdl</Col>
|
||||
<Col id="PGM_PATH_NM">design</Col>
|
||||
<Col id="MENU_CD">GUIDE0900</Col>
|
||||
<Col id="MENU_LEVEL">2</Col>
|
||||
<Col id="MYMENU">0</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_LEVEL1_CD">M3</Col>
|
||||
<Col id="MENU_NM">GUIDE1000</Col>
|
||||
<Col id="TREE">-----------4</Col>
|
||||
<Col id="PGM_FILE_NM">GUIDE1000.xfdl</Col>
|
||||
<Col id="PGM_PATH_NM">design</Col>
|
||||
<Col id="MENU_CD">GUIDE1000</Col>
|
||||
<Col id="MENU_LEVEL">2</Col>
|
||||
<Col id="MYMENU">0</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_LEVEL1_CD">M3</Col>
|
||||
<Col id="MENU_NM">GUIDE1100</Col>
|
||||
<Col id="TREE">-----------4</Col>
|
||||
<Col id="PGM_FILE_NM">GUIDE1100.xfdl</Col>
|
||||
<Col id="PGM_PATH_NM">design</Col>
|
||||
<Col id="MENU_CD">GUIDE1100</Col>
|
||||
<Col id="MENU_LEVEL">2</Col>
|
||||
<Col id="MYMENU">0</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_LEVEL1_CD">M3</Col>
|
||||
<Col id="MENU_NM">GUIDE1200</Col>
|
||||
<Col id="TREE">-----------4</Col>
|
||||
<Col id="PGM_FILE_NM">GUIDE1200.xfdl</Col>
|
||||
<Col id="PGM_PATH_NM">design</Col>
|
||||
<Col id="MENU_CD">GUIDE1200</Col>
|
||||
<Col id="MENU_LEVEL">2</Col>
|
||||
<Col id="MYMENU">0</Col>
|
||||
</Row>
|
||||
</Rows>
|
||||
</Dataset>
|
||||
<Dataset id="ds_PuSearchlink" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
|
||||
<ColumnInfo>
|
||||
<Column id="SEARCH_MENU" type="STRING" size="256"/>
|
||||
<Column id="MENU_NM" type="STRING" size="256"/>
|
||||
<Column id="MENU_CD" type="STRING" size="256"/>
|
||||
<Column id="MENU_TP" type="STRING" size="256"/>
|
||||
<Column id="PGM_FILE_NM" type="STRING" size="256"/>
|
||||
<Column id="PGM_PATH_NM" type="STRING" size="256"/>
|
||||
</ColumnInfo>
|
||||
<Rows>
|
||||
<Row>
|
||||
<Col id="SEARCH_MENU">e-power market (4)</Col>
|
||||
<Col id="MENU_TP">1</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="SEARCH_MENU">기타 > <fc v='#ff4005'>시장</fc>운영자료</Col>
|
||||
<Col id="MENU_TP">2</Col>
|
||||
<Col id="MENU_CD">PGM01</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="SEARCH_MENU">기타 > <fc v='#ff4005'>시장</fc>통계</Col>
|
||||
<Col id="MENU_TP">2</Col>
|
||||
<Col id="MENU_CD">PGM02</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="SEARCH_MENU">기타 > 전력<fc v='#ff4005'>시장</fc>감시위원회</Col>
|
||||
<Col id="MENU_TP">2</Col>
|
||||
<Col id="MENU_CD">PGM03</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="SEARCH_MENU">기타 > <fc v='#ff4005'>시장</fc>가격</Col>
|
||||
<Col id="MENU_TP">2</Col>
|
||||
<Col id="MENU_CD">PGM04</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="SEARCH_MENU">정산 (7)</Col>
|
||||
<Col id="MENU_TP">1</Col>
|
||||
<Col id="MENU_CD"/>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_TP">2</Col>
|
||||
<Col id="SEARCH_MENU">2차 depth 메뉴명 > 3차 depth 메뉴명</Col>
|
||||
<Col id="MENU_CD">PGM01</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_TP">2</Col>
|
||||
<Col id="SEARCH_MENU">2차 depth 메뉴명 > 3차 depth 메뉴명</Col>
|
||||
<Col id="MENU_CD">PGM02</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_TP">2</Col>
|
||||
<Col id="SEARCH_MENU">2차 depth 메뉴명 > 3차 depth 메뉴명</Col>
|
||||
<Col id="MENU_CD">PGM03</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_TP">2</Col>
|
||||
<Col id="SEARCH_MENU">2차 depth 메뉴명 > 3차 depth 메뉴명</Col>
|
||||
<Col id="MENU_CD">PGM04</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_TP">2</Col>
|
||||
<Col id="SEARCH_MENU">2차 depth 메뉴명 > 3차 depth 메뉴명</Col>
|
||||
<Col id="MENU_CD">PGM01</Col>
|
||||
</Row>
|
||||
</Rows>
|
||||
</Dataset>
|
||||
<Dataset id="ds_PuSearchlink00" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
|
||||
<ColumnInfo>
|
||||
<Column id="SEARCH_MENU" type="STRING" size="256"/>
|
||||
<Column id="MENU_NM" type="STRING" size="256"/>
|
||||
<Column id="MENU_CD" type="STRING" size="256"/>
|
||||
<Column id="MENU_TP" type="STRING" size="256"/>
|
||||
<Column id="PGM_FILE_NM" type="STRING" size="256"/>
|
||||
<Column id="PGM_PATH_NM" type="STRING" size="256"/>
|
||||
</ColumnInfo>
|
||||
<Rows>
|
||||
<Row>
|
||||
<Col id="SEARCH_MENU">전력수요</Col>
|
||||
<Col id="MENU_TP">1</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="SEARCH_MENU">기타 > <fc v='#ff4005'>시장</fc>운영자료</Col>
|
||||
<Col id="MENU_TP">2</Col>
|
||||
<Col id="MENU_CD">PGM01</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="SEARCH_MENU">기타 > <fc v='#ff4005'>시장</fc>통계</Col>
|
||||
<Col id="MENU_TP">2</Col>
|
||||
<Col id="MENU_CD">PGM02</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="SEARCH_MENU">기타 > 전력<fc v='#ff4005'>시장</fc>감시위원회</Col>
|
||||
<Col id="MENU_TP">2</Col>
|
||||
<Col id="MENU_CD">PGM03</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="SEARCH_MENU">기타 > <fc v='#ff4005'>시장</fc>가격</Col>
|
||||
<Col id="MENU_TP">2</Col>
|
||||
<Col id="MENU_CD">PGM04</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="SEARCH_MENU">정보공개</Col>
|
||||
<Col id="MENU_TP">1</Col>
|
||||
<Col id="MENU_CD"/>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_TP">2</Col>
|
||||
<Col id="SEARCH_MENU">2차 depth 메뉴명 > 3차 depth <fc v='#ff4005'>시장</fc></Col>
|
||||
<Col id="MENU_CD">PGM01</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_TP">2</Col>
|
||||
<Col id="SEARCH_MENU">2차 depth 메뉴명 > 3차 depth <fc v='#ff4005'>시장</fc></Col>
|
||||
<Col id="MENU_CD">PGM02</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_TP">2</Col>
|
||||
<Col id="SEARCH_MENU">2차 depth 메뉴명 > 3차 depth <fc v='#ff4005'>시장</fc></Col>
|
||||
<Col id="MENU_CD">PGM03</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_TP">2</Col>
|
||||
<Col id="SEARCH_MENU">2차 depth 메뉴명 > 3차 depth <fc v='#ff4005'>시장</fc></Col>
|
||||
<Col id="MENU_CD">PGM04</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_TP">2</Col>
|
||||
<Col id="SEARCH_MENU">2차 depth 메뉴명 > 3차 depth <fc v='#ff4005'>시장</fc></Col>
|
||||
<Col id="MENU_CD">PGM01</Col>
|
||||
</Row>
|
||||
</Rows>
|
||||
</Dataset>
|
||||
</Objects>
|
||||
<Script type="xscript4.0"><![CDATA[/*
|
||||
* 01. 업무구분 : Frame 공통
|
||||
* 02. 화면명 : leftFrame.xfdl
|
||||
* 03. 화면설명 :
|
||||
* 04. 작성일 : 2012-08-22
|
||||
* 05. 작성자 : sian
|
||||
* 06. 수정이력 :
|
||||
*********************************************************************
|
||||
* 수정일 이 름 사유
|
||||
*********************************************************************
|
||||
* 2012-08-22 sian 최초 작성
|
||||
*********************************************************************
|
||||
*/
|
||||
include "lib::commLib.xjs"; //공통함수 호출
|
||||
|
||||
var fLoad=0;
|
||||
function leftMenu_onload(obj:Form, e:LoadEventInfo)
|
||||
{
|
||||
//선택된 메뉴 LEVEL2 명 표시
|
||||
//divMenu.BtnLeftMenu.text = MenuNm;
|
||||
gds_Menu.filter("MENU_CD.toString().substr(0,4)=='"+("0010000".substr(0,4))+"'&&(MENU_LVL=='3'||MENU_LVL=='4')");
|
||||
DsMenu.copyData(gds_Menu, true);
|
||||
DsMenu.keystring = "S:MENU_CD";
|
||||
gds_Menu.filter("");
|
||||
|
||||
// 검색시 사용할 데이타셋
|
||||
fn_findDataLoad();
|
||||
}
|
||||
|
||||
function fn_loadMenu()
|
||||
{
|
||||
gfn_ChkOpenMenu(DsMenu.getColumn(1, "MENU_CD"), DsMenu);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//MDI 탭메뉴 생성
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
function divMenu_grdMenu_oncellclick(obj:Grid, e:GridClickEventInfo)
|
||||
{
|
||||
var objDs = this[obj.binddataset];
|
||||
var nSx = 29;
|
||||
var nEx = 45;
|
||||
var nRow = e.row;
|
||||
var nLvl = objDs.getColumn(nRow, "MENU_LVL");
|
||||
|
||||
var childRow = obj.getTreeChildRow(objDs.rowposition, 0, true);
|
||||
|
||||
if (childRow >= 0) {
|
||||
|
||||
var gridRow = obj.getTreeRow(objDs.rowposition);
|
||||
if (obj.isTreeCollapsedRow(childRow, true)) {
|
||||
obj.setTreeStatus(gridRow, true);
|
||||
}
|
||||
else {
|
||||
obj.setTreeStatus(gridRow, false);
|
||||
}
|
||||
}
|
||||
|
||||
if (nLvl=="4"){
|
||||
if (e.canvasX < nSx || e.canvasX > nEx)
|
||||
{
|
||||
gfn_ChkOpenMenu(objDs.getColumn(e.row, "MENU_CD"), objDs);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(objDs.getColumn(e.row,"MYMENU") == "0")
|
||||
{
|
||||
objDs.setColumn(e.row,"MYMENU","1");
|
||||
|
||||
var nCKrow = gdsMyMenu.findRow("menu_id",objDs.getColumn(e.row,"MENU_CD"));
|
||||
if(nCKrow == -1){
|
||||
var nRow = gdsMyMenu.addRow();
|
||||
gdsMyMenu.setColumn(nRow,"menu_id",objDs.getColumn(e.row,"MENU_CD"));
|
||||
gdsMyMenu.setColumn(nRow,"menu_nm",objDs.getColumn(e.row,"MENU_NM"));
|
||||
}
|
||||
} else {
|
||||
objDs.setColumn(e.row,"MYMENU","0");
|
||||
var nCKrow = gdsMyMenu.findRow("menu_id",objDs.getColumn(e.row,"MENU_CD"));
|
||||
gdsMyMenu.deleteRow(nCKrow);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Left Tree메뉴
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
function fn_changeLeftMenu(Level1Code, MenuNm)
|
||||
{
|
||||
|
||||
if(gv_menuType == "1") // 1Depth 메뉴(버튼) 형태
|
||||
{
|
||||
|
||||
//선택된 메뉴 LEVEL2 명 표시
|
||||
//divMenu.BtnLeftMenu.text = MenuNm;
|
||||
var strFilter = "MENU_CD.toString().substr(0,2)=='"+Level1Code.toString().substr(0,2)+"'&&(MENU_LVL=='2'||MENU_LVL=='3'||MENU_LVL=='4')";
|
||||
gds_Menu.filter(strFilter);
|
||||
|
||||
DsMenu.copyData(gds_Menu, true);
|
||||
|
||||
DsMenu.keystring = "S:MENU_CD";
|
||||
gds_Menu.filter("");
|
||||
}
|
||||
else if(gv_menuType == "2") // 1Depth 메뉴(버튼) + 2Depth메뉴(팝업Div)형태
|
||||
{
|
||||
//선택된 메뉴 LEVEL2 명 표시
|
||||
//divMenu.BtnLeftMenu.text = MenuNm;
|
||||
var strFilter = "MENU_CD.toString().substr(0,5)=='"+Level1Code.toString().substr(0,5)+"'&&(MENU_LVL=='3'||MENU_LVL=='4')";
|
||||
gds_Menu.filter(strFilter);
|
||||
|
||||
DsMenu.copyData(gds_Menu, true);
|
||||
|
||||
DsMenu.keystring = "S:MENU_CD";
|
||||
gds_Menu.filter("");
|
||||
}
|
||||
}
|
||||
|
||||
function edt_search_ontextchanged(obj:Edit, e:TextChangedEventInfo)
|
||||
{
|
||||
|
||||
var text = e.posttext;
|
||||
if(text.length > 0)
|
||||
{
|
||||
var etext = GetSpliceTextE(text);
|
||||
fds_Find.filter("pseudocode.toString().indexOf('"+etext+"') == 0");
|
||||
if(fds_Find.rowcount == 0){
|
||||
lst_search.visible = false;
|
||||
}else{
|
||||
lst_search.visible = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
fds_Find.filter("pseudocode == 0");
|
||||
lst_search.visible = false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function edt_search_onkeydown(obj:Edit, e:KeyEventInfo)
|
||||
{
|
||||
if(e.keycode == "40"){
|
||||
lst_search.setFocus();
|
||||
lst_search.index = 0;
|
||||
}else if(e.keycode == "13"){
|
||||
lst_search.visible = false;
|
||||
btn_search_onclick();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 한글 자소를 분리하여 리턴한다.
|
||||
var arrFirst = [12593,12594,12596,12599,12600,12601,12609,12610,12611,12613,12614,12615,12616,12617,12618,12619,12620,12621,12622];
|
||||
var arrSecond = [12623,12624,12625,12626,12627,12628,12629,12630,12631,12632,12633,12634,12635,12636,12637,12638,12639,12640,12641,12642,12643];
|
||||
var arrThird = [0,12593,12594,12595,12596,12597,12598,12599,12601,12602,12603,12604,12605,12606,12607,12608,12609,12610,12612,12613,12614,12615,12616,12618,12619,12620,12621,12622];
|
||||
function GetSpliceTextK(strInput)
|
||||
{
|
||||
var i;
|
||||
var strOut = "";
|
||||
for(i=0;i<strInput.length;i++)
|
||||
{
|
||||
var nCode = strInput.charCodeAt(i);
|
||||
|
||||
if(nCode>=44032 && nCode <= 55203)
|
||||
{
|
||||
var nFirst = Math.floor((nCode - 44032) / 588);
|
||||
strOut += String.fromCharCode(arrFirst[nFirst]);
|
||||
var nSecond = Math.floor(((nCode - 44032) % 588) / 28) ;
|
||||
strOut += String.fromCharCode(arrSecond[nSecond]);
|
||||
var nThird = Math.floor((nCode - 44032) % 28) ;
|
||||
if(nThird > 0)
|
||||
strOut += String.fromCharCode(arrThird[nThird]);
|
||||
}
|
||||
else
|
||||
strOut += String.fromCharCode(nCode);
|
||||
}
|
||||
return strOut;
|
||||
}
|
||||
|
||||
// 한글 자소를 분리하고 키보드에 매치되는 영문으로 리턴한다.
|
||||
var arrFirstE = ["r","R","s","e","E","f","a","q","Q","t","T","d","w","W","c","z","x","v","g"];
|
||||
var arrSecondE = ["k","o","i","O","j","p","u","P","h","hk","ho","hl","y","n","nj","np","nl","b","m","ml","l"];
|
||||
var arrThirdE = ["","r","R","rt","s","sw","sg","e","f","fr","fa","fq","ft","fx","fv","fg","a","q","qt","t","T","d","w","c","z","x","v","g"];
|
||||
var arrAllE = ["r","R","rt","s","sw","sg","e","E","f","fr","fa","fq","ft","fx","fv","fg","a","q","Q","qt","t","T","d","w","W","c","z","x","v","g","k","o","i","O","j","p","u","P","h","hk","ho","hl","y","n","nj","np","nl","b","m","ml","l"];
|
||||
function GetSpliceTextE(strInput)
|
||||
{
|
||||
|
||||
var i;
|
||||
var strOutE = "";
|
||||
for(i=0;i<strInput.length;i++)
|
||||
{
|
||||
var nCode = strInput.charCodeAt(i);
|
||||
|
||||
if(nCode>=44032 && nCode <= 55203)
|
||||
{
|
||||
var nFirst = Math.floor((nCode - 44032) / 588);
|
||||
|
||||
strOutE += arrFirstE[nFirst];
|
||||
var nSecond = Math.floor(((nCode - 44032) % 588) / 28) ;
|
||||
|
||||
strOutE += arrSecondE[nSecond];
|
||||
var nThird = Math.floor((nCode - 44032) % 28) ;
|
||||
|
||||
if(nThird > 0)
|
||||
strOutE += arrThirdE[nThird];
|
||||
}
|
||||
else if(nCode>=12593 && nCode <= 12643)
|
||||
{
|
||||
strOutE += arrAllE[nCode-12593];
|
||||
}
|
||||
else
|
||||
{
|
||||
strOutE += String.fromCharCode(nCode);
|
||||
}
|
||||
}
|
||||
|
||||
return strOutE;
|
||||
}
|
||||
|
||||
function fn_findDataLoad()
|
||||
{
|
||||
var count = ds_Find.getRowCount();
|
||||
var i;
|
||||
|
||||
//div_LfMenu.cmb_Tmenu.index = 0;
|
||||
//div_LfMenu.grd_LF_SubMenu.binddataset= "ds_TmenuLt00";
|
||||
|
||||
for(i=0;i<count;i++)
|
||||
{
|
||||
var text = ds_Find.getColumn(i,"text");
|
||||
var code = GetSpliceTextE(text);
|
||||
ds_Find.setColumn(i,"pseudocode",code);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
function btn_search_onclick(obj:Button, e:ClickEventInfo)
|
||||
{
|
||||
if(!gfn_IsNull(edt_search.value))
|
||||
fn_SerchCallBack("search",1,edt_search.value);
|
||||
}
|
||||
|
||||
function fn_SerchCallBack(svcID, errorCode, errorMsg) {
|
||||
if(errorCode > -1){
|
||||
if ( svcID == "search"){
|
||||
//향후삭제
|
||||
ds_PuSearchlink.copyData(ds_PuSearchlink00);
|
||||
for(var i=0; i < ds_PuSearchlink.rowcount; i++){
|
||||
ds_PuSearchlink.setColumn(i,0,ds_PuSearchlink.getColumn(i,0).replace("시장",edt_search.value));
|
||||
}
|
||||
//End
|
||||
//메뉴생성
|
||||
fn_setMyMenud();
|
||||
//PopupListBox viable
|
||||
lfn_PopupListBox();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function lfn_PopupListBox(){
|
||||
|
||||
var nX = system.clientToScreenX(btn_search, 0) - edt_search.position.width - 5;
|
||||
var nY = system.clientToScreenY(btn_search, 0) + btn_search.position.height + 5;
|
||||
trace("yyyyyyyyyyyyyyyyyyyyyy=== " + PopLink.isPopup());
|
||||
if(PopLink.isPopup()==false){
|
||||
PopLink.trackPopup(nX, nY);
|
||||
}else{
|
||||
PopLink.closePopup();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
function lst_search_onitemclick(obj:ListBox, e:ListBoxClickEventInfo)
|
||||
{
|
||||
edt_search.value = e.itemtext;
|
||||
lst_search.visible = false;
|
||||
}
|
||||
|
||||
|
||||
function lst_search_onkeydown(obj:ListBox, e:KeyEventInfo)
|
||||
{
|
||||
if(e.keycode == "13"){
|
||||
edt_search.value = obj.value;
|
||||
lst_search.index = -1;
|
||||
lst_search.visible = false;
|
||||
edt_search.setFocus();
|
||||
}
|
||||
}
|
||||
|
||||
function fn_setMyMenud(){
|
||||
var objStaMn;
|
||||
var sStaID;
|
||||
var sStapreFix = "sta_menu";
|
||||
var menuTitle;
|
||||
var menuId;
|
||||
var objTextSize;
|
||||
var iNowLeft = 5;
|
||||
var iNowTop = 0;
|
||||
var iHeight = 24;
|
||||
var iStaGap = 0;
|
||||
var iStaSize = 300;
|
||||
var k=0;
|
||||
|
||||
fn_removeMenu();
|
||||
for(i=0; i < ds_PuSearchlink.rowcount; i++){
|
||||
menuTitle = ds_PuSearchlink.getColumn(i,"SEARCH_MENU");
|
||||
menuId = ds_PuSearchlink.getColumn(i,"MENU_CD");
|
||||
menuType = ds_PuSearchlink.getColumn(i,"MENU_TP");
|
||||
|
||||
objStaMn = new Static;
|
||||
sStaID = sStapreFix + i;
|
||||
|
||||
if(menuType == "1"){
|
||||
if(i == 0){
|
||||
objStaMn.init(sStaID, iNowLeft, iNowTop+iNowLeft, iStaSize+iNowLeft, iNowTop + iHeight+iNowLeft);
|
||||
}else{
|
||||
objStaMn.init(sStaID, iNowLeft, iNowTop+iNowLeft, iStaSize+iNowLeft, iNowTop + iHeight+iNowLeft + 12);
|
||||
}
|
||||
|
||||
}else if(menuType == "2"){
|
||||
objStaMn.init(sStaID, iNowLeft, iNowTop+iNowLeft, iStaSize+iNowLeft, iNowTop + iHeight+iNowLeft);
|
||||
}
|
||||
|
||||
|
||||
if(menuType == "1"){
|
||||
if(i == 0){
|
||||
iNowTop += (iHeight + iStaGap);
|
||||
}else{
|
||||
iNowTop += (iHeight + iStaGap) + 12;
|
||||
}
|
||||
}else if(menuType == "2"){
|
||||
iNowTop += (iHeight + iStaGap);
|
||||
}
|
||||
|
||||
objStaMn.menuId = menuId;
|
||||
objStaMn.text = menuTitle;
|
||||
objStaMn.usedecorate = true;
|
||||
|
||||
if(menuType == "1"){
|
||||
|
||||
if(i == 0){
|
||||
//objStaMn.class = "stc_popLayerTil";
|
||||
objStaMn.style.color="#235798";
|
||||
objStaMn.style.font="#Dotum,9,bold";
|
||||
}else{
|
||||
//objStaMn.class = "stc_popLayerTil2";
|
||||
objStaMn.style.color="#235798";
|
||||
objStaMn.style.font="#Dotum,9,bold";
|
||||
}
|
||||
|
||||
}else if(menuType == "2"){
|
||||
//objStaMn.class = "stc_popLayerList";
|
||||
objStaMn.style.background="transparent";
|
||||
}
|
||||
|
||||
PopLink.addChild(objStaMn.name, objStaMn);
|
||||
|
||||
if(menuType == "2"){
|
||||
objStaMn.onclick.addHandler(Menu_onmouseenter);
|
||||
}
|
||||
objStaMn.show();
|
||||
}
|
||||
//close btn 생성
|
||||
var objButton = new Button();
|
||||
objButton.init("btn_PopLinkClose", 305, 5, 320, 20);
|
||||
objButton.class = "btn_tab_close";
|
||||
objButton.text = "";
|
||||
objButton.onclick.addHandler(popLinkCloseButtonClick);
|
||||
PopLink.addChild(objButton.name, objButton);
|
||||
objButton.show();
|
||||
}
|
||||
|
||||
function fn_removeMenu()
|
||||
{
|
||||
if(PopLink.components.length>0)
|
||||
{
|
||||
while(PopLink.components.length!=0)
|
||||
{
|
||||
PopLink.removeChild(PopLink.components[0].name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function Menu_onmouseenter(obj:Static, e:ClickEventInfo)
|
||||
{
|
||||
alert("작업중");
|
||||
}
|
||||
|
||||
function popLinkCloseButtonClick(obj:Button, e:ClickEventInfo){
|
||||
PopLink.closePopup();
|
||||
}
|
||||
|
||||
// Active Form에 해당하는 메뉴 RowPosition설정
|
||||
function fn_selectedMenuIndex(sMenuCd)
|
||||
{
|
||||
DsMenu.rowposition = DsMenu.findRowExpr("MENU_CD=='"+sMenuCd+"'");
|
||||
}
|
||||
]]></Script>
|
||||
</Form>
|
||||
</FDL>
|
||||
62
src/main/webapp/xui/frame/login.xfdl
Normal file
62
src/main/webapp/xui/frame/login.xfdl
Normal file
@@ -0,0 +1,62 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FDL version="1.4">
|
||||
<TypeDefinition url="..\default_typedef.xml"/>
|
||||
<Form id="login" classname="login" inheritanceid="" position="absolute 0 0 460 200" titletext="New Form" style="background:transparent URL('theme://images/login_bg.png') stretch 50,50;">
|
||||
<Layouts>
|
||||
<Layout>
|
||||
<Edit id="S_USER_ID" taborder="0" value="test" onkeydown="S_USER_ID_onkeydown" position="absolute 128 71 273 90" style="background:#ffffff00; "/>
|
||||
<Edit id="S_USER_PWD" taborder="1" value="test1234" password="true" onkeydown="S_USER_PWD_onkeydown" position="absolute 128 95 273 114" style="background:#ffffff00; "/>
|
||||
<Button id="btn_login" taborder="1" onclick="btn_login_onclick" position="absolute 281 71 346 114" style="cursor:hand;" text="login" class="btn_WFSA_Search"/>
|
||||
<Button id="btn_cancel" taborder="1" text="cancel" onclick="btn_login_onclick" position="absolute 349 71 414 114" style="cursor:hand;" class="btn_WF_crud"/>
|
||||
<Radio id="rdo_menuType" taborder="1" position="absolute 128 132 282 156" onitemclick="Radio00_onitemclick" innerdataset="@radio" codecolumn="code" datacolumn="text" direction="vertical" index="0" value="1"/>
|
||||
<Static id="Static00" text="아이디 :" position="absolute 52 72 132 89" style="font:Dotum,10,bold;"/>
|
||||
<Static id="Static01" text="패스워드 :" position="absolute 52 94 133 111" style="font:Dotum,10,bold;"/>
|
||||
<Static id="Static02" text="메뉴타입 :" position="absolute 52 133 133 150" style="font:Dotum,10,bold;"/>
|
||||
<Static id="Static03" text="System Login" position="absolute 21 12 224 29" style="background:transparent URL('theme://images/ico_title.png') left middle;color:#ffffffff;padding:0 0 0 20;font:Dotum,10,bold;"/>
|
||||
</Layout>
|
||||
</Layouts>
|
||||
<Bind>
|
||||
<BindItem id="item0" compid="S_USER_ID" propid="value" datasetid="ds_in" columnid="USER_ID"/>
|
||||
<BindItem id="item1" compid="S_USER_PWD" propid="value" datasetid="ds_in" columnid="USER_PWD"/>
|
||||
</Bind>
|
||||
<Objects>
|
||||
<Dataset id="radio" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
|
||||
<ColumnInfo>
|
||||
<Column id="code" type="STRING" size="256"/>
|
||||
<Column id="text" type="STRING" size="256"/>
|
||||
</ColumnInfo>
|
||||
<Rows>
|
||||
<Row>
|
||||
<Col id="code">1</Col>
|
||||
<Col id="text">1단 메뉴</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="code">2</Col>
|
||||
<Col id="text">2단 메뉴</Col>
|
||||
</Row>
|
||||
</Rows>
|
||||
</Dataset>
|
||||
</Objects>
|
||||
<Script type="xscript4.0"><![CDATA[/*
|
||||
* 01. 업무구분 : 로그인 페이지
|
||||
* 02. 화면명 : login.xfdl
|
||||
* 03. 화면설명 :
|
||||
* 04. 작성일 : 2012-08-28
|
||||
* 05. 작성자 : sian
|
||||
* 06. 수정이력 :
|
||||
*********************************************************************
|
||||
* 수정일 이 름 사유
|
||||
*********************************************************************
|
||||
* 2012-08-28 sian 최초 작성
|
||||
*********************************************************************
|
||||
*/
|
||||
|
||||
function btn_login_onclick(obj:Button, e:ClickEventInfo)
|
||||
{
|
||||
// 메뉴타입 설정(topFrame 영역 메뉴타입 설정)
|
||||
gv_menuType = rdo_menuType.value;
|
||||
close("OK");
|
||||
}
|
||||
]]></Script>
|
||||
</Form>
|
||||
</FDL>
|
||||
173
src/main/webapp/xui/frame/myFrame.xfdl
Normal file
173
src/main/webapp/xui/frame/myFrame.xfdl
Normal file
@@ -0,0 +1,173 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FDL version="1.4">
|
||||
<TypeDefinition url="..\default_typedef.xml"/>
|
||||
<Form id="myFrame" classname="myFrame" inheritanceid="" position="absolute 0 0 30 647" titletext="New Form" scrollbars="none">
|
||||
<Layouts>
|
||||
<Layout>
|
||||
<Static id="sta_LF_GuideShadow" transparenthittest="true" position="absolute 25 0 30 648" style="background:@gradation; gradation:liner 0,0 #33333300 100,0 #33333333; "/>
|
||||
<Div id="div_LF_QuickMenu" anchor="left top bottom" taborder="1" style="background:#a8a8a2ff; " text="Div00" scrollbars="none" position="absolute 0 32 30 647">
|
||||
<Layouts>
|
||||
<Layout>
|
||||
<Button id="btn_LF_Quick00" taborder="1" text="1" onclick="div_LF_QuickMenu_btn_LF_Quick00_onclick" class="btn_LF_Quick" position="absolute 2 3 26 26"/>
|
||||
<Button id="btn_LF_Quick01" taborder="1" text="2" class="btn_LF_Quick" position="absolute 2 30 26 53"/>
|
||||
<Button id="btn_LF_Quick02" taborder="1" text="3" class="btn_LF_Quick" position="absolute 2 57 26 80"/>
|
||||
<Button id="btn_LF_Quick03" taborder="1" text="4" class="btn_LF_Quick" position="absolute 2 84 26 107"/>
|
||||
<Button id="btn_LF_Quick04" taborder="1" text="5" class="btn_LF_Quick" position="absolute 2 111 26 134"/>
|
||||
<Button id="btn_LF_Quick05" taborder="1" text="6" class="btn_LF_Quick" position="absolute 2 138 26 161"/>
|
||||
<Button id="btn_LF_Quick06" taborder="1" text="7" class="btn_LF_Quick" position="absolute 2 165 26 188"/>
|
||||
<Button id="btn_LF_Quick07" taborder="1" class="btn_LF_QuickAdd" position="absolute 2 192 26 215"/>
|
||||
</Layout>
|
||||
</Layouts>
|
||||
</Div>
|
||||
<Button id="btn_Show" taborder="1" onclick="btn_Show_onclick" class="btn_LF_ShowHide" position="absolute 7 7 20 22" style="image:URL('theme://images/img_LF_Show.png'); "/>
|
||||
<Button id="btn_Hide" taborder="1" onclick="btn_Hide_onclick" class="btn_LF_ShowHide" position="absolute 7 7 20 22" style="image:URL('theme://images/img_LF_Hide.png'); "/>
|
||||
</Layout>
|
||||
</Layouts>
|
||||
<Objects>
|
||||
<PropertyAnimation id="PropAni" endingmode="to" repeat="1" repeattype="normal" duration="0" starttime="0"/>
|
||||
</Objects>
|
||||
<Script type="xscript4.0"><![CDATA[
|
||||
function btn_ShowHide_onclick(obj:Button, e:ClickEventInfo)
|
||||
{
|
||||
btn_Hide.visible = false;
|
||||
btn_Show.visible = true;
|
||||
sysf_openMenuFrame("LEFT", true);
|
||||
}
|
||||
|
||||
//좌측 메뉴 보이기
|
||||
function btn_Show_onclick(obj:Button, e:ClickEventInfo)
|
||||
{
|
||||
btn_Hide.visible = true;
|
||||
btn_Show.visible = false;
|
||||
sysf_openMenuFrame("LEFT", false);
|
||||
}
|
||||
|
||||
//좌측 메뉴 숨기기
|
||||
function btn_Hide_onclick(obj:Button, e:ClickEventInfo)
|
||||
{
|
||||
btn_Hide.visible = false;
|
||||
btn_Show.visible = true;
|
||||
sysf_openMenuFrame("LEFT", true);
|
||||
}
|
||||
|
||||
//Left메뉴 View/Hide처리
|
||||
function sysf_openMenuFrame(Type, bHide)
|
||||
{
|
||||
if(Type=="LEFT")
|
||||
{
|
||||
if(bHide == true)
|
||||
{
|
||||
sysf_hideLeftMenuFrame();
|
||||
}
|
||||
else
|
||||
{
|
||||
sysf_showLeftMenuFrame();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 기능 : LEFT 프레임 접힘 처리
|
||||
* 인수 : 없슴
|
||||
* 리턴 : 없슴
|
||||
*/
|
||||
|
||||
|
||||
function sysf_hideLeftMenuFrame()
|
||||
{
|
||||
var PropAni1 = new PropertyAnimation();
|
||||
var PropAni2 = new PropertyAnimation();
|
||||
var CompAni = new CompositeAnimation();
|
||||
gv_menuShowWidth = gv_leftFrame.position.width;
|
||||
|
||||
gPropAni.menuType = "LEFT";
|
||||
gPropAni.hide = true;
|
||||
gPropAni.duration = 100;
|
||||
gPropAni.targetcomp = gv_leftFrame;
|
||||
|
||||
gPropAni.interpolation = Interpolation.expoOut;
|
||||
gPropAni.fromvalue = gv_leftFrame.position.x;
|
||||
gPropAni.tovalue = gv_menuHideWidth - gv_leftFrame.position.width;
|
||||
|
||||
gPropAni.targetprop = "position.x";
|
||||
gPropAni.endingmode = "to";
|
||||
|
||||
PropAni1.duration = 100;
|
||||
PropAni1.targetcomp = gv_VFrameSet;
|
||||
PropAni1.interpolation = Interpolation.expoOut;
|
||||
|
||||
PropAni1.fromvalue = gv_VFrameSet.position.x;
|
||||
PropAni1.tovalue = gv_menuHideWidth;
|
||||
|
||||
PropAni1.targetprop = "position.x";
|
||||
PropAni1.endingmode = "to";
|
||||
|
||||
PropAni2.duration = 100;
|
||||
PropAni2.targetcomp = gv_VFrameSet;
|
||||
PropAni2.interpolation = Interpolation.expoOut;
|
||||
PropAni2.fromvalue = gv_VFrameSet.position.width;
|
||||
PropAni2.tovalue = gv_VFrameSet.position.width+(gv_VFrameSet.position.x-gv_menuHideWidth);
|
||||
PropAni2.targetprop = "position.width";
|
||||
PropAni2.endingmode = "to";
|
||||
|
||||
CompAni.addItem(gPropAni);
|
||||
CompAni.addItem(PropAni1);
|
||||
CompAni.addItem(PropAni2);
|
||||
CompAni.run();
|
||||
}
|
||||
|
||||
/*
|
||||
* 기능 : LEFT 프레임 펼침 처리
|
||||
* 인수 : 없슴
|
||||
* 리턴 : 없슴
|
||||
*/
|
||||
|
||||
function sysf_showLeftMenuFrame()
|
||||
{
|
||||
var PropAni1 = new PropertyAnimation();
|
||||
var PropAni2 = new PropertyAnimation();
|
||||
var CompAni = new CompositeAnimation();
|
||||
|
||||
gPropAni.menuType = "LEFT";
|
||||
gPropAni.hide = false;
|
||||
gPropAni.duration = 100;
|
||||
gPropAni.targetcomp = gv_leftFrame;
|
||||
gPropAni.interpolation = Interpolation.expoOut;
|
||||
trace("gv_menuShowWidth===>> " + gv_menuShowWidth + " : " + gv_leftFrame.position.x);
|
||||
|
||||
gv_HFrameSet.separatesize = "30," + gv_menuShowWidth + ",*";
|
||||
gPropAni.fromvalue = gv_leftFrame.position.x - gv_menuShowWidth;
|
||||
gPropAni.tovalue = gv_leftFrame.position.x;
|
||||
|
||||
gPropAni.targetprop = "position.x";
|
||||
gPropAni.endingmode = "to";
|
||||
|
||||
PropAni1.duration = 100;
|
||||
PropAni1.targetcomp = gv_VFrameSet;
|
||||
PropAni1.interpolation = Interpolation.expoOut;
|
||||
|
||||
PropAni1.fromvalue = gv_menuHideWidth;
|
||||
PropAni1.tovalue = gv_menuShowWidth + 30;
|
||||
|
||||
PropAni1.targetprop = "position.x";
|
||||
PropAni1.endingmode = "to";
|
||||
|
||||
PropAni2.duration = 100;
|
||||
PropAni2.targetcomp = gv_VFrameSet;
|
||||
PropAni2.interpolation = Interpolation.expoOut;
|
||||
|
||||
PropAni2.fromvalue = gv_VFrameSet.position.width+(gv_VFrameSet.position.x-gv_menuHideWidth);
|
||||
PropAni2.tovalue = gv_VFrameSet.position.width;
|
||||
|
||||
PropAni2.targetprop = "position.width";
|
||||
PropAni2.endingmode = "to";
|
||||
|
||||
CompAni.addItem(gPropAni);
|
||||
CompAni.addItem(PropAni1);
|
||||
CompAni.addItem(PropAni2);
|
||||
CompAni.run();
|
||||
}
|
||||
]]></Script>
|
||||
</Form>
|
||||
</FDL>
|
||||
354
src/main/webapp/xui/frame/tabFrame.xfdl
Normal file
354
src/main/webapp/xui/frame/tabFrame.xfdl
Normal file
@@ -0,0 +1,354 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FDL version="1.4">
|
||||
<TypeDefinition url="..\default_typedef.xml"/>
|
||||
<Form id="tabMenu" classname="Top" inheritanceid="" position="absolute 0 0 825 29" scrollbars="none" class="frm_WF_MID" oninit="tabMenu_oninit">
|
||||
<Layouts>
|
||||
<Layout>
|
||||
<Button id="btn_FrmList" taborder="1" class="btn_WF_max" enable="false" position="absolute 776 4 824 27" anchor="top right" style="background:@gradation;border:1 solid #999999ff ;bordertype:round 3 3 ;opacity:50; :disabled {border:1 solid #999999ff ;bordertype:round 2 2 ;opacity:100;}" onclick="btn_FrmList_onclick"/>
|
||||
<Div id="div_Tab" taborder="1" position="absolute 0 3 734 28" onhscroll="div_Tab_onhscroll" onsize="div_Tab_onsize" anchor="left top right" scrollbars="hidden">
|
||||
<Layouts>
|
||||
<Layout/>
|
||||
</Layouts>
|
||||
</Div>
|
||||
<Button id="btn_cas" taborder="1" onclick="btn_Arrange_onclick" class="btn_TF_MAX" position="absolute 785 8 802 26" userdata="cascade" visible="false" anchor="top right"/>
|
||||
<Button id="btn_MdiList" taborder="1" onclick="btn_MdiList_onclick" class="btn_WF_MDI_List" enable="false" position="absolute 756 4 775 27" anchor="top right" style="bordertype:round 3 3 ;opacity:50; :disabled {bordertype:round 2 2 ;opacity:100;}"/>
|
||||
<PopupDiv id="PopLink" text="PopupDiv00" style="background:white; border:2 solid #428cb6ff ; bordertype:round 5 5 ; " onmouseleave="PopLink_onmouseleave" onmouseenter="PopLink_onmouseenter" visible="false" position="absolute 608 29 786 201">
|
||||
<Layouts>
|
||||
<Layout>
|
||||
<ListBox id="ListBoxLink" taborder="0" codecolumn="WINID" datacolumn="MENU_NM" onitemclick="PopLink_ListBoxLink_onitemclick" position="absolute 2 1 174 165" style="itemheight:22; itempadding:0 0 0 10; border:1 none #767676ff ; "/>
|
||||
</Layout>
|
||||
</Layouts>
|
||||
</PopupDiv>
|
||||
<Button id="btn_PreMdi" taborder="1" defaultbutton="true" position="absolute 723 4 740 27" anchor="top right" style="bordertype:round 2 2 ;" onclick="btn_PreMdi_onclick" class="tab_spinup"/>
|
||||
<Button id="btn_NexMdi" taborder="1" defaultbutton="true" position="absolute 742 4 759 27" style="bordertype:round 2 2 ;align:center middle;" anchor="top right" onclick="btn_NexMdi_onclick" class="tab_spindown"/>
|
||||
<Button id="btn_max" taborder="1" onclick="btn_Arrange_onclick" class="btn_TF_MIN" position="absolute 785 8 802 26" userdata="maximize" visible="false" anchor="top right"/>
|
||||
<Button id="btn_closeAll" taborder="1" onclick="btn_Arrange_onclick" position="absolute 802 8 822 26" positionstep="0" style="background:@gradation URL('theme://images\arrange_close_O.png'); border:0 solid #999999ff ; " userdata="closeAll" anchor="top right"/>
|
||||
</Layout>
|
||||
</Layouts>
|
||||
<Script type="xscript4.0"><![CDATA[/*
|
||||
* 01. 업무구분 : Frame 공통
|
||||
* 02. 화면명 : tabFrame.xfdl
|
||||
* 03. 화면설명 :
|
||||
* 04. 작성일 : 2012-08-22
|
||||
* 05. 작성자 : sian
|
||||
* 06. 수정이력 :
|
||||
*********************************************************************
|
||||
* 수정일 이 름 사유
|
||||
*********************************************************************
|
||||
* 2012-08-22 sian 최초 작성
|
||||
*********************************************************************
|
||||
*/
|
||||
include "lib::commLib.xjs"; //공통함수 호출
|
||||
|
||||
var onTabWork = false;
|
||||
var nTop = 6;
|
||||
var nBottom = 28;
|
||||
var nWidth = 130;
|
||||
var nExtraButtonLeft = 107;
|
||||
var nExtraButtonRight = 124;
|
||||
var nExtraButtonTop = 8;
|
||||
var nExtraButtonBottom = 24;
|
||||
var nBtnCount = 0;
|
||||
var nBtnStart = 1;
|
||||
var nBtnEnd = 6;
|
||||
var benter = false;
|
||||
var objSelectBtn;
|
||||
var sBtnWorkCd = "01";
|
||||
var sBtnWorkCdEx = "_S";
|
||||
|
||||
// Tab메뉴폼 init
|
||||
function tabMenu_oninit(obj:Form, e:InitEventInfo)
|
||||
{
|
||||
lfn_TabFrameBtnVisT();
|
||||
btn_cas.visible=true;
|
||||
}
|
||||
|
||||
function lfn_TabFrameBtnVisT()
|
||||
{
|
||||
btn_PreMdi.visible = true;
|
||||
btn_NexMdi.visible = true;
|
||||
}
|
||||
|
||||
|
||||
function lfn_TabFrameBtnVisF()
|
||||
{
|
||||
btn_PreMdi.visible = false;
|
||||
btn_NexMdi.visible = false;
|
||||
}
|
||||
|
||||
function btn_Arrange_onclick(obj:Button, e:ClickEventInfo)
|
||||
{
|
||||
btn_FrmList.class = obj.name;
|
||||
gfn_ArrangeWin(obj.userdata);
|
||||
|
||||
// MDI 화면에서 Arrange정렬시 Active 상태 표시
|
||||
gfn_ActiveFrame(gds_OpenMenu.getColumn(gds_OpenMenu.rowposition,"WINID"));
|
||||
}
|
||||
|
||||
//활성화된 페이지를 tabFrame에 메뉴버튼 형태로 추가한다.
|
||||
function fn_setNaviAdd(naviCD, naviNM) {
|
||||
|
||||
var i;
|
||||
var objFont = gfn_getObjFont(9,"Malgun Gothic");
|
||||
objFont.bold = false;
|
||||
var objTextSize = gfn_GetTextSize(naviNM, objFont);
|
||||
var nGap;
|
||||
|
||||
if(gds_OpenMenu.rowcount==1)
|
||||
{
|
||||
nGap = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
nGap = div_Tab.all[gds_OpenMenu.getColumn(gds_OpenMenu.rowcount-2, "WINID")].position.right;
|
||||
}
|
||||
var naviNM_Tooltip = naviNM;
|
||||
btn_MdiList.enable = true;
|
||||
btn_FrmList.enable = true;
|
||||
|
||||
nBtnCount++;
|
||||
|
||||
//페이지 버튼 생성
|
||||
var objBtn = new Button();
|
||||
///////////////////////////////////////////////////
|
||||
objBtn.init(naviCD, nGap+1, nTop, nGap+objTextSize.cx+50, nBottom);
|
||||
div_Tab.addChild(objBtn.name, objBtn);
|
||||
objBtn.text = naviNM;
|
||||
objBtn.tooltiptext = naviNM_Tooltip;
|
||||
///////////////////////////////////////////////////
|
||||
|
||||
|
||||
objBtn.onclick.setHandler(Button_onclick);
|
||||
|
||||
objBtn.visible = true;
|
||||
objBtn.show();
|
||||
objBtn.click();
|
||||
|
||||
//페이지 닫기 버튼 생성
|
||||
var objExtraBtn = new Button();
|
||||
objExtraBtn.init(naviCD+"__EX", objBtn.position.right-17, nExtraButtonTop+2, objBtn.position.right-3, nExtraButtonBottom);
|
||||
div_Tab.addChild(objExtraBtn.name, objExtraBtn);
|
||||
objExtraBtn.class = "btn_tab_close";
|
||||
|
||||
objExtraBtn.onclick.setHandler(ExtraButton_onclick);
|
||||
objExtraBtn.visible = true;
|
||||
objExtraBtn.show();
|
||||
|
||||
|
||||
//생성된 페이지의 갯수에 따라 네비게이션을 한칸 이동할지 현재로 유지할지 결정
|
||||
if(nBtnCount>nBtnEnd)
|
||||
{
|
||||
nBtnStart = nBtnCount-nBtnEnd
|
||||
fn_BtnMove("NEXT");
|
||||
}
|
||||
else
|
||||
{
|
||||
fn_BtnMove("MOVE");
|
||||
}
|
||||
|
||||
div_Tab.resetScroll();
|
||||
|
||||
objBtn.setFocus();
|
||||
}
|
||||
|
||||
//버튼클릭시 해당페이지로 focus를 이동하여 해당페이지를 Active상태로 만든다.
|
||||
function Button_onclick(obj:Button, e:ClickEventInfo)
|
||||
{
|
||||
fn_activeTabpage(obj.name);
|
||||
}
|
||||
|
||||
function Button_ondbclick(obj:Button, e:MouseEventInfo)
|
||||
{
|
||||
gfn_ChangePopup(obj.name);
|
||||
}
|
||||
|
||||
//닫기버튼 클릭시 해당하는 페이지를 닫는다.
|
||||
function ExtraButton_onclick(obj:Button, e:ClickEventInfo)
|
||||
{
|
||||
gfn_TabOnClose(obj.name.replace("__EX", ""));
|
||||
}
|
||||
|
||||
//선택된페이지의 Button을 Select상태로 만들고
|
||||
//해당하는페이지가 현재페이지 네비게이션에 보이지
|
||||
//않을경우 네비게이션에 보이는 Button의 위치를 변경해
|
||||
//선택된페이지가 네비게이션에 보이도록 한다.
|
||||
function fn_activeTabpage(naviCD) {
|
||||
var i;
|
||||
var sWINID;
|
||||
var nRow;
|
||||
var nBtnMoveCount;
|
||||
|
||||
for(i=0;i<gds_OpenMenu.rowcount;i++)
|
||||
{
|
||||
sWINID = gds_OpenMenu.getColumn(i, "WINID");
|
||||
if(gfn_IsNull(div_Tab.components[sWINID])==true) continue;
|
||||
|
||||
div_Tab.components[sWINID].class ="btn_tab";
|
||||
if(gfn_IsNull(div_Tab.components[sWINID+"__EX"])==true) continue;
|
||||
div_Tab.components[sWINID+"__EX"].class ="btn_tab_close";
|
||||
}
|
||||
|
||||
if(gfn_IsNull(div_Tab.components[naviCD])==false)
|
||||
{
|
||||
div_Tab.components[naviCD].class = "btn_tabseleted";
|
||||
div_Tab.resetScroll();
|
||||
|
||||
div_Tab.components[naviCD].setFocus();
|
||||
}
|
||||
|
||||
nRow = gds_OpenMenu.findRow("WINID", naviCD)
|
||||
gds_OpenMenu.rowposition = nRow;
|
||||
|
||||
//MDI메뉴에서 선택된 메뉴코드를 이용해서 leftFrame의 메뉴INDEX를 표시
|
||||
gv_leftFrame.form.fn_selectedMenuIndex(naviCD.substr(0,8));
|
||||
|
||||
gfn_ActiveFrame(naviCD);
|
||||
|
||||
// Arrange 버튼 상태처리
|
||||
btn_closeAll.enable=true;
|
||||
btn_cas.enable=true;
|
||||
btn_max.enable=true;
|
||||
}
|
||||
|
||||
function fn_movePage(naviCD)
|
||||
{
|
||||
var i;
|
||||
nRow = gds_OpenMenu.findRow("WINID", naviCD)
|
||||
|
||||
if(nRow<nBtnStart-1)
|
||||
{
|
||||
nBtnMoveCount = (nBtnStart-1) - nRow;
|
||||
for(i=0;i<nBtnMoveCount;i++)
|
||||
{
|
||||
fn_BtnMove("PREV");
|
||||
}
|
||||
}
|
||||
else if(nRow>nBtnStart+nBtnEnd-2)
|
||||
{
|
||||
nBtnMoveCount = nRow - (nBtnStart+nBtnEnd-2);
|
||||
for(i=0;i<nBtnMoveCount;i++)
|
||||
{
|
||||
fn_BtnMove("NEXT");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//페이지가 닫아졌을때 해당페이지의 네비게이션 버튼과 닫기버튼을 삭제한다.
|
||||
function fn_deleteTabpage(naviCD) {
|
||||
var i;
|
||||
var sWINID;
|
||||
var nGap = 0;
|
||||
|
||||
if(gfn_IsNull(div_Tab.components[naviCD])==false) {
|
||||
nGap = div_Tab.all[naviCD].position.width;
|
||||
div_Tab.all[naviCD]+"__EX".visible = false;
|
||||
}
|
||||
|
||||
|
||||
var nRow = gds_OpenMenu.findRow("WINID", naviCD);
|
||||
for(i=nRow;i<gds_OpenMenu.rowcount;i++)
|
||||
{
|
||||
sWINID = gds_OpenMenu.getColumn(i, "WINID");
|
||||
div_Tab.all[sWINID].move(div_Tab.all[sWINID].position.left-(nGap +1), nTop);
|
||||
div_Tab.all[sWINID+"__EX"].move(div_Tab.all[sWINID].position.right-17, nExtraButtonTop + 2);
|
||||
div_Tab.removeChild(naviCD);
|
||||
div_Tab.removeChild(naviCD+"__EX");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//네비게이션 다음버튼 클릭시
|
||||
function btn_NexMdi_onclick(obj:Button, e:ClickEventInfo)
|
||||
{
|
||||
div_Tab.hscrollbar.pos += div_Tab.hscrollbar.page;
|
||||
}
|
||||
|
||||
//네비게이션 이전버튼 클릭시
|
||||
function btn_PreMdi_onclick(obj:Button, e:ClickEventInfo)
|
||||
{
|
||||
div_Tab.hscrollbar.pos -= div_Tab.hscrollbar.page;
|
||||
}
|
||||
|
||||
//선택된 Type에 따라 버튼의 위치를 이동시킨다.
|
||||
function fn_BtnMove(Type)
|
||||
{
|
||||
if(Type=="PREV")
|
||||
{
|
||||
if(nBtnStart!=1)
|
||||
{
|
||||
nBtnStart--;
|
||||
}
|
||||
}
|
||||
else if(Type=="NEXT")
|
||||
{
|
||||
if(nBtnStart != gds_OpenMenu.rowcount-nBtnEnd+1&&gds_OpenMenu.rowcount>nBtnEnd)
|
||||
{
|
||||
nBtnStart++;
|
||||
}
|
||||
}
|
||||
else if(Type=="MOVE")
|
||||
{
|
||||
nBtnStart=nBtnStart;
|
||||
}
|
||||
|
||||
btn_PreMdi.enable = true;
|
||||
btn_NexMdi.enable = true;
|
||||
|
||||
if(nBtnStart==1)
|
||||
{
|
||||
btn_PreMdi.enable = false;
|
||||
}
|
||||
|
||||
if(nBtnStart == gds_OpenMenu.rowcount-nBtnEnd+1||gds_OpenMenu.rowcount<=nBtnEnd)
|
||||
{
|
||||
btn_NexMdi.enable = false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function PopLink_ListBoxLink_onitemclick(obj:ListBox, e:ListBoxClickEventInfo)
|
||||
{
|
||||
fn_activeTabpage(e.itemvalue);
|
||||
PopLink.closePopup();
|
||||
}
|
||||
|
||||
function div_Tab_onsize(obj:Div, e:SizeEventInfo)
|
||||
{
|
||||
nBtnEnd = Math.round(obj.position.width/130);
|
||||
fn_BtnMove("MOVE");
|
||||
}
|
||||
|
||||
|
||||
function div_Tab_onhscroll(obj:Div, e:ScrollEventInfo)
|
||||
{
|
||||
if(e.pos==0&&div_Tab.hscrollbar.max>0)
|
||||
{
|
||||
btn_NexMdi.enable = true;
|
||||
}
|
||||
|
||||
if(e.pos==div_Tab.hscrollbar.max&&div_Tab.hscrollbar.max>0)
|
||||
{
|
||||
btn_PreMdi.enable = true;
|
||||
}
|
||||
}
|
||||
|
||||
function btn_MdiList_onclick(obj:Button, e:ClickEventInfo)
|
||||
{
|
||||
var nX = system.clientToScreenX(obj, 0)+obj.position.width-PopLink.position.width;
|
||||
var nY = system.clientToScreenY(obj, 0)+obj.position.height;
|
||||
PopLink.ListBoxLink.innerdataset = gds_OpenMenu;
|
||||
PopLink.ListBoxLink.index = gds_OpenMenu.rowposition;
|
||||
|
||||
if(PopLink.isPopup()==false)
|
||||
{
|
||||
var RetVal = PopLink.trackPopup(nX, nY);
|
||||
}
|
||||
else
|
||||
{
|
||||
PopLink.closePopup();
|
||||
}
|
||||
|
||||
}
|
||||
]]></Script>
|
||||
</Form>
|
||||
</FDL>
|
||||
369
src/main/webapp/xui/frame/topFrame.xfdl
Normal file
369
src/main/webapp/xui/frame/topFrame.xfdl
Normal file
@@ -0,0 +1,369 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FDL version="1.4">
|
||||
<TypeDefinition url="..\default_typedef.xml"/>
|
||||
<Form id="topMenu" classname="Top" inheritanceid="" position="absolute 0 0 1024 37" scrollbars="none" class="frm_TP_Bg" onload="Top_onload" ontimer="topMenu_ontimer">
|
||||
<Layouts>
|
||||
<Layout>
|
||||
<Div id="div_Menu" taborder="1" position="absolute 195 1 1012 33" anchor="left top right" scrollbars="none" style="background:transparent URL('theme://images\menu_line.png') left bottom;"/>
|
||||
<PopupMenu id="PopMenuTopMenu" innerdataset="DsPopMenu" idcolumn="MENU_CD" captioncolumn="MENU_NM" levelcolumn="MENU_LVL" userdatacolumn="MENU_CD" onmenuclick="PopMenuTopMenu_onmenuclick" class="pmenu_TopMenu" position="absolute 106 38 271 263" style="cursor:hand; "/>
|
||||
<Static id="Static00" position="absolute 33 2 135 35" style="background:URL('img::TOBESOFT.png') left middle; "/>
|
||||
</Layout>
|
||||
</Layouts>
|
||||
<Objects>
|
||||
<Dataset id="dsTopMenu" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
|
||||
<ColumnInfo>
|
||||
<Column id="MENU_CD" type="STRING" size="8"/>
|
||||
<Column id="UP_MENU_CD" type="STRING" size="8"/>
|
||||
<Column id="MENU_NM" type="STRING" size="50"/>
|
||||
<Column id="MENU_LVL" type="BIGDECIMAL" size="22"/>
|
||||
<Column id="PGM_PATH" type="STRING" size="200"/>
|
||||
<Column id="PGM_ID" type="STRING" size="200"/>
|
||||
<Column id="SORT" type="BIGDECIMAL" size="22"/>
|
||||
<Column id="SAYONG_YN" type="STRING" size="1"/>
|
||||
<Column id="HELP_PATH" type="STRING" size="200"/>
|
||||
<Column id="HELP_FILE" type="STRING" size="200"/>
|
||||
</ColumnInfo>
|
||||
</Dataset>
|
||||
<Dataset id="DsPopMenu">
|
||||
<ColumnInfo>
|
||||
<Column id="menuLvl" type="STRING" size="256"/>
|
||||
<Column id="menuId" type="STRING" size="256"/>
|
||||
<Column id="menuTitle" type="STRING" size="256"/>
|
||||
<Column id="menuUrl" type="STRING" size="256"/>
|
||||
<Column id="lvl1Code" type="STRING" size="256"/>
|
||||
<Column id="lvl1Name" type="STRING" size="256"/>
|
||||
<Column id="lvl2Code" type="STRING" size="256"/>
|
||||
<Column id="lvl2Name" type="STRING" size="256"/>
|
||||
</ColumnInfo>
|
||||
</Dataset>
|
||||
</Objects>
|
||||
<Script type="xscript4.0"><![CDATA[/*
|
||||
* 01. 업무구분 : Frame 공통
|
||||
* 02. 화면명 : topFrame.xfdl
|
||||
* 03. 화면설명 :
|
||||
* 04. 작성일 : 2012-08-22
|
||||
* 05. 작성자 : sian
|
||||
* 06. 수정이력 :
|
||||
*********************************************************************
|
||||
* 수정일 이 름 사유
|
||||
*********************************************************************
|
||||
* 2012-08-22 sian 최초 작성
|
||||
*********************************************************************
|
||||
*/
|
||||
|
||||
var objFocusBtn;
|
||||
|
||||
//메뉴이동시 열린페이지 닫을때 취소여부 체크
|
||||
var isChecked=true;
|
||||
|
||||
// 대메뉴(탑메뉴) SORT 칼럼의 순서를 array에 저장한다
|
||||
var arrSort = new Array();
|
||||
|
||||
function Top_onload(obj:Form, e:LoadEventInfo)
|
||||
{
|
||||
|
||||
//Global Dataset에서 1레벨 데이타만 가져온다.
|
||||
fn_removeTopMenu();
|
||||
dsTopMenu.copyData(gds_Menu);
|
||||
dsTopMenu.filter("MENU_LVL == '1'");
|
||||
|
||||
for(i=0; i < dsTopMenu.rowcount; i++){
|
||||
arrSort[i] = (dsTopMenu.getColumn(i,"SORT")=="undefined" || dsTopMenu.getColumn(i,"SORT")=="") ? i : dsTopMenu.getColumn(i,"SORT");
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Top 메뉴 동적으로 생성
|
||||
fn_setTopMenu();
|
||||
this.setTimer(1, 100);
|
||||
}
|
||||
|
||||
|
||||
function topMenu_ontimer(obj:Form, e:TimerEventInfo)
|
||||
{
|
||||
if(e.timerid==1)
|
||||
{
|
||||
fn_leftMenuOpen();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//application로딩시 트리메뉴 리스트 출력
|
||||
function fn_leftMenuOpen()
|
||||
{
|
||||
if(gv_leftFrame.form != null || gv_leftFrame.form != "undefined"){
|
||||
|
||||
var iFirstRow = dsTopMenu.findRow("SORT",dsTopMenu.getMin("SORT"));
|
||||
|
||||
//대메뉴(탑메뉴)첫번째에 해당하는 트리메뉴를 자동으로 오픈한다.
|
||||
var sOpenMenuCode = dsTopMenu.getColumn(iFirstRow,"MENU_CD");
|
||||
|
||||
//gds_Menu.filter("UP_MENU_CD=='01000000'&&MENU_LVL=='2'");
|
||||
gds_Menu.filter("UP_MENU_CD=='"+sOpenMenuCode+"'&&MENU_LVL=='2'");
|
||||
DsPopMenu.copyData(gds_Menu, true);
|
||||
gds_Menu.filter("");
|
||||
|
||||
var sMenuCD = DsPopMenu.getColumn(0, "MENU_CD");
|
||||
var sMenuNm = DsPopMenu.getColumn(0, "MENU_NM");
|
||||
//gv_leftFrame.form.fn_changeLeftMenu("01010000", sMenuNm);
|
||||
|
||||
trace("--------------------------------------------------" + sMenuCD + " : " + sMenuNm);
|
||||
|
||||
gv_leftFrame.form.fn_changeLeftMenu(sMenuCD, sMenuNm);
|
||||
gv_leftFrame.form.fn_loadMenu();
|
||||
this.killTimer(1);
|
||||
}
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// Top Menu Button 동적생성 //
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
function fn_setTopMenu()
|
||||
{
|
||||
var objBtn;
|
||||
var sBtnID;
|
||||
var sBtnPreFix = "btn_TopMenu_";
|
||||
|
||||
var menuTitle;
|
||||
var menuId;
|
||||
|
||||
var objFont = fn_getObjFont(10,"굴림");
|
||||
var objTextSize;
|
||||
|
||||
var iNowLeft = 1;
|
||||
var iTop = 0;
|
||||
var iHeight = div_Menu.position.height;
|
||||
|
||||
var iBtnSpace = 47;
|
||||
var iBtnGap = 0;
|
||||
var iBtnSize;
|
||||
var objStartBtn;
|
||||
|
||||
for(i=0; i < dsTopMenu.rowcount; i++)
|
||||
{
|
||||
|
||||
// 대메뉴 SORT 칼럼에 정상적인 값 셋팅여부판단
|
||||
// if(!bSort)
|
||||
// {
|
||||
// menuTitle = dsTopMenu.getColumn(i,"MENU_NM");
|
||||
// menuId = dsTopMenu.getColumn(i,"MENU_CD");
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
|
||||
menuTitle = dsTopMenu.getColumn(arrSort[i]-1,"MENU_NM");
|
||||
menuId = dsTopMenu.getColumn(arrSort[i]-1,"MENU_CD");
|
||||
//}
|
||||
|
||||
//menuTitle = dsTopMenu.getColumn(i,"MENU_NM");
|
||||
//menuId = dsTopMenu.getColumn(i,"MENU_CD");
|
||||
|
||||
objTextSize = fn_getTextSize(menuTitle, objFont);
|
||||
iBtnSize = objTextSize.cx + iBtnSpace;
|
||||
|
||||
objBtn = new Button;
|
||||
sBtnID = sBtnPreFix + i;
|
||||
objBtn.init(sBtnID, iNowLeft, iTop, (iNowLeft+iBtnSize), iHeight);
|
||||
objBtn.menuId = menuId;
|
||||
objBtn.text = menuTitle;
|
||||
if(i==0) objBtn.class="btn_Gnb_S";
|
||||
else objBtn.class="btn_Gnb";
|
||||
|
||||
div_Menu.addChild(objBtn.name, objBtn);
|
||||
|
||||
|
||||
objBtn.onclick.addHandler(btn_TopMenu_onClick);
|
||||
//objBtn.onmouseenter.addHandler(btn_TopMenu_onmouseenter);
|
||||
|
||||
|
||||
objBtn.show();
|
||||
|
||||
iNowLeft += (iBtnSize + iBtnGap);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
function btn_TopMenu_onClick(obj:Button, e:MouseEventInfo)
|
||||
{
|
||||
if(gv_menuType == "1") // 1Depth 메뉴(버튼) 형태
|
||||
{
|
||||
gv_leftFrame.form.fn_changeLeftMenu(obj.menuId, obj.menuId);
|
||||
}
|
||||
else if(gv_menuType == "2") // 1Depth 메뉴(버튼) + 2Depth메뉴(팝업Div)형태
|
||||
{
|
||||
if(fn_IsNull(objFocusBtn)==true)
|
||||
{
|
||||
objFocusBtn= obj;
|
||||
gds_Menu.filter("UP_MENU_CD=='"+obj.menuId+"'&&MENU_LVL=='2'");
|
||||
DsPopMenu.copyData(gds_Menu, true);
|
||||
gds_Menu.filter("");
|
||||
|
||||
fn_getLevel1Menu();
|
||||
}
|
||||
|
||||
if(objFocusBtn.name!=obj.name||PopMenuTopMenu.isPopup()==false)
|
||||
{
|
||||
objFocusBtn= obj;
|
||||
gds_Menu.filter("UP_MENU_CD=='"+obj.menuId+"'&&MENU_LVL=='2'");
|
||||
DsPopMenu.copyData(gds_Menu, true);
|
||||
gds_Menu.filter("");
|
||||
|
||||
fn_getLevel1Menu();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//Top 메뉴 선택상태표시
|
||||
if(isChecked){
|
||||
fn_clicked(obj);
|
||||
}
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// Top메뉴 Button selected 상태표현 //
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
function fn_clicked(obj)
|
||||
{
|
||||
//style class 설정..
|
||||
var iCount = dsTopMenu.rowcount;
|
||||
|
||||
var sBtnID = new Array();
|
||||
for(var i=0;i<iCount;i++){
|
||||
sBtnID[i] = div_Menu.all["btn_TopMenu_" + i];
|
||||
trace(obj.name + " : " + sBtnID[i].name);
|
||||
if(obj.name == sBtnID[i].name){
|
||||
sBtnID[i].class = "btn_Gnb_S";
|
||||
}else{
|
||||
if(sBtnID[i].class == "btn_Gnb_S")
|
||||
sBtnID[i].class = "btn_Gnb";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function btn_TopMenu_onmouseenter(obj:Button, e:MouseEventInfo)
|
||||
{
|
||||
if(fn_IsNull(objFocusBtn)==true)
|
||||
{
|
||||
objFocusBtn= obj;
|
||||
gds_Menu.filter("UP_MENU_CD=='"+obj.menuId+"'&&MENU_LVL=='2'");
|
||||
DsPopMenu.copyData(gds_Menu, true);
|
||||
gds_Menu.filter("");
|
||||
|
||||
fn_getLevel1Menu();
|
||||
}
|
||||
|
||||
if(objFocusBtn.name!=obj.name||PopMenuTopMenu.isPopup()==false)
|
||||
{
|
||||
objFocusBtn= obj;
|
||||
gds_Menu.filter("UP_MENU_CD=='"+obj.menuId+"'&&MENU_LVL=='2'");
|
||||
DsPopMenu.copyData(gds_Menu, true);
|
||||
gds_Menu.filter("");
|
||||
|
||||
fn_getLevel1Menu();
|
||||
}
|
||||
}
|
||||
|
||||
function fn_getLevel1Menu()
|
||||
{
|
||||
var nX = system.clientToScreenX(objFocusBtn, 0);
|
||||
var nY = system.clientToScreenY(objFocusBtn, 0)+objFocusBtn.position.height;
|
||||
|
||||
for(var i=0;i<DsPopMenu.rowcount;i++)
|
||||
{
|
||||
if(DsPopMenu.getColumn(i, "MENU_LVL")=="2")
|
||||
{
|
||||
DsPopMenu.setColumn(i, "MENU_LVL", "0");
|
||||
}
|
||||
else
|
||||
{
|
||||
DsPopMenu.setColumn(i, "MENU_LVL", "1");
|
||||
}
|
||||
}
|
||||
|
||||
PopMenuTopMenu.closePopup();
|
||||
PopMenuTopMenu.trackPopup(nX, nY);
|
||||
}
|
||||
|
||||
|
||||
function PopMenuTopMenu_onmenuclick(obj:PopupMenu, e:MenuClickEventInfo)
|
||||
{
|
||||
var nRow = DsPopMenu.findRow("MENU_CD", e.id);
|
||||
var sMenuNm = DsPopMenu.getColumn(nRow, "MENU_NM");
|
||||
|
||||
gv_leftFrame.form.fn_changeLeftMenu(e.userdata, sMenuNm);
|
||||
}
|
||||
|
||||
function fn_removeTopMenu()
|
||||
{
|
||||
if(div_Menu.components.length>0)
|
||||
{
|
||||
while(div_Menu.components.length!=0)
|
||||
{
|
||||
div_Menu.removeChild(div_Menu.components[0].name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
/*------------------------------------------------------------------------------
|
||||
* 기 능: Font Object 생성 반환
|
||||
* 인 수: iFontSize
|
||||
sFontName
|
||||
* Return : Font Object
|
||||
------------------------------------------------------------------------------*/
|
||||
function fn_getObjFont(iFontSize, sFontName)
|
||||
{
|
||||
var objFont = new Font;
|
||||
objFont.size = iFontSize;
|
||||
objFont.name = sFontName;
|
||||
objFont.bold = true;
|
||||
return objFont;
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
* 기 능: 1depth 메뉴 Text Size 반환
|
||||
* 인 수: sText (사이즈를 계산할 텍스트 )
|
||||
objFont(Font정보를 가지고 있는 object입니다.)
|
||||
iLimitWidth (Option : word wrap이 일어나는 문자열 길이 제한 정수 값입)
|
||||
sConstWordWrapOption (Option : word wrap 옵션입니다)
|
||||
* Return : 계산된 사이즈가 저장된 Size object
|
||||
------------------------------------------------------------------------------*/
|
||||
function fn_getTextSize(sText, objFont, iLimitWidth, sConstWordWrapOption)
|
||||
{
|
||||
//var objPainter = this.canvas.getPainter();
|
||||
var objPainter = this.canvas.getPainter();
|
||||
if(fn_IsNull(objPainter)==false)
|
||||
{
|
||||
var objTextSize = objPainter.getTextSize(sText, objFont);
|
||||
return objTextSize;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**********************************************************************************
|
||||
* 함수명 : fn_IsNull
|
||||
* 설명 : NULL 여부 체크
|
||||
* argument : sValue (문자열)
|
||||
* return Type : boolean
|
||||
**********************************************************************************/
|
||||
function fn_IsNull(sValue)
|
||||
{
|
||||
if (new String(sValue).valueOf() == "undefined") return true;
|
||||
if (sValue == null) return true;
|
||||
var v_ChkStr = new String(sValue);
|
||||
|
||||
if (v_ChkStr == null) return true;
|
||||
|
||||
if (v_ChkStr.toString().length == 0 ) return true;
|
||||
|
||||
return false;
|
||||
}]]></Script>
|
||||
</Form>
|
||||
</FDL>
|
||||
789
src/main/webapp/xui/frame/userobject/grd_basic.xjs
Normal file
789
src/main/webapp/xui/frame/userobject/grd_basic.xjs
Normal file
@@ -0,0 +1,789 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Script type="xscript4.0"><![CDATA[/******************************** Program description ******************************
|
||||
* File Name : grd_basic.xjs
|
||||
* File Desc. : Grid 'User-Object Basic"
|
||||
* Author :
|
||||
* Create Date : 2011/10/14
|
||||
* Change History :
|
||||
****************************************************************************************/
|
||||
|
||||
class grd_basic extends Grid
|
||||
{
|
||||
var objBizForm = "";
|
||||
var sGridNm = "";
|
||||
|
||||
var sGrdFullPath = "";
|
||||
|
||||
var objBindDs = "";
|
||||
var strSeparator = " ";
|
||||
|
||||
var bIsValidSort = false;
|
||||
var arrSortMark = new Array("▲", "▼", "");
|
||||
var iSortStep = -1;
|
||||
|
||||
var iLastCell = -1;
|
||||
var iLastHeadCol = -1;
|
||||
var iLastHeadRow = -1;
|
||||
var sLastText = "";
|
||||
var validChkCol = "";
|
||||
|
||||
var objectType = "grd_basic"; // 엑셀다운로드 기능 사용중
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
//------------------- 그리드 onload
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
function grd_basic() {
|
||||
summarytype = "top";
|
||||
defaultSort = "";
|
||||
cellsizingtype = "col";
|
||||
selecttype = "area";
|
||||
autoenter = "select";
|
||||
areaselecttype = "overband";
|
||||
cellsizebandtype = "allband";
|
||||
scrollpixel = "all"; // 그리드 스크롤 단위
|
||||
}
|
||||
|
||||
function grd_onloadInitialization() {
|
||||
trace("[grd_basic] Constructor");
|
||||
objBizForm = this.parent;
|
||||
sGridNm = this.name;
|
||||
|
||||
//Event Setting
|
||||
this.onheadclick.setHandler(event_onheadclick); // Header 클릭 이벤트
|
||||
this.onkeydown.setHandler(event_onkeydown); // key down 이벤트
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
* 기 능: 그리드 init --> 화면에서 조회를 새로할 경우에 호출함
|
||||
* 인 수: N/A
|
||||
* Return : N/A - 오리지널 소스
|
||||
------------------------------------------------------------------------------*/
|
||||
function init()
|
||||
{
|
||||
var sDsSortmarkClear = "";
|
||||
|
||||
// Sortmark Clear
|
||||
if ((bIsValidSort) && (iLastCell > -1))
|
||||
{
|
||||
this.setCellProperty("head", iLastCell, "text", sLastText);
|
||||
sDsSortmarkClear = objBindDs.name;
|
||||
}
|
||||
|
||||
objBindDs = eval(this.binddataset);
|
||||
if (objBindDs != null) { bIsValidSort = true; }
|
||||
|
||||
// Dataset sort 초기화
|
||||
if ((bIsValidSort) && (sDsSortmarkClear == objBindDs.name)) {
|
||||
if (this.defaultSort <> "")
|
||||
{
|
||||
objBindDs.keystring = "S:" + this.defaultSort;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
//------------------- 해더 클릭시 sort (asc, dsc, clear)
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
function event_onheadclick(obj:Grid, e:GridClickEventInfo)
|
||||
{
|
||||
//xfn_trace("--------------------- event_onheadclick ----------------------");
|
||||
|
||||
var isChkboxClick = false;
|
||||
|
||||
if (this.getCellProperty("Head", e.cell, "edittype") == "checkbox")
|
||||
{
|
||||
isChkboxClick = true;
|
||||
}
|
||||
|
||||
if (isChkboxClick) { // 그리드 헤더 체크박스 클릭시 전체선택/해제 기능
|
||||
var sType;
|
||||
var strValue;
|
||||
var objDs = eval(this.binddataset);
|
||||
var nCell = e.cell;
|
||||
var vl_chk;
|
||||
var sBind="chk";
|
||||
|
||||
sType = this.getCellProperty("head", e.cell, "displaytype");
|
||||
sBind= this.getCellProperty("body", e.cell, "text");
|
||||
|
||||
if ((sBind != null) && (sBind != "")) {
|
||||
|
||||
var arrBind = sBind.split(":");
|
||||
if (arrBind.length > 1)
|
||||
{
|
||||
sBind = arrBind[1];
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
sBind="chk";
|
||||
}
|
||||
|
||||
// Check 칼럼이 아니면 return 시킴.
|
||||
if(sType != "checkbox") {
|
||||
return;
|
||||
}
|
||||
|
||||
// Head Check칼럼 기본값 셋팅.
|
||||
if(this.getCellProperty("head", nCell, "text") == undefined)
|
||||
{
|
||||
this.setCellProperty("head", nCell, "text", 1);
|
||||
vl_chk = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
vl_chk = this.getCellProperty("head", nCell, "text") == 0?1:0;
|
||||
this.setCellProperty("head", nCell, "text", vl_chk);
|
||||
}
|
||||
|
||||
// Body 영역에 Check값 셋팅
|
||||
for (var i=0; i<objDs.getRowCount(); i++)
|
||||
{
|
||||
objDs.setColumn(i,sBind,vl_chk);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!bIsValidSort) { return; }
|
||||
|
||||
var iCurCell = e.cell;
|
||||
if (iCurCell <0) { return; }
|
||||
|
||||
var iCurHeadCol = this.getCellProperty("head", iCurCell, "col");
|
||||
// Cell 위치 보정
|
||||
iCurCell = fn_getLastCell(iCurCell, iCurHeadCol);
|
||||
|
||||
var iCurHeadRow = this.getCellProperty("head", iCurCell, "row");
|
||||
var sCurText = this.getCellProperty("head", iCurCell, "text");
|
||||
//xfn_trace("iCurCell=" + iCurCell + " iCurHeadCol=" + iCurHeadCol + " iCurHeadRow=" + iCurHeadRow + " sCurText=" + sCurText);
|
||||
|
||||
if (iCurCell == iLastCell)
|
||||
{
|
||||
iSortStep++;
|
||||
this.setCellProperty("head", iCurCell, "text", sLastText + arrSortMark[iSortStep]);
|
||||
fn_setKeystring(iLastHeadCol, iSortStep);
|
||||
|
||||
if (iSortStep > 1) { iSortStep = -1; }
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
// 기존 SortMark Clear
|
||||
if (iLastCell > -1)
|
||||
{
|
||||
this.setCellProperty("head", iLastCell, "text", sLastText);
|
||||
}
|
||||
|
||||
// Asc Sort
|
||||
iSortStep = 0;
|
||||
|
||||
this.setCellProperty("head", iCurCell, "text", sCurText + arrSortMark[iSortStep]);
|
||||
fn_setKeystring(iCurHeadCol, iSortStep);
|
||||
|
||||
iLastCell = iCurCell;
|
||||
iLastHeadCol = iCurHeadCol;
|
||||
iLastHeadRow = iCurHeadRow;
|
||||
sLastText = sCurText;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
* 기 능: copy / paste 를 위한 keydown
|
||||
* 인 수: 1.obj : grd_basic
|
||||
* 2.e : KeyEventInfo
|
||||
* Return :
|
||||
------------------------------------------------------------------------------*/
|
||||
function event_onkeydown(obj:grd_basic, e:KeyEventInfo)
|
||||
{
|
||||
var default_Action_Val = obj.wheelscrollrow;
|
||||
var pageCnt = obj.pagerowcount;
|
||||
var totCnt = objects(obj.binddataset).rowcount;
|
||||
var objDs = eval(obj.binddataset);
|
||||
var rowPos;
|
||||
//xfn_trace(" **** event_onkeydown===>" + e.ctrlKey + " : " + e.keycode);
|
||||
//xfn_trace(" **** totCnt===>"+totCnt);
|
||||
|
||||
var nDivide = parseInt(totCnt/pageCnt);
|
||||
|
||||
// Ctrl + C
|
||||
if(e.ctrlKey == true && e.keycode == 67) {
|
||||
|
||||
xfn_ClipboardCopy(obj, strSeparator);
|
||||
|
||||
// Ctrl + V
|
||||
} else if( e.ctrlKey == true && e.keycode == 86) {
|
||||
var strClipboardData = system.getClipboard("CF_UNICODETEXT").replace(",","");
|
||||
var strClipboardRecord = strClipboardData.split(" ");
|
||||
// trace("XXXXXXXXX : " + strClipboardRecord.length);
|
||||
|
||||
if (this.selectstartcol == this.selectendcol && this.selectstartrow == this.selectendrow && strClipboardRecord.length == 1) {
|
||||
return;
|
||||
}
|
||||
// trace("selectstartcol : " + this.selectstartcol + ", selectendcol : " + this.selectendcol + ", selectstartrow : " + this.selectstartrow + ", selectendrow : " + this.selectendrow);
|
||||
// trace("this.getEditSelect() : " + this.getEditSelect());
|
||||
//if (this.getEditCaret
|
||||
xfn_ClipboardPaste(obj, strSeparator, arrEditColor);
|
||||
|
||||
// Page Up
|
||||
} else if (e.keycode == "33") {
|
||||
|
||||
obj.selecttype = "cell";
|
||||
|
||||
if (fv_pageCnt < 0) {
|
||||
rowPos = pageCnt + (fv_pageCnt * pageCnt);
|
||||
obj.vscrollbar.pos = 0;
|
||||
objDs.rowposition = 0;
|
||||
|
||||
fv_pageCnt = 0;
|
||||
} else {
|
||||
|
||||
fv_pageCnt--;
|
||||
rowPos = pageCnt + (fv_pageCnt * pageCnt);
|
||||
|
||||
objDs.rowposition = rowPos;
|
||||
obj.vscrollbar.pos = rowPos + default_Action_Val;
|
||||
}
|
||||
|
||||
obj.selecttype = "area";
|
||||
return true;
|
||||
|
||||
// Page Down
|
||||
} else if (e.keycode == "34") {
|
||||
obj.selecttype = "cell";
|
||||
|
||||
fv_pageCnt++;
|
||||
|
||||
if (fv_pageCnt == nDivide) {
|
||||
fv_pageCnt--;
|
||||
obj.selecttype = "area";
|
||||
return;
|
||||
}
|
||||
|
||||
rowPos = pageCnt + (fv_pageCnt * pageCnt);
|
||||
obj.vscrollbar.pos = rowPos - parseInt(default_Action_Val);
|
||||
objDs.rowposition = rowPos;
|
||||
|
||||
obj.selecttype = "area";
|
||||
return true;
|
||||
|
||||
// Enter key
|
||||
} else if (e.keycode == "13") {
|
||||
this.moveToNextCell();
|
||||
|
||||
var nCell = this.currentcell();
|
||||
this.setCellPos(nCell);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//*********************************************************************
|
||||
// * 기능 : 그리드의 선택영역을 Clipboard로 Copy 한다.
|
||||
// * 인수 : objGrid : Area Select 된 Grid
|
||||
// strSeparator : Colunm 구분자.
|
||||
// * 예제 : grd_fn_ClipboardCopy(objGrid, ",");
|
||||
//*********************************************************************
|
||||
function xfn_ClipboardCopy(objGrid, strSeparator)
|
||||
{
|
||||
xfn_trace("*** xfn_ClipboardCopy>>>>");
|
||||
var cstrColID="";
|
||||
var cstrValue="";
|
||||
var cstrClipboard = "";
|
||||
var cAreaStartRow = parseInt((parseInt(objGrid.selectstartrow)<0)? objGrid.currentrow: objGrid.selectstartrow );
|
||||
var cAreaEndRow = parseInt((parseInt(objGrid.selectendrow)<0)? objGrid.currentrow: objGrid.selectendrow) ;
|
||||
var cAreaStartCol = parseInt((parseInt(objGrid.selectstartcol)<0)? objGrid.currentcol: objGrid.selectstartcol) ;
|
||||
var cAreaEndCol = parseInt((parseInt(objGrid.selectendcol)<0)? objGrid.currentcol: objGrid.selectendcol) ;
|
||||
|
||||
trace(cAreaStartRow + " : " + cAreaEndRow + " : " + cAreaStartCol + " : " + cAreaEndCol);
|
||||
|
||||
for(var cRow = cAreaStartRow; cRow <= cAreaEndRow; cRow++)
|
||||
{
|
||||
for(var cCell = cAreaStartCol; cCell <= cAreaEndCol; cCell++)
|
||||
{
|
||||
if(objGrid.getFormatColSize(cCell) > 0)
|
||||
{
|
||||
cstrColID = xfn_getBindColumnID(cCell);
|
||||
cstrValue = objBindDs.getColumn(cRow,cstrColID);
|
||||
if( cstrValue != null && cstrValue.toString().substr(1,6) == "object" )
|
||||
cstrValue = "";
|
||||
cstrClipboard = cstrClipboard + cstrValue + strSeparator;
|
||||
trace(0);
|
||||
}
|
||||
}
|
||||
|
||||
trace(1);
|
||||
cstrClipboard = cstrClipboard.substr(0,cstrClipboard.length-1);
|
||||
cstrClipboard = cstrClipboard + "\n";
|
||||
trace(2);
|
||||
}
|
||||
trace(3);
|
||||
cstrClipboard = cstrClipboard.substr(0,cstrClipboard.length-1);
|
||||
cstrClipboard = cstrClipboard + "\r"+"\n";
|
||||
trace(4);
|
||||
xfn_trace(" ***copy :: cstrClipboard==>"+cstrClipboard);
|
||||
system.setClipboard("CF_UNICODETEXT",cstrClipboard);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// /*********************************************************************
|
||||
// * 기능 : Clipboard에 Copy된 내용을 그리드의 선택된 영역에 Paste 한다.
|
||||
// * 인수 : objGrid : Area Select 된 Grid
|
||||
// strSeparator : Colunm 구분자.
|
||||
// arrEditColor : Edit Color Table
|
||||
// * 예제 : grd_fn_ClipboardPaste(objGrid, ",", arrEditColor);
|
||||
// *********************************************************************/
|
||||
function xfn_ClipboardPaste(objGrid, strSeparator, arrEditColor, isEdit)
|
||||
{
|
||||
|
||||
var orgDataset = eval(objGrid.binddataset);
|
||||
|
||||
var nSearchRow = 0;
|
||||
var nSearchCol = 0;
|
||||
var strColID;
|
||||
var strValue;
|
||||
var strBgColor;
|
||||
var strEditType;
|
||||
|
||||
// 숫자 자릿수 구분은 comma 를 사용하기 때문에 호환을 위해서 comma 를 제거한다.
|
||||
var strClipboardData = system.getClipboard("CF_UNICODETEXT").replace(",","");
|
||||
strClipboardData = strClipboardData.replace("\r","");
|
||||
//xfn_trace(" 11 strClipboardData==>"+strClipboardData);
|
||||
if(strSeparator != " ") {
|
||||
// 유럽의 숫자 자릿수 구분은 space 를 사용하기 때문에 호환을 위해서 space 를 제거한다.
|
||||
//strClipboardData = strClipboardData.replace(" ","");
|
||||
}
|
||||
//xfn_trace(" 22 strClipboardData==>"+strClipboardData);
|
||||
var strClipboardRecord = strClipboardData.split("\n");
|
||||
// xfn_trace("33 ====>"+strClipboardRecord.length);
|
||||
|
||||
var strClipboardColunm;
|
||||
|
||||
var nAreaStartRow;
|
||||
var nAreaEndRow;
|
||||
var nAreaStartCol;
|
||||
var nAreaEndCol;
|
||||
|
||||
if(objGrid.selecttype == "area") {
|
||||
|
||||
nAreaStartRow = parseInt(objGrid.selectstartrow);
|
||||
nAreaEndRow = parseInt(objGrid.selectendrow);
|
||||
nAreaStartCol = parseInt(objGrid.selectstartcol);
|
||||
nAreaEndCol = parseInt(objGrid.selectendcol);
|
||||
|
||||
} else {
|
||||
|
||||
nAreaStartRow = parseInt(objGrid.currentrow);
|
||||
nAreaEndRow = parseInt(objGrid.currentrow);
|
||||
nAreaStartCol = parseInt(objGrid.currentcell);
|
||||
nAreaEndCol = parseInt(objGrid.currentcell+1);
|
||||
}
|
||||
|
||||
//objGrid.enableredraw = false;
|
||||
//setWaitCursor(true);
|
||||
|
||||
//var sSelectType = this.selecttype;
|
||||
|
||||
// this.orgSelectType = this.selecttype;
|
||||
//
|
||||
// this.selecttype = "cell";
|
||||
|
||||
for(var nRow = nAreaStartRow; nRow < (nAreaStartRow + strClipboardRecord.length-1); nRow++)
|
||||
{
|
||||
//xfn_trace(" >>>> nRow==>"+nRow);
|
||||
strClipboardColunm = strClipboardRecord[nSearchRow].split(strSeparator);
|
||||
nSearchCol = 0;
|
||||
var nAreaCell = nAreaStartCol + strClipboardColunm.length;
|
||||
//xfn_trace(" >>>> nAreaCell==>"+nAreaCell);
|
||||
for(var nCell = nAreaStartCol; nCell < objGrid.getCellCount("Head"); nCell++)
|
||||
{
|
||||
if( objGrid.getFormatColSize(nCell) > 0 )
|
||||
{
|
||||
strColID = objGrid.getCellProperty("body",nCell,"text").substr(5);
|
||||
orgDataset.rowposition = nRow;
|
||||
objGrid.setCellPos(nCell);
|
||||
//xfn_trace("getCellPos() :: "+ objGrid.getCellPos());
|
||||
strEditType = this.getCurEditType();
|
||||
strValue = strClipboardColunm[nSearchCol];
|
||||
|
||||
//xfn_trace("nRow :: "+nRow+" == nCell :: "+nCell + " :: strValue == "+strValue + " :: strEditType == "+strEditType);
|
||||
|
||||
if(strValue != "undefined") {
|
||||
if(strValue != null && strEditType != "none"){
|
||||
//xfn_trace("nRow :: "+nRow+" == nCell :: "+nCell+" ************************ strEditType=>"+strEditType);
|
||||
orgDataset.setColumn(nRow,strColID,strValue);
|
||||
}
|
||||
//nSearchCol++;
|
||||
}
|
||||
nSearchCol++;
|
||||
}
|
||||
else
|
||||
{
|
||||
nAreaCell++;
|
||||
//xfn_trace(" >>>> nAreaCell==>"+nAreaCell);
|
||||
}
|
||||
|
||||
if ( nCell >= nAreaCell )
|
||||
{
|
||||
nCell = objGrid.getCellCount("Head");
|
||||
}
|
||||
|
||||
}
|
||||
nSearchRow++;
|
||||
/*
|
||||
|
||||
|
||||
for(var nCell = nAreaStartCol; nCell < nAreaCell && nCell < objGrid.getCellCount("Head"); nCell++)
|
||||
{
|
||||
if( objGrid.getFormatColSize(nCell) > 0 )
|
||||
{
|
||||
strColID = objGrid.getCellProperty("body",nCell,"text").substr(5);
|
||||
objGrid.setCellPos(nCell);
|
||||
|
||||
strEditType = getCurEditType();
|
||||
|
||||
strValue = strClipboardColunm[nSearchCol];
|
||||
xfn_trace(" ************************ strEditType=>"+strEditType);
|
||||
|
||||
if(strValue != "undefined") {
|
||||
if(strValue != null && strEditType != "none"){
|
||||
orgDataset.setColumn(nRow,strColID,strValue);
|
||||
}
|
||||
nSearchCol++;
|
||||
}
|
||||
} else {
|
||||
nAreaCell++;
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
// this.selecttype = this.orgSelectType; // 2011.08.11 add lsy 그리드 selecttype 을 원상복귀
|
||||
|
||||
orgDataset.rowposition = nAreaStartRow;
|
||||
objGrid.setCellPos(nAreaStartCol);
|
||||
|
||||
//setWaitCursor(false);
|
||||
//objGrid.enableredraw = true;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
function xfn_getBindColumnID(pBodyCell)
|
||||
{
|
||||
trace("aaa");
|
||||
return xfn_cellNm_check(this, pBodyCell);
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
* 기 능: 컬럼을 조건으로 컬럼의 ID 를 가져옴
|
||||
* 인 수: 1.obj : grd_basic
|
||||
* 2.pBodyCell : cell
|
||||
* Return : tCellNM
|
||||
------------------------------------------------------------------------------*/
|
||||
function xfn_cellNm_check(obj:grd_basic, pBodyCell)
|
||||
{
|
||||
trace("bbb");
|
||||
var tCellNM = "";
|
||||
try {
|
||||
tCellNM = obj.getCellProperty("body",pBodyCell, "text" ).toString();
|
||||
tCellNM = tCellNM.replace("BIND:","");
|
||||
tCellNM = tCellNM.replace("bind:","");
|
||||
tCellNM = tCellNM.replace("Bind:","");
|
||||
}
|
||||
catch(e) {
|
||||
tCellNM = "";
|
||||
}
|
||||
finally {
|
||||
return tCellNM;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
function fn_getLastCell(iCell, iCol) {
|
||||
var iLastCell = iCell;
|
||||
var iLastCol;
|
||||
var iLoop = this.getCellCount("head") - 1;
|
||||
for (var i=iLoop; i>iCell; i--) {
|
||||
iLastCol = this.getCellProperty("head", i, "col");
|
||||
if (iLastCol == iCol) {
|
||||
iLastCell = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return iLastCell;
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
* 기 능: 컬럼 단일 정렬 메뉴 선택시
|
||||
* 인 수: 1.pColNm : Column ID
|
||||
* 2.pType :
|
||||
* Return : N/A
|
||||
------------------------------------------------------------------------------*/
|
||||
function fn_setKeystring(iCol, iSortStep) {
|
||||
//xfn_trace("grd_basic.fn_setKeystring iCol=" + iCol + " iSortStep=" + iSortStep);
|
||||
|
||||
if (iCol < 0) { return; }
|
||||
if ((iSortStep < 0) || (iSortStep > 2)) { return; }
|
||||
|
||||
var sBind= this.getCellProperty("body", iCol, "text");
|
||||
if ((sBind != null) && (sBind != ""))
|
||||
{
|
||||
var arrBind = sBind.split(":");
|
||||
if (arrBind.length > 1)
|
||||
{
|
||||
sBind = arrBind[1];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
sBind = "";
|
||||
}
|
||||
|
||||
var sKeystring = "";
|
||||
if (this.defaultSort <> "")
|
||||
{
|
||||
sKeystring += this.defaultSort;
|
||||
}
|
||||
|
||||
if (sBind <> "")
|
||||
{
|
||||
if (iSortStep == 0)
|
||||
{ // asc
|
||||
sKeystring += "+" + sBind;
|
||||
}
|
||||
else if (iSortStep == 1)
|
||||
{ // desc
|
||||
sKeystring += "-" + sBind;
|
||||
}
|
||||
}
|
||||
|
||||
if (sKeystring <> "")
|
||||
{
|
||||
sKeystring = "S:" + sKeystring;
|
||||
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// 칼럼의 Min/Max value를 비교해서 동일한 값이면 Sorting처리 안함.
|
||||
var sMinValue = objBindDs.getMin(sBind);
|
||||
var sMaxValue = objBindDs.getMax(sBind);
|
||||
|
||||
// 칼럼의 데이타가 다르면 소팅처리
|
||||
if(sMinValue != sMaxValue)
|
||||
{
|
||||
objBindDs.keystring = sKeystring;
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
* 기 능: dataset 변경 여부 체크
|
||||
* 인 수: 1.obj : Dataset
|
||||
* 2.e : value change event
|
||||
* Return : N/A
|
||||
------------------------------------------------------------------------------*/
|
||||
function fn_setRowStatusCheckd(obj:Dataset, e:DSColChangeEventInfo) {
|
||||
//////////////////////////////////////////////////////////////////////////////////////
|
||||
var bUpdateFlag=false;
|
||||
for(var i=0; i< obj.getColCount(); i++)
|
||||
{
|
||||
if((obj.getColumn(e.row,i) != obj.getOrgColumn(e.row,i)) && (obj.getColumnInfo(i).name !="chk" && obj.getColumnInfo(i).name !="rowStatus"))
|
||||
{
|
||||
bUpdateFlag=true;
|
||||
}
|
||||
}
|
||||
|
||||
if(bUpdateFlag) // Update 상태
|
||||
{
|
||||
obj.setColumn(e.row, "rowStatus", "U"); // Update
|
||||
}
|
||||
else
|
||||
{
|
||||
if(obj.getRowType(e.row) == 2) return; // Insert 상태
|
||||
|
||||
obj.setColumn(e.row, "rowStatus", "N"); // Normal
|
||||
obj.setColumn(e.row, "chk", "0"); // Update
|
||||
}
|
||||
|
||||
bUpdateFlag=false;
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
}
|
||||
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
* 기 능: 그리드 RowStatus 칼럼 동적으로 생성
|
||||
* 인 수: N/A
|
||||
* Return : N/A
|
||||
------------------------------------------------------------------------------*/
|
||||
function grd_setRowStatusContents(iIndex)
|
||||
{
|
||||
if(sGrdFullPath.length==0) sGrdFullPath="grd_main";
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////
|
||||
//RowStatus 칼럼 동적 생성.
|
||||
this.insertContentsCol(iIndex);
|
||||
this.setCellProperty("Head",iIndex,"text", "");
|
||||
this.setCellProperty("Body",iIndex,"displaytype","normal");
|
||||
this.setCellProperty("body",iIndex,"style"
|
||||
, 'background:EXPR('+sGrdFullPath+'.fn_getColor(_rowStatus,'#ffffffff'));'
|
||||
+ 'background2:EXPR('+sGrdFullPath+'.fn_getColor(_rowStatus,'#ffffffff'));'
|
||||
+ 'color:EXPR('+sGrdFullPath+'.fn_getColor(_rowStatus,'#ffffffff'));'
|
||||
+ 'backgroundimage:EXPR('+sGrdFullPath+'.fn_getRowTypeImg(rowStatus));'
|
||||
+ 'align:center');
|
||||
this.setFormatColProperty(iIndex,"size",20);
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
* 기 능: 그리드 Chk 칼럼 동적으로 생성
|
||||
* 인 수: N/A
|
||||
* Return : N/A
|
||||
------------------------------------------------------------------------------*/
|
||||
function grd_setChkContents(iIndex)
|
||||
{
|
||||
|
||||
if(sGrdFullPath.length==0) sGrdFullPath="grd_main";
|
||||
|
||||
//checkbox 칼럼 동적 생성.
|
||||
this.insertContentsCol(iIndex);
|
||||
this.setCellProperty("Head",iIndex,"displaytype", "checkbox");
|
||||
this.setCellProperty("Head",iIndex,"edittype", "checkbox");
|
||||
this.setCellProperty("Body",iIndex,"text","bind:chk");
|
||||
this.setCellProperty("Body",iIndex,"displaytype","expr:"+sGrdFullPath+".fn_getPropertyType(rowStatus,'checkbox')");
|
||||
this.setCellProperty("Body",iIndex,"edittype","expr:"+sGrdFullPath+".fn_getPropertyType(rowStatus,'checkbox')");
|
||||
this.setCellProperty("body",iIndex,"style"
|
||||
, 'background:EXPR('+sGrdFullPath+'.fn_getColor(rowStatus,'#ffffffff'));'
|
||||
+ 'background2:EXPR('+sGrdFullPath+'.fn_getColor(rowStatus,'#ffffffff'));'
|
||||
+ 'color:EXPR('+sGrdFullPath+'.fn_getColor(rowStatus,'#ffffffff'));'
|
||||
+ 'align:center');
|
||||
this.setFormatColProperty(iIndex,"size",20);
|
||||
/////////////////////////////////////////////////////////////////////////////////////
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
* 기 능: Properties 속성을 expression처리.( rowStatus 삭제인 경우 edittype none으로 설정)
|
||||
* 인 수: sRowType - 현재로의 상태값,
|
||||
* sEditType - Default Edit 값
|
||||
* Return : N/A
|
||||
------------------------------------------------------------------------------*/
|
||||
function fn_getPropertyType(sRowType,sDefaultType)
|
||||
{
|
||||
var strRtn = "";
|
||||
switch (sRowType)
|
||||
{
|
||||
case 'D' :
|
||||
strRtn = "none";
|
||||
break;
|
||||
default :
|
||||
strRtn = sDefaultType;
|
||||
break;
|
||||
}
|
||||
return strRtn;
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
* 기 능: rowStatus 타입 기준으로 rowStatus 칼럼에 출력할 이미지 리턴
|
||||
* 인 수: sRowType - 현재로의 상태값
|
||||
* Return : N/A
|
||||
------------------------------------------------------------------------------*/
|
||||
function fn_getRowTypeImg(sRowType)
|
||||
{
|
||||
var strRtn = "";
|
||||
|
||||
switch (sRowType)
|
||||
{
|
||||
case 'C' :
|
||||
strRtn = "URL('theme://Images/icon_grid_insert.png')";
|
||||
break;
|
||||
case 'U' :
|
||||
strRtn = "URL('theme://Images/icon_grid_update.png')";
|
||||
break;
|
||||
case 'D' :
|
||||
strRtn = "URL('theme://Images/icon_grid_delete.png')";
|
||||
break;
|
||||
}
|
||||
return strRtn;
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
* 기 능: rowStatus기준으로 BackgroundColor1,2, SelectedColor 값 리턴
|
||||
* 인 수: sRowType - 현재로의 상태값
|
||||
sColor - Default 컬러값
|
||||
* Return : N/A
|
||||
------------------------------------------------------------------------------*/
|
||||
function fn_getColor(sRowType,sColor)
|
||||
{
|
||||
var strRtn = "";
|
||||
if(sColor.length == 0) sColor="#ffffffff";
|
||||
|
||||
switch (sRowType)
|
||||
{
|
||||
case 'D' :
|
||||
strRtn = "#eeeeeeff";
|
||||
break;
|
||||
default :
|
||||
strRtn = sColor;
|
||||
break;
|
||||
}
|
||||
return strRtn;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
* 기 능: 값이 null, undefined 이거나
|
||||
white space 문자로만 이루어진 String일 경우 true를 리턴한다
|
||||
* 인 수: vaValue
|
||||
* Return : Boolean
|
||||
------------------------------------------------------------------------------*/
|
||||
function fn_isNull(){
|
||||
if(arguments[0] == null)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else if (typeof arguments[0] === "undefined")
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else if (typeof arguments[0] === "string")
|
||||
{
|
||||
|
||||
if(arguments[0].trim().length == 0)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
* 기 능: xfn_trace 일괄 제어하기 위해
|
||||
* 인 수: 1.text : xfn_trace 내용
|
||||
* Return :
|
||||
------------------------------------------------------------------------------*/
|
||||
var flag = true;
|
||||
function xfn_trace(text)
|
||||
{
|
||||
if( flag ) trace(text);
|
||||
}
|
||||
|
||||
//-------------------------------------grd_basic end --------------------------------------------//
|
||||
} // class
|
||||
]]></Script>
|
||||
125
src/main/webapp/xui/frame/workFrame.xfdl
Normal file
125
src/main/webapp/xui/frame/workFrame.xfdl
Normal file
@@ -0,0 +1,125 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FDL version="1.4">
|
||||
<TypeDefinition url="..\default_typedef.xml"/>
|
||||
<Form id="workArea" classname="WORK" inheritanceid="" position="absolute 0 0 805 580" scrollbars="none" oninit="workArea_oninit" onclose="workArea_onclose" onsize="workArea_onsize">
|
||||
<Layouts>
|
||||
<Layout>
|
||||
<Static id="st_Navi" usedecorate="true" position="absolute 41 6 482 25" style="background:transparent;align:left middle;"/>
|
||||
<Div id="div_Work" taborder="1" position="absolute 20 30 785 570" style="background:#ffffffff;"/>
|
||||
<Static id="st_Navi2" text="네비게이션2" class="static_workTitle" visible="false" position="absolute 437 9 800 24" anchor="top right" style="background:left middle; color:#939393ff; padding:0 0 0 0; align:right middle; font:Malgun Gothic,8, antialias; "/>
|
||||
<Button id="btn_copyMenu" taborder="1" onclick="btn_copyMenu_onclick" visible="false" position="absolute 761 0 806 6" anchor="top right" style="hideeffect:tranAniShow; "/>
|
||||
<Button id="btn_changeMenu" taborder="1" onclick="btn_changeMenu_onclick" visible="false" position="absolute 708 0 753 6" anchor="top right" style="hideeffect:tranAniShow; " bPopup="0"/>
|
||||
<Static id="stc_bulet" position="absolute 19 5 38 23" style="background:transparent URL('img::alert_information.png') stretch;"/>
|
||||
</Layout>
|
||||
</Layouts>
|
||||
<Script type="xscript4.0"><![CDATA[/*
|
||||
* 01. 업무구분 : Frame 공통
|
||||
* 02. 화면명 : workFrame.xfdl
|
||||
* 03. 화면설명 :
|
||||
* 04. 작성일 : 2012-08-22
|
||||
* 05. 작성자 : sian
|
||||
* 06. 수정이력 :
|
||||
*********************************************************************
|
||||
* 수정일 이 름 사유
|
||||
*********************************************************************
|
||||
* 2012-08-22 sian 최초 작성
|
||||
*********************************************************************
|
||||
*/
|
||||
include "lib::commLib.xjs"; //공통함수 호출
|
||||
|
||||
var pv_winKey; //업무화면 Key코드
|
||||
var pv_menuId; //메뉴 ID
|
||||
var pv_programId; //프로그램 ID
|
||||
var pv_menuUrl; //업무화면 Url
|
||||
var pv_menuTitle; //업무화면 Title
|
||||
var pv_menuTitle2; //업무화면 Title2
|
||||
var pv_helpUrl; //도움말 URL
|
||||
var pv_args;
|
||||
var fv_datalog_yn; //데이터Log를 저장할지 여부
|
||||
|
||||
function workArea_oninit(obj:Form, e:InitEventInfo)
|
||||
{
|
||||
pv_winKey = getOwnerFrame().arguments["winKey"];
|
||||
pv_menuId = getOwnerFrame().arguments["menuId"];
|
||||
pv_menuUrl = getOwnerFrame().arguments["menuUrl"];
|
||||
pv_menuTitle = getOwnerFrame().arguments["menuTitle"];
|
||||
pv_menuTitle2 = getOwnerFrame().arguments["menuTitle2"];
|
||||
pv_programId = getOwnerFrame().arguments["programId"];
|
||||
pv_helpUrl = getOwnerFrame().arguments["helpUrl"];
|
||||
pv_args = getOwnerFrame().arguments["args"];
|
||||
pv_menuMultiYn = getOwnerFrame().arguments["menuMultiYn"];
|
||||
fv_datalog_yn = getOwnerFrame().arguments["pInfoflag"]; //ncPInfoFlag
|
||||
//"ncTrId=" + trID + " ncPInfoFlag=" + fv_datalog_yn
|
||||
this.titletext = pv_menuTitle;
|
||||
btn_changeMenu.winKey = pv_winKey;
|
||||
|
||||
this.st_Navi.text = pv_menuTitle;
|
||||
this.st_Navi2.text = pv_menuTitle2.substr(1) + " ["+pv_programId+"]";
|
||||
|
||||
var objFont = gfn_getObjFont(10,"Dotum");
|
||||
var objTextSize = gfn_GetTextSize(this.st_Navi.text, objFont);
|
||||
|
||||
if(objTextSize==false)return nLeft;
|
||||
|
||||
this.st_Navi.position.width = objTextSize.cx+25;
|
||||
var pv_loadUrl = pv_menuUrl.indexOf("xfdl?") > 0 ? pv_menuUrl.substr(0, pv_menuUrl.indexOf("xfdl?") + 4) : pv_menuUrl;
|
||||
|
||||
this.div_Work.url = pv_loadUrl;
|
||||
this.div_Work.programId = pv_menuId;
|
||||
}
|
||||
|
||||
|
||||
|
||||
function frm_child_oninit(obj:Form)
|
||||
{
|
||||
var oFrame = obj.getOwnerFrame();
|
||||
if(oFrame.arguments) {
|
||||
pv_menuId = oFrame.arguments["menuId"];
|
||||
}
|
||||
obj.onclose.addHandler(frm_child_onclose);
|
||||
}
|
||||
|
||||
|
||||
function workArea_onactivate(obj:Form, e:ActivateEventInfo)
|
||||
{
|
||||
mainframe.titletext = (pv_menuTitle == null || pv_menuTitle == undefined || pv_menuTitle == "" ? "" : " [ " +pv_menuTitle +" ]" );
|
||||
|
||||
if(gfn_IsNull(pv_winKey) == true) return;
|
||||
gfn_ActiveForm(pv_winKey);
|
||||
}
|
||||
|
||||
function workArea_onsize(obj:Form, e:SizeEventInfo)
|
||||
{
|
||||
if(e.cx < 600 || e.cy < 450) return;
|
||||
|
||||
f_setResize(obj, e.cx, e.cy);
|
||||
|
||||
|
||||
}
|
||||
|
||||
function f_setResize(obj, nCx, nCy)
|
||||
{
|
||||
div_Work.position.height = nCy - 50;
|
||||
div_Work.position.width = nCx - 40;
|
||||
}
|
||||
|
||||
function workArea_onclose(obj:Form, e:CloseEventInfo)
|
||||
{
|
||||
if(gfn_IsNull(pv_winKey) == true) return;
|
||||
gfn_FrameOnClose(pv_winKey);
|
||||
}
|
||||
|
||||
function f_close()
|
||||
{
|
||||
if(gfn_IsNull(div_Work.url) == true) close();
|
||||
div_Work.url = "";
|
||||
if(gfn_IsNull(div_Work.url) == true) close();
|
||||
}
|
||||
|
||||
function frm_child_onclose(obj:Form, e:CloseEventInfo)
|
||||
{
|
||||
if(obj != div_Work) return;
|
||||
close();
|
||||
}]]></Script>
|
||||
</Form>
|
||||
</FDL>
|
||||
262
src/main/webapp/xui/globalvars.xml
Normal file
262
src/main/webapp/xui/globalvars.xml
Normal file
@@ -0,0 +1,262 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<GlobalVariables>
|
||||
<Dataset id="gds_Menu" keystring="S:MENU_CD+MENU_NM">
|
||||
<ColumnInfo>
|
||||
<Column id="MENU_CD" type="STRING" size="8"/>
|
||||
<Column id="UP_MENU_CD" type="STRING" size="8"/>
|
||||
<Column id="MENU_NM" type="STRING" size="50"/>
|
||||
<Column id="MENU_LVL" type="BIGDECIMAL" size="22"/>
|
||||
<Column id="PGM_PATH" type="STRING" size="200"/>
|
||||
<Column id="PGM_ID" type="STRING" size="200"/>
|
||||
<Column id="SORT" type="BIGDECIMAL" size="22"/>
|
||||
</ColumnInfo>
|
||||
<Rows>
|
||||
<Row>
|
||||
<Col id="MENU_CD">01000000</Col>
|
||||
<Col id="UP_MENU_CD">0</Col>
|
||||
<Col id="MENU_NM">CRUD 개발화면</Col>
|
||||
<Col id="MENU_LVL">1</Col>
|
||||
<Col id="SORT">1</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_CD">01010000</Col>
|
||||
<Col id="UP_MENU_CD">01000000</Col>
|
||||
<Col id="MENU_NM">그리드 CRUD</Col>
|
||||
<Col id="MENU_LVL">2</Col>
|
||||
<Col id="SORT">1</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_CD">01010101</Col>
|
||||
<Col id="UP_MENU_CD">01010100</Col>
|
||||
<Col id="MENU_NM">그리드 CRUD</Col>
|
||||
<Col id="MENU_LVL">4</Col>
|
||||
<Col id="PGM_PATH">template</Col>
|
||||
<Col id="PGM_ID">crudStandard.xfdl</Col>
|
||||
<Col id="SORT">1</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_CD">02000000</Col>
|
||||
<Col id="MENU_NM">컴포넌트 가이드</Col>
|
||||
<Col id="MENU_LVL">1</Col>
|
||||
<Col id="SORT">2</Col>
|
||||
<Col id="UP_MENU_CD">0</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_CD">02010000</Col>
|
||||
<Col id="MENU_NM">타입</Col>
|
||||
<Col id="UP_MENU_CD">02000000</Col>
|
||||
<Col id="MENU_LVL">2</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_CD">02010100</Col>
|
||||
<Col id="MENU_NM">Class</Col>
|
||||
<Col id="UP_MENU_CD">02010000</Col>
|
||||
<Col id="MENU_LVL">3</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_CD">02010101</Col>
|
||||
<Col id="UP_MENU_CD">02010100</Col>
|
||||
<Col id="MENU_NM">Edit</Col>
|
||||
<Col id="MENU_LVL">4</Col>
|
||||
<Col id="PGM_PATH">compguide</Col>
|
||||
<Col id="SORT">1</Col>
|
||||
<Col id="PGM_ID">CLASS_GUIDE_01.xfdl</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_CD">02010102</Col>
|
||||
<Col id="UP_MENU_CD">02010100</Col>
|
||||
<Col id="MENU_NM">Static</Col>
|
||||
<Col id="MENU_LVL">4</Col>
|
||||
<Col id="PGM_PATH">compguide</Col>
|
||||
<Col id="PGM_ID">CLASS_GUIDE_02.xfdl</Col>
|
||||
<Col id="SORT">2</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_CD">02010200</Col>
|
||||
<Col id="UP_MENU_CD">02010000</Col>
|
||||
<Col id="MENU_NM">Component</Col>
|
||||
<Col id="MENU_LVL">3</Col>
|
||||
<Col id="PGM_PATH">[Undefined]</Col>
|
||||
<Col id="PGM_ID">[Undefined]</Col>
|
||||
<Col id="SORT">[Undefined]</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_CD">02010201</Col>
|
||||
<Col id="UP_MENU_CD">02010200</Col>
|
||||
<Col id="MENU_NM">Static</Col>
|
||||
<Col id="MENU_LVL">4</Col>
|
||||
<Col id="PGM_PATH">compguide</Col>
|
||||
<Col id="PGM_ID">COMP_GUIDE_01.xfdl</Col>
|
||||
<Col id="SORT">1</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_CD">02010202</Col>
|
||||
<Col id="UP_MENU_CD">02010200</Col>
|
||||
<Col id="MENU_NM">Button</Col>
|
||||
<Col id="MENU_LVL">4</Col>
|
||||
<Col id="PGM_PATH">compguide</Col>
|
||||
<Col id="PGM_ID">COMP_GUIDE_02.xfdl</Col>
|
||||
<Col id="SORT">2</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_CD">02010203</Col>
|
||||
<Col id="UP_MENU_CD">02010200</Col>
|
||||
<Col id="MENU_NM">Calendar</Col>
|
||||
<Col id="MENU_LVL">4</Col>
|
||||
<Col id="PGM_PATH">compguide</Col>
|
||||
<Col id="PGM_ID">COMP_GUIDE_03.xfdl</Col>
|
||||
<Col id="SORT">3</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_CD">02010204</Col>
|
||||
<Col id="UP_MENU_CD">02010200</Col>
|
||||
<Col id="MENU_NM">Shape</Col>
|
||||
<Col id="MENU_LVL">4</Col>
|
||||
<Col id="PGM_PATH">compguide</Col>
|
||||
<Col id="PGM_ID">COMP_GUIDE_04.xfdl</Col>
|
||||
<Col id="SORT">4</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_CD">02010205</Col>
|
||||
<Col id="UP_MENU_CD">02010200</Col>
|
||||
<Col id="MENU_NM">Popup</Col>
|
||||
<Col id="MENU_LVL">4</Col>
|
||||
<Col id="PGM_PATH">compguide</Col>
|
||||
<Col id="PGM_ID">COMP_GUIDE_05.xfdl</Col>
|
||||
<Col id="SORT">5</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_CD">02010206</Col>
|
||||
<Col id="UP_MENU_CD">02010200</Col>
|
||||
<Col id="MENU_NM">Alert</Col>
|
||||
<Col id="MENU_LVL">4</Col>
|
||||
<Col id="PGM_PATH">compguide</Col>
|
||||
<Col id="PGM_ID">COMP_GUIDE_06.xfdl</Col>
|
||||
<Col id="SORT">6</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_CD">02010207</Col>
|
||||
<Col id="UP_MENU_CD">02010200</Col>
|
||||
<Col id="MENU_NM">Grid1</Col>
|
||||
<Col id="MENU_LVL">4</Col>
|
||||
<Col id="PGM_PATH">compguide</Col>
|
||||
<Col id="PGM_ID">COMP_GUIDE_07.xfdl</Col>
|
||||
<Col id="SORT">7</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_CD">02010208</Col>
|
||||
<Col id="UP_MENU_CD">02010200</Col>
|
||||
<Col id="MENU_NM">Grid2</Col>
|
||||
<Col id="MENU_LVL">4</Col>
|
||||
<Col id="PGM_PATH">compguide</Col>
|
||||
<Col id="PGM_ID">COMP_GUIDE_08.xfdl</Col>
|
||||
<Col id="SORT">8</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_CD">02010209</Col>
|
||||
<Col id="UP_MENU_CD">02010200</Col>
|
||||
<Col id="MENU_NM">Tab1</Col>
|
||||
<Col id="MENU_LVL">4</Col>
|
||||
<Col id="PGM_PATH">compguide</Col>
|
||||
<Col id="PGM_ID">COMP_GUIDE_09.xfdl</Col>
|
||||
<Col id="SORT">9</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_CD">02010210</Col>
|
||||
<Col id="UP_MENU_CD">02010200</Col>
|
||||
<Col id="MENU_NM">Tab2</Col>
|
||||
<Col id="MENU_LVL">4</Col>
|
||||
<Col id="PGM_PATH">compguide</Col>
|
||||
<Col id="PGM_ID">COMP_GUIDE_10.xfdl</Col>
|
||||
<Col id="SORT">10</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_CD">03000000</Col>
|
||||
<Col id="UP_MENU_CD">0</Col>
|
||||
<Col id="MENU_NM">화면유형 가이드 </Col>
|
||||
<Col id="MENU_LVL">1</Col>
|
||||
<Col id="SORT">3</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UP_MENU_CD">03000000</Col>
|
||||
<Col id="MENU_CD">03010000</Col>
|
||||
<Col id="MENU_NM">화면유형</Col>
|
||||
<Col id="MENU_LVL">2</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UP_MENU_CD">03010000</Col>
|
||||
<Col id="MENU_CD">03010101</Col>
|
||||
<Col id="MENU_NM">패턴1</Col>
|
||||
<Col id="MENU_LVL">4</Col>
|
||||
<Col id="PGM_PATH">work</Col>
|
||||
<Col id="PGM_ID">Pattern_01.xfdl</Col>
|
||||
<Col id="SORT">1</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_CD">03010102</Col>
|
||||
<Col id="UP_MENU_CD">03010000</Col>
|
||||
<Col id="MENU_NM">패턴2</Col>
|
||||
<Col id="MENU_LVL">4</Col>
|
||||
<Col id="PGM_PATH">work</Col>
|
||||
<Col id="PGM_ID">Pattern_02.xfdl</Col>
|
||||
<Col id="SORT">1</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_CD">03010103</Col>
|
||||
<Col id="UP_MENU_CD">03010000</Col>
|
||||
<Col id="MENU_NM">패턴3</Col>
|
||||
<Col id="MENU_LVL">4</Col>
|
||||
<Col id="PGM_PATH">work</Col>
|
||||
<Col id="PGM_ID">Pattern_03.xfdl</Col>
|
||||
<Col id="SORT">1</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_CD">03010104</Col>
|
||||
<Col id="UP_MENU_CD">03010000</Col>
|
||||
<Col id="MENU_NM">패턴4</Col>
|
||||
<Col id="MENU_LVL">4</Col>
|
||||
<Col id="PGM_PATH">work</Col>
|
||||
<Col id="PGM_ID">Pattern_04.xfdl</Col>
|
||||
<Col id="SORT">1</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_CD">03010105</Col>
|
||||
<Col id="UP_MENU_CD">03010000</Col>
|
||||
<Col id="MENU_NM">패턴5</Col>
|
||||
<Col id="MENU_LVL">4</Col>
|
||||
<Col id="PGM_PATH">work</Col>
|
||||
<Col id="PGM_ID">Pattern_05.xfdl</Col>
|
||||
<Col id="SORT">1</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_CD">03010106</Col>
|
||||
<Col id="UP_MENU_CD">03010000</Col>
|
||||
<Col id="MENU_NM">패턴6</Col>
|
||||
<Col id="MENU_LVL">4</Col>
|
||||
<Col id="PGM_PATH">work</Col>
|
||||
<Col id="PGM_ID">Pattern_06.xfdl</Col>
|
||||
<Col id="SORT">1</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="MENU_CD">03010107</Col>
|
||||
<Col id="UP_MENU_CD">03010000</Col>
|
||||
<Col id="MENU_NM">패턴7</Col>
|
||||
<Col id="MENU_LVL">4</Col>
|
||||
<Col id="PGM_PATH">work</Col>
|
||||
<Col id="PGM_ID">Pattern_07.xfdl</Col>
|
||||
<Col id="SORT">1</Col>
|
||||
</Row>
|
||||
</Rows>
|
||||
</Dataset>
|
||||
<Variable id="gv_userId" initval="sian"/>
|
||||
<PropertyAnimation id="gPropAni"/>
|
||||
<Dataset id="gds_OpenMenu">
|
||||
<ColumnInfo>
|
||||
<Column id="MENU_CD" type="STRING" size="256"/>
|
||||
<Column id="MENU_NM" type="STRING" size="256"/>
|
||||
<Column id="WINID" type="STRING" size="256"/>
|
||||
</ColumnInfo>
|
||||
</Dataset>
|
||||
<Variable id="gv_menuType" initval="1" usecookie="false"/>
|
||||
<Variable id="gv_openCnt" initval="15"/>
|
||||
</GlobalVariables>
|
||||
BIN
src/main/webapp/xui/images/TOBESOFT.png
Normal file
BIN
src/main/webapp/xui/images/TOBESOFT.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.0 KiB |
BIN
src/main/webapp/xui/images/Thumbs.db
Normal file
BIN
src/main/webapp/xui/images/Thumbs.db
Normal file
Binary file not shown.
BIN
src/main/webapp/xui/images/alert_information.png
Normal file
BIN
src/main/webapp/xui/images/alert_information.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.8 KiB |
134
src/main/webapp/xui/install.html
Normal file
134
src/main/webapp/xui/install.html
Normal file
@@ -0,0 +1,134 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>XPlatform Launch Page</TITLE>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr" />
|
||||
<SCRIPT type="text/javascript" src="./install/checkBrowser.js" ></SCRIPT>
|
||||
<script language="javascript">
|
||||
|
||||
var Server_Path = window.location.href;
|
||||
Server_Path = Server_Path.substring(0, Server_Path.lastIndexOf("/")) + "/";
|
||||
//v_xadl : 알맞은 xadl값을 설정하십시오. (url로 입력)
|
||||
//현재 연결된 프로젝트는 url로 설정시 오류가 있어 로컬경로로 설정함
|
||||
var v_xadl = Server_Path + "DefaultTheme.xadl";
|
||||
|
||||
function fn_start()
|
||||
{
|
||||
if ( checkBrowser.browser == "Explorer")
|
||||
{
|
||||
/** Launcher 설치 여부 확인 **/
|
||||
//alert("launch=>"+Check_installed("XLauncher.Cy_XLauncher")); //XLauncher.Cy_XLauncher : Launcher
|
||||
/** Engine 설치 여부 확인 **/
|
||||
//alert("Engine=>"+Check_installed("XPlatformAX.XPlatformAXCtrl91")); //XPlatformAX.XPlatformAXCtrl91 : Engine
|
||||
|
||||
/** Launcher Engine 설치 여부 확인후 설치를 유도함 **/
|
||||
if(!Check_installed("XLauncher.Cy_XLauncher") || !Check_installed("XPlatformAX.XPlatformAXCtrl91")){
|
||||
err_msg.innerHTML += "<br><br><font size=\"2\">이 웹사이트를 사용하기 위해 추가기능을 <u>상단 메시지를 클릭하여</u> 설치해주십시오.</font>";
|
||||
return;
|
||||
}
|
||||
|
||||
/** IE 구동방법 분기 launch or Embed **/
|
||||
//if(confirm("webBrowser로 실행하시겠습니까?")){
|
||||
// location.href = "./body.html";
|
||||
// return;
|
||||
//}else{
|
||||
XLauncher.key = "EgovXPLATFORM";
|
||||
XLauncher.xadl = v_xadl;
|
||||
XLauncher.onlyone = false;
|
||||
XLauncher.makeshortcut("EgovXPLATFORM",Server_Path + "a.ico", "desktop"); //바로가기 아이콘 생성
|
||||
XLauncher.launch();
|
||||
window.open('about:blank','_self').close(); //browser close
|
||||
//}
|
||||
}else{
|
||||
/********************************************************************************************************
|
||||
알림 : 현재는 비IE 계열 브라우져에서 Engine 설치여부를 확인하기 어렵고, 플러그인 설치여부만 확인가능하다.
|
||||
따라서 엔진설치후에 플러그인을 설치하도록 유도하여 설치를 진행하도록 한다.
|
||||
*********************************************************************************************************/
|
||||
/** 비ie Plugin설치여부 확인 **/
|
||||
if(checkInstaller() == false)
|
||||
{
|
||||
err_msg.innerHTML += '<br><br><font size=\"2\">이 웹사이트를 사용하기 위해 하단의 추가기능을 다운받으셔서 <u>순서되로</u> 설치해주십시오.'+
|
||||
'<br><br><b><a href="'+Server_Path+'install/download/XPLATFORM9.2_SetupEngine.exe"><font class="f2" color="red">1. 엔진설치</a>' +
|
||||
' <a href="'+Server_Path+'install/download/XPLATFORM9.2_SetupPlugin.exe"><font class="f2" color="red">2. 플러그인 설치</a>' +
|
||||
'<br><br>설치하신후 본 창을 닫고 다시 브라우져를 열어 접속해주십시오.</font></b>';
|
||||
return;
|
||||
}
|
||||
|
||||
/** 비ie 구동방법 분기 launch or Embed **/
|
||||
if(confirm("webBrowser로 실행하시겠습니까?")){
|
||||
location.href = "./body.html";
|
||||
return;
|
||||
}else{
|
||||
method_launch();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** IE XPlatform9 설치확인 Fucntion **/
|
||||
function Check_installed(installedObj)
|
||||
{
|
||||
try{
|
||||
var xObj = new ActiveXObject(installedObj); //해당 prog id
|
||||
if(xObj) Installed = true;
|
||||
else Installed = false;
|
||||
}
|
||||
catch(ex){
|
||||
Installed = false;
|
||||
}
|
||||
return Installed;
|
||||
}
|
||||
|
||||
/** 비IE Plug-in (Launcher) Engine 설치확인 **/
|
||||
function checkInstaller()
|
||||
{
|
||||
for ( var i = 0 ; i < navigator.plugins.length;i++)
|
||||
{
|
||||
//alert(navigator.plugins[i].name);
|
||||
if (navigator.plugins[i].name.indexOf("XPLATFORM") != -1 ) return true; //Plugin name : XPLATFORM
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/** 바로가기 아이콘 생성 **/
|
||||
function method_makeshortcut()
|
||||
{
|
||||
//XLauncher.key = "EgovXPLATFORM";
|
||||
//XLauncher.xadl = v_xadl;
|
||||
//XLauncher.makeshortcut("EgovXPLATFORM", Server_Path + "a.ico", "desktop", true);
|
||||
}
|
||||
|
||||
/** 비IE Launch **/
|
||||
function method_launch()
|
||||
{
|
||||
//key
|
||||
XLauncher2.key = "EgovXPLATFORM";
|
||||
XLauncher2.xadl = v_xadl;
|
||||
XLauncher2.onlyone = false;
|
||||
XLauncher2.launch();
|
||||
}
|
||||
|
||||
/** 비IE Launch onError Event**/
|
||||
function XLauncher_onerror(code, msg)
|
||||
{
|
||||
alert("code:"+code+", msg:"+msg);
|
||||
}
|
||||
</script>
|
||||
</HEAD>
|
||||
<BODY border="0" cellpadding="0" cellspacing="0" onload="fn_start()">
|
||||
<script language="javascript">
|
||||
/** 1. launcher 설치 및 선언(IE이며 cab으로 설치, 비IE는 선언까지만 설치는 exe로 진행) **/
|
||||
document.write("<table width=\"100%\" height=\"100%\" border=\"0\"><tr><td align=\"center\" id=\"err_msg\"><img src=\"./xplatform.jpg\"></td></tr><tr><td></td></tr></table> ");
|
||||
document.write("<OBJECT ID=\"XLauncher\" CLASSID=\"CLSID:A30D5481-7381-4dd9-B0F4-0D1D37449E97\" width=\"0\" height=\"0\" codebase=\"./install/download/XPLATFORM9.2_XPLauncher.cab#VERSION=2012,8,21,1\" SHOWASTEXT> ");
|
||||
//document.write(" <PARAM NAME=\"key\" VALUE=\"EgovXPLATFORM\"> ");
|
||||
//document.write(" <PARAM NAME=\"xadl\" VALUE=\""+v_xadl+"\"> ");
|
||||
//document.write(" <PARAM NAME=\"onlyone\" VALUE=\"false\"> ");
|
||||
document.write("</OBJECT>");
|
||||
document.write(" <embed id=\"XLauncher2\" hidden=\"true\" type=\"application/XLauncher9.2-PlugIn\" error=\"XLauncher_onerror\" width=\"0\" height=\"0\" ><embed/>" );
|
||||
|
||||
/** 2. Engine 설치(IE) 및 선언(IE) **/
|
||||
document.write("<OBJECT ID=\"XPlatformAXCtrl\" CLASSID=\"CLSID:43C5FE00-DD32-4792-83DB-19AE4F88F2A6\" " );
|
||||
document.write(" CodeBase=\"./install/download/XPLATFORM9.2_SetupEngine.cab#VERSION=2012,8,21,1\" ");
|
||||
document.write(" width=\"0\" height=\"0\" SHOWASTEXT> " );
|
||||
document.write("</OBJECT>" );
|
||||
</script>
|
||||
</BODY>
|
||||
</HTML>
|
||||
105
src/main/webapp/xui/install/checkBrowser.js
Normal file
105
src/main/webapp/xui/install/checkBrowser.js
Normal file
@@ -0,0 +1,105 @@
|
||||
var checkBrowser = {
|
||||
init: function () {
|
||||
this.browser = this.searchStr(this.browserList) || "An unknown browser";
|
||||
this.version = this.searchVer(navigator.userAgent)
|
||||
|| this.searchVer(navigator.appVersion)
|
||||
|| "an unknown version";
|
||||
this.OS = this.searchStr(this.osList) || "an unknown OS";
|
||||
},
|
||||
searchStr: function (objList) {
|
||||
for (var i=0;i<objList.length;i++) {
|
||||
var dataStr = objList[i].string;
|
||||
var dataProp = objList[i].prop;
|
||||
this.versionStr = objList[i].versionSearch || objList[i].identity;
|
||||
if (dataStr) {
|
||||
if (dataStr.indexOf(objList[i].subString) != -1)
|
||||
return objList[i].identity;
|
||||
}
|
||||
else if (dataProp)
|
||||
return objList[i].identity;
|
||||
}
|
||||
},
|
||||
searchVer: function (str) {
|
||||
var idx = str.indexOf(this.versionStr);
|
||||
if (idx == -1) return;
|
||||
return parseFloat(str.substring(idx+this.versionStr.length+1));
|
||||
},
|
||||
browserList: [
|
||||
{ String: navigator.userAgent,
|
||||
subString: "OmniWeb",
|
||||
versionSearch: "OmniWeb/",
|
||||
identity: "OmniWeb"
|
||||
},
|
||||
{
|
||||
string: navigator.vendor,
|
||||
subString: "Apple",
|
||||
identity: "Safari"
|
||||
},
|
||||
{
|
||||
prop: window.opera,
|
||||
identity: "Opera"
|
||||
},
|
||||
{
|
||||
string: navigator.vendor,
|
||||
subString: "iCab",
|
||||
identity: "iCab"
|
||||
},
|
||||
{
|
||||
string: navigator.vendor,
|
||||
subString: "KDE",
|
||||
identity: "Konqueror"
|
||||
},
|
||||
{
|
||||
string: navigator.userAgent,
|
||||
subString: "Firefox",
|
||||
identity: "Firefox"
|
||||
},
|
||||
{
|
||||
string: navigator.vendor,
|
||||
subString: "Camino",
|
||||
identity: "Camino"
|
||||
},
|
||||
{ // for newer Netscapes (6+)
|
||||
string: navigator.userAgent,
|
||||
subString: "Netscape",
|
||||
identity: "Netscape"
|
||||
},
|
||||
{
|
||||
string: navigator.userAgent,
|
||||
subString: "MSIE",
|
||||
identity: "Explorer",
|
||||
versionSearch: "MSIE"
|
||||
},
|
||||
{
|
||||
string: navigator.userAgent,
|
||||
subString: "Gecko",
|
||||
identity: "Mozilla",
|
||||
versionSearch: "rv"
|
||||
},
|
||||
{ // for older Netscapes (4-)
|
||||
string: navigator.userAgent,
|
||||
subString: "Mozilla",
|
||||
identity: "Netscape",
|
||||
versionSearch: "Mozilla"
|
||||
}
|
||||
],
|
||||
osList : [
|
||||
{
|
||||
string: navigator.platform,
|
||||
subString: "Win",
|
||||
identity: "Windows"
|
||||
},
|
||||
{
|
||||
string: navigator.platform,
|
||||
subString: "Mac",
|
||||
identity: "Mac"
|
||||
},
|
||||
{
|
||||
string: navigator.platform,
|
||||
subString: "Linux",
|
||||
identity: "Linux"
|
||||
}
|
||||
]
|
||||
|
||||
};
|
||||
checkBrowser.init();
|
||||
Binary file not shown.
Binary file not shown.
BIN
src/main/webapp/xui/install/download/XPLATFORM9.2_XPLauncher.cab
Normal file
BIN
src/main/webapp/xui/install/download/XPLATFORM9.2_XPLauncher.cab
Normal file
Binary file not shown.
BIN
src/main/webapp/xui/install/download/component/ExtCommon.dll
Normal file
BIN
src/main/webapp/xui/install/download/component/ExtCommon.dll
Normal file
Binary file not shown.
BIN
src/main/webapp/xui/install/download/component/XAppletComp.dll
Normal file
BIN
src/main/webapp/xui/install/download/component/XAppletComp.dll
Normal file
Binary file not shown.
BIN
src/main/webapp/xui/install/download/component/XAxCmp.dll
Normal file
BIN
src/main/webapp/xui/install/download/component/XAxCmp.dll
Normal file
Binary file not shown.
BIN
src/main/webapp/xui/install/download/component/XComCmp.dll
Normal file
BIN
src/main/webapp/xui/install/download/component/XComCmp.dll
Normal file
Binary file not shown.
BIN
src/main/webapp/xui/install/download/component/XExtAPI.dll
Normal file
BIN
src/main/webapp/xui/install/download/component/XExtAPI.dll
Normal file
Binary file not shown.
BIN
src/main/webapp/xui/install/download/component/XGridCmp.dll
Normal file
BIN
src/main/webapp/xui/install/download/component/XGridCmp.dll
Normal file
Binary file not shown.
BIN
src/main/webapp/xui/install/download/component/XPush.dll
Normal file
BIN
src/main/webapp/xui/install/download/component/XPush.dll
Normal file
Binary file not shown.
BIN
src/main/webapp/xui/install/download/component/XSQLite.dll
Normal file
BIN
src/main/webapp/xui/install/download/component/XSQLite.dll
Normal file
Binary file not shown.
76
src/main/webapp/xui/install/launch_etc_Browser.js
Normal file
76
src/main/webapp/xui/install/launch_etc_Browser.js
Normal file
@@ -0,0 +1,76 @@
|
||||
var p1;
|
||||
|
||||
function fn_load_crom()
|
||||
{
|
||||
p1 = document.getElementById("plugin1");
|
||||
p1.xadl = v_xadl; //xadl
|
||||
//p1.autosize = true; //autosize
|
||||
p1.autosize = false;
|
||||
p1.commthreadcount = 30; //commthreadcount
|
||||
p1.commthreadwaittime = 1000; //commthreadwaittime
|
||||
p1.key = "EgovXPLATFORM";
|
||||
p1.run();
|
||||
//alert(p1.getvariablevalue("VarUserID"));
|
||||
}
|
||||
|
||||
function Callscript_Test()
|
||||
{
|
||||
//alert(p1.callscript("TestCallScript('abc')"));
|
||||
}
|
||||
function p1_onload(url)
|
||||
{
|
||||
//alert("p1.onload\n-" + url);
|
||||
}
|
||||
|
||||
/***************************************
|
||||
P l u g i n E v e n t
|
||||
***************************************/
|
||||
function my_loadtypedefinition(strurl)
|
||||
{
|
||||
//alert("loadtypedefinition : "+strurl);
|
||||
}
|
||||
|
||||
function my_load()
|
||||
{
|
||||
//alert("load completed !!");
|
||||
}
|
||||
|
||||
function my_loadingglobalvariables(strurl)
|
||||
{
|
||||
//alert("loadingglobalvariables : "+strurl);
|
||||
}
|
||||
|
||||
function my_beforeexit(bCloseFlag, bHandledFlag)
|
||||
{
|
||||
//alert("beforeexit : " + bCloseFlag + bHandledFlag);
|
||||
}
|
||||
|
||||
function my_exit()
|
||||
{
|
||||
//alert("À̺¥Æ® exit-");
|
||||
}
|
||||
|
||||
function my_communication(bStart)
|
||||
{
|
||||
// alert("communication:"+bStart);
|
||||
}
|
||||
|
||||
function my_usernotify(nNotifyID, strMsg)
|
||||
{
|
||||
//alert("nNotifyID:"+nNotifyID +" strMsg:"+strMsg);
|
||||
}
|
||||
|
||||
function my_error(nError, strErrMsg)
|
||||
{
|
||||
//alert("err:"+strErrMsg);
|
||||
}
|
||||
function my_addlog(strMsg)
|
||||
{
|
||||
//alert("strMsg:"+strMsg);
|
||||
}
|
||||
/***************************************
|
||||
P l u g i n E v e n t (End)
|
||||
***************************************/
|
||||
|
||||
|
||||
|
||||
2
src/main/webapp/xui/lib/commDataset.xjs
Normal file
2
src/main/webapp/xui/lib/commDataset.xjs
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Script type="xscript4.0"><![CDATA[]]></Script>
|
||||
430
src/main/webapp/xui/lib/commFrame.xjs
Normal file
430
src/main/webapp/xui/lib/commFrame.xjs
Normal file
@@ -0,0 +1,430 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Script type="xscript4.0"><![CDATA[/*
|
||||
*====================================================File description===================================================================
|
||||
* File Name : commFrame.xjs
|
||||
* Comment : UI Frame 관련 함수의 집합.
|
||||
* Create Date : 2012/08/22
|
||||
* Author :
|
||||
* Change History :
|
||||
*=======================================================================================================================================
|
||||
- fn_IsNull : NULL 여부 체크.
|
||||
*/
|
||||
/*****************************************************************************************
|
||||
* 함 수 명 : gfn_ChkOpenMenu
|
||||
* 입 력 : menuid: 메뉴 아이디
|
||||
* 반 환 :
|
||||
* 기 능 : 메뉴 아이디를 기준으로 신규 윈도우 화면을 생성하고 open 시킴
|
||||
*****************************************************************************************/
|
||||
function gfn_ChkOpenMenu(menuid,objDs) {
|
||||
var nRow = objDs.findRow("MENU_CD", menuid);
|
||||
|
||||
if (gfn_IsNull(menuid) == true)
|
||||
{
|
||||
trace("Menu가 존재하지 않습니다.");
|
||||
return;
|
||||
}
|
||||
|
||||
if(gfn_IsNull(objDs.getColumn(nRow, "PGM_PATH"))==true)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var winKey = gds_OpenMenu.lookup("MENU_CD", menuid, "WINID");
|
||||
if(gfn_IsNull(winKey) == false)
|
||||
{
|
||||
if(gfn_ActiveFrame(winKey) == true)
|
||||
{
|
||||
gv_tabFrame.form.fn_movePage(winKey);
|
||||
gv_tabFrame.form.fn_activeTabpage(winKey);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if(parseInt(gds_OpenMenu.rowcount) > 14)
|
||||
{
|
||||
gfn_MsgAlert("메뉴는 15개이상 오픈할 수 없습니다.");
|
||||
return;
|
||||
}
|
||||
|
||||
if(gfn_IsNull(objDs.getColumn(nRow, "MENU_CD")) == true) return;
|
||||
|
||||
winKey = menuid + "_" + gds_OpenMenu.getRowCount()+ "_" + parseInt(Math.random() * 100);
|
||||
|
||||
var objNewWin = new ChildFrame;
|
||||
objNewWin.init(winKey, 0, 0, gv_initWidth, gv_initHeight);
|
||||
objNewWin.formurl = "frame::workFrame.xfdl";
|
||||
objNewWin.arguments = [];
|
||||
|
||||
var tmpNewPgmId = objDs.getColumn(nRow, "PGM_ID");
|
||||
if(objDs.getColumn(nRow, "PGM_ID").indexOf("xfdl?")>0)
|
||||
{
|
||||
var tmpPgmId = objDs.getColumn(nRow, "PGM_ID");
|
||||
tmpNewPgmId = tmpPgmId.substr(0,tmpPgmId.indexOf("xfdl?") + 4);
|
||||
var tmpNewParam = tmpPgmId.substr(tmpPgmId.indexOf("xfdl?") + 5);
|
||||
objNewWin.arguments["args"] = tmpNewParam;
|
||||
}
|
||||
|
||||
objNewWin.arguments["winKey"] = winKey;
|
||||
objNewWin.arguments["menuId"] = objDs.getColumn(nRow, "MENU_CD");
|
||||
objNewWin.arguments["menuUrl"] = objDs.getColumn(nRow, "PGM_PATH")+"::"+objDs.getColumn(nRow, "PGM_ID");
|
||||
objNewWin.arguments["programId"] = tmpNewPgmId;
|
||||
objNewWin.arguments["menuTitle"] = objDs.getColumn(nRow, "MENU_NM");
|
||||
objNewWin.arguments["menuTitle2"] = "";
|
||||
objNewWin.arguments["helpUrl"] = "";
|
||||
objNewWin.arguments["pInfoflag"] = "";
|
||||
objNewWin.openstatus = "maximize";
|
||||
objNewWin.arguments["menuMultiYn"] = "";
|
||||
gv_workFrame.addChild(winKey, objNewWin);
|
||||
gfn_AddGblDSMenu(winKey, nRow, objDs);
|
||||
objNewWin.dragmovetype = "all";
|
||||
objNewWin.showtitlebar = false;
|
||||
|
||||
objNewWin.resizable = true;
|
||||
objNewWin.show();
|
||||
|
||||
//20120611 좌측메뉴 클릭시
|
||||
gv_tabFrame.form.fn_setNaviAdd(winKey, objDs.getColumn(nRow, "MENU_NM"));
|
||||
gv_tabFrame.form.fn_activeTabpage(winKey);
|
||||
gv_activeWinId = winKey;
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************************
|
||||
* 함 수 명 : gfn_ArrangeWin
|
||||
* 입 력 : strType: 정렬 타입
|
||||
* 반 환 :
|
||||
* 기 능 : 열려있는 윈도우 화면을 정렬
|
||||
*****************************************************************************************/
|
||||
function gfn_ArrangeWin(strType) {
|
||||
var strWinKey;
|
||||
var strMenuNm;
|
||||
var i;
|
||||
// workFrame영역에 open된 childFrame 갯수
|
||||
var iFramesCnt = gv_workFrame.frames.length;
|
||||
|
||||
//if (gds_OpenMenu.getRowCount() < 1) return;
|
||||
if (iFramesCnt < 1) return;
|
||||
|
||||
|
||||
if(strType == "maximize")
|
||||
{
|
||||
btn_cas.visible=true;
|
||||
btn_max.visible=false;
|
||||
|
||||
for (i=0; i<iFramesCnt; i++)
|
||||
{
|
||||
gv_workFrame.frames[i].openstatus = "normal";
|
||||
gv_workFrame.frames[i].showtitlebar = false;
|
||||
gv_workFrame.frames[i].style.border = "0 solid #006666ff";
|
||||
if(gv_workFrame.frames[i].openstatus!="maximize")
|
||||
{
|
||||
gv_workFrame.frames[i].openstatus = strType;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else if (strType == "closeAll")
|
||||
{
|
||||
for (var i=iFramesCnt-1; i>=0; i--) {
|
||||
strWinKey = gds_OpenMenu.getColumn(i, "WINID");
|
||||
gv_workFrame.frames[i].showtitlebar = true;
|
||||
if(gfn_TabOnClose(strWinKey) == false) return;
|
||||
}
|
||||
gv_workFrame.arrange(strType);
|
||||
|
||||
// Arrange 버튼 상태처리
|
||||
btn_closeAll.enable=false;
|
||||
btn_cas.enable=false;
|
||||
btn_max.enable=false;
|
||||
|
||||
}
|
||||
else if (strType == "cascade" || strType == "horizontal")
|
||||
{
|
||||
btn_cas.visible=false;
|
||||
btn_max.visible=true;
|
||||
|
||||
for (i=0; i<iFramesCnt; i++)
|
||||
{
|
||||
gv_workFrame.frames[i].showtitlebar = true;
|
||||
gv_workFrame.frames[i].style.border = "1 solid #7f7f7bff";
|
||||
gv_workFrame.frames[i].style.bordertype = "round 3 3";
|
||||
gv_workFrame.frames[i].openstatus = "maximize";
|
||||
}
|
||||
gv_workFrame.arrange(strType);
|
||||
}
|
||||
else if (strType == "hidden")
|
||||
{
|
||||
|
||||
for (i=0; i<iFramesCnt; i++)
|
||||
{
|
||||
gv_workFrame.frames[i].showtitlebar = true;
|
||||
gv_workFrame.frames[i].style.border = "1 solid #7f7f7bff";
|
||||
gv_workFrame.frames[i].style.bordertype = "round 3 3";
|
||||
gv_workFrame.frames[i].openstatus = "minimize";
|
||||
}
|
||||
|
||||
gv_workFrame.arrange(strType);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
for (i=0; i<iFramesCnt; i++)
|
||||
{
|
||||
gv_workFrame.frames[i].showtitlebar = true;
|
||||
gv_workFrame.frames[i].style.border = "1 solid #7f7f7bff";
|
||||
gv_workFrame.frames[i].style.bordertype = "round 3 3";
|
||||
gv_workFrame.frames[i].openstatus = "minimize";
|
||||
}
|
||||
gv_workFrame.arrange(strType);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************************
|
||||
* 함 수 명 : gfn_AddGblDSMenu
|
||||
* 입 력 : strID: 윈도우 생성키, 메뉴데이터셋에서의 row position
|
||||
* 반 환 :
|
||||
* 기 능 : 신규 생성된 윈도우 화면을 DsOpenwininfo 에 등록
|
||||
*****************************************************************************************/
|
||||
function gfn_AddGblDSMenu(strID, nRow, objDs) {
|
||||
gds_Menu.filter("");
|
||||
var curRow = gds_OpenMenu.addRow();
|
||||
gds_OpenMenu.setColumn(curRow, "WINID", strID);
|
||||
gds_OpenMenu.setColumn(curRow, "MENU_CD", objDs.getColumn(nRow, "MENU_CD"));
|
||||
|
||||
|
||||
if(strID.indexOf("HOME01") != -1 )
|
||||
{
|
||||
gds_OpenMenu.setColumn(curRow, "MENU_NM", "HOME");
|
||||
}
|
||||
else
|
||||
{
|
||||
gds_OpenMenu.setColumn(curRow, "MENU_NM", objDs.getColumn(nRow, "MENU_NM"));
|
||||
}
|
||||
}
|
||||
|
||||
/*****************************************************************************************
|
||||
* 함 수 명 : gfn_ActiveFrame
|
||||
* 입 력 : winKey: 윈도우 생성 키
|
||||
* 반 환 :
|
||||
* 기 능 : 윈도우 키를 기준으로 열려있는 화면일 경우 focus, maximize 처리
|
||||
*****************************************************************************************/
|
||||
function gfn_ActiveFrame(winKey) {
|
||||
|
||||
var fs_main_info = gv_workFrame.frames;
|
||||
if(fs_main_info[winKey])
|
||||
{
|
||||
fs_main_info[winKey].setFocus();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/*****************************************************************************************
|
||||
* 함 수 명 : gfn_TabOnClose
|
||||
* 입 력 : strID: 윈도우 생성키
|
||||
* 반 환 : true/false 정상닫힘/닫힘취소
|
||||
* 기 능 : 윈도우 타이틀 탭 닫힘 처리
|
||||
*****************************************************************************************/
|
||||
function gfn_TabOnClose(winKey)
|
||||
{
|
||||
gv_workFrame.frames[winKey].form.f_close();
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************************
|
||||
* 함 수 명 : gfn_ActiveForm
|
||||
* 입 력 : winKey: 윈도우 생성 키
|
||||
* 반 환 :
|
||||
* 기 능 : 윈도우 키를 기준으로 Active된 화면의 타이틀 탭을 Active시킨다
|
||||
*****************************************************************************************/
|
||||
function gfn_ActiveForm(winKey) {
|
||||
gv_activeWinId = winKey;
|
||||
gv_TabFrame.form.fn_activeTabpage(winKey);
|
||||
}
|
||||
|
||||
/*****************************************************************************************
|
||||
* 함 수 명 : gfn_FrameOnClose
|
||||
* 입 력 : winKey: 윈도우 생성키
|
||||
* 반 환 :
|
||||
* 기 능 : 윈도우 화면 닫힘 처리
|
||||
*****************************************************************************************/
|
||||
function gfn_FrameOnClose(winKey)
|
||||
{
|
||||
gv_tabFrame.form.fn_deleteTabpage(winKey);
|
||||
gfn_DelGblDSMenu(winKey);
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************************
|
||||
* 함 수 명 : gfn_DelGblDSMenu
|
||||
* 입 력 : strID: 윈도우 생성키
|
||||
* 반 환 :
|
||||
* 기 능 : 생성된 윈도우 화면을 DsOpenwininfo 에서 삭제
|
||||
*****************************************************************************************/
|
||||
function gfn_DelGblDSMenu(strID) {
|
||||
|
||||
var iRow = gds_OpenMenu.findRow("WINID", strID);
|
||||
|
||||
gds_OpenMenu.deleteRow(iRow);
|
||||
//if(gds_OpenMenu.rowcount==0)gv_workFrame.frames["workArea"].openstatus = "maximize";
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* 작성자 : AA
|
||||
* 공통 Modal Dialog를 실행 한다.
|
||||
* parameter
|
||||
1.objForm : 호출하는 form (this로 넘기면 됨, 필수)
|
||||
2. strId : Dialog ID
|
||||
3. strURL : Form URL
|
||||
4. nTop : Form TOP Position
|
||||
5. nLeft : Form Left Position
|
||||
6. nWidth : Form Width
|
||||
7. nHeight: Form Height
|
||||
8. bShowTitle : Form Title 을 표시 할지 여부
|
||||
9. strAlign: Dialog 의 위치 - '-1' : 모니터의 중앙
|
||||
- 'Bottom Left' : Click 된 마우스 위치의 좌측 하단 정렬
|
||||
- 'Top Left' : Click 된 마우스 위치의 좌측 상단 정렬
|
||||
- 'Bottom Right' : Click 된 마우스 위치의 우측 하단 정렬
|
||||
- 'Top Right' : Click 된 마우스 위치의 우측 상단 정렬
|
||||
- 'offset' : Click 된 마우스 위치에서 nTop,nLeft만큼 들여쓰기.
|
||||
- 'absolute' : 입력된 좌표를 Screen 좌표로 인식.(손영기)
|
||||
- '0' : 사용자 임의 정렬
|
||||
10. strArgument: Dialog 로 전달될 Argument - {strMessage1:'E'}
|
||||
11. isModeless: 10번째 true 면 Dialog 를 Modeless로 띄운다.
|
||||
12. isLayered: 11번째 true 면 Dialog 를 Layered로 띄운다.
|
||||
* return true/false - 적합 / 부적합
|
||||
******************************************************************************/
|
||||
function gfn_Dialog(objForm, strId, strURL, nTop, nLeft, nWidth, nHeight, bShowTitle, strAlign, strArgument, isModeless, isLayered, bAutoSize)
|
||||
{
|
||||
trace("Start gf_Dialog strURL == " + strURL);
|
||||
var newChild = null;
|
||||
var objParentFrame = objForm.getOwnerFrame();
|
||||
|
||||
var nRight = 0;
|
||||
var nBottom = 0;
|
||||
|
||||
if (strAlign == "Bottom Left") {
|
||||
nLeft = system.cursorx;
|
||||
nBottom = system.cursory - 5;
|
||||
nTop = nBottom - nHeight;
|
||||
nRight = nLeft + nWidth;
|
||||
}
|
||||
else if (strAlign == "Top Left") {
|
||||
nTop = system.cursory - 5;
|
||||
nLeft = system.cursorx;
|
||||
nBottom = nTop + nHeight;
|
||||
nRight = nLeft + nWidth;
|
||||
}
|
||||
else if (strAlign == "Bottom Right") {
|
||||
nRight = system.cursorx;
|
||||
nBottom = system.cursory - 5;
|
||||
nTop = nBottom - nHeight;
|
||||
nLeft = nRight - nWidth;
|
||||
}
|
||||
else if (strAlign == "Top Right") {
|
||||
nTop = system.cursory - 5;
|
||||
nRight = system.cursorx;
|
||||
nBottom = nTop + nHeight;
|
||||
nLeft = nRight - nWidth;
|
||||
}
|
||||
else if (strAlign == "-1") {
|
||||
|
||||
var strScreenRes = system.getScreenResolution(1);
|
||||
var nCenterX = new Number(strScreenRes.split(" ")[0]);
|
||||
var nCenterY = new Number(strScreenRes.split(" ")[1]);
|
||||
|
||||
var nMarginX = 0;
|
||||
var nMoniterIndex = system.getMonitorIndex(system.cursorx, system.cursory);
|
||||
if (nMoniterIndex == 2) {
|
||||
var strMarginRes = system.getScreenResolution(2);
|
||||
nMarginX = new Number(strMarginRes.split(" ")[0]);
|
||||
}
|
||||
nTop = Math.round(mainframe.position.height / 2) - Math.round(nHeight / 2) + mainframe.position.top;
|
||||
nLeft = Math.round(mainframe.position.width / 2) - Math.round(nWidth / 2) + mainframe.position.left;
|
||||
nBottom = nTop + nHeight;
|
||||
nRight = nLeft + nWidth;
|
||||
}
|
||||
else if (strAlign == "offset") {
|
||||
nTop += system.cursory;
|
||||
nLeft += system.cursorx;
|
||||
nBottom = nTop + nHeight;
|
||||
nRight = nLeft + nWidth;
|
||||
}
|
||||
else if (strAlign == "absolute")
|
||||
{
|
||||
nBottom = nTop + nHeight;
|
||||
nRight = nLeft + nWidth;
|
||||
}
|
||||
else {
|
||||
nTop += mainframe.position.top;
|
||||
nLeft += mainframe.position.left;
|
||||
nBottom = nTop + nHeight;
|
||||
nRight = nLeft + nWidth;
|
||||
}
|
||||
|
||||
// 화면 밖으로 벗어나는 Dialog 방지 - Sonyk
|
||||
var nMonitor = system.getMonitorIndex((nLeft+nRight)/2,(nTop+nBottom)/2);
|
||||
var rectScreen = system.getScreenRect(nMonitor);
|
||||
if(nBottom > rectScreen.bottom)
|
||||
{
|
||||
nTop = rectScreen.bottom - (nBottom - nTop);
|
||||
nBottom = rectScreen.bottom;
|
||||
}
|
||||
if(nTop < rectScreen.top)
|
||||
{
|
||||
nBottom = rectScreen.top + (nBottom - nTop);
|
||||
nTop = rectScreen.top;
|
||||
}
|
||||
if(nRight > rectScreen.right)
|
||||
{
|
||||
nLeft = rectScreen.right - (nRight - nLeft);
|
||||
nRight = rectScreen.right;
|
||||
}
|
||||
if(nLeft < rectScreen.left)
|
||||
{
|
||||
nRight = rectScreen.left + (nRight - nLeft);
|
||||
nLeft = rectScreen.left;
|
||||
}
|
||||
// 여기까지 - Sonyk
|
||||
|
||||
newChild = new ChildFrame;
|
||||
newChild.init(strId, nLeft, nTop, nRight, nBottom, strURL);
|
||||
|
||||
if (isLayered == true) {
|
||||
//newChild.style.bordertype="round 10 10";
|
||||
newChild.layered = true;
|
||||
}
|
||||
else {
|
||||
newChild.layered = false;
|
||||
}
|
||||
|
||||
newChild.style.border.width = "0";
|
||||
newChild.showstatusbar = false;
|
||||
|
||||
if (bAutoSize == false) newChild.autosize = false;
|
||||
else newChild.autosize = true;
|
||||
|
||||
if (!bShowTitle) newChild.showtitlebar = false;
|
||||
if (isModeless == true)
|
||||
{
|
||||
return newChild.showModeless(objParentFrame, strArgument);
|
||||
}
|
||||
else
|
||||
{
|
||||
var rtn;
|
||||
//if(gf_Dialog.arguments.length == 9)
|
||||
rtn = newChild.showModal(objParentFrame, strArgument);
|
||||
//else
|
||||
// rtn = newChild.showModal(objParentFrame);
|
||||
// this.removeChild(newChild.name);
|
||||
// newChild.destroy();
|
||||
// newChild = null;
|
||||
|
||||
trace("End gf_Dialog showModal strURL == " + strURL);
|
||||
return rtn;
|
||||
}
|
||||
}
|
||||
]]></Script>
|
||||
52
src/main/webapp/xui/lib/commGrid.xjs
Normal file
52
src/main/webapp/xui/lib/commGrid.xjs
Normal file
@@ -0,0 +1,52 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Script type="xscript4.0"><![CDATA[
|
||||
|
||||
/*********************************************************************************************
|
||||
** function name : grdf_SetGridCheckAll()
|
||||
** function description : 그리드 헤드 클릭시 전체체크
|
||||
** argument : obj Grid Object
|
||||
** objDS checkbox에 바인드데이터셋
|
||||
strChkCol check column id
|
||||
** e GridClickEventInfo;
|
||||
** return Type :
|
||||
** return description :
|
||||
** 예 : 그리드 헤드 예) <Cell displaytype="checkbox" edittype="checkbox" text="expr:0"/> 로 해야함.
|
||||
** 스크립트 예) grdf_SetGridCheckAll(obj,e);
|
||||
*********************************************************************************************/
|
||||
function fn_SetGridCheckAllDs(obj:Grid, objDS, strChkCol, e:GridClickEventInfo)
|
||||
{
|
||||
if(obj.readonly == true) return;
|
||||
|
||||
var strType;
|
||||
var vl_chk;
|
||||
var strVal;
|
||||
var objDS;
|
||||
var nCell = e.cell;
|
||||
|
||||
strType = obj.getCellProperty("head", e.cell, "displaytype");
|
||||
if(strType != "checkbox") {
|
||||
return;
|
||||
}
|
||||
|
||||
// Head셋팅
|
||||
strVal = obj.getCellProperty("head", nCell, "text");
|
||||
if (gfn_IsNull(strVal)) strVal = "0";
|
||||
|
||||
if (strVal == "0") {
|
||||
obj.setCellProperty("head", nCell, "text", '1');
|
||||
vl_chk="1";
|
||||
} else {
|
||||
obj.setCellProperty("head", nCell, "text", '0');
|
||||
vl_chk="0";
|
||||
}
|
||||
|
||||
// Body셋팅
|
||||
for(var i=0 ; i< objDS.rowcount ; i++){
|
||||
objDS.setColumn(i, strChkCol, vl_chk);
|
||||
}
|
||||
}
|
||||
|
||||
function getExprCheck(nRow) {
|
||||
return DsCheck.getColumn(nRow, "chk");
|
||||
}
|
||||
]]></Script>
|
||||
6
src/main/webapp/xui/lib/commLib.xjs
Normal file
6
src/main/webapp/xui/lib/commLib.xjs
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Script type="xscript4.0"><![CDATA[include "lib::commTran.xjs";
|
||||
include "lib::commFrame.xjs";
|
||||
include "lib::commDataset.xjs";
|
||||
include "lib::commGrid.xjs";
|
||||
include "lib::commUtility.xjs";]]></Script>
|
||||
166
src/main/webapp/xui/lib/commTran.xjs
Normal file
166
src/main/webapp/xui/lib/commTran.xjs
Normal file
@@ -0,0 +1,166 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Script type="xscript4.0"><![CDATA[/*
|
||||
*====================================================File description===================================================================
|
||||
* File Name : commTran.xjs
|
||||
* Comment : Transaction 관련 함수의 집합.
|
||||
* Create Date : 2012/08/22
|
||||
* Author :
|
||||
* Change History :
|
||||
*=======================================================================================================================================
|
||||
- fn_IsNull : NULL 여부 체크.
|
||||
*/
|
||||
// function fnSetVoInfo(objFrm, strVoClass)
|
||||
// {
|
||||
// objFrm.ds_voInfo.clearData();
|
||||
// var row = objFrm.ds_voInfo.addRow();
|
||||
// objFrm.ds_voInfo.setColumn(row, "voClass", strVoClass);
|
||||
// }
|
||||
|
||||
|
||||
// function fnCmTr(objFrm, svcid, strController, strVoClass, inputDs, outputDs, params, callbackFnc)
|
||||
// {
|
||||
//
|
||||
// fnSetVoInfo(objFrm, strVoClass);
|
||||
//
|
||||
// strParam = "egovframework.rte.sample.service.SampleVO";
|
||||
// transaction(svcid,
|
||||
// "svc::" + strController,
|
||||
// "ds_voInfo=ds_voInfo " + inputDs,
|
||||
// outputDs,
|
||||
// params,
|
||||
// "fnCallback");
|
||||
// }
|
||||
|
||||
/**********************************************************************************
|
||||
* 함수명 : utlf_TransNullToEmpty
|
||||
* 설명 : NULL 일 경우 빈 값을 리턴한다.
|
||||
* argument : sValue (문자열)
|
||||
* return Type : String
|
||||
**********************************************************************************/
|
||||
function fn_TransNullToEmpty(sValue)
|
||||
{
|
||||
if( fn_IsNull(sValue) )
|
||||
{
|
||||
return "";
|
||||
}
|
||||
return sValue;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/******************************************************************************************
|
||||
* 함 수 명 : gfn_transaction(strId, strModel,inDs,outDs,strParam,sCall,bSync,strDomain)
|
||||
* 입 력 : strId - transaction을 구분하기 위한 ID
|
||||
* strModel - XUP 모델명
|
||||
* inDs - transaction을 요청할 때 입력값으로 보낼 Dataset 의 ID 리스트
|
||||
* outDs - transaction을 처리 결과를 받을 Dataset의 ID 리스트
|
||||
* strParam - transaction을 요청할 때 입력값으로 보낼 변수
|
||||
* sCall - transaction callback 함수
|
||||
* bAsync - 비동기 여부(true: Sync, false : UnSync)
|
||||
* strDomain - domain 지정
|
||||
* 반 환 : 없음
|
||||
* 기 능 : transaction함수
|
||||
*****************************************************************************************/
|
||||
function gfn_transaction(objFrm, svcid, strURL, inputDs, outputDs, params, callbackFnc)
|
||||
{
|
||||
// objFrm.dsTransInfo.clearData();
|
||||
// var row = objFrm.dsTransInfo.addRow();
|
||||
// dsTransInfo.setColumn(row,0, svcid);
|
||||
// dsTransInfo.setColumn(row,1, strController);
|
||||
// dsTransInfo.setColumn(row,2, inputDs);
|
||||
// dsTransInfo.setColumn(row,3, outputDs);
|
||||
// dsTransInfo.setColumn(row,4, params);
|
||||
//
|
||||
// transaction(svcid,
|
||||
// "svc::" + strController,
|
||||
// "__DS_TRANS_INFO__=dsTransInfo " + inputDs,
|
||||
// outputDs,
|
||||
// params,
|
||||
// "fn_callBack");
|
||||
|
||||
objFrm.dsTransInfo.clearData();
|
||||
|
||||
var dsInputName = splitDsName(inputDs,0);
|
||||
var dsOutputName = splitDsName(outputDs,1);
|
||||
|
||||
for (var i = 0; i < dsInputName.length ; i++ ){
|
||||
var row = objFrm.dsTransInfo.addRow();
|
||||
if (i == 0){ //svc id 와 url은 하나이다.
|
||||
objFrm.dsTransInfo.setColumn(row,0, svcid);
|
||||
objFrm.dsTransInfo.setColumn(row,1, strURL);
|
||||
}
|
||||
objFrm.dsTransInfo.setColumn(row,2, dsInputName[i]);
|
||||
}
|
||||
|
||||
for (var i = 0; i < dsOutputName.length ; i++ ){
|
||||
objFrm.dsTransInfo.setColumn(row,3, dsOutputName[i]);
|
||||
}
|
||||
|
||||
trace(objFrm.dsTransInfo.saveXML());
|
||||
|
||||
trace("svcid : " + svcid);
|
||||
trace("strURL : " + strURL);
|
||||
trace("inputDs : " + inputDs);
|
||||
trace("outputDs : " + outputDs);
|
||||
trace("params : " + params);
|
||||
|
||||
|
||||
transaction(svcid,
|
||||
"svc::" + strURL,
|
||||
"__DS_TRANS_INFO__=dsTransInfo " + inputDs,
|
||||
outputDs,
|
||||
params,
|
||||
"fn_callBack");
|
||||
|
||||
}
|
||||
|
||||
function splitDsName(objString, type){
|
||||
var strDsMapping; //mapping string
|
||||
var objArr; //dataset name array
|
||||
var objReturn = new Array();
|
||||
|
||||
strDsMapping = objString.split(" ");
|
||||
|
||||
for (var i = 0; i < strDsMapping.length ; i++ ){
|
||||
objArr = strDsMapping[i].split("="); // objArr = a,cd
|
||||
if (type == 0)
|
||||
objReturn[i] = objArr[0];
|
||||
else
|
||||
objReturn[i] = objArr[1];
|
||||
}
|
||||
|
||||
return objReturn;
|
||||
}
|
||||
|
||||
/******************************************************************************************
|
||||
* 함 수 명 : gfn_transactionOLAP(strId, strModel,inDs,outDs,strParam,sCall,bSync,strDomain)
|
||||
* 입 력 : strId - transaction을 구분하기 위한 ID
|
||||
* sBundle - 서비스 이름
|
||||
* sData - 데이터소스 이름
|
||||
* inDs - transaction을 요청할 때 입력값으로 보낼 Dataset 의 ID 리스트
|
||||
* outDs - transaction을 처리 결과를 받을 Dataset의 ID 리스트
|
||||
* strParam - transaction을 요청할 때 입력값으로 보낼 변수
|
||||
* sCall - transaction callback 함수
|
||||
* bAsync - 비동기 여부(true: Sync, false : UnSync)
|
||||
* strDomain - domain 지정
|
||||
* 반 환 : 없음
|
||||
* 기 능 : transaction함수
|
||||
*****************************************************************************************/
|
||||
function gfn_transactionOLAP(strId ,sBundle ,sData ,inDs ,outDs ,strParam ,sCall ,bAsync)
|
||||
{
|
||||
//기본 비동기통신
|
||||
if(bAsync == null)
|
||||
{
|
||||
bAsync = "true";
|
||||
}
|
||||
|
||||
var svcparam ="service=bundleUtil"
|
||||
+ "&bundleid=bwinvoker"
|
||||
+ "&domain=cf"
|
||||
+ "&bundleCommand=" + sBundle
|
||||
+ "&datasource=" + sData + "";
|
||||
var svcurl = "svcUrl::bundleUtil?" + svcparam;
|
||||
|
||||
transaction(strId, svcurl, inDs, outDs, strParam, sCall, bAsync);
|
||||
}
|
||||
]]></Script>
|
||||
65
src/main/webapp/xui/lib/commUtility.xjs
Normal file
65
src/main/webapp/xui/lib/commUtility.xjs
Normal file
@@ -0,0 +1,65 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Script type="xscript4.0"><![CDATA[/*
|
||||
*====================================================File description===================================================================
|
||||
* File Name : commonUtility.xjs
|
||||
* Comment : Utility 관련 함수의 집합.
|
||||
* Create Date : 2012/08/22
|
||||
* Author :
|
||||
* Change History :
|
||||
*=======================================================================================================================================
|
||||
- fn_IsNull : NULL 여부 체크.
|
||||
- fn_getObjFont : 폰트 사이즈 리턴
|
||||
- fn_GetTextSize : 텍스트 사이즈 리턴
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* 기능 : NULL 여부 체크
|
||||
* @param : sValue String
|
||||
* @return : boolean
|
||||
*/
|
||||
function gfn_IsNull(sValue)
|
||||
{
|
||||
var v_ChkStr = new String(sValue);
|
||||
|
||||
if (new String(sValue).valueOf() == "undefined") return true;
|
||||
if (sValue == null) return true;
|
||||
if( ("x"+sValue == "xNaN") && ( new String(sValue.length).valueOf() == "undefined" ) ) return true;
|
||||
if (v_ChkStr == null) return true;
|
||||
if (v_ChkStr.toString().length == 0 ) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*****************************************************************************************
|
||||
* 함 수 명 : fn_getObjFont
|
||||
* 입 력 : iFontSize
|
||||
sFontName
|
||||
* 반 환 : Font Object
|
||||
* 기 능 : Font Object 생성 반환
|
||||
*****************************************************************************************/
|
||||
function gfn_getObjFont(iFontSize, sFontName)
|
||||
{
|
||||
var objFont = new Font;
|
||||
objFont.size = iFontSize;
|
||||
objFont.name = sFontName;
|
||||
objFont.bold = true;
|
||||
return objFont;
|
||||
}
|
||||
|
||||
|
||||
|
||||
function gfn_GetTextSize(sText, objFont, iLimitWidth, sConstWordWrapOption)
|
||||
{
|
||||
var objPainter = this.canvas.getPainter();
|
||||
if(gfn_IsNull(objPainter)==false)
|
||||
{
|
||||
var objTextSize = objPainter.getTextSize(sText, objFont);
|
||||
return objTextSize;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}]]></Script>
|
||||
19
src/main/webapp/xui/license/XPLATFORM_Client_License.xml
Normal file
19
src/main/webapp/xui/license/XPLATFORM_Client_License.xml
Normal file
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<license version="1.0">
|
||||
<product>
|
||||
<name>XPLATFORM</name>
|
||||
<version>9</version>
|
||||
<function>Runtime, Widget, AJAX</function>
|
||||
</product>
|
||||
<customer>
|
||||
<name>TOBESOFT</name>
|
||||
<developerCount>0</developerCount>
|
||||
<rootDomain>0.0.0.0</rootDomain>
|
||||
<targetPlatform>Windows,CE,Linux</targetPlatform>
|
||||
</customer>
|
||||
<date>
|
||||
<activation>2012-09-01</activation>
|
||||
<term unit="month">2</term>
|
||||
</date>
|
||||
<key>WV1TKSSKQFG7AU1XCW3TFUSPRVZ8HY191</key>
|
||||
</license>
|
||||
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<license version="1.0">
|
||||
<product>
|
||||
<name>XPLATFORM</name>
|
||||
<version>9</version>
|
||||
<function>Runtime, Widget, AJAX</function>
|
||||
</product>
|
||||
<customer>
|
||||
<name>(주)투비소프트</name>
|
||||
<developerCount>0</developerCount>
|
||||
<rootDomain>0.0.0.0</rootDomain>
|
||||
<targetPlatform>Windows,CE,Linux</targetPlatform>
|
||||
</customer>
|
||||
<date>
|
||||
<activation>2012-09-01</activation>
|
||||
<term unit="month">2</term>
|
||||
</date>
|
||||
<key>MUS984XB273NV17CNC8HCYD54D95P91QE</key>
|
||||
</license>
|
||||
301
src/main/webapp/xui/template/crudStandard.xfdl
Normal file
301
src/main/webapp/xui/template/crudStandard.xfdl
Normal file
@@ -0,0 +1,301 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FDL version="1.4">
|
||||
<TypeDefinition url="..\default_typedef.xml"/>
|
||||
<Form id="BoardList" classname="BoardList" inheritanceid="" position="absolute 0 0 765 540" titletext="New Form" onload="fn_onload">
|
||||
<Layouts>
|
||||
<Layout>
|
||||
<Static id="sta_WF_SearchBox" class="sta_WF_SearchBox" position="absolute 0 0 765 40" anchor="left top right"/>
|
||||
<Button id="btn_excel" taborder="2" text="Excel" position="absolute 788 3 844 29" onclick="fn_excelExport" visible="false"/>
|
||||
<Button id="btn_new" taborder="3" text="신규등록" position="absolute 848 3 904 29" onclick="fn_new" visible="false"/>
|
||||
<Button id="btn_add" taborder="1" text="Add" position="absolute 558 60 608 80" onclick="fn_add" class="btn_WF_crud" anchor="top right"/>
|
||||
<Button id="btn_delete" taborder="1" text="Delete" onclick="fn_delete" position="absolute 610 60 660 80" class="btn_WF_crud" anchor="top right"/>
|
||||
<Button id="btn_save" taborder="1" text="Save" position="absolute 662 60 712 80" onclick="fn_save" class="btn_WF_crud" anchor="top right"/>
|
||||
<Button id="btn_search" taborder="1" text="Search" position="absolute 701 7 751 29" onclick="fn_search" class="btn_WFSA_Search" anchor="top right"/>
|
||||
<Button id="btn_reset" taborder="1" text="Reset" position="absolute 714 60 764 80" class="btn_WF_crud" anchor="top right" onclick="fn_reset"/>
|
||||
<Static id="sta_WF_TitleLev1" text="타이틀" class="sta_WF_TitleLev1" position="absolute 0 59 134 73"/>
|
||||
<grd_basic id="grd_main" taborder="1" scrollpixel="all" autoenter="select" useinputpanel="false" selecttype="area" areaselecttype="overband" cellsizingtype="col" cellsizebandtype="allband" summarytype="top" objBizForm="" sGridNm="" sGrdFullPath="" objBindDs="" strSeparator="	" bIsValidSort="false" iSortStep="-1" iLastCell="-1" iLastHeadCol="-1" iLastHeadRow="-1" sLastText="" validChkCol="" objectType="grd_basic" flag="true" position2="absolute l:0 r:0 t:84 b:0" positiontype="position2" binddataset="ds_list">
|
||||
<Formats>
|
||||
<Format id="default">
|
||||
<Columns>
|
||||
<Column size="100"/>
|
||||
<Column size="100"/>
|
||||
<Column size="100"/>
|
||||
<Column size="100"/>
|
||||
<Column size="100"/>
|
||||
</Columns>
|
||||
<Rows>
|
||||
<Row size="24" band="head"/>
|
||||
<Row size="24"/>
|
||||
</Rows>
|
||||
<Band id="head">
|
||||
<Cell text="카테고리ID"/>
|
||||
<Cell col="1" text="카테고리명"/>
|
||||
<Cell col="2" text="사용여부"/>
|
||||
<Cell col="3" text="Description"/>
|
||||
<Cell col="4" text="등록자"/>
|
||||
</Band>
|
||||
<Band id="body">
|
||||
<Cell edittype="normal" text="bind:id"/>
|
||||
<Cell col="1" edittype="normal" text="bind:name"/>
|
||||
<Cell col="2" displaytype="combo" edittype="combo" text="bind:useYn" combodataset="ds_combo" combocodecol="code" combodatacol="value"/>
|
||||
<Cell col="3" edittype="normal" text="bind:description"/>
|
||||
<Cell col="4" edittype="normal" text="bind:regUser"/>
|
||||
</Band>
|
||||
</Format>
|
||||
</Formats>
|
||||
</grd_basic>
|
||||
</Layout>
|
||||
</Layouts>
|
||||
<Objects>
|
||||
<Dataset id="ds_list" firefirstcount="0" firenextcount="0" useclientlayout="true" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep">
|
||||
<ColumnInfo>
|
||||
<Column id="chk" type="STRING" size="256"/>
|
||||
<Column id="rowStatus" type="STRING" size="256"/>
|
||||
<Column id="id" type="STRING" size="256"/>
|
||||
<Column id="name" type="STRING" size="256"/>
|
||||
<Column id="description" type="STRING" size="256"/>
|
||||
<Column id="useYn" type="STRING" size="256"/>
|
||||
<Column id="regUser" type="STRING" size="256"/>
|
||||
</ColumnInfo>
|
||||
</Dataset>
|
||||
<Dataset id="ds_voInfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep">
|
||||
<ColumnInfo>
|
||||
<Column id="voClass" type="STRING" size="256"/>
|
||||
</ColumnInfo>
|
||||
<Rows>
|
||||
<Row/>
|
||||
</Rows>
|
||||
</Dataset>
|
||||
<Dataset id="ds_param" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep">
|
||||
<ColumnInfo>
|
||||
<Column id="id" type="STRING" size="256"/>
|
||||
</ColumnInfo>
|
||||
</Dataset>
|
||||
<Dataset id="DsCheck" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
|
||||
<ColumnInfo>
|
||||
<Column id="chk" type="INT" size="256"/>
|
||||
</ColumnInfo>
|
||||
</Dataset>
|
||||
<Dataset id="dsTransInfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
|
||||
<ColumnInfo>
|
||||
<Column id="strSvcID" type="STRING" size="256"/>
|
||||
<Column id="strURL" type="STRING" size="256"/>
|
||||
<Column id="strInDatasets" type="STRING" size="256"/>
|
||||
<Column id="strOutDatasets" type="STRING" size="256"/>
|
||||
</ColumnInfo>
|
||||
</Dataset>
|
||||
<Dataset id="ds_combo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
|
||||
<ColumnInfo>
|
||||
<Column id="code" type="STRING" size="256"/>
|
||||
<Column id="value" type="STRING" size="256"/>
|
||||
</ColumnInfo>
|
||||
<Rows>
|
||||
<Row>
|
||||
<Col id="code">1</Col>
|
||||
<Col id="value">Y</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="code">2</Col>
|
||||
<Col id="value">N</Col>
|
||||
</Row>
|
||||
</Rows>
|
||||
</Dataset>
|
||||
</Objects>
|
||||
<Script type="xscript4.0"><![CDATA[/************************************************************************************************
|
||||
* 01. 업무구분 : 샘플
|
||||
* 02. 화면 : Sample
|
||||
* 03. 화면 설명 : CRUD 테스트
|
||||
* 04. 관련 화면/서비스 :
|
||||
* 05. 관련테이블 :
|
||||
* 06. 작성자 :
|
||||
* 07. 작성일 : 2012.09.20
|
||||
* 08. 수정이력 :
|
||||
************************************************************************************************/
|
||||
|
||||
/************************************************************************************************
|
||||
* 공통 라이브러리 INCLUDE 영역
|
||||
************************************************************************************************/
|
||||
include "lib::commLib.xjs";
|
||||
|
||||
/************************************************************************************************
|
||||
* FORM 변수 선언 영역
|
||||
************************************************************************************************/
|
||||
|
||||
|
||||
/************************************************************************************************
|
||||
* Form OnLoad
|
||||
************************************************************************************************/
|
||||
function fn_onload(obj:Form, e:LoadEventInfo)
|
||||
{
|
||||
fn_formInit();
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
* 기 능: form 초기화 함수
|
||||
* 인 수: N/A
|
||||
* Return : N/A
|
||||
------------------------------------------------------------------------------*/
|
||||
function fn_formInit()
|
||||
{
|
||||
// Grid Common 컴포넌트 초기화작업
|
||||
grd_main.grd_onloadInitialization();
|
||||
grd_main.init();
|
||||
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
//마스터 화면에서 Chk 칼럼, RowStatus 칼럼 동적으로 생성시 호출
|
||||
grd_main.sGrdFullPath = "grd_main";
|
||||
grd_main.grd_setChkContents(0);
|
||||
//grd_main.grd_setRowStatusContents(1);
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
CRUD Button Event Area
|
||||
****************************************************************************************/
|
||||
// search(조회)
|
||||
function fn_search(obj:Button, e:ClickEventInfo)
|
||||
{
|
||||
var strSvcid = "selectSvc";
|
||||
// var strController = "egovSampleSelect.do";
|
||||
var strController = "egovSampleSelect.do?id=50&firstIndex=0&recordCountPerPage=10®User=terry";
|
||||
//var strVoClass = "egovframework.rte.sample.service.SampleVO";
|
||||
var strInputDs = "";
|
||||
var strOutputDs = "ds_list=ds_output";
|
||||
// var strParam = "a=b";
|
||||
var strParam = "firstIndex=5 recordCountPerPage=20 id=100 regUser=chang";
|
||||
var strFnCallback = "fn_callBack";
|
||||
|
||||
// 트랜젝션 공통함수 호출
|
||||
gfn_transaction(this,
|
||||
strSvcid,
|
||||
strController,
|
||||
strInputDs,
|
||||
strOutputDs,
|
||||
strParam,
|
||||
strFnCallback);
|
||||
}
|
||||
|
||||
// 마지막row 추가(UI)
|
||||
function fn_add(obj:Button, e:ClickEventInfo)
|
||||
{
|
||||
var nRow = ds_list.addRow();
|
||||
fn_initInsertData(ds_list, nRow);
|
||||
}
|
||||
|
||||
// 중간 삽입(UI)
|
||||
function fn_insert(obj:Button, e:ClickEventInfo)
|
||||
{
|
||||
var nRow = ds_list.insertRow(ds_list.rowposition);
|
||||
fn_initInsertData(ds_list, nRow);
|
||||
}
|
||||
|
||||
// 삭제(UI)
|
||||
function fn_delete()
|
||||
{
|
||||
for( var i =ds_list.getRowCount() ; i >= 0; i--)
|
||||
{
|
||||
ds_list.enableevent = false;
|
||||
var isChk = false;
|
||||
for( var i=ds_list.getRowCount() ; i >= 0; i--)
|
||||
{
|
||||
if(ds_list.getColumn(i,"chk") == 1)
|
||||
{
|
||||
// 삭제처리 패턴1(Dataset을 deleteRow처리)
|
||||
ds_list.deleteRow(i);
|
||||
|
||||
|
||||
/*
|
||||
// 삭제처리 패턴2(Dataset의 rowStatus상태값을 D로 바꾼다)
|
||||
isChk = true;
|
||||
// row를 추가한 다음 삭제할 경우 deleteRow처리함.
|
||||
if(ds_list.getColumn(i,"rowStatus")=='C')
|
||||
{
|
||||
ds_list.deleteRow(i);
|
||||
}
|
||||
else
|
||||
{
|
||||
var rtnFlag = confirm("삭제하시겠습니까?");//gfn_adl_Msg("msg.cfm.wbs.comm.0031");
|
||||
if(rtnFlag){
|
||||
ds_list.setColumn(i,"rowStatus","D");
|
||||
ds_list.setColumn(i,"chk","");
|
||||
}
|
||||
else
|
||||
{
|
||||
ds_list.setColumn(i,"chk","");
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (isChk == false)
|
||||
{
|
||||
//gfn_adl_Msg('inf.alt.wbs.comm.0022');
|
||||
alert("삭제하시겠습니까?");
|
||||
}
|
||||
ds_list.enableevent = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//리셋
|
||||
function fn_reset(obj:Button, e:ClickEventInfo)
|
||||
{
|
||||
ds_list.reset();
|
||||
}
|
||||
|
||||
//저장(Save)
|
||||
function fn_save(obj:Button, e:ClickEventInfo)
|
||||
{
|
||||
var strSvcid = "changedData";
|
||||
var strController = "egovSampleModify.do";
|
||||
var strInputDs = "ds_input=ds_list:U";
|
||||
var strOutputDs = "";
|
||||
var strParam = "a=b";
|
||||
var strFnCallback = "fn_callBack";
|
||||
|
||||
//Transaction 호출
|
||||
gfn_transaction(this,
|
||||
strSvcid,
|
||||
strController,
|
||||
strInputDs,
|
||||
strOutputDs,
|
||||
strParam,
|
||||
strFnCallback);
|
||||
}
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
Dataset Event Area
|
||||
****************************************************************************************/
|
||||
// 데이타 입력, 추가시 rowStatus변경
|
||||
function fn_initInsertData(objDs, nRow) {
|
||||
objDs.setColumn(nRow, "rowStatus", "C");
|
||||
}
|
||||
|
||||
|
||||
/************************************************************************************************
|
||||
* 01. 함수구분 : CALLBACK FUNCTION
|
||||
* 02. 함수 : fn_CallBack
|
||||
************************************************************************************************/
|
||||
function fn_callBack(svcid, errcd, errmsg)
|
||||
{
|
||||
for(var i = 0;i<ds_list.getRowCount();i++) {
|
||||
DsCheck.addRow();
|
||||
}
|
||||
|
||||
if ( svcid == "list" )
|
||||
{
|
||||
this.status = " 처리메세지 : " + errmsg;
|
||||
}
|
||||
|
||||
alert("errcd : " + errcd);
|
||||
alert("errmsg : " + errmsg);
|
||||
}]]></Script>
|
||||
</Form>
|
||||
</FDL>
|
||||
121
src/main/webapp/xui/ui/CLASS_GUIDE_01.xfdl
Normal file
121
src/main/webapp/xui/ui/CLASS_GUIDE_01.xfdl
Normal file
@@ -0,0 +1,121 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FDL version="1.4">
|
||||
<TypeDefinition url="..\default_typedef.xml"/>
|
||||
<Form id="CLASS_GUIDE_01" classname="CLASS_GUIDE_01" inheritanceid="" position="absolute 0 0 765 540" titletext="Point,Error,Readonly">
|
||||
<Layouts>
|
||||
<Layout>
|
||||
<Static id="Static05" position="absolute 340 50 553 110" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<Static id="Static01" text="Component Name" position="absolute 0 0 130 26" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static02" text="Component View" position="absolute 129 0 765 26" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static10" text="Important class : input_point" position="absolute 0 25 130 179" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static11" position="absolute 129 50 341 110" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<Edit id="Edit00" taborder="1" position="absolute 180 61 290 81" class="input_point" value="투비소프트"/>
|
||||
<Static id="Static00" text="Edit" position="absolute 129 25 341 51" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static04" text="TextArea" position="absolute 552 25 765 51" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static03" text="MaskEdit" position="absolute 340 25 553 51" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static06" position="absolute 552 50 765 110" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<MaskEdit id="MaskEdit00" taborder="2" position="absolute 392 61 502 81" class="input_point" value="123456789" mask=","/>
|
||||
<TextArea id="TextArea00" taborder="3" position="absolute 573 61 743 101" class="input_point" value="투비소프트"/>
|
||||
<Static id="Static07" text="Spin" position="absolute 129 109 341 135" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static08" text="Combo" position="absolute 340 109 553 135" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static09" text="Calendar" position="absolute 552 109 765 135" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static12" position="absolute 129 134 341 179" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<Static id="Static13" position="absolute 340 134 553 179" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<Static id="Static14" position="absolute 552 134 765 179" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<Spin id="Spin00" taborder="4" position="absolute 180 147 290 167" class="input_point" value="5" max="20"/>
|
||||
<Combo id="Combo00" taborder="5" text="Combo00" position="absolute 392 147 502 167" class="input_point" innerdataset="@DsList" codecolumn="idx" datacolumn="context" index="6" value="6"/>
|
||||
<Calendar id="Calendar00" taborder="6" position="absolute 603 147 713 167" class="input_point" value="20110601" dateformat="yyyy-MM-dd"/>
|
||||
<Static id="Static15" position="absolute 340 203 553 263" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<Static id="Static16" text="Error class : input_err" position="absolute 0 178 130 376" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static17" position="absolute 129 203 341 263" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<Edit id="Edit01" taborder="7" value="투비소프트" text="투비소프트" class="input_err" position="absolute 180 214 290 234"/>
|
||||
<Static id="Static18" text="Edit" position="absolute 129 178 341 204" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static19" text="TextArea" position="absolute 552 178 765 204" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static20" text="MaskEdit" position="absolute 340 178 553 204" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static21" position="absolute 552 203 765 263" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<MaskEdit id="MaskEdit01" taborder="8" value="123456789" text="123,456,789" mask="," class="input_err" position="absolute 392 214 502 234"/>
|
||||
<TextArea id="TextArea01" taborder="9" value="투비소프트" text="투비소프트" class="input_err" position="absolute 573 214 743 254"/>
|
||||
<Static id="Static22" text="Spin" position="absolute 129 262 341 288" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static23" text="Combo" position="absolute 340 262 553 288" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static24" text="Calendar" position="absolute 552 262 765 288" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static25" position="absolute 129 287 341 332" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<Static id="Static26" position="absolute 340 287 553 332" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<Static id="Static27" position="absolute 552 287 765 332" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<Spin id="Spin01" taborder="10" class="input_err" position="absolute 180 300 290 320" value="5" max="20"/>
|
||||
<Combo id="Combo01" taborder="11" class="input_err" position="absolute 392 300 502 320" innerdataset="@DsList" codecolumn="idx" datacolumn="context" index="6" value="6"/>
|
||||
<Calendar id="Calendar01" taborder="12" class="input_err" position="absolute 603 300 713 320" value="20110601" dateformat="yyyy-MM-dd"/>
|
||||
<Static id="Static28" position="absolute 340 400 553 460" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<Static id="Static29" text="Readonly <b v='false'>Attribute Selector</b>" position="absolute 0 375 130 529" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " usedecorate="true"/>
|
||||
<Static id="Static30" position="absolute 129 400 341 460" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<Edit id="Edit02" taborder="13" value="투비소프트" text="투비소프트" position="absolute 180 411 290 431" readonly="true"/>
|
||||
<Static id="Static31" text="Edit" position="absolute 129 375 341 401" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static32" text="TextArea" position="absolute 552 375 765 401" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static33" text="MaskEdit" position="absolute 340 375 553 401" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static34" position="absolute 552 400 765 460" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<MaskEdit id="MaskEdit02" taborder="14" value="123456789" text="123,456,789" mask="," position="absolute 392 411 502 431" readonly="true"/>
|
||||
<TextArea id="TextArea02" taborder="15" value="투비소프트" text="투비소프트" position="absolute 573 411 743 451" readonly="true"/>
|
||||
<Static id="Static35" text="Spin" position="absolute 129 459 341 485" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static36" text="Combo" position="absolute 340 459 553 485" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static37" text="Calendar" position="absolute 552 459 765 485" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static38" position="absolute 129 484 341 529" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<Static id="Static39" position="absolute 340 484 553 529" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<Static id="Static40" position="absolute 552 484 765 529" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<Spin id="Spin02" taborder="16" position="absolute 180 497 290 517" value="20" readonly="true"/>
|
||||
<Combo id="Combo02" taborder="17" position="absolute 392 497 502 517" readonly="true" innerdataset="@DsList" codecolumn="idx" datacolumn="context" index="6" value="6"/>
|
||||
<Calendar id="Calendar02" taborder="18" position="absolute 603 497 713 517" readonly="true" value="20110601" dateformat="yyyy-MM-dd"/>
|
||||
<Static id="Static41" position="absolute 129 331 765 376" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<Static id="sta_WF_Info_Orange" text="※ 입력오류가 발생할 경우 해당 클래스를 적용하며, 마우스 포커스가 되었을 경우 기 정의된 값으로 반환시켜야 함" class="sta_WF_Info_Orange" position="absolute 138 343 743 373"/>
|
||||
</Layout>
|
||||
</Layouts>
|
||||
<Objects>
|
||||
<Dataset id="DsList" preload="true" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true">
|
||||
<ColumnInfo>
|
||||
<Column id="idx" type="STRING" size="256"/>
|
||||
<Column id="context" type="STRING" size="256"/>
|
||||
</ColumnInfo>
|
||||
<Rows>
|
||||
<Row>
|
||||
<Col id="idx">0</Col>
|
||||
<Col id="context">Static</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="idx">1</Col>
|
||||
<Col id="context">Edit</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="idx">2</Col>
|
||||
<Col id="context">MaskEdit</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="idx">3</Col>
|
||||
<Col id="context">TextArea</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="idx">4</Col>
|
||||
<Col id="context">Button</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="idx">5</Col>
|
||||
<Col id="context">ListBox</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="idx">6</Col>
|
||||
<Col id="context">Combo</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="idx">7</Col>
|
||||
<Col id="context">Sp</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="idx">8</Col>
|
||||
<Col id="context">Calendar</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="idx">9</Col>
|
||||
<Col id="context">Tab</Col>
|
||||
</Row>
|
||||
</Rows>
|
||||
</Dataset>
|
||||
</Objects>
|
||||
</Form>
|
||||
</FDL>
|
||||
51
src/main/webapp/xui/ui/CLASS_GUIDE_02.xfdl
Normal file
51
src/main/webapp/xui/ui/CLASS_GUIDE_02.xfdl
Normal file
@@ -0,0 +1,51 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FDL version="1.4">
|
||||
<TypeDefinition url="..\default_typedef.xml"/>
|
||||
<Form id="CLASS_GUIDE_02" classname="CLASS_GUIDE_01" inheritanceid="" position="absolute 0 0 765 540" titletext="Information">
|
||||
<Layouts>
|
||||
<Layout>
|
||||
<Static id="Static19" position="absolute 446 25 765 538" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<Static id="Static01" text="Component Name" position="absolute 0 0 130 26" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static02" text="Component View" position="absolute 129 0 765 26" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static10" text="Information - Orange" position="absolute 0 25 130 154" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static11" position="absolute 129 25 447 154" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<Static id="sta_WF_Info_Orange_Box" class="sta_WF_Info_Orange_Box" position="absolute 150 59 415 125" text=""/>
|
||||
<Static id="sta_WF_Info_Orange" text="sta_WF_Info_Orange" class="sta_WF_Info_Orange" position="absolute 235 95 405 115"/>
|
||||
<Static id="sta_WF_Info_Orange_Title" text="sta_WF_Info_Orange_Title" class="sta_WF_Info_Orange_Title" position="absolute 235 70 405 90"/>
|
||||
<Static id="Static07" text="sta_WF_Info_Orange_Box" position="absolute 155 41 384 54" style="color:#999999ff; font:Tahoma,8; "/>
|
||||
<Static id="Static03" text="Title :" position="absolute 160 70 227 90" style="align:right;"/>
|
||||
<Static id="Static00" text="Contents :" position="absolute 160 95 227 115" style="align:right;"/>
|
||||
<Static id="sta_WF_Info_Orange_Box00" class="sta_WF_Info_Orange_Box" position="absolute 468 57 743 133" text=""/>
|
||||
<Static id="Static04" text="Information - Green" position="absolute 0 153 130 282" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static05" position="absolute 129 153 447 282" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<Static id="Static06" text="Information - Blue" position="absolute 0 281 130 410" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static08" position="absolute 129 281 447 410" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<Static id="sta_WF_Info_Green_Box" class="sta_WF_Info_Green_Box" position="absolute 150 187 415 253" text=""/>
|
||||
<Static id="sta_WF_Info_Green" text="sta_WF_Info_Green" class="sta_WF_Info_Green" position="absolute 235 223 405 243"/>
|
||||
<Static id="sta_WF_Info_Green_Title" text="sta_WF_Info_Green_Title" class="sta_WF_Info_Green_Title" position="absolute 235 198 405 218"/>
|
||||
<Static id="Static09" text="sta_WF_Info_Green_Box" position="absolute 155 169 384 182" style="color:#999999ff; font:Tahoma,8; "/>
|
||||
<Static id="Static12" text="Title :" position="absolute 160 198 227 218" style="align:right; "/>
|
||||
<Static id="Static13" text="Contents :" position="absolute 160 223 227 243" style="align:right; "/>
|
||||
<Static id="Static14" text="Information - Gray" position="absolute 0 409 130 538" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static15" position="absolute 129 409 447 538" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<Static id="sta_WF_Info_Blue_Box" class="sta_WF_Info_Blue_Box" position="absolute 150 315 415 381" text=""/>
|
||||
<Static id="sta_WF_Info_Blue" text="sta_WF_Info_Blue" class="sta_WF_Info_Blue" position="absolute 235 351 405 371"/>
|
||||
<Static id="sta_WF_Info_Blue_Title" text="sta_WF_Info_Blue_Title" class="sta_WF_Info_Blue_Title" position="absolute 235 326 405 346"/>
|
||||
<Static id="Static16" text="sta_WF_Info_Blue_Box" position="absolute 155 297 384 310" style="color:#999999ff; font:Tahoma,8; "/>
|
||||
<Static id="Static17" text="Title :" position="absolute 160 326 227 346" style="align:right; "/>
|
||||
<Static id="Static18" text="Contents :" position="absolute 160 351 227 371" style="align:right; "/>
|
||||
<Static id="sta_Info_Gray" text="sta_Info_Gray" class="sta_Info_Gray" position="absolute 235 469 405 489"/>
|
||||
<Static id="sta_Info_Gray_Title" text="sta_Info_Gray_Title" class="sta_Info_Gray_Title" position="absolute 235 444 405 464"/>
|
||||
<Static id="Static20" text="Title :" position="absolute 160 444 227 464" style="align:right; "/>
|
||||
<Static id="Static21" text="Contents :" position="absolute 160 469 227 489" style="align:right; "/>
|
||||
<Static id="sta_WF_Info_Orange_Title00" text="필수정보" class="sta_WF_Info_Orange_Title" position="absolute 493 70 643 90"/>
|
||||
<Static id="sta_WF_Info_Orange00" text="등록된 상품에 대하여 고객사별 가격 및 부가정보를 조회 할 수 있습니다." class="sta_WF_Info_Orange" position="absolute 493 95 719 119"/>
|
||||
<Static id="sta_WF_Info_Orange01" text="※ 줄 간격을 조절 할 수 있는 컴포넌트는 텍스트박스(TextArea)만 가능하며 필요한 경우 TextArea에 Class를 신규 제작하여 사용함" class="sta_WF_Info_Orange" position="absolute 478 178 749 227"/>
|
||||
<TextArea id="TextArea00" taborder="1" position="absolute 478 284 733 332" style="background:transparent;border:0 none #808080ff ;color:#e37a0cff;" value="※ 텍스트박스(TextArea)로 만들어진 정보영역" linespace="5" wordwrap="word"/>
|
||||
<Static id="Static22" text="TextArea" position="absolute 478 271 707 284" style="color:#999999ff; font:Tahoma,8; "/>
|
||||
<Static id="Static23" text="TextArea" position="absolute 478 159 707 172" style="color:#999999ff; font:Tahoma,8; "/>
|
||||
</Layout>
|
||||
</Layouts>
|
||||
<Objects/>
|
||||
</Form>
|
||||
</FDL>
|
||||
42
src/main/webapp/xui/ui/COMP_GUIDE_01.xfdl
Normal file
42
src/main/webapp/xui/ui/COMP_GUIDE_01.xfdl
Normal file
@@ -0,0 +1,42 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FDL version="1.4">
|
||||
<TypeDefinition url="..\default_typedef.xml"/>
|
||||
<Form id="COMP_GUIDE_01" classname="COMP_GUIDE_01" inheritanceid="" position="absolute 0 0 765 540" titletext="Static,Edit,TextArea,MaskEdit">
|
||||
<Layouts>
|
||||
<Layout>
|
||||
<Static id="Static01" text="Component Name" position="absolute 0 0 130 26" style="background:#edeee6ff;border:1 solid #c6c6c5ff ;align:center middle;font:Tahoma,9,bold antialias;"/>
|
||||
<Static id="Static02" text="Component View" position="absolute 129 0 765 26" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static00" text="Static" position="absolute 0 25 130 245" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static03" position="absolute 129 25 765 245" style="background:#ffffffff;border:1 solid #c6c6c5ff ;align:center middle;font:Tahoma,9,bold antialias;" text=""/>
|
||||
<Static id="Static07" text="enabled" position="absolute 138 30 258 43" style="color:#999999ff;font:Tahoma,8;"/>
|
||||
<Static id="Static04" text="disabled" position="absolute 311 30 431 43" style="color:#999999ff;font:Tahoma,8;"/>
|
||||
<Static id="Static05" text="Edit" position="absolute 0 244 130 319" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static06" position="absolute 129 244 765 319" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<Static id="Static08" text="enabled" position="absolute 138 249 258 262" style="color:#999999ff;font:Tahoma,8;"/>
|
||||
<Static id="Static09" text="disabled" position="absolute 311 249 431 262" style="color:#999999ff;font:Tahoma,8;"/>
|
||||
<Static id="Static10" text="TextArea" position="absolute 0 318 130 463" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static11" position="absolute 129 318 765 463" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<Static id="Static12" text="enabled" position="absolute 138 323 258 336" style="color:#999999ff;font:Tahoma,8;"/>
|
||||
<Static id="Static13" text="disabled" position="absolute 311 323 431 336" style="color:#999999ff;font:Tahoma,8;"/>
|
||||
<Static id="Static14" text="MaskEdit" position="absolute 0 462 130 537" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static15" position="absolute 129 462 765 537" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<Static id="Static16" text="enabled" position="absolute 138 467 258 480" style="color:#999999ff;font:Tahoma,8;"/>
|
||||
<Static id="Static17" text="disabled" position="absolute 311 467 431 480" style="color:#999999ff;font:Tahoma,8;"/>
|
||||
<Static id="Static26" text="XPLATFORM" position="absolute 138 52 258 72"/>
|
||||
<Static id="Static27" text="XPLATFORM" position="absolute 311 52 431 72" enable="false"/>
|
||||
<Static id="Static28" text="※ Static의 기본 높이를 20으로 지정" position="absolute 469 53 724 68" class="sta_WF_Info_Orange" wordwrap="none"/>
|
||||
<Edit id="Edit00" taborder="1" position="absolute 138 272 288 292" value="엑스플렛폼"/>
|
||||
<Edit id="Edit01" taborder="2" position="absolute 311 272 461 292" enable="false" value="엑스플렛폼"/>
|
||||
<TextArea id="TextArea00" taborder="3" position="absolute 138 346 288 451" value="엑스플렛폼"/>
|
||||
<TextArea id="TextArea01" taborder="4" position="absolute 311 346 461 451" value="엑스플렛폼" enable="false"/>
|
||||
<Static id="Static29" text="※ wordwrap을 both로 지정" wordwrap="none" class="sta_WF_Info_Orange" position="absolute 469 346 724 361"/>
|
||||
<MaskEdit id="MaskEdit00" taborder="5" position="absolute 138 490 288 510" value="1234567890" mask="@@@,@@@"/>
|
||||
<MaskEdit id="MaskEdit01" taborder="6" position="absolute 311 490 461 510" enable="false" value="1234567890" mask="@@@,@@@"/>
|
||||
<Static id="Static30" text="※ mask = "@@@,@@@"" wordwrap="none" class="sta_WF_Info_Orange" position="absolute 469 492 724 507"/>
|
||||
<Shape id="Shape00" position="absolute 139 82 754 92" style="strokepen:1 dashed #b1c0cbff;"/>
|
||||
<Static id="Static18" text="※ usedecorate ="<b v='true'>true</b>"" wordwrap="none" class="sta_WF_Info_Orange" position="absolute 141 100 396 115" usedecorate="true"/>
|
||||
<TextArea id="TextArea02" taborder="7" position="absolute 156 110 679 237" value="fs 글자의 크기(fontsize)를 지정합니다. ex)<fs v='12'></fs> fc 글자의 색상(fontcolor)를 지정합니다. ex)<fc v='red'></fc><fc v='#FF00FF'></fc> ff 글자의 종류(fontface)를 지정합니다. ex)<ff v='굴림'></ff> b 굵은글씨를(bold)를 지정합니다. ex)<b v='true'></b> i 이텔릭체를 (italic)를 지정합니다. ex)<i v='true'></i> u 언더라인을(underline)를 지정합니다. ex)<u v='true'></u> s 취소선(strike)를 지정합니다. ex)<s v='true'></s>" wordwrap="both" readonly="true" style="border:0 none #808080 ;color:#e37a0cff;" linespace="3"/>
|
||||
</Layout>
|
||||
</Layouts>
|
||||
</Form>
|
||||
</FDL>
|
||||
102
src/main/webapp/xui/ui/COMP_GUIDE_02.xfdl
Normal file
102
src/main/webapp/xui/ui/COMP_GUIDE_02.xfdl
Normal file
@@ -0,0 +1,102 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FDL version="1.4">
|
||||
<TypeDefinition url="..\default_typedef.xml"/>
|
||||
<Form id="COMP_GUIDE_02" classname="COMP_GUIDE_01" inheritanceid="" position="absolute 0 0 765 540" titletext="Button,Spin,ListBox,Combo">
|
||||
<Layouts>
|
||||
<Layout>
|
||||
<Static id="Static01" text="Component Name" position="absolute 0 0 130 26" style="background:#edeee6ff;border:1 solid #c6c6c5ff ;align:center middle;font:Tahoma,9,bold antialias;"/>
|
||||
<Static id="Static02" text="Component View" position="absolute 129 0 765 26" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static00" text="ListBox" position="absolute 0 253 130 413" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static03" position="absolute 129 253 765 413" style="background:#ffffffff;border:1 solid #c6c6c5ff ;align:center middle;font:Tahoma,9,bold antialias;" text=""/>
|
||||
<Static id="Static07" text="enabled" position="absolute 138 258 258 271" style="color:#999999ff;font:Tahoma,8;"/>
|
||||
<Static id="Static04" text="disabled" position="absolute 311 258 431 271" style="color:#999999ff;font:Tahoma,8;"/>
|
||||
<Static id="Static10" text="Combo" position="absolute 0 412 130 537" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static11" position="absolute 129 412 765 537" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<Static id="Static12" text="enabled" position="absolute 138 417 258 430" style="color:#999999ff;font:Tahoma,8;"/>
|
||||
<Static id="Static13" text="disabled" position="absolute 311 417 431 430" style="color:#999999ff;font:Tahoma,8;"/>
|
||||
<ListBox id="ListBox00" taborder="1" value="5" text="TextArea" index="5" innerdataset="@DsList" codecolumn="idx" datacolumn="context" position="absolute 138 281 292 396"/>
|
||||
<ListBox id="ListBox01" taborder="2" value="TextArea" text="TextArea" index="5" innerdataset="@DsList" codecolumn="idx" datacolumn="context" position="absolute 311 281 465 396" enable="false"/>
|
||||
<Combo id="Combo00" taborder="3" innerdataset="@DsList" codecolumn="idx" datacolumn="context" index="6" displayrowcount="5" position="absolute 138 439 273 459" value="6"/>
|
||||
<Combo id="Combo01" taborder="4" innerdataset="@DsList" codecolumn="idx" datacolumn="context" index="6" enable="false" position="absolute 311 439 446 459"/>
|
||||
<Static id="Static72" text="type = dropdown (default)" position="absolute 138 486 288 501" style="color:#999999ff; font:Tahoma,8; "/>
|
||||
<Combo id="Combo02" taborder="5" innerdataset="@DsList" codecolumn="idx" datacolumn="context" index="6" displayrowcount="5" position="absolute 138 507 273 527" value="6"/>
|
||||
<Combo id="Combo03" taborder="6" innerdataset="@DsList" codecolumn="idx" datacolumn="context" index="6" type="search" displayrowcount="5" position="absolute 311 507 446 527"/>
|
||||
<Combo id="Combo04" taborder="7" innerdataset="@DsList" codecolumn="idx" datacolumn="context" index="6" type="filter" displayrowcount="5" position="absolute 499 507 634 527"/>
|
||||
<Static id="Static73" text="type = search" position="absolute 311 486 461 501" style="color:#999999ff; font:Tahoma,8; "/>
|
||||
<Static id="Static74" text="type = filter" position="absolute 499 486 649 501" style="color:#999999ff; font:Tahoma,8; "/>
|
||||
<Static id="Static69" text="<b v='true'>Misc. </b> displayrowcount = 10" position="absolute 499 429 654 454" style="align:left top;" class="sta_WF_Info_Orange" usedecorate="true"/>
|
||||
<Static id="Static05" text="Spin" position="absolute 0 179 130 254" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static06" position="absolute 129 179 765 254" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<Static id="Static08" text="enabled" position="absolute 138 184 258 197" style="color:#999999ff;font:Tahoma,8;"/>
|
||||
<Static id="Static09" text="disabled" position="absolute 311 184 431 197" style="color:#999999ff;font:Tahoma,8;"/>
|
||||
<Spin id="Spin00" taborder="8" value="1" text="1" max="10" min="1" position="absolute 138 199 208 219"/>
|
||||
<Spin id="Spin01" taborder="9" value="1" text="1" max="10" min="1" enable="false" position="absolute 311 199 381 219"/>
|
||||
<Static id="Static18" text="Button" position="absolute 0 25 130 180" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static19" position="absolute 129 25 765 180" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<Static id="Static20" text="enabled" position="absolute 138 30 258 43" style="color:#999999ff;font:Tahoma,8;"/>
|
||||
<Static id="Static21" text="disabled" position="absolute 311 30 431 43" style="color:#999999ff;font:Tahoma,8;"/>
|
||||
<Button id="Button00" taborder="10" text="일이삼사" position="absolute 138 53 207 73"/>
|
||||
<Button id="Button01" taborder="11" text="일이삼사" enable="false" position="absolute 311 53 380 73"/>
|
||||
<Button id="Button02" taborder="12" text="일이" position="absolute 138 81 183 101"/>
|
||||
<Button id="Button03" taborder="13" text="일이삼" position="absolute 138 104 195 124"/>
|
||||
<Button id="Button04" taborder="14" text="일이삼사" position="absolute 138 127 207 147"/>
|
||||
<Button id="Button05" taborder="15" text="일이삼사오" position="absolute 138 150 219 170"/>
|
||||
<Button id="Button09" taborder="19" text="일이삼사오" position="absolute 277 81 358 101"/>
|
||||
<Button id="Button06" taborder="20" text="일이삼사오육" position="absolute 277 104 370 124"/>
|
||||
<Button id="Button07" taborder="21" text="일이삼사오육칠" position="absolute 277 127 382 147"/>
|
||||
<Button id="Button08" taborder="22" text="일이삼사오육칠팔" position="absolute 277 150 394 170"/>
|
||||
<Static id="Static14" text="버튼사이즈는 기본 2자에서 12px씩 증가함" usedecorate="true" class="sta_WF_Info_Orange" position="absolute 494 81 740 124" style="align:left top; " wordwrap="word"/>
|
||||
</Layout>
|
||||
</Layouts>
|
||||
<Objects>
|
||||
<Dataset id="DsList" preload="true" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true">
|
||||
<ColumnInfo>
|
||||
<Column id="idx" type="STRING" size="256"/>
|
||||
<Column id="context" type="STRING" size="256"/>
|
||||
</ColumnInfo>
|
||||
<Rows>
|
||||
<Row>
|
||||
<Col id="idx">0</Col>
|
||||
<Col id="context">Static</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="idx">1</Col>
|
||||
<Col id="context">Edit</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="idx">2</Col>
|
||||
<Col id="context">MaskEdit</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="idx">3</Col>
|
||||
<Col id="context">TextArea</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="idx">4</Col>
|
||||
<Col id="context">Button</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="idx">5</Col>
|
||||
<Col id="context">ListBox</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="idx">6</Col>
|
||||
<Col id="context">Combo</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="idx">7</Col>
|
||||
<Col id="context">Sp</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="idx">8</Col>
|
||||
<Col id="context">Calendar</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="idx">9</Col>
|
||||
<Col id="context">Tab</Col>
|
||||
</Row>
|
||||
</Rows>
|
||||
</Dataset>
|
||||
</Objects>
|
||||
</Form>
|
||||
</FDL>
|
||||
77
src/main/webapp/xui/ui/COMP_GUIDE_03.xfdl
Normal file
77
src/main/webapp/xui/ui/COMP_GUIDE_03.xfdl
Normal file
@@ -0,0 +1,77 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FDL version="1.4">
|
||||
<TypeDefinition url="..\default_typedef.xml"/>
|
||||
<Form id="COMP_GUIDE_03" classname="COMP_GUIDE_01" inheritanceid="" position="absolute 0 0 765 540" titletext="Calendar,Radio,ChecBox,ProgressBar">
|
||||
<Layouts>
|
||||
<Layout>
|
||||
<Static id="Static01" text="Component Name" position="absolute 0 0 130 26" style="background:#edeee6ff;border:1 solid #c6c6c5ff ;align:center middle;font:Tahoma,9,bold antialias;"/>
|
||||
<Static id="Static02" text="Component View" position="absolute 129 0 765 26" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static18" text="Calendar" position="absolute 0 25 130 260" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static19" position="absolute 129 25 765 260" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<Static id="Static20" text="enabled" position="absolute 138 30 258 43" style="color:#999999ff;font:Tahoma,8;"/>
|
||||
<Static id="Static21" text="disabled" position="absolute 311 30 431 43" style="color:#999999ff;font:Tahoma,8;"/>
|
||||
<Calendar id="Calendar00" taborder="1" position="absolute 138 53 228 73" dateformat="yyyy-MM-dd" value="20110620"/>
|
||||
<Calendar id="Calendar01" taborder="2" dateformat="yyyy-MM-dd" position="absolute 311 51 401 71" enable="false" value="20110620"/>
|
||||
<Static id="Static00" text="type="normal"" position="absolute 138 88 258 101" style="color:#999999ff;font:Tahoma,8;"/>
|
||||
<Static id="Static03" text="type="spin"" position="absolute 311 88 431 101" style="color:#999999ff;font:Tahoma,8;"/>
|
||||
<Static id="Static04" text="type="monthonly"" position="absolute 524 38 644 51" style="color:#999999ff;font:Tahoma,8;"/>
|
||||
<Calendar id="Calendar02" taborder="3" value="20110620" text="2011-06-20" dateformat="yyyy-MM-dd" position="absolute 138 112 228 132"/>
|
||||
<Calendar id="Calendar03" taborder="4" value="20110620" text="2011-06-20" dateformat="yyyy-MM-dd" position="absolute 311 112 401 132" type="spin" style=""/>
|
||||
<Calendar id="Calendar04" taborder="5" value="20110620" text="2011-06-20" dateformat="yyyy-MM-dd" position="absolute 524 62 690 248" type="monthonly"/>
|
||||
<Static id="Static05" text="Radio" position="absolute 0 259 130 324" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static06" position="absolute 129 259 765 324" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<Static id="Static07" text="enabled" position="absolute 138 264 258 277" style="color:#999999ff;font:Tahoma,8;"/>
|
||||
<Static id="Static08" text="disabled" position="absolute 311 264 431 277" style="color:#999999ff;font:Tahoma,8;"/>
|
||||
<Radio id="Radio00" taborder="6" columncount="2" index="0" innerdataset="@DsRadio" codecolumn="Column0" datacolumn="Column1" value="0" text="남" position="absolute 138 289 268 310" style=""/>
|
||||
<Radio id="Radio01" taborder="7" columncount="2" index="1" innerdataset="@DsRadio" codecolumn="Column0" datacolumn="Column1" value="1" text="여" enable="false" position="absolute 311 289 441 310"/>
|
||||
<Static id="Static09" text="CheckBox" position="absolute 0 323 130 403" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static10" position="absolute 129 323 765 403" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<Static id="Static11" text="enabled" position="absolute 138 328 258 341" style="color:#999999ff;font:Tahoma,8;"/>
|
||||
<Static id="Static12" text="disabled" position="absolute 311 328 431 341" style="color:#999999ff;font:Tahoma,8;"/>
|
||||
<CheckBox id="CheckBox00" taborder="8" text="XPLATFORM" position="absolute 138 348 253 368"/>
|
||||
<CheckBox id="CheckBox01" taborder="9" text="XPLATFORM" value="true" position="absolute 138 373 253 388"/>
|
||||
<CheckBox id="CheckBox03" taborder="10" text="XPLATFORM" enable="false" position="absolute 311 348 426 368"/>
|
||||
<CheckBox id="CheckBox02" taborder="11" text="XPLATFORM" value="true" enable="false" position="absolute 311 373 426 393"/>
|
||||
<Static id="Static13" text="ProgressBar" position="absolute 0 402 130 537" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static14" position="absolute 129 402 765 537" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<Static id="Static15" text="enabled" position="absolute 138 407 258 420" style="color:#999999ff;font:Tahoma,8;"/>
|
||||
<Static id="Static16" text="disabled" position="absolute 383 407 503 420" style="color:#999999ff;font:Tahoma,8;"/>
|
||||
<Button id="Btn01" taborder="12" text="Progress Test" onclick="Btn01_onclick" position="absolute 512 483 609 503"/>
|
||||
<ProgressBar id="ProgressBar00" taborder="13" max="100" min="0" pos="65" position="absolute 138 433 338 448"/>
|
||||
<ProgressBar id="ProgressBar02" taborder="14" max="100" min="0" pos="65" enable="false" position="absolute 383 433 583 448"/>
|
||||
<ProgressBar id="Pbr01" taborder="15" max="100" min="0" position="absolute 138 486 506 501" blocksize="1"/>
|
||||
<Static id="Static28" text="※ Appearance columncount = "2"" wordwrap="none" class="sta_WF_Info_Orange" position="absolute 495 273 625 303"/>
|
||||
<Calendar id="Calendar05" taborder="16" value="20110620" text="2011-06-20" type="spin" dateformat="yyyy-MM-dd" position="absolute 311 140 401 160" enable="false"/>
|
||||
</Layout>
|
||||
</Layouts>
|
||||
<Objects>
|
||||
<Dataset id="DsRadio" preload="true" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep">
|
||||
<ColumnInfo>
|
||||
<Column id="Column0" type="STRING" size="256"/>
|
||||
<Column id="Column1" type="STRING" size="256"/>
|
||||
</ColumnInfo>
|
||||
<Rows>
|
||||
<Row>
|
||||
<Col id="Column0">0</Col>
|
||||
<Col id="Column1">남</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="Column0">1</Col>
|
||||
<Col id="Column1">여</Col>
|
||||
</Row>
|
||||
</Rows>
|
||||
</Dataset>
|
||||
</Objects>
|
||||
<Script type="xscript4.0"><![CDATA[function Btn01_onclick(obj:Button, e:ClickEventInfo)
|
||||
{
|
||||
var i, j;
|
||||
Pbr01.pos = 0;
|
||||
for( i = 0 ; i < 200 ; i+=2 )
|
||||
{
|
||||
Pbr01.stepIt();
|
||||
this.updateWindow();
|
||||
sleep(5);
|
||||
}
|
||||
}]]></Script>
|
||||
</Form>
|
||||
</FDL>
|
||||
60
src/main/webapp/xui/ui/COMP_GUIDE_04.xfdl
Normal file
60
src/main/webapp/xui/ui/COMP_GUIDE_04.xfdl
Normal file
@@ -0,0 +1,60 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FDL version="1.4">
|
||||
<TypeDefinition url="..\default_typedef.xml"/>
|
||||
<Form id="COMP_GUIDE_04" classname="COMP_GUIDE_01" inheritanceid="" position="absolute 0 0 765 540" titletext="Shape, ImageViewer">
|
||||
<Layouts>
|
||||
<Layout>
|
||||
<Static id="Static01" text="Component Name" position="absolute 0 0 130 26" style="background:#edeee6ff;border:1 solid #c6c6c5ff ;align:center middle;font:Tahoma,9,bold antialias;"/>
|
||||
<Static id="Static02" text="Component View" position="absolute 129 0 765 26" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static18" text="Shape" position="absolute 0 25 130 260" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static19" position="absolute 129 25 765 260" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<Static id="Static20" text="enabled" position="absolute 243 30 363 43" style="color:#999999ff;font:Tahoma,8;"/>
|
||||
<Static id="Static21" text="disabled" position="absolute 336 30 456 43" style="color:#999999ff;font:Tahoma,8;"/>
|
||||
<Shape id="Shape00" position="absolute 243 51 313 81"/>
|
||||
<Shape id="Shape01" position="absolute 336 51 406 81" enable="false"/>
|
||||
<Static id="Static00" text="type = "<b v='true'>line</b>"" position="absolute 131 56 236 74" style="color:#999999ff;align:right;font:Tahoma,8;" usedecorate="true"/>
|
||||
<Shape id="Shape02" position="absolute 243 94 313 154" type="triangle"/>
|
||||
<Shape id="Shape03" enable="false" position="absolute 336 94 406 154" type="triangle"/>
|
||||
<Static id="Static03" text="type = "<b v='true'>triangle</b>"" position="absolute 131 110 236 128" style="color:#999999ff;align:right;font:Tahoma,8;" usedecorate="true"/>
|
||||
<Static id="Static04" text="type = "<b v='true'>rectangle</b>"" position="absolute 131 193 236 211" style="color:#999999ff;align:right;font:Tahoma,8;" usedecorate="true"/>
|
||||
<Shape id="Shape04" type="rectangle" position="absolute 243 177 313 247"/>
|
||||
<Shape id="Shape05" type="rectangle" enable="false" position="absolute 336 177 406 247"/>
|
||||
<Static id="Static05" text="enabled" position="absolute 546 30 666 43" style="color:#999999ff; font:Tahoma,8; "/>
|
||||
<Static id="Static06" text="disabled" position="absolute 639 30 749 43" style="color:#999999ff; font:Tahoma,8; "/>
|
||||
<Shape id="Shape06" position="absolute 546 51 616 81" type="roundrectangle"/>
|
||||
<Shape id="Shape07" enable="false" position="absolute 639 51 709 81" type="roundrectangle"/>
|
||||
<Static id="Static07" text="type = "<b v='true'>roundrectangle</b>"" position="absolute 429 49 539 82" style="color:#999999ff;align:right;font:Tahoma,8;" usedecorate="true"/>
|
||||
<Shape id="Shape08" type="ellipse" position="absolute 546 94 616 154"/>
|
||||
<Shape id="Shape09" type="ellipse" enable="false" position="absolute 639 94 709 154"/>
|
||||
<Static id="Static08" text="type = "<b v='true'>ellipse</b>"" position="absolute 444 110 539 128" style="color:#999999ff;align:right;font:Tahoma,8;" usedecorate="true"/>
|
||||
<Static id="Static09" text="type = "<b v='true'>pie</b>"" position="absolute 444 193 539 211" style="color:#999999ff;align:right;font:Tahoma,8;" usedecorate="true"/>
|
||||
<Shape id="Shape10" type="pie" position="absolute 546 177 616 247" endangle="128"/>
|
||||
<Shape id="Shape11" type="pie" enable="false" position="absolute 639 177 709 247" endangle="128"/>
|
||||
<Static id="Static10" text="ImageViewer" position="absolute 0 259 130 539" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static11" position="absolute 129 259 765 539" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<ImageViewer id="ImageViewer00" taborder="1" text="ImageViewer" position="absolute 138 284 243 344"/>
|
||||
<Static id="Static12" text="disabled" position="absolute 311 264 431 277" style="color:#999999ff; font:Tahoma,8; "/>
|
||||
<Static id="Static13" text="enabled" position="absolute 138 264 258 277" style="color:#999999ff; font:Tahoma,8; "/>
|
||||
<ImageViewer id="ImageViewer01" taborder="2" text="ImageViewer" position="absolute 311 284 416 344" enable="false"/>
|
||||
<Static id="Static14" text="stretch = "<b v='true'>none</b>"" position="absolute 138 352 258 365" style="color:#999999ff; font:Tahoma,8; " usedecorate="true"/>
|
||||
<ImageViewer id="ImageViewer02" taborder="3" position="absolute 138 368 298 528" image="URL('theme://images/img_sample.png')" imagealign=""/>
|
||||
<Static id="Static15" text="stretch = "<b v='true'>fit</b>"" position="absolute 331 352 451 365" style="color:#999999ff; font:Tahoma,8; " usedecorate="true"/>
|
||||
<ImageViewer id="ImageViewer03" taborder="4" image="URL('theme://images/img_sample.png')" position="absolute 331 368 491 528" stretch="fit" imagealign=""/>
|
||||
<Static id="Static16" position="absolute 524 352 704 365" style="color:#999999ff; font:Tahoma,8; " text="stretch = "<b v='true'>fixaspectratio</b>"" usedecorate="true"/>
|
||||
<ImageViewer id="ImageViewer04" taborder="5" image="URL('theme://images/img_sample.png')" stretch="fixaspectratio" position="absolute 524 368 684 528" imagealign=""/>
|
||||
</Layout>
|
||||
</Layouts>
|
||||
<Objects/>
|
||||
<Script type="xscript4.0"><![CDATA[function Btn01_onclick(obj:Button, e:ClickEventInfo)
|
||||
{
|
||||
var i, j;
|
||||
Pbr01.pos = 0;
|
||||
for( i = 0 ; i < 200 ; i+=2 )
|
||||
{
|
||||
Pbr01.stepIt();
|
||||
this.updateWindow();
|
||||
sleep(5);
|
||||
}
|
||||
}]]></Script>
|
||||
</Form>
|
||||
</FDL>
|
||||
461
src/main/webapp/xui/ui/COMP_GUIDE_05.xfdl
Normal file
461
src/main/webapp/xui/ui/COMP_GUIDE_05.xfdl
Normal file
@@ -0,0 +1,461 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FDL version="1.4">
|
||||
<TypeDefinition url="..\default_typedef.xml"/>
|
||||
<Form id="COMP_GUIDE_05" classname="COMP_GUIDE_01" inheritanceid="" position="absolute 0 0 765 540" titletext="PopupMenu,Menu,GroupBox,Splitter">
|
||||
<Layouts>
|
||||
<Layout>
|
||||
<Static id="Static01" text="Component Name" position="absolute 0 0 130 26" style="background:#edeee6ff;border:1 solid #c6c6c5ff ;align:center middle;font:Tahoma,9,bold antialias;"/>
|
||||
<Static id="Static02" text="Component View" position="absolute 129 0 765 26" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static10" text="PopupMenu ( contextmenu )" position="absolute 0 25 130 180" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static11" position="absolute 129 25 765 180" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<Static id="Static13" text="enabled" position="absolute 138 30 258 43" style="color:#999999ff; font:Tahoma,8; "/>
|
||||
<Button id="Button00" taborder="1" text="PopupMenu Show" position="absolute 137 48 267 68" onclick="Button00_onclick"/>
|
||||
<PopupMenu id="pMenu" position="absolute 137 69 267 173" innerdataset="@ds_menu" captioncolumn="Caption" enablecolumn="enable" hotkeycolumn="hotkey" idcolumn="idx" levelcolumn="lev" userdatacolumn="UserData"/>
|
||||
<Static id="Static28" class="sta_WF_Info_Orange" position="absolute 306 51 556 131" text="※ *>#contextmenu 인풋컴포넌트 내부에 있는 텍스트를 선택,복사,붙여넣기 기능이 있는 팝업메뉴"/>
|
||||
<Static id="Static00" position="absolute 129 179 765 254" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<Static id="Static03" text="Menu" position="absolute 0 179 130 254" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Menu id="Menu00" taborder="2" position="absolute 164 197 698 232" innerdataset="@ds_menu" captioncolumn="Caption" enablecolumn="enable" hotkeycolumn="hotkey" idcolumn="idx" levelcolumn="lev" userdatacolumn="UserData"/>
|
||||
<Static id="Static04" text="GroupBox" position="absolute 0 253 130 373" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static05" position="absolute 129 253 765 373" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<GroupBox id="GroupBox00" text="GroupBox" position="absolute 137 289 347 359" style="titlepadding:0 3 0 0;"/>
|
||||
<GroupBox id="GroupBox01" text="GroupBox" position="absolute 392 289 602 359" style="titlepadding:0 3 0 0; " enable="false"/>
|
||||
<Static id="Static12" text="disabled" position="absolute 392 263 512 276" style="color:#999999ff; font:Tahoma,8; "/>
|
||||
<Static id="Static06" text="enabled" position="absolute 138 263 258 276" style="color:#999999ff; font:Tahoma,8; "/>
|
||||
<Static id="Static07" text="Splitter" position="absolute 0 372 130 542" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static08" position="absolute 129 372 765 542" style="background:#f2f2efff;border:1 solid #c6c6c5ff ;align:center middle;font:Tahoma,9,bold antialias;" text=""/>
|
||||
<Static id="Static14" text="type = "vertical" (Attribute Selector)" position="absolute 407 382 587 395" style="color:#333333ff;font:Tahoma,8;"/>
|
||||
<Splitter id="Splitter00" position="absolute 249 417 254 528">
|
||||
<SplitterItems id="items">
|
||||
<SplitterItem id="item00" componentid="sta_left" bindtype="resize" position="leftortop" offset="2"/>
|
||||
<SplitterItem id="item01" componentid="sta_right" bindtype="resize" position="rightorbottom" offset="2"/>
|
||||
</SplitterItems>
|
||||
</Splitter>
|
||||
<Splitter id="Splitter01" position="absolute 420 470 580 475" type="vertical">
|
||||
<SplitterItems id="items">
|
||||
<SplitterItem id="item00" componentid="sta_top" bindtype="resize" position="leftortop" offset="2"/>
|
||||
<SplitterItem id="item01" componentid="sta_bottom" bindtype="resize" position="rightorbottom" offset="2"/>
|
||||
</SplitterItems>
|
||||
</Splitter>
|
||||
<Static id="Static09" text="type = "horizontal" (default)" position="absolute 148 382 333 395" style="color:#333333ff;font:Tahoma,8;"/>
|
||||
<Static id="sta_left" text="leftortop" position="absolute 153 417 247 528" style="background:#e37a0c99;border:0 none #808080ff ;color:#000000ff;bordertype:round 4 4 ;align:center middle;"/>
|
||||
<Static id="sta_right" text="rightorbottom" position="absolute 256 417 350 528" style="background:#33990099;border:0 none #808080ff ;color:#000000ff;bordertype:round 4 4 ;align:center middle;"/>
|
||||
<Static id="sta_top" text="leftortop" position="absolute 420 417 580 467" style="background:#e37a0c99; border:0 none #808080ff ; color:#000000ff; bordertype:round 4 4 ; align:center middle; "/>
|
||||
<Static id="sta_bottom" text="rightorbottom" position="absolute 420 478 580 528" style="background:#33990099;border:0 none #808080ff ;color:#000000ff;bordertype:round 4 4 ;align:center middle;"/>
|
||||
</Layout>
|
||||
</Layouts>
|
||||
<Objects>
|
||||
<Dataset id="ds_menu" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
|
||||
<ColumnInfo>
|
||||
<Column id="idx" type="STRING" size="256"/>
|
||||
<Column id="lev" type="STRING" size="256"/>
|
||||
<Column id="UserData" type="STRING" size="256"/>
|
||||
<Column id="Caption" type="STRING" size="256"/>
|
||||
<Column id="enable" type="STRING" size="256"/>
|
||||
<Column id="hotkey" type="STRING" size="256"/>
|
||||
</ColumnInfo>
|
||||
<Rows>
|
||||
<Row>
|
||||
<Col id="lev">0</Col>
|
||||
<Col id="UserData">인사관리</Col>
|
||||
<Col id="Caption">인사관리</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1000</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">인사마스터생성</Col>
|
||||
<Col id="Caption">인사마스터생성</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1001</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">인적사항</Col>
|
||||
<Col id="Caption">인적사항</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="hotkey">Alt+K</Col>
|
||||
<Col id="idx">1002</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">개인사진등록 신청</Col>
|
||||
<Col id="Caption">개인사진등록 신청</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1003</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">개인사진등록 관리(승인 )</Col>
|
||||
<Col id="Caption">개인사진등록 관리(승인 )</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1004</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">보훈자 관리</Col>
|
||||
<Col id="Caption">보훈자 관리</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1005</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">징계 관리</Col>
|
||||
<Col id="Caption">징계 관리</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1006</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">포상 등록 신청</Col>
|
||||
<Col id="Caption">포상 등록 신청</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">0</Col>
|
||||
<Col id="idx">1007</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">포상 관리(승인 )</Col>
|
||||
<Col id="Caption">포상 관리(승인 )</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1008</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">신원보증관리</Col>
|
||||
<Col id="Caption">신원보증관리</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1009</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">증명서 관리</Col>
|
||||
<Col id="Caption">증명서 관리</Col>
|
||||
<Col id="lev">2</Col>
|
||||
<Col id="enable">0</Col>
|
||||
<Col id="idx">1010</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">개인정보(특이사항) 관리</Col>
|
||||
<Col id="Caption">개인정보(특이사항) 관리</Col>
|
||||
<Col id="lev">2</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1011</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">인원현황</Col>
|
||||
<Col id="Caption">인원현황</Col>
|
||||
<Col id="lev">2</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1012</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">인원현황 보고서</Col>
|
||||
<Col id="Caption">인원현황 보고서</Col>
|
||||
<Col id="lev">2</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1013</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">재고용대상자</Col>
|
||||
<Col id="Caption">재고용대상자</Col>
|
||||
<Col id="lev">2</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1014</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">연령별인원현황</Col>
|
||||
<Col id="Caption">연령별인원현황</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1015</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">인사기록카드 출력</Col>
|
||||
<Col id="Caption">인사기록카드 출력</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1016</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">기념일 조회</Col>
|
||||
<Col id="Caption">기념일 조회</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">0</Col>
|
||||
<Col id="idx">1017</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="lev">0</Col>
|
||||
<Col id="UserData">인사관리(개인)</Col>
|
||||
<Col id="Caption">인사관리(개인)</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1100</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">인적사항(개인)</Col>
|
||||
<Col id="Caption">인적사항(개인)</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1101</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">증명서인쇄</Col>
|
||||
<Col id="Caption">증명서인쇄</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1102</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">재고용신청서</Col>
|
||||
<Col id="Caption">재고용신청서</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1103</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">조직 및 사원조회</Col>
|
||||
<Col id="Caption">조직 및 사원조회</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1104</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">개인사진등록 신청</Col>
|
||||
<Col id="Caption">개인사진등록 신청</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">0</Col>
|
||||
<Col id="idx">1105</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">포상 등록 신청</Col>
|
||||
<Col id="Caption">포상 등록 신청</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1106</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">인사정보조회</Col>
|
||||
<Col id="Caption">인사정보조회</Col>
|
||||
<Col id="lev">0</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1200</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">인적사항(인사위)</Col>
|
||||
<Col id="Caption">인적사항(인사위)</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1201</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">발령관리</Col>
|
||||
<Col id="Caption">발령관리</Col>
|
||||
<Col id="lev">0</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1300</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">발령코드관리</Col>
|
||||
<Col id="Caption">발령코드관리</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1301</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">일괄발령 관리</Col>
|
||||
<Col id="Caption">일괄발령 관리</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1302</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">연례호봉발령 관리</Col>
|
||||
<Col id="Caption">연례호봉발령 관리</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1303</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">승진발령 관리</Col>
|
||||
<Col id="Caption">승진발령 관리</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1304</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">승진자 DM주소 출력</Col>
|
||||
<Col id="Caption">승진자 DM주소 출력</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="hotkey">Alt+O</Col>
|
||||
<Col id="idx">1305</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">특별호봉승급 관리</Col>
|
||||
<Col id="Caption">특별호봉승급 관리</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1306</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">재계약 대상자 관리</Col>
|
||||
<Col id="Caption">재계약 대상자 관리</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1307</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">발령 추천서 작성</Col>
|
||||
<Col id="Caption">발령 추천서 작성</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1308</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">발령 추천자 지정</Col>
|
||||
<Col id="Caption">발령 추천자 지정</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1309</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">발령 추천서 승인</Col>
|
||||
<Col id="Caption">발령 추천서 승인</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1310</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">재고용추천</Col>
|
||||
<Col id="Caption">재고용추천</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1311</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">개별발령 관리</Col>
|
||||
<Col id="Caption">개별발령 관리</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1312</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">자매사 발령 관리</Col>
|
||||
<Col id="Caption">자매사 발령 관리</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1313</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">발령조회(전사원)</Col>
|
||||
<Col id="Caption">발령조회(전사원)</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1314</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">사외파견</Col>
|
||||
<Col id="Caption">사외파견</Col>
|
||||
<Col id="lev">0</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1400</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">사외파견 인력관리</Col>
|
||||
<Col id="Caption">사외파견 인력관리</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1401</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">노조관리</Col>
|
||||
<Col id="Caption">노조관리</Col>
|
||||
<Col id="lev">0</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1500</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">인적사항(노조)</Col>
|
||||
<Col id="Caption">인적사항(노조)</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1501</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">노조원 관리</Col>
|
||||
<Col id="Caption">노조원 관리</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1502</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">노조원직책 관리</Col>
|
||||
<Col id="Caption">노조원직책 관리</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1503</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">노조비공제 현황</Col>
|
||||
<Col id="Caption">노조비공제 현황</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1504</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">노조원 현황</Col>
|
||||
<Col id="Caption">노조원 현황</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1505</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">사내공모</Col>
|
||||
<Col id="Caption">사내공모</Col>
|
||||
<Col id="lev">0</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1600</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">사내공모 공고 관리</Col>
|
||||
<Col id="Caption">사내공모 공고 관리</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1601</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">사내공모 신청</Col>
|
||||
<Col id="Caption">사내공모 신청</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1602</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">사내공모 관리</Col>
|
||||
<Col id="Caption">사내공모 관리</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1603</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">사내공모 이력 조회</Col>
|
||||
<Col id="Caption">사내공모 이력 조회</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1604</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">통계정보</Col>
|
||||
<Col id="Caption">통계정보</Col>
|
||||
<Col id="lev">0</Col>
|
||||
<Col id="idx">1700</Col>
|
||||
</Row>
|
||||
</Rows>
|
||||
</Dataset>
|
||||
</Objects>
|
||||
<Script type="xscript4.0"><![CDATA[function Button00_onclick(obj:Button, e:ClickEventInfo)
|
||||
{
|
||||
var nX = system.clientToScreenX(obj, 0);
|
||||
var nY = system.clientToScreenY(obj, obj.position.height);
|
||||
pMenu.trackPopup(nX, nY);
|
||||
}
|
||||
]]></Script>
|
||||
</Form>
|
||||
</FDL>
|
||||
492
src/main/webapp/xui/ui/COMP_GUIDE_06.xfdl
Normal file
492
src/main/webapp/xui/ui/COMP_GUIDE_06.xfdl
Normal file
@@ -0,0 +1,492 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FDL version="1.4">
|
||||
<TypeDefinition url="..\default_typedef.xml"/>
|
||||
<Form id="COMP_GUIDE_06" classname="COMP_GUIDE_01" inheritanceid="" position="absolute 0 0 765 540" titletext="Alert,Confirm">
|
||||
<Layouts>
|
||||
<Layout>
|
||||
<Static id="Static01" text="Component Name" position="absolute 0 0 130 26" style="background:#edeee6ff;border:1 solid #c6c6c5ff ;align:center middle;font:Tahoma,9,bold antialias;"/>
|
||||
<Static id="Static02" text="Component View" position="absolute 129 0 765 26" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static10" text="Alert" position="absolute 0 25 130 285" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static11" position="absolute 129 25 765 285" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<Button id="BtnAlertDefault" taborder="1" text="Alert("디폴트내용", "디폴트타이틀", "default")" onclick="BtnAlertDefault_onclick" position="absolute 222 36 574 61" tooltiptext="Alert("디폴트내용", "디폴트타이틀", "default")" style="padding:0 0 0 20;align:left;"/>
|
||||
<Static id="Static15" text="default" position="absolute 153 41 213 56" style="color:#999999ff;align:right;font:Tahoma,8;"/>
|
||||
<Static id="Static16" text="error" position="absolute 153 93 213 108" style="color:#999999ff;align:right;font:Tahoma,8;"/>
|
||||
<Static id="Static17" text="question" position="absolute 153 145 213 160" style="color:#999999ff;align:right;font:Tahoma,8;"/>
|
||||
<Button id="BtnAlertQuestion" taborder="2" text="Alert("Question내용", "Question", "question")" onclick="BtnAlertQuestion_onclick" position="absolute 222 140 574 165" tooltiptext="Alert("Question내용", "Question", "question")" style="padding:0 0 0 20;align:left;"/>
|
||||
<Button id="BtnAlertError" taborder="3" text="Alert("Error내용", "Error", "error")" onclick="BtnAlertError_onclick" position="absolute 222 88 574 113" tooltiptext="Alert("Error내용", "Error", "error")" style="padding:0 0 0 20;align:left;"/>
|
||||
<Static id="Static18" text="warning" position="absolute 153 197 213 212" style="color:#999999ff;align:right;font:Tahoma,8;"/>
|
||||
<Static id="Static19" text="information" position="absolute 153 249 213 264" style="color:#999999ff;align:right;font:Tahoma,8;"/>
|
||||
<Button id="BtnAlertInformation" taborder="4" text="Alert("Information내용", "Information", "information")" onclick="BtnAlertInformation_onclick" position="absolute 222 244 574 269" tooltiptext="Alert("Information내용", "Information", "information")" style="padding:0 0 0 20;align:left;"/>
|
||||
<Button id="BtnAlertWarning" taborder="5" text="Alert("Warning내용", "Warning", "warning")" onclick="BtnAlertWarning_onclick" position="absolute 222 192 574 217" tooltiptext="Alert("Warning내용", "Warning", "warning")" style="padding:0 0 0 20;align:left;"/>
|
||||
<Static id="Static00" text="Confirm" position="absolute 0 284 130 544" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static03" position="absolute 129 284 765 544" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<Button id="BtnConfirmDefault" taborder="6" text="Confirm("디폴트내용", "디폴트타이틀", "default")" onclick="BtnConfirmDefault_onclick" position="absolute 222 295 574 320" tooltiptext="Confirm("디폴트내용", "디폴트타이틀", "default")" style="padding:0 0 0 20;align:left;"/>
|
||||
<Button id="BtnConfirmError" taborder="7" text="Confirm("Error내용", "Error", "error")" onclick="BtnConfirmError_onclick" position="absolute 222 347 574 372" tooltiptext="Confirm("Error내용", "Error", "error")" style="padding:0 0 0 20;align:left;"/>
|
||||
<Button id="BtnConfirmQuestion" taborder="8" text="Confirm("Question내용", "Question", "question")" onclick="BtnConfirmQuestion_onclick" position="absolute 222 399 574 424" tooltiptext="Confirm("Question내용", "Question", "question")" style="padding:0 0 0 20;align:left;"/>
|
||||
<Button id="BtnConfirmWarning" taborder="9" text="Confirm("Warning내용", "Warning", "warning")" onclick="BtnConfirmWarning_onclick" position="absolute 222 451 574 476" tooltiptext="Confirm("Warning내용", "Warning", "warning")" style="padding:0 0 0 20;align:left;"/>
|
||||
<Button id="BtnConfirmInformation" taborder="10" text="Confirm("Information내용", "Information", "information")" onclick="BtnConfirmInformation_onclick" position="absolute 222 503 574 528" tooltiptext="Confirm("Information내용", "Information", "information")" style="padding:0 0 0 20;align:left;"/>
|
||||
<Static id="Static04" text="default" position="absolute 153 300 213 315" style="color:#999999ff; align:right; font:Tahoma,8; "/>
|
||||
<Static id="Static05" text="error" position="absolute 153 352 213 367" style="color:#999999ff; align:right; font:Tahoma,8; "/>
|
||||
<Static id="Static06" text="question" position="absolute 153 404 213 419" style="color:#999999ff; align:right; font:Tahoma,8; "/>
|
||||
<Static id="Static07" text="warning" position="absolute 153 456 213 471" style="color:#999999ff; align:right; font:Tahoma,8; "/>
|
||||
<Static id="Static08" text="information" position="absolute 153 508 213 523" style="color:#999999ff; align:right; font:Tahoma,8; "/>
|
||||
</Layout>
|
||||
</Layouts>
|
||||
<Objects>
|
||||
<Dataset id="ds_menu" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
|
||||
<ColumnInfo>
|
||||
<Column id="idx" type="STRING" size="256"/>
|
||||
<Column id="lev" type="STRING" size="256"/>
|
||||
<Column id="UserData" type="STRING" size="256"/>
|
||||
<Column id="Caption" type="STRING" size="256"/>
|
||||
<Column id="enable" type="STRING" size="256"/>
|
||||
<Column id="hotkey" type="STRING" size="256"/>
|
||||
</ColumnInfo>
|
||||
<Rows>
|
||||
<Row>
|
||||
<Col id="lev">0</Col>
|
||||
<Col id="UserData">인사관리</Col>
|
||||
<Col id="Caption">인사관리</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1000</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">인사마스터생성</Col>
|
||||
<Col id="Caption">인사마스터생성</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1001</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">인적사항</Col>
|
||||
<Col id="Caption">인적사항</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="hotkey">Alt+K</Col>
|
||||
<Col id="idx">1002</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">개인사진등록 신청</Col>
|
||||
<Col id="Caption">개인사진등록 신청</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1003</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">개인사진등록 관리(승인 )</Col>
|
||||
<Col id="Caption">개인사진등록 관리(승인 )</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1004</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">보훈자 관리</Col>
|
||||
<Col id="Caption">보훈자 관리</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1005</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">징계 관리</Col>
|
||||
<Col id="Caption">징계 관리</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1006</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">포상 등록 신청</Col>
|
||||
<Col id="Caption">포상 등록 신청</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">0</Col>
|
||||
<Col id="idx">1007</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">포상 관리(승인 )</Col>
|
||||
<Col id="Caption">포상 관리(승인 )</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1008</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">신원보증관리</Col>
|
||||
<Col id="Caption">신원보증관리</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1009</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">증명서 관리</Col>
|
||||
<Col id="Caption">증명서 관리</Col>
|
||||
<Col id="lev">2</Col>
|
||||
<Col id="enable">0</Col>
|
||||
<Col id="idx">1010</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">개인정보(특이사항) 관리</Col>
|
||||
<Col id="Caption">개인정보(특이사항) 관리</Col>
|
||||
<Col id="lev">2</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1011</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">인원현황</Col>
|
||||
<Col id="Caption">인원현황</Col>
|
||||
<Col id="lev">2</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1012</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">인원현황 보고서</Col>
|
||||
<Col id="Caption">인원현황 보고서</Col>
|
||||
<Col id="lev">2</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1013</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">재고용대상자</Col>
|
||||
<Col id="Caption">재고용대상자</Col>
|
||||
<Col id="lev">2</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1014</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">연령별인원현황</Col>
|
||||
<Col id="Caption">연령별인원현황</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1015</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">인사기록카드 출력</Col>
|
||||
<Col id="Caption">인사기록카드 출력</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1016</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">기념일 조회</Col>
|
||||
<Col id="Caption">기념일 조회</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">0</Col>
|
||||
<Col id="idx">1017</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="lev">0</Col>
|
||||
<Col id="UserData">인사관리(개인)</Col>
|
||||
<Col id="Caption">인사관리(개인)</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1100</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">인적사항(개인)</Col>
|
||||
<Col id="Caption">인적사항(개인)</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1101</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">증명서인쇄</Col>
|
||||
<Col id="Caption">증명서인쇄</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1102</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">재고용신청서</Col>
|
||||
<Col id="Caption">재고용신청서</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1103</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">조직 및 사원조회</Col>
|
||||
<Col id="Caption">조직 및 사원조회</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1104</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">개인사진등록 신청</Col>
|
||||
<Col id="Caption">개인사진등록 신청</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">0</Col>
|
||||
<Col id="idx">1105</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">포상 등록 신청</Col>
|
||||
<Col id="Caption">포상 등록 신청</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1106</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">인사정보조회</Col>
|
||||
<Col id="Caption">인사정보조회</Col>
|
||||
<Col id="lev">0</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1200</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">인적사항(인사위)</Col>
|
||||
<Col id="Caption">인적사항(인사위)</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1201</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">발령관리</Col>
|
||||
<Col id="Caption">발령관리</Col>
|
||||
<Col id="lev">0</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1300</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">발령코드관리</Col>
|
||||
<Col id="Caption">발령코드관리</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1301</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">일괄발령 관리</Col>
|
||||
<Col id="Caption">일괄발령 관리</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1302</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">연례호봉발령 관리</Col>
|
||||
<Col id="Caption">연례호봉발령 관리</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1303</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">승진발령 관리</Col>
|
||||
<Col id="Caption">승진발령 관리</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1304</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">승진자 DM주소 출력</Col>
|
||||
<Col id="Caption">승진자 DM주소 출력</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="hotkey">Alt+O</Col>
|
||||
<Col id="idx">1305</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">특별호봉승급 관리</Col>
|
||||
<Col id="Caption">특별호봉승급 관리</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1306</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">재계약 대상자 관리</Col>
|
||||
<Col id="Caption">재계약 대상자 관리</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1307</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">발령 추천서 작성</Col>
|
||||
<Col id="Caption">발령 추천서 작성</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1308</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">발령 추천자 지정</Col>
|
||||
<Col id="Caption">발령 추천자 지정</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1309</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">발령 추천서 승인</Col>
|
||||
<Col id="Caption">발령 추천서 승인</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1310</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">재고용추천</Col>
|
||||
<Col id="Caption">재고용추천</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1311</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">개별발령 관리</Col>
|
||||
<Col id="Caption">개별발령 관리</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1312</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">자매사 발령 관리</Col>
|
||||
<Col id="Caption">자매사 발령 관리</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1313</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">발령조회(전사원)</Col>
|
||||
<Col id="Caption">발령조회(전사원)</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1314</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">사외파견</Col>
|
||||
<Col id="Caption">사외파견</Col>
|
||||
<Col id="lev">0</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1400</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">사외파견 인력관리</Col>
|
||||
<Col id="Caption">사외파견 인력관리</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1401</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">노조관리</Col>
|
||||
<Col id="Caption">노조관리</Col>
|
||||
<Col id="lev">0</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1500</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">인적사항(노조)</Col>
|
||||
<Col id="Caption">인적사항(노조)</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1501</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">노조원 관리</Col>
|
||||
<Col id="Caption">노조원 관리</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1502</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">노조원직책 관리</Col>
|
||||
<Col id="Caption">노조원직책 관리</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1503</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">노조비공제 현황</Col>
|
||||
<Col id="Caption">노조비공제 현황</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1504</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">노조원 현황</Col>
|
||||
<Col id="Caption">노조원 현황</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1505</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">사내공모</Col>
|
||||
<Col id="Caption">사내공모</Col>
|
||||
<Col id="lev">0</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1600</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">사내공모 공고 관리</Col>
|
||||
<Col id="Caption">사내공모 공고 관리</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1601</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">사내공모 신청</Col>
|
||||
<Col id="Caption">사내공모 신청</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1602</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">사내공모 관리</Col>
|
||||
<Col id="Caption">사내공모 관리</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1603</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">사내공모 이력 조회</Col>
|
||||
<Col id="Caption">사내공모 이력 조회</Col>
|
||||
<Col id="lev">1</Col>
|
||||
<Col id="enable">1</Col>
|
||||
<Col id="idx">1604</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="UserData">통계정보</Col>
|
||||
<Col id="Caption">통계정보</Col>
|
||||
<Col id="lev">0</Col>
|
||||
<Col id="idx">1700</Col>
|
||||
</Row>
|
||||
</Rows>
|
||||
</Dataset>
|
||||
</Objects>
|
||||
<Script type="xscript4.0"><![CDATA[function BtnAlertDefault_onclick(obj:Button, e:ClickEventInfo)
|
||||
{
|
||||
alert("디폴트내용", "Default", "default");
|
||||
}
|
||||
|
||||
function BtnAlertError_onclick(obj:Button, e:ClickEventInfo)
|
||||
{
|
||||
alert("Error내용", "Error", "error");
|
||||
}
|
||||
|
||||
function BtnAlertQuestion_onclick(obj:Button, e:ClickEventInfo)
|
||||
{
|
||||
alert("Question내용", "Question", "question");
|
||||
}
|
||||
|
||||
function BtnAlertWarning_onclick(obj:Button, e:ClickEventInfo)
|
||||
{
|
||||
alert("Warning내용", "Warning", "warning");
|
||||
}
|
||||
|
||||
function BtnAlertInformation_onclick(obj:Button, e:ClickEventInfo)
|
||||
{
|
||||
alert("Information내용", "Information", "information");
|
||||
}
|
||||
|
||||
function BtnConfirmDefault_onclick(obj:Button, e:ClickEventInfo)
|
||||
{
|
||||
confirm("디폴트내용", "Default", "default");
|
||||
}
|
||||
|
||||
function BtnConfirmError_onclick(obj:Button, e:ClickEventInfo)
|
||||
{
|
||||
confirm("Error내용", "Error", "error");
|
||||
}
|
||||
|
||||
function BtnConfirmQuestion_onclick(obj:Button, e:ClickEventInfo)
|
||||
{
|
||||
confirm("Question내용", "Question", "question");
|
||||
}
|
||||
|
||||
function BtnConfirmWarning_onclick(obj:Button, e:ClickEventInfo)
|
||||
{
|
||||
confirm("Warning내용", "Warning", "warning");
|
||||
}
|
||||
|
||||
function BtnConfirmInformation_onclick(obj:Button, e:ClickEventInfo)
|
||||
{
|
||||
confirm("Information내용", "Information", "information");
|
||||
}]]></Script>
|
||||
</Form>
|
||||
</FDL>
|
||||
15258
src/main/webapp/xui/ui/COMP_GUIDE_07.xfdl
Normal file
15258
src/main/webapp/xui/ui/COMP_GUIDE_07.xfdl
Normal file
File diff suppressed because it is too large
Load Diff
257
src/main/webapp/xui/ui/COMP_GUIDE_08.xfdl
Normal file
257
src/main/webapp/xui/ui/COMP_GUIDE_08.xfdl
Normal file
@@ -0,0 +1,257 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FDL version="1.4">
|
||||
<TypeDefinition url="..\default_typedef.xml"/>
|
||||
<Form id="COMP_GUIDE_06" classname="COMP_GUIDE_01" inheritanceid="" position="absolute 0 0 765 540" titletext="Grid #2">
|
||||
<Layouts>
|
||||
<Layout>
|
||||
<Static id="Static01" text="Component Name" position="absolute 0 0 130 26" style="background:#edeee6ff;border:1 solid #c6c6c5ff ;align:center middle;font:Tahoma,9,bold antialias;"/>
|
||||
<Static id="Static02" text="Component View" position="absolute 129 0 765 26" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static10" text="Grid" position="absolute 0 25 130 530" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static11" position="absolute 129 25 765 530" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<Grid id="GrdList" taborder="1" binddataset="DsDataset" scrollbars="alwaysvert" autoenter="select" useinputpanel="false" cellsizingtype="col" autofittype="col" position="absolute 148 83 735 168">
|
||||
<Formats>
|
||||
<Format id="default">
|
||||
<Columns>
|
||||
<Column size="140"/>
|
||||
<Column size="140"/>
|
||||
<Column size="140"/>
|
||||
<Column size="140"/>
|
||||
<Column size="140"/>
|
||||
<Column size="140"/>
|
||||
</Columns>
|
||||
<Rows>
|
||||
<Row size="22" band="head"/>
|
||||
<Row size="20"/>
|
||||
</Rows>
|
||||
<Band id="head">
|
||||
<Cell text="normal"/>
|
||||
<Cell col="1" colspan="2" displaytype="text" edittype="text" text="text"/>
|
||||
<Cell col="3" text="number"/>
|
||||
<Cell col="4" text="date"/>
|
||||
<Cell col="5" text="mask" editautoselect="true"/>
|
||||
</Band>
|
||||
<Band id="body">
|
||||
<Cell edittype="normal" text="bind:Column0" editautoselect="true"/>
|
||||
<Cell col="1" edittype="text" text="bind:Column1" editautoselect="true"/>
|
||||
<Cell col="2" edittype="textarea" text="bind:Column2"/>
|
||||
<Cell col="3" displaytype="number" edittype="normal" editfilter="number" style="align:right;" text="bind:Column3" editautoselect="true"/>
|
||||
<Cell col="4" displaytype="date" edittype="date" text="bind:Column4"/>
|
||||
<Cell col="5" edittype="mask" text="bind:Column5" mask="######-#######"/>
|
||||
</Band>
|
||||
</Format>
|
||||
</Formats>
|
||||
</Grid>
|
||||
<Grid id="GrdList2" taborder="2" binddataset="DsDataset" scrollbars="alwaysvert" autoenter="select" useinputpanel="false" autofittype="col" oncellclick="GrdList2_oncellclick" onexpanddown="GrdList2_onexpanddown" position="absolute 148 176 735 261">
|
||||
<Formats>
|
||||
<Format id="default">
|
||||
<Columns>
|
||||
<Column size="140"/>
|
||||
<Column size="140"/>
|
||||
<Column size="140"/>
|
||||
<Column size="140"/>
|
||||
<Column size="140"/>
|
||||
</Columns>
|
||||
<Rows>
|
||||
<Row size="22" band="head"/>
|
||||
<Row size="20"/>
|
||||
</Rows>
|
||||
<Band id="head">
|
||||
<Cell text="combo"/>
|
||||
<Cell col="1" text="button"/>
|
||||
<Cell col="2" text="checkbox"/>
|
||||
<Cell col="3" text="expand"/>
|
||||
<Cell col="4" text="image"/>
|
||||
</Band>
|
||||
<Band id="body">
|
||||
<Cell displaytype="combo" edittype="combo" text="bind:Column6" combodataset="DsCombo" combocodecol="cd" combodatacol="nm"/>
|
||||
<Cell col="1" displaytype="button" edittype="button" text="bind:Column7"/>
|
||||
<Cell col="2" displaytype="checkbox" edittype="checkbox" text="bind:Column8"/>
|
||||
<Cell col="3" edittype="expand" text="bind:Column9" expandshow="show" expandsize="20"/>
|
||||
<Cell col="4" displaytype="image" text="bind:Column10"/>
|
||||
</Band>
|
||||
</Format>
|
||||
</Formats>
|
||||
</Grid>
|
||||
<Grid id="GrdList4" taborder="3" binddataset="DsDataset" scrollbars="alwaysvert" autoenter="select" useinputpanel="false" autofittype="col" oncellclick="GrdList2_oncellclick" onexpanddown="GrdList2_onexpanddown" position="absolute 148 411 735 496" style="background:#ffffffff; ">
|
||||
<Formats>
|
||||
<Format id="default">
|
||||
<Columns>
|
||||
<Column size="140"/>
|
||||
<Column size="140"/>
|
||||
<Column size="140"/>
|
||||
<Column size="140"/>
|
||||
<Column size="140"/>
|
||||
</Columns>
|
||||
<Rows>
|
||||
<Row size="22" band="head"/>
|
||||
<Row size="20"/>
|
||||
</Rows>
|
||||
<Band id="head">
|
||||
<Cell text="combo"/>
|
||||
<Cell col="1" text="button"/>
|
||||
<Cell col="2" text="checkbox"/>
|
||||
<Cell col="3" text="expand"/>
|
||||
<Cell col="4" text="image"/>
|
||||
</Band>
|
||||
<Band id="body">
|
||||
<Cell displaytype="combo" edittype="combo" text="bind:Column6" combodataset="DsCombo" combocodecol="cd" combodatacol="nm" combodisplay="display"/>
|
||||
<Cell col="1" displaytype="button" edittype="button" text="bind:Column7"/>
|
||||
<Cell col="2" displaytype="checkbox" edittype="checkbox" text="bind:Column8"/>
|
||||
<Cell col="3" edittype="expand" text="bind:Column9" expandshow="show" expandsize="20"/>
|
||||
<Cell col="4" displaytype="image" text="bind:Column10"/>
|
||||
</Band>
|
||||
</Format>
|
||||
</Formats>
|
||||
</Grid>
|
||||
<Grid id="GrdList3" taborder="4" binddataset="DsDataset" scrollbars="alwaysvert" autoenter="select" useinputpanel="false" autofittype="col" position="absolute 148 316 735 401">
|
||||
<Formats>
|
||||
<Format id="default">
|
||||
<Columns>
|
||||
<Column size="140"/>
|
||||
<Column size="140"/>
|
||||
<Column size="140"/>
|
||||
<Column size="140"/>
|
||||
<Column size="140"/>
|
||||
<Column size="140"/>
|
||||
</Columns>
|
||||
<Rows>
|
||||
<Row size="22" band="head"/>
|
||||
<Row size="20"/>
|
||||
</Rows>
|
||||
<Band id="head">
|
||||
<Cell text="normal"/>
|
||||
<Cell col="1" displaytype="text" edittype="text" text="text"/>
|
||||
<Cell col="2" text="textarea"/>
|
||||
<Cell col="3" text="number"/>
|
||||
<Cell col="4" text="date"/>
|
||||
<Cell col="5" text="mask" editautoselect="true"/>
|
||||
</Band>
|
||||
<Band id="body">
|
||||
<Cell edittype="normal" text="bind:Column0" editautoselect="true"/>
|
||||
<Cell col="1" edittype="text" text="bind:Column1" editautoselect="true" editdisplay="display"/>
|
||||
<Cell col="2" edittype="textarea" text="bind:Column2" editdisplay="display"/>
|
||||
<Cell col="3" displaytype="number" edittype="normal" editfilter="number" style="align:right;" text="bind:Column3" editautoselect="true" editdisplay="display"/>
|
||||
<Cell col="4" displaytype="date" edittype="date" text="bind:Column4" calendardisplay="display"/>
|
||||
<Cell col="5" edittype="mask" text="bind:Column5" mask="######-#######" editdisplay="display"/>
|
||||
</Band>
|
||||
</Format>
|
||||
</Formats>
|
||||
</Grid>
|
||||
<Static id="Static27" text="Grid Cell Display Normal" class="sta_WF_TitleLev1" position="absolute 148 64 353 84"/>
|
||||
<Static id="Static00" text="Grid Cell Display True" class="sta_WF_TitleLev1" position="absolute 148 297 353 317"/>
|
||||
<Button id="btn_GCancel" taborder="5" text="초기화" onclick="f_GCancel" position="absolute 679 58 735 78"/>
|
||||
</Layout>
|
||||
</Layouts>
|
||||
<Objects>
|
||||
<Dataset enableevent="true" firefirstcount="0" firenextcount="0" id="DsDataset" preload="true" updatecontrol="true" useclientlayout="false">
|
||||
<ColumnInfo>
|
||||
<Column id="Column0" type="STRING" size="256"/>
|
||||
<Column id="Column1" type="STRING" size="256"/>
|
||||
<Column id="Column2" type="STRING" size="256"/>
|
||||
<Column id="Column3" type="INT" size="256"/>
|
||||
<Column id="Column4" type="STRING" size="256"/>
|
||||
<Column id="Column5" type="STRING" size="256"/>
|
||||
<Column id="Column6" type="STRING" size="256"/>
|
||||
<Column id="Column7" type="STRING" size="256"/>
|
||||
<Column id="Column8" type="STRING" size="256"/>
|
||||
<Column id="Column9" type="STRING" size="256"/>
|
||||
<Column id="Column10" type="STRING" size="256"/>
|
||||
<Column id="Column11" type="STRING" size="256"/>
|
||||
<Column id="Column12" type="STRING" size="256"/>
|
||||
</ColumnInfo>
|
||||
<Rows>
|
||||
<Row>
|
||||
<Col id="Column0">1234가나다라</Col>
|
||||
<Col id="Column1">가나다라</Col>
|
||||
<Col id="Column2"/>
|
||||
<Col id="Column3"/>
|
||||
<Col id="Column4"/>
|
||||
<Col id="Column5"/>
|
||||
<Col id="Column6">2</Col>
|
||||
<Col id="Column7">test</Col>
|
||||
<Col id="Column8"/>
|
||||
<Col id="Column9"/>
|
||||
<Col id="Column10"/>
|
||||
<Col id="Column11"/>
|
||||
<Col id="Column12"/>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="Column0"/>
|
||||
<Col id="Column1"/>
|
||||
<Col id="Column2"/>
|
||||
<Col id="Column3"/>
|
||||
<Col id="Column4"/>
|
||||
<Col id="Column5"/>
|
||||
<Col id="Column6"/>
|
||||
<Col id="Column7"/>
|
||||
<Col id="Column8"/>
|
||||
<Col id="Column9"/>
|
||||
<Col id="Column10"/>
|
||||
<Col id="Column11"/>
|
||||
<Col id="Column12"/>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="Column0"/>
|
||||
<Col id="Column1"/>
|
||||
<Col id="Column2"/>
|
||||
<Col id="Column3"/>
|
||||
<Col id="Column4"/>
|
||||
<Col id="Column5"/>
|
||||
<Col id="Column6"/>
|
||||
<Col id="Column7"/>
|
||||
<Col id="Column8"/>
|
||||
<Col id="Column9"/>
|
||||
<Col id="Column10"/>
|
||||
<Col id="Column11"/>
|
||||
<Col id="Column12"/>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="Column0"/>
|
||||
<Col id="Column1"/>
|
||||
<Col id="Column2"/>
|
||||
<Col id="Column3"/>
|
||||
<Col id="Column4"/>
|
||||
<Col id="Column5"/>
|
||||
<Col id="Column6"/>
|
||||
<Col id="Column7"/>
|
||||
<Col id="Column8"/>
|
||||
<Col id="Column9"/>
|
||||
<Col id="Column10"/>
|
||||
<Col id="Column11"/>
|
||||
<Col id="Column12"/>
|
||||
</Row>
|
||||
</Rows>
|
||||
</Dataset>
|
||||
<Dataset id="DsCombo" preload="true" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep">
|
||||
<ColumnInfo>
|
||||
<Column id="cd" type="STRING" size="256"/>
|
||||
<Column id="nm" type="STRING" size="256"/>
|
||||
</ColumnInfo>
|
||||
<Rows>
|
||||
<Row>
|
||||
<Col id="cd">1</Col>
|
||||
<Col id="nm">item 1</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="cd">2</Col>
|
||||
<Col id="nm">item 2</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="cd">3</Col>
|
||||
<Col id="nm">item 3</Col>
|
||||
</Row>
|
||||
</Rows>
|
||||
</Dataset>
|
||||
</Objects>
|
||||
<Script type="xscript4.0"><![CDATA[/************************************************************************************************
|
||||
* FORM 공통 FUNCTION 영역
|
||||
************************************************************************************************/
|
||||
|
||||
function f_GCancel()
|
||||
{
|
||||
// Dataset 초기화
|
||||
DsDataset.reset();
|
||||
}
|
||||
]]></Script>
|
||||
</Form>
|
||||
</FDL>
|
||||
57
src/main/webapp/xui/ui/COMP_GUIDE_09.xfdl
Normal file
57
src/main/webapp/xui/ui/COMP_GUIDE_09.xfdl
Normal file
@@ -0,0 +1,57 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FDL version="1.4">
|
||||
<TypeDefinition url="..\default_typedef.xml"/>
|
||||
<Form id="COMP_GUIDE_09" classname="COMP_GUIDE_09" inheritanceid="" position="absolute 0 0 765 540" titletext="Tab #1">
|
||||
<Layouts>
|
||||
<Layout>
|
||||
<Static id="Static02" text="Component View" position="absolute 129 0 765 26" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static01" text="Component Name" position="absolute 0 0 130 26" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static10" text="Tab" position="absolute 0 25 130 530" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static11" position="absolute 129 25 765 530" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<Tab id="Tab00" taborder="1" tabindex="0" scrollbars="autoboth" position="absolute 152 52 742 177">
|
||||
<Tabpages>
|
||||
<Tabpage id="tabpage1" text="탭페이지01"/>
|
||||
<Tabpage id="tabpage2" text="탭페이지02"/>
|
||||
<Tabpage id="tabpage3" text="탭페이지03"/>
|
||||
<Tabpage id="tabpage4" text="탭페이지04"/>
|
||||
<Tabpage id="tabpage5" text="탭페이지05"/>
|
||||
<Tabpage id="tabpage6" text="탭페이지06"/>
|
||||
<Tabpage id="tabpage7" text="탭페이지07"/>
|
||||
<Tabpage id="tabpage8" text="탭페이지08"/>
|
||||
</Tabpages>
|
||||
</Tab>
|
||||
<Tab id="Tab01" taborder="2" tabindex="0" scrollbars="autoboth" position="absolute 152 222 742 322" tabjustify="true">
|
||||
<Tabpages>
|
||||
<Tabpage id="tabpage1" text="탭페이지01"/>
|
||||
<Tabpage id="tabpage2" text="탭페이지02"/>
|
||||
<Tabpage id="tabpage3" text="탭페이지03"/>
|
||||
<Tabpage id="tabpage4" text="탭페이지04"/>
|
||||
</Tabpages>
|
||||
</Tab>
|
||||
<Static id="Static15" text="tabjustify = "<b v='true'>true</b>"" position="absolute 152 204 331 219" style="font:Tahoma,8;" usedecorate="true" class="sta_WF_Info_Orange"/>
|
||||
<Tab id="Tab02" taborder="3" tabindex="0" scrollbars="autoboth" position="absolute 152 370 377 495" multiline="true">
|
||||
<Tabpages>
|
||||
<Tabpage id="tabpage1" text="탭페이지01"/>
|
||||
<Tabpage id="tabpage2" text="탭페이지02"/>
|
||||
<Tabpage id="tabpage3" text="탭페이지03"/>
|
||||
<Tabpage id="tabpage4" text="탭페이지04"/>
|
||||
<Tabpage id="tabpage5" text="탭페이지05"/>
|
||||
<Tabpage id="tabpage6" text="탭페이지06"/>
|
||||
<Tabpage id="tabpage7" text="탭페이지07"/>
|
||||
<Tabpage id="tabpage8" text="탭페이지08"/>
|
||||
</Tabpages>
|
||||
</Tab>
|
||||
<Static id="Static00" text="multiline = "<b v='true'>true</b>"" usedecorate="true" class="sta_WF_Info_Orange" position="absolute 152 352 331 367" style="font:Tahoma,8; "/>
|
||||
<Tab id="Tab03" taborder="4" tabindex="0" scrollbars="autoboth" position="absolute 392 370 747 494" showextrabutton="true">
|
||||
<Tabpages>
|
||||
<Tabpage id="tabpage1" text="탭페이지01"/>
|
||||
<Tabpage id="tabpage2" text="탭페이지02"/>
|
||||
<Tabpage id="tabpage3" text="탭페이지03"/>
|
||||
<Tabpage id="tabpage4" text="탭페이지04"/>
|
||||
</Tabpages>
|
||||
</Tab>
|
||||
<Static id="Static03" text="showextrabutton = "<b v='true'>true</b>"" usedecorate="true" class="sta_WF_Info_Orange" position="absolute 392 352 571 367" style="font:Tahoma,8; "/>
|
||||
</Layout>
|
||||
</Layouts>
|
||||
</Form>
|
||||
</FDL>
|
||||
46
src/main/webapp/xui/ui/COMP_GUIDE_10.xfdl
Normal file
46
src/main/webapp/xui/ui/COMP_GUIDE_10.xfdl
Normal file
@@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FDL version="1.4">
|
||||
<TypeDefinition url="..\default_typedef.xml"/>
|
||||
<Form id="COMP_GUIDE_09" classname="COMP_GUIDE_09" inheritanceid="" position="absolute 0 0 765 540" titletext="Tab #2">
|
||||
<Layouts>
|
||||
<Layout>
|
||||
<Static id="Static02" text="Component View" position="absolute 129 0 765 26" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static01" text="Component Name" position="absolute 0 0 130 26" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; "/>
|
||||
<Static id="Static10" text="Tab <b v='false'>Attribute Selector</b>" position="absolute 0 25 130 530" style="background:#edeee6ff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " usedecorate="true"/>
|
||||
<Static id="Static11" position="absolute 129 25 765 530" style="background:#ffffffff; border:1 solid #c6c6c5ff ; align:center middle; font:Tahoma,9,bold antialias; " text=""/>
|
||||
<Tab id="Tab01" taborder="2" tabindex="0" scrollbars="autoboth" position="absolute 152 181 742 261" tabposition="left">
|
||||
<Tabpages>
|
||||
<Tabpage id="tabpage1" text="탭페이지01"/>
|
||||
<Tabpage id="tabpage2" text="탭페이지02"/>
|
||||
<Tabpage id="tabpage3" text="탭페이지03"/>
|
||||
</Tabpages>
|
||||
</Tab>
|
||||
<Static id="Static15" text="tabposition = "<b v='true'>left</b>"" position="absolute 152 164 331 179" style="font:Tahoma,8;" usedecorate="true" class="sta_WF_Info_Orange"/>
|
||||
<Static id="Static00" text="tabposition = "<b v='true'>right</b>"" usedecorate="true" class="sta_WF_Info_Orange" position="absolute 152 282 331 297" style="font:Tahoma,8; "/>
|
||||
<Tab id="Tab00" taborder="3" tabindex="0" tabposition="right" scrollbars="autoboth" position="absolute 152 299 742 379">
|
||||
<Tabpages>
|
||||
<Tabpage id="tabpage1" text="탭페이지01"/>
|
||||
<Tabpage id="tabpage2" text="탭페이지02"/>
|
||||
<Tabpage id="tabpage3" text="탭페이지03"/>
|
||||
</Tabpages>
|
||||
</Tab>
|
||||
<Static id="Static03" text="tabposition = "<b v='true'>bottom</b>"" usedecorate="true" class="sta_WF_Info_Orange" position="absolute 152 405 331 420" style="font:Tahoma,8; "/>
|
||||
<Tab id="Tab02" taborder="4" tabindex="0" tabposition="bottom" scrollbars="autoboth" position="absolute 152 422 742 517">
|
||||
<Tabpages>
|
||||
<Tabpage id="tabpage1" text="탭페이지01"/>
|
||||
<Tabpage id="tabpage2" text="탭페이지02"/>
|
||||
<Tabpage id="tabpage3" text="탭페이지03"/>
|
||||
</Tabpages>
|
||||
</Tab>
|
||||
<Tab id="Tab03" taborder="5" tabindex="0" scrollbars="autoboth" position="absolute 152 54 742 134">
|
||||
<Tabpages>
|
||||
<Tabpage id="tabpage1" text="탭페이지01"/>
|
||||
<Tabpage id="tabpage2" text="탭페이지02"/>
|
||||
<Tabpage id="tabpage3" text="탭페이지03"/>
|
||||
</Tabpages>
|
||||
</Tab>
|
||||
<Static id="Static04" text="tabposition = "<b v='true'>top</b>"" usedecorate="true" class="sta_WF_Info_Orange" position="absolute 152 37 331 52" style="font:Tahoma,8; "/>
|
||||
</Layout>
|
||||
</Layouts>
|
||||
</Form>
|
||||
</FDL>
|
||||
491
src/main/webapp/xui/work/Pattern_01.xfdl
Normal file
491
src/main/webapp/xui/work/Pattern_01.xfdl
Normal file
@@ -0,0 +1,491 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FDL version="1.4">
|
||||
<TypeDefinition url="..\default_typedef.xml"/>
|
||||
<Form id="Work" classname="Work" inheritanceid="" position="absolute 0 0 765 540" titletext="Detail">
|
||||
<Layouts>
|
||||
<Layout>
|
||||
<Button id="btn_WF_crud" taborder="2" text="저장" class="btn_WF_crud" position="absolute 715 56 765 76" anchor="top right"/>
|
||||
<Static id="sta_WF_TitleLev1" text="기본정보" position="absolute 0 64 134 78" class="sta_WF_TitleLev1"/>
|
||||
<Static id="sta_WFDA_Label17" text="진행상태" class="sta_WFDA_Label" position="absolute 0 81 105 107"/>
|
||||
<Static id="sta_WFDA_Label18" class="sta_WFDA_Data" position="absolute 104 81 244 107" text=""/>
|
||||
<Static id="sta_WFDA_Label19" text="반송사유" class="sta_WFDA_Label" position="absolute 243 81 348 107"/>
|
||||
<Static id="sta_WFDA_Label20" class="sta_WFDA_Data" position="absolute 347 81 765 107" text="" anchor="left top right"/>
|
||||
<Button id="btn_WF_crud00" taborder="38" text="삭제" class="btn_WF_crud" position="absolute 663 56 713 76" anchor="top right"/>
|
||||
<Button id="btn_WF_crud01" taborder="41" text="추가" class="btn_WF_crud" position="absolute 611 56 661 76" anchor="top right"/>
|
||||
<Static id="sta_WF_SearchBox" class="sta_WF_SearchBox" position="absolute 0 0 765 40" text="" anchor="left top right"/>
|
||||
<Static id="sta_WFSA_LabelP" text="프로젝트코드/명 " class="sta_WFSA_LabelP" position="absolute 17 10 147 30" wordwrap="none"/>
|
||||
<Button id="btn_WFSA_Search" taborder="42" text="조회" class="btn_WFSA_Search" position="absolute 700 10 750 32" anchor="top right"/>
|
||||
<Button id="btn_WFSA_Search02" taborder="43" class="btn_WFSA_Search" position="absolute 195 10 215 30" style="image:URL('theme://images/ico_Search.png');"/>
|
||||
<Edit id="Edit00" taborder="44" class="input_point" position="absolute 130 10 193 30"/>
|
||||
<Edit id="Edit01" taborder="45" position="absolute 217 10 480 30"/>
|
||||
<Static id="sta_WFDA_Label29" text="프로젝트" class="sta_WFDA_Label" position="absolute 0 106 105 132"/>
|
||||
<Static id="sta_WFDA_Label30" class="sta_WFDA_Data" position="absolute 104 106 244 132" text=""/>
|
||||
<Static id="sta_WFDA_Label31" text="발주번호" class="sta_WFDA_Label" position="absolute 243 106 348 132"/>
|
||||
<Static id="sta_WFDA_Label32" class="sta_WFDA_Data" position="absolute 347 106 487 132" text=""/>
|
||||
<Static id="sta_WFDA_Label33" text="공종" wordwrap="none" class="sta_WFDA_LabelP" position="absolute 486 106 591 132"/>
|
||||
<Static id="sta_WFDA_Label34" class="sta_WFDA_Data" position="absolute 590 106 765 132" text="" anchor="left top right"/>
|
||||
<Edit id="Edit03" taborder="49" position="absolute 108 84 228 104" value="작성중" readonly="true"/>
|
||||
<Edit id="Edit04" taborder="50" position="absolute 351 84 746 104" readonly="true" value="내역 재검토중입니다."/>
|
||||
<Static id="sta_WFDA_Label00" text="하도급공사명" class="sta_WFDA_LabelP" position="absolute 0 131 105 157"/>
|
||||
<Static id="sta_WFDA_Label01" class="sta_WFDA_Data" position="absolute 104 131 244 157" text=""/>
|
||||
<Static id="sta_WFDA_Label02" text="도급금액" class="sta_WFDA_Label" position="absolute 243 131 348 157"/>
|
||||
<Static id="sta_WFDA_Label03" class="sta_WFDA_Data" position="absolute 347 131 487 157" text=""/>
|
||||
<Static id="sta_WFDA_Label04" text="도급지분율" wordwrap="none" class="sta_WFDA_Label" position="absolute 486 131 591 157"/>
|
||||
<Static id="sta_WFDA_Label05" class="sta_WFDA_Data" position="absolute 590 131 765 157" text="" anchor="left top right"/>
|
||||
<Static id="sta_WFDA_Label06" text="실행금액" class="sta_WFDA_Label" position="absolute 0 156 105 182"/>
|
||||
<Static id="sta_WFDA_Label07" class="sta_WFDA_Data" position="absolute 104 156 244 182" text=""/>
|
||||
<Static id="sta_WFDA_Label08" text="발주지분율" class="sta_WFDA_Label" position="absolute 243 156 348 182"/>
|
||||
<Static id="sta_WFDA_Label09" class="sta_WFDA_Data" position="absolute 347 156 487 182" text=""/>
|
||||
<Static id="sta_WFDA_Label10" text="발주구분" wordwrap="none" class="sta_WFDA_Label" position="absolute 486 156 591 182"/>
|
||||
<Static id="sta_WFDA_Label11" class="sta_WFDA_Data" position="absolute 590 156 765 182" text="" anchor="left top right"/>
|
||||
<Static id="sta_WF_TitleLev00" text="상세정보" class="sta_WF_TitleLev1" position="absolute 0 204 134 218"/>
|
||||
<Static id="sta_WFDA_Label12" text="하도급공사기간" class="sta_WFDA_LabelP" position="absolute 0 221 105 247"/>
|
||||
<Static id="sta_WFDA_Label13" class="sta_WFDA_Data" position="absolute 104 221 384 247" text=""/>
|
||||
<Static id="sta_WFDA_Label14" text="과세/비과세" class="sta_WFDA_LabelP" position="absolute 383 221 488 247"/>
|
||||
<Static id="sta_WFDA_Label15" class="sta_WFDA_Data" position="absolute 487 221 765 247" text="" anchor="left top right"/>
|
||||
<Static id="sta_WFDA_Label16" text="헌설실시" class="sta_WFDA_Label" position="absolute 0 246 105 272"/>
|
||||
<Static id="sta_WFDA_Label21" class="sta_WFDA_Data" position="absolute 104 246 384 272" text=""/>
|
||||
<Static id="sta_WFDA_Label22" text="헌설일시" class="sta_WFDA_LabelP" position="absolute 383 246 488 272"/>
|
||||
<Static id="sta_WFDA_Label23" class="sta_WFDA_Data" position="absolute 487 246 765 272" text="" anchor="left top right"/>
|
||||
<Static id="sta_WFDA_Label24" text="헌설방법" class="sta_WFDA_Label" position="absolute 0 271 105 297"/>
|
||||
<Static id="sta_WFDA_Label25" class="sta_WFDA_Data" position="absolute 104 271 384 297" text=""/>
|
||||
<Static id="sta_WFDA_Label26" text="헌설담당자" class="sta_WFDA_LabelP" position="absolute 383 271 488 297"/>
|
||||
<Static id="sta_WFDA_Label27" class="sta_WFDA_Data" position="absolute 487 271 765 297" text="" anchor="left top right"/>
|
||||
<Static id="sta_WFDA_Label28" text="헌설장소" class="sta_WFDA_LabelP" position="absolute 0 296 105 322"/>
|
||||
<Static id="sta_WFDA_Label35" class="sta_WFDA_Data" position="absolute 104 296 384 322" text=""/>
|
||||
<Static id="sta_WFDA_Label36" text="입찰담당자" class="sta_WFDA_LabelP" position="absolute 383 296 488 322"/>
|
||||
<Static id="sta_WFDA_Label37" class="sta_WFDA_Data" position="absolute 487 296 765 322" text="" anchor="left top right"/>
|
||||
<Static id="sta_WFDA_Label38" text="공사개요" class="sta_WFDA_Label" position="absolute 0 321 105 540" anchor="left top bottom"/>
|
||||
<Static id="sta_WFDA_Label39" class="sta_WFDA_Data" position="absolute 104 321 384 540" text="" anchor="left top bottom"/>
|
||||
<Static id="sta_WFDA_Label40" text="특기사항" class="sta_WFDA_Label" position="absolute 383 321 488 540" anchor="left top bottom"/>
|
||||
<Static id="sta_WFDA_Label41" class="sta_WFDA_Data" position="absolute 487 321 765 540" text="" anchor="all"/>
|
||||
<Calendar id="Calendar00" taborder="51" position="absolute 108 224 198 244" dateformat="yyyy-MM-dd" value="20110615" class="input_point"/>
|
||||
<Calendar id="Calendar01" taborder="52" value="20110615" text="2011-06-15" dateformat="yyyy-MM-dd" position="absolute 216 224 306 244" class="input_point"/>
|
||||
<Radio id="Radio00" taborder="53" position="absolute 108 249 248 269" innerdataset="@ds_radio_00" codecolumn="Column0" datacolumn="Column1" columncount="2"/>
|
||||
<Radio id="Radio01" taborder="54" columncount="2" innerdataset="@ds_radio_01" codecolumn="Column0" datacolumn="Column1" position="absolute 108 277 248 297" index="1" value="1"/>
|
||||
<Edit id="Edit02" taborder="55" position="absolute 108 299 368 319" class="input_point"/>
|
||||
<Edit id="Edit05" taborder="56" class="input_point" position="absolute 490 224 560 244"/>
|
||||
<Calendar id="Calendar02" taborder="57" value="20110615" text="2011-06-15" dateformat="yyyy-MM-dd" class="input_point" position="absolute 490 249 580 269"/>
|
||||
<Combo id="Combo00" taborder="58" text="24" position="absolute 584 249 624 269"/>
|
||||
<Combo id="Combo01" taborder="59" position="absolute 647 249 687 269" text="59"/>
|
||||
<Edit id="Edit06" taborder="60" class="input_point" position="absolute 490 274 580 294"/>
|
||||
<Edit id="Edit07" taborder="61" class="input_point" position="absolute 490 299 580 319"/>
|
||||
<Button id="btn_WFSA_Search00" taborder="62" class="btn_WFSA_Search" position="absolute 582 274 602 294" style="image:URL('theme://images/ico_Search.png'); "/>
|
||||
<Button id="btn_WFSA_Search01" taborder="63" class="btn_WFSA_Search" position="absolute 582 299 602 319" style="image:URL('theme://images/ico_Search.png'); "/>
|
||||
<TextArea id="TextArea00" taborder="64" position="absolute 108 324 368 537" anchor="left top bottom"/>
|
||||
<TextArea id="TextArea01" taborder="65" position="absolute 490 324 750 537" anchor="all"/>
|
||||
<Edit id="Edit08" taborder="66" position="absolute 108 109 228 129" readonly="true" value="테마프로젝트"/>
|
||||
<Edit id="Edit09" taborder="67" position="absolute 108 134 228 154" class="input_point"/>
|
||||
<MaskEdit id="MaskEdit01" taborder="70" position="absolute 351 134 441 154" readonly="true" value="1234567890" mask=","/>
|
||||
<MaskEdit id="MaskEdit02" taborder="71" position="absolute 351 159 401 179" readonly="true" value="59.8"/>
|
||||
<Edit id="Edit11" taborder="72" position="absolute 593 109 723 129" class="input_point"/>
|
||||
<MaskEdit id="MaskEdit03" taborder="75" value="1234567890" text="1,234,567,890" readonly="true" mask="," position="absolute 108 159 198 179"/>
|
||||
<Static id="Static00" text="원" position="absolute 442 134 457 154"/>
|
||||
<Static id="Static01" text="%" position="absolute 397 159 412 179"/>
|
||||
<Static id="Static02" text="원" position="absolute 196 159 211 179"/>
|
||||
<MaskEdit id="MaskEdit04" taborder="76" value="59.8" text="59.8" readonly="true" position="absolute 593 134 643 154"/>
|
||||
<Static id="Static03" text="%" position="absolute 639 134 654 154"/>
|
||||
<Edit id="Edit10" taborder="77" value="2011-05-01-25" text="테마프로젝트" readonly="true" position="absolute 351 109 471 129"/>
|
||||
<Combo id="Combo02" taborder="78" position="absolute 593 159 668 179" readonly="true" value="" index="-1" displaynulltext="본사"/>
|
||||
<Static id="Static04" text="시" position="absolute 626 249 641 269"/>
|
||||
<Static id="Static05" text="분" position="absolute 690 249 705 269"/>
|
||||
<Static id="Static06" text="~" position="absolute 202 224 217 244"/>
|
||||
</Layout>
|
||||
</Layouts>
|
||||
<Objects>
|
||||
<Dataset id="ds_grid" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
|
||||
<ColumnInfo>
|
||||
<Column id="Column0" type="STRING" size="256"/>
|
||||
<Column id="Column1" type="STRING" size="256"/>
|
||||
<Column id="Column2" type="STRING" size="256"/>
|
||||
<Column id="Column3" type="STRING" size="256"/>
|
||||
<Column id="Column4" type="STRING" size="256"/>
|
||||
<Column id="Column5" type="STRING" size="256"/>
|
||||
<Column id="Column6" type="STRING" size="256"/>
|
||||
<Column id="Column7" type="STRING" size="256"/>
|
||||
<Column id="Column8" type="STRING" size="256"/>
|
||||
<Column id="Column9" type="STRING" size="256"/>
|
||||
<Column id="Column10" type="STRING" size="256"/>
|
||||
<Column id="Column11" type="STRING" size="256"/>
|
||||
<Column id="Column12" type="STRING" size="256"/>
|
||||
<Column id="Column13" type="STRING" size="256"/>
|
||||
<Column id="Column14" type="STRING" size="256"/>
|
||||
<Column id="Column15" type="STRING" size="256"/>
|
||||
<Column id="Column16" type="STRING" size="256"/>
|
||||
<Column id="Column17" type="STRING" size="256"/>
|
||||
<Column id="Column18" type="STRING" size="256"/>
|
||||
</ColumnInfo>
|
||||
<Rows>
|
||||
<Row>
|
||||
<Col id="Column0">가나다라</Col>
|
||||
<Col id="Column1">가나다라</Col>
|
||||
<Col id="Column2">가나다라</Col>
|
||||
<Col id="Column3">가나다라</Col>
|
||||
<Col id="Column4">가나다라</Col>
|
||||
<Col id="Column5">가나다라</Col>
|
||||
<Col id="Column6">가나다라</Col>
|
||||
<Col id="Column7">가나다라</Col>
|
||||
<Col id="Column8">가나다라</Col>
|
||||
<Col id="Column9">가나다라</Col>
|
||||
<Col id="Column10">가나다라</Col>
|
||||
<Col id="Column11">가나다라</Col>
|
||||
<Col id="Column12">가나다라</Col>
|
||||
<Col id="Column13">가나다라</Col>
|
||||
<Col id="Column14">가나다라</Col>
|
||||
<Col id="Column15">가나다라</Col>
|
||||
<Col id="Column16">가나다라</Col>
|
||||
<Col id="Column17">가나다라</Col>
|
||||
<Col id="Column18">가나다라</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="Column9">가나다라</Col>
|
||||
<Col id="Column0">가나다라</Col>
|
||||
<Col id="Column1">가나다라</Col>
|
||||
<Col id="Column2">가나다라</Col>
|
||||
<Col id="Column3">가나다라</Col>
|
||||
<Col id="Column4">가나다라</Col>
|
||||
<Col id="Column5">가나다라</Col>
|
||||
<Col id="Column6">가나다라</Col>
|
||||
<Col id="Column7">가나다라</Col>
|
||||
<Col id="Column8">가나다라</Col>
|
||||
<Col id="Column18">가나다라</Col>
|
||||
<Col id="Column17">가나다라</Col>
|
||||
<Col id="Column16">가나다라</Col>
|
||||
<Col id="Column15">가나다라</Col>
|
||||
<Col id="Column14">가나다라</Col>
|
||||
<Col id="Column13">가나다라</Col>
|
||||
<Col id="Column12">가나다라</Col>
|
||||
<Col id="Column11">가나다라</Col>
|
||||
<Col id="Column10">가나다라</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="Column9">가나다라</Col>
|
||||
<Col id="Column10">가나다라</Col>
|
||||
<Col id="Column11">가나다라</Col>
|
||||
<Col id="Column12">가나다라</Col>
|
||||
<Col id="Column13">가나다라</Col>
|
||||
<Col id="Column14">가나다라</Col>
|
||||
<Col id="Column15">가나다라</Col>
|
||||
<Col id="Column16">가나다라</Col>
|
||||
<Col id="Column17">가나다라</Col>
|
||||
<Col id="Column18">가나다라</Col>
|
||||
<Col id="Column0">가나다라</Col>
|
||||
<Col id="Column1">가나다라</Col>
|
||||
<Col id="Column2">가나다라</Col>
|
||||
<Col id="Column3">가나다라</Col>
|
||||
<Col id="Column4">가나다라</Col>
|
||||
<Col id="Column5">가나다라</Col>
|
||||
<Col id="Column6">가나다라</Col>
|
||||
<Col id="Column7">가나다라</Col>
|
||||
<Col id="Column8">가나다라</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="Column18">가나다라</Col>
|
||||
<Col id="Column17">가나다라</Col>
|
||||
<Col id="Column16">가나다라</Col>
|
||||
<Col id="Column15">가나다라</Col>
|
||||
<Col id="Column14">가나다라</Col>
|
||||
<Col id="Column13">가나다라</Col>
|
||||
<Col id="Column12">가나다라</Col>
|
||||
<Col id="Column11">가나다라</Col>
|
||||
<Col id="Column10">가나다라</Col>
|
||||
<Col id="Column9">가나다라</Col>
|
||||
<Col id="Column8">가나다라</Col>
|
||||
<Col id="Column7">가나다라</Col>
|
||||
<Col id="Column6">가나다라</Col>
|
||||
<Col id="Column5">가나다라</Col>
|
||||
<Col id="Column4">가나다라</Col>
|
||||
<Col id="Column3">가나다라</Col>
|
||||
<Col id="Column2">가나다라</Col>
|
||||
<Col id="Column1">가나다라</Col>
|
||||
<Col id="Column0">가나다라</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="Column0">가나다라</Col>
|
||||
<Col id="Column1">가나다라</Col>
|
||||
<Col id="Column2">가나다라</Col>
|
||||
<Col id="Column3">가나다라</Col>
|
||||
<Col id="Column4">가나다라</Col>
|
||||
<Col id="Column5">가나다라</Col>
|
||||
<Col id="Column6">가나다라</Col>
|
||||
<Col id="Column7">가나다라</Col>
|
||||
<Col id="Column8">가나다라</Col>
|
||||
<Col id="Column9">가나다라</Col>
|
||||
<Col id="Column10">가나다라</Col>
|
||||
<Col id="Column11">가나다라</Col>
|
||||
<Col id="Column12">가나다라</Col>
|
||||
<Col id="Column13">가나다라</Col>
|
||||
<Col id="Column14">가나다라</Col>
|
||||
<Col id="Column15">가나다라</Col>
|
||||
<Col id="Column16">가나다라</Col>
|
||||
<Col id="Column17">가나다라</Col>
|
||||
<Col id="Column18">가나다라</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="Column0">가나다라</Col>
|
||||
<Col id="Column1">가나다라</Col>
|
||||
<Col id="Column2">가나다라</Col>
|
||||
<Col id="Column3">가나다라</Col>
|
||||
<Col id="Column4">가나다라</Col>
|
||||
<Col id="Column5">가나다라</Col>
|
||||
<Col id="Column6">가나다라</Col>
|
||||
<Col id="Column7">가나다라</Col>
|
||||
<Col id="Column8">가나다라</Col>
|
||||
<Col id="Column9">가나다라</Col>
|
||||
<Col id="Column10">가나다라</Col>
|
||||
<Col id="Column11">가나다라</Col>
|
||||
<Col id="Column12">가나다라</Col>
|
||||
<Col id="Column13">가나다라</Col>
|
||||
<Col id="Column14">가나다라</Col>
|
||||
<Col id="Column15">가나다라</Col>
|
||||
<Col id="Column16">가나다라</Col>
|
||||
<Col id="Column17">가나다라</Col>
|
||||
<Col id="Column18">가나다라</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="Column0">가나다라</Col>
|
||||
<Col id="Column1">가나다라</Col>
|
||||
<Col id="Column2">가나다라</Col>
|
||||
<Col id="Column3">가나다라</Col>
|
||||
<Col id="Column4">가나다라</Col>
|
||||
<Col id="Column5">가나다라</Col>
|
||||
<Col id="Column6">가나다라</Col>
|
||||
<Col id="Column7">가나다라</Col>
|
||||
<Col id="Column8">가나다라</Col>
|
||||
<Col id="Column9">가나다라</Col>
|
||||
<Col id="Column10">가나다라</Col>
|
||||
<Col id="Column11">가나다라</Col>
|
||||
<Col id="Column12">가나다라</Col>
|
||||
<Col id="Column13">가나다라</Col>
|
||||
<Col id="Column14">가나다라</Col>
|
||||
<Col id="Column15">가나다라</Col>
|
||||
<Col id="Column16">가나다라</Col>
|
||||
<Col id="Column17">가나다라</Col>
|
||||
<Col id="Column18">가나다라</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="Column0">가나다라</Col>
|
||||
<Col id="Column1">가나다라</Col>
|
||||
<Col id="Column2">가나다라</Col>
|
||||
<Col id="Column3">가나다라</Col>
|
||||
<Col id="Column4">가나다라</Col>
|
||||
<Col id="Column5">가나다라</Col>
|
||||
<Col id="Column6">가나다라</Col>
|
||||
<Col id="Column7">가나다라</Col>
|
||||
<Col id="Column8">가나다라</Col>
|
||||
<Col id="Column9">가나다라</Col>
|
||||
<Col id="Column10">가나다라</Col>
|
||||
<Col id="Column11">가나다라</Col>
|
||||
<Col id="Column12">가나다라</Col>
|
||||
<Col id="Column13">가나다라</Col>
|
||||
<Col id="Column14">가나다라</Col>
|
||||
<Col id="Column15">가나다라</Col>
|
||||
<Col id="Column16">가나다라</Col>
|
||||
<Col id="Column17">가나다라</Col>
|
||||
<Col id="Column18">가나다라</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="Column0">가나다라</Col>
|
||||
<Col id="Column1">가나다라</Col>
|
||||
<Col id="Column2">가나다라</Col>
|
||||
<Col id="Column3">가나다라</Col>
|
||||
<Col id="Column4">가나다라</Col>
|
||||
<Col id="Column5">가나다라</Col>
|
||||
<Col id="Column6">가나다라</Col>
|
||||
<Col id="Column7">가나다라</Col>
|
||||
<Col id="Column8">가나다라</Col>
|
||||
<Col id="Column9">가나다라</Col>
|
||||
<Col id="Column10">가나다라</Col>
|
||||
<Col id="Column11">가나다라</Col>
|
||||
<Col id="Column12">가나다라</Col>
|
||||
<Col id="Column13">가나다라</Col>
|
||||
<Col id="Column14">가나다라</Col>
|
||||
<Col id="Column15">가나다라</Col>
|
||||
<Col id="Column16">가나다라</Col>
|
||||
<Col id="Column17">가나다라</Col>
|
||||
<Col id="Column18">가나다라</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="Column0">가나다라</Col>
|
||||
<Col id="Column1">가나다라</Col>
|
||||
<Col id="Column2">가나다라</Col>
|
||||
<Col id="Column3">가나다라</Col>
|
||||
<Col id="Column4">가나다라</Col>
|
||||
<Col id="Column5">가나다라</Col>
|
||||
<Col id="Column6">가나다라</Col>
|
||||
<Col id="Column7">가나다라</Col>
|
||||
<Col id="Column8">가나다라</Col>
|
||||
<Col id="Column9">가나다라</Col>
|
||||
<Col id="Column10">가나다라</Col>
|
||||
<Col id="Column11">가나다라</Col>
|
||||
<Col id="Column12">가나다라</Col>
|
||||
<Col id="Column13">가나다라</Col>
|
||||
<Col id="Column14">가나다라</Col>
|
||||
<Col id="Column15">가나다라</Col>
|
||||
<Col id="Column16">가나다라</Col>
|
||||
<Col id="Column17">가나다라</Col>
|
||||
<Col id="Column18">가나다라</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="Column0">가나다라</Col>
|
||||
<Col id="Column1">가나다라</Col>
|
||||
<Col id="Column2">가나다라</Col>
|
||||
<Col id="Column3">가나다라</Col>
|
||||
<Col id="Column4">가나다라</Col>
|
||||
<Col id="Column5">가나다라</Col>
|
||||
<Col id="Column6">가나다라</Col>
|
||||
<Col id="Column7">가나다라</Col>
|
||||
<Col id="Column8">가나다라</Col>
|
||||
<Col id="Column9">가나다라</Col>
|
||||
<Col id="Column10">가나다라</Col>
|
||||
<Col id="Column11">가나다라</Col>
|
||||
<Col id="Column12">가나다라</Col>
|
||||
<Col id="Column13">가나다라</Col>
|
||||
<Col id="Column14">가나다라</Col>
|
||||
<Col id="Column15">가나다라</Col>
|
||||
<Col id="Column16">가나다라</Col>
|
||||
<Col id="Column17">가나다라</Col>
|
||||
<Col id="Column18">가나다라</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="Column0">가나다라</Col>
|
||||
<Col id="Column1">가나다라</Col>
|
||||
<Col id="Column2">가나다라</Col>
|
||||
<Col id="Column3">가나다라</Col>
|
||||
<Col id="Column4">가나다라</Col>
|
||||
<Col id="Column5">가나다라</Col>
|
||||
<Col id="Column6">가나다라</Col>
|
||||
<Col id="Column7">가나다라</Col>
|
||||
<Col id="Column8">가나다라</Col>
|
||||
<Col id="Column9">가나다라</Col>
|
||||
<Col id="Column10">가나다라</Col>
|
||||
<Col id="Column11">가나다라</Col>
|
||||
<Col id="Column12">가나다라</Col>
|
||||
<Col id="Column13">가나다라</Col>
|
||||
<Col id="Column14">가나다라</Col>
|
||||
<Col id="Column15">가나다라</Col>
|
||||
<Col id="Column16">가나다라</Col>
|
||||
<Col id="Column17">가나다라</Col>
|
||||
<Col id="Column18">가나다라</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="Column0">가나다라</Col>
|
||||
<Col id="Column1">가나다라</Col>
|
||||
<Col id="Column2">가나다라</Col>
|
||||
<Col id="Column3">가나다라</Col>
|
||||
<Col id="Column4">가나다라</Col>
|
||||
<Col id="Column5">가나다라</Col>
|
||||
<Col id="Column6">가나다라</Col>
|
||||
<Col id="Column7">가나다라</Col>
|
||||
<Col id="Column8">가나다라</Col>
|
||||
<Col id="Column9">가나다라</Col>
|
||||
<Col id="Column10">가나다라</Col>
|
||||
<Col id="Column11">가나다라</Col>
|
||||
<Col id="Column12">가나다라</Col>
|
||||
<Col id="Column13">가나다라</Col>
|
||||
<Col id="Column14">가나다라</Col>
|
||||
<Col id="Column15">가나다라</Col>
|
||||
<Col id="Column16">가나다라</Col>
|
||||
<Col id="Column17">가나다라</Col>
|
||||
<Col id="Column18">가나다라</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="Column0">가나다라</Col>
|
||||
<Col id="Column1">가나다라</Col>
|
||||
<Col id="Column2">가나다라</Col>
|
||||
<Col id="Column3">가나다라</Col>
|
||||
<Col id="Column4">가나다라</Col>
|
||||
<Col id="Column5">가나다라</Col>
|
||||
<Col id="Column6">가나다라</Col>
|
||||
<Col id="Column7">가나다라</Col>
|
||||
<Col id="Column8">가나다라</Col>
|
||||
<Col id="Column9">가나다라</Col>
|
||||
<Col id="Column10">가나다라</Col>
|
||||
<Col id="Column11">가나다라</Col>
|
||||
<Col id="Column12">가나다라</Col>
|
||||
<Col id="Column13">가나다라</Col>
|
||||
<Col id="Column14">가나다라</Col>
|
||||
<Col id="Column15">가나다라</Col>
|
||||
<Col id="Column16">가나다라</Col>
|
||||
<Col id="Column17">가나다라</Col>
|
||||
<Col id="Column18">가나다라</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="Column0">가나다라</Col>
|
||||
<Col id="Column1">가나다라</Col>
|
||||
<Col id="Column2">가나다라</Col>
|
||||
<Col id="Column3">가나다라</Col>
|
||||
<Col id="Column4">가나다라</Col>
|
||||
<Col id="Column5">가나다라</Col>
|
||||
<Col id="Column6">가나다라</Col>
|
||||
<Col id="Column7">가나다라</Col>
|
||||
<Col id="Column8">가나다라</Col>
|
||||
<Col id="Column9">가나다라</Col>
|
||||
<Col id="Column10">가나다라</Col>
|
||||
<Col id="Column11">가나다라</Col>
|
||||
<Col id="Column12">가나다라</Col>
|
||||
<Col id="Column13">가나다라</Col>
|
||||
<Col id="Column14">가나다라</Col>
|
||||
<Col id="Column15">가나다라</Col>
|
||||
<Col id="Column16">가나다라</Col>
|
||||
<Col id="Column17">가나다라</Col>
|
||||
<Col id="Column18">가나다라</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="Column0">가나다라</Col>
|
||||
<Col id="Column1">가나다라</Col>
|
||||
<Col id="Column2">가나다라</Col>
|
||||
<Col id="Column3">가나다라</Col>
|
||||
<Col id="Column4">가나다라</Col>
|
||||
<Col id="Column5">가나다라</Col>
|
||||
<Col id="Column6">가나다라</Col>
|
||||
<Col id="Column7">가나다라</Col>
|
||||
<Col id="Column8">가나다라</Col>
|
||||
<Col id="Column9">가나다라</Col>
|
||||
<Col id="Column10">가나다라</Col>
|
||||
<Col id="Column11">가나다라</Col>
|
||||
<Col id="Column12">가나다라</Col>
|
||||
<Col id="Column13">가나다라</Col>
|
||||
<Col id="Column14">가나다라</Col>
|
||||
<Col id="Column15">가나다라</Col>
|
||||
<Col id="Column16">가나다라</Col>
|
||||
<Col id="Column17">가나다라</Col>
|
||||
<Col id="Column18">가나다라</Col>
|
||||
</Row>
|
||||
</Rows>
|
||||
</Dataset>
|
||||
<Dataset id="ds_radio_01" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
|
||||
<ColumnInfo>
|
||||
<Column id="Column0" type="STRING" size="256"/>
|
||||
<Column id="Column1" type="STRING" size="256"/>
|
||||
</ColumnInfo>
|
||||
<Rows>
|
||||
<Row>
|
||||
<Col id="Column0">0</Col>
|
||||
<Col id="Column1">온라인</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="Column0">1</Col>
|
||||
<Col id="Column1">오프라인</Col>
|
||||
</Row>
|
||||
</Rows>
|
||||
</Dataset>
|
||||
<Dataset id="ds_radio_00" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
|
||||
<ColumnInfo>
|
||||
<Column id="Column0" type="STRING" size="256"/>
|
||||
<Column id="Column1" type="STRING" size="256"/>
|
||||
</ColumnInfo>
|
||||
<Rows>
|
||||
<Row>
|
||||
<Col id="Column0">0</Col>
|
||||
<Col id="Column1">예</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="Column0">1</Col>
|
||||
<Col id="Column1">아니오</Col>
|
||||
</Row>
|
||||
</Rows>
|
||||
</Dataset>
|
||||
</Objects>
|
||||
</Form>
|
||||
</FDL>
|
||||
108
src/main/webapp/xui/work/Pattern_02.xfdl
Normal file
108
src/main/webapp/xui/work/Pattern_02.xfdl
Normal file
@@ -0,0 +1,108 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FDL version="1.4">
|
||||
<TypeDefinition url="..\default_typedef.xml"/>
|
||||
<Form id="Work" classname="Work" inheritanceid="" position="absolute 0 0 765 540" titletext="MultiDetail">
|
||||
<Layouts>
|
||||
<Layout>
|
||||
<Static id="sta_WF_SearchBox" position="absolute 0 -1 765 40" class="sta_WF_SearchBox" text="" anchor="left top right"/>
|
||||
<Static id="sta_WFSA_LabelP" text="사번/성명" position="absolute 17 9 97 29" class="sta_WFSA_LabelP"/>
|
||||
<Static id="sta_WFSA_PointLabel00" text="조직 :" class="sta_WFSA_Label" position="absolute 320 9 365 29"/>
|
||||
<Static id="sta_WFSA_PointLabel01" text="직위 :" class="sta_WFSA_Label" position="absolute 494 9 534 29"/>
|
||||
<Button id="btn_WFSA_Search" taborder="1" text="조회" position="absolute 700 10 750 32" class="btn_WFSA_Search" anchor="top right"/>
|
||||
<Grid id="Grid00" taborder="4" useinputpanel="false" position="absolute 0 81 765 540" binddataset="ds_grid" formats="<Formats> <Format id="default"> <Columns> <Col size="80"/> <Col size="80"/> <Col size="80"/> <Col size="80"/> <Col size="80"/> <Col size="80"/> <Col size="80"/> <Col size="80"/> <Col size="80"/> <Col size="80"/> </Columns> <Rows> <Row band="head" size="24"/> <Row band="body" size="24"/> </Rows> <Band id="head"> <Cell col="0" disptype="normal" text="Column0"/> <Cell col="1" disptype="normal" text="Column1"/> <Cell col="2" disptype="normal" text="Column2"/> <Cell col="3" disptype="normal" text="Column3"/> <Cell col="4" disptype="normal" text="Column4"/> <Cell col="5" disptype="normal" text="Column5"/> <Cell col="6" disptype="normal" text="Column6"/> <Cell col="7" disptype="normal" text="Column7"/> <Cell col="8" disptype="normal" text="Column8"/> <Cell col="9" disptype="normal" text="Column9"/> </Band> <Band id="body"> <Cell col="0" disptype="normal" text="bind:Column0"/> <Cell col="1" disptype="normal" text="bind:Column1"/> <Cell col="2" disptype="normal" text="bind:Column2"/> <Cell col="3" disptype="normal" text="bind:Column3"/> <Cell col="4" disptype="normal" text="bind:Column4"/> <Cell col="5" disptype="normal" text="bind:Column5"/> <Cell col="6" disptype="normal" text="bind:Column6"/> <Cell col="7" disptype="normal" text="bind:Column7"/> <Cell col="8" disptype="normal" text="bind:Column8"/> <Cell col="9" disptype="normal" text="bind:Column9"/> </Band> </Format> </Formats> " autofittype="none" anchor="all">
|
||||
<Formats>
|
||||
<Format id="default">
|
||||
<Columns>
|
||||
<Column size="70"/>
|
||||
<Column size="80"/>
|
||||
<Column size="80"/>
|
||||
<Column size="140"/>
|
||||
<Column size="80"/>
|
||||
<Column size="80"/>
|
||||
<Column size="80"/>
|
||||
<Column size="100"/>
|
||||
<Column size="80"/>
|
||||
</Columns>
|
||||
<Rows>
|
||||
<Row size="22" band="head"/>
|
||||
<Row size="20"/>
|
||||
</Rows>
|
||||
<Band id="head">
|
||||
<Cell text="진행상태"/>
|
||||
<Cell col="1" text="공사구분"/>
|
||||
<Cell col="2" text="발주번호"/>
|
||||
<Cell col="3" text="하도급명"/>
|
||||
<Cell col="4" text="공사기간"/>
|
||||
<Cell col="5" text="실행금액"/>
|
||||
<Cell col="6" text="요청자"/>
|
||||
<Cell col="7" text="요청일"/>
|
||||
<Cell col="8" text="구분"/>
|
||||
</Band>
|
||||
<Band id="body">
|
||||
<Cell text="bind:Column0"/>
|
||||
<Cell col="1" text="bind:Column1"/>
|
||||
<Cell col="2" text="bind:Column2"/>
|
||||
<Cell col="3" text="bind:Column3"/>
|
||||
<Cell col="4" text="bind:Column4"/>
|
||||
<Cell col="5" text="bind:Column5"/>
|
||||
<Cell col="6" text="bind:Column6"/>
|
||||
<Cell col="7" text="bind:Column7"/>
|
||||
<Cell col="8" text="bind:Column8"/>
|
||||
</Band>
|
||||
</Format>
|
||||
</Formats>
|
||||
</Grid>
|
||||
<Button id="btn_WFSA_Search02" taborder="5" class="btn_WFSA_Search" position="absolute 156 9 176 29" style="image:URL('theme://images/ico_Search.png');"/>
|
||||
<Static id="sta_WF_TitleLev1" text="타이틀" position="absolute 0 59 134 73" class="sta_WF_TitleLev1"/>
|
||||
<Edit id="Edit00" taborder="6" position="absolute 91 9 154 29" class="input_point"/>
|
||||
<Edit id="Edit01" taborder="10" position="absolute 178 9 281 29" enable="false"/>
|
||||
<Edit id="Edit02" taborder="11" position="absolute 354 9 472 29" readonly="true" value="컨설팅지원그룹"/>
|
||||
<Edit id="Edit03" taborder="12" value="과장" text="컨설팅지원그룹" readonly="true" position="absolute 530 9 638 29"/>
|
||||
<Button id="btn_WF_crud" taborder="13" text="저장" class="btn_WF_crud" position="absolute 714 56 764 76" anchor="top right"/>
|
||||
<Button id="btn_WF_crud00" taborder="14" text="삭제" class="btn_WF_crud" position="absolute 662 56 712 76" anchor="top right"/>
|
||||
<Button id="btn_WF_crud01" taborder="15" text="추가" class="btn_WF_crud" position="absolute 610 56 660 76" anchor="top right"/>
|
||||
</Layout>
|
||||
</Layouts>
|
||||
<Objects>
|
||||
<Dataset id="ds_grid" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
|
||||
<ColumnInfo>
|
||||
<Column id="Column0" type="STRING" size="256"/>
|
||||
<Column id="Column1" type="STRING" size="256"/>
|
||||
<Column id="Column2" type="STRING" size="256"/>
|
||||
<Column id="Column3" type="STRING" size="256"/>
|
||||
<Column id="Column4" type="STRING" size="256"/>
|
||||
<Column id="Column5" type="STRING" size="256"/>
|
||||
<Column id="Column6" type="STRING" size="256"/>
|
||||
<Column id="Column7" type="STRING" size="256"/>
|
||||
<Column id="Column8" type="STRING" size="256"/>
|
||||
<Column id="Column9" type="STRING" size="256"/>
|
||||
</ColumnInfo>
|
||||
<Rows>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
</Rows>
|
||||
</Dataset>
|
||||
</Objects>
|
||||
</Form>
|
||||
</FDL>
|
||||
149
src/main/webapp/xui/work/Pattern_03.xfdl
Normal file
149
src/main/webapp/xui/work/Pattern_03.xfdl
Normal file
@@ -0,0 +1,149 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FDL version="1.4">
|
||||
<TypeDefinition url="..\default_typedef.xml"/>
|
||||
<Form id="Work" classname="Work" inheritanceid="" position="absolute 0 0 765 540" titletext="List/Detail">
|
||||
<Layouts>
|
||||
<Layout>
|
||||
<Static id="sta_WFDA_Label" text="조직코드" position="absolute 0 349 95 375" class="sta_WFDA_LabelP"/>
|
||||
<Static id="sta_WF_SearchBox" class="sta_WF_SearchBox" position="absolute 0 0 765 62" text="" anchor="left top right"/>
|
||||
<Static id="sta_WFSA_PointLabel" text="기준일자" class="sta_WFSA_LabelP" position="absolute 17 10 102 30"/>
|
||||
<Static id="sta_WFSA_PointLabel00" text="조직코드/명" class="sta_WFSA_Label" position="absolute 319 10 394 30"/>
|
||||
<Button id="btn_WFSA_Search" taborder="10" text="조회" class="btn_WFSA_Search" position="absolute 703 31 753 53" anchor="top right"/>
|
||||
<Static id="sta_WFSA_PointLabel02" text="사번/성명" class="sta_WFSA_LabelP" position="absolute 17 32 102 52"/>
|
||||
<Static id="sta_WFSA_PointLabel03" text="근무지역" class="sta_WFSA_Label" position="absolute 319 32 394 52"/>
|
||||
<Calendar id="Calendar00" taborder="11" value="20110620" text="2011-06-20" dateformat="yyyy-MM-dd" position="absolute 91 10 181 30" class="input_point"/>
|
||||
<Edit id="Edit00" taborder="13" position="absolute 394 10 459 30"/>
|
||||
<Button id="btn_WFSA_Search02" taborder="14" class="btn_WFSA_Search" position="absolute 460 10 480 30" style="image:URL('theme://images/ico_Search.png'); "/>
|
||||
<Edit id="Edit01" taborder="15" position="absolute 481 10 656 30"/>
|
||||
<Combo id="Combo01" taborder="16" position="absolute 394 32 544 52"/>
|
||||
<Static id="sta_WF_TitleLev00" text="타이틀" class="sta_WF_TitleLev1" position="absolute 0 80 134 94"/>
|
||||
<Button id="btn_WF_crud03" taborder="20" text="저장" class="btn_WF_crud" position="absolute 715 324 765 344" anchor="top right"/>
|
||||
<Button id="btn_WF_crud04" taborder="21" text="삭제" class="btn_WF_crud" position="absolute 663 324 713 344" anchor="top right"/>
|
||||
<Button id="btn_WF_crud05" taborder="22" text="수정" class="btn_WF_crud" position="absolute 611 324 661 344" anchor="top right"/>
|
||||
<Button id="btn_WF_crud06" taborder="23" text="추가" class="btn_WF_crud" position="absolute 559 324 609 344" anchor="top right"/>
|
||||
<Static id="sta_WFDA_Label05" class="sta_WFDA_Data" position="absolute 94 349 239 375" text=""/>
|
||||
<Static id="sta_WFDA_Label00" text="한글명" class="sta_WFDA_LabelP" position="absolute 238 349 333 375"/>
|
||||
<Static id="sta_WFDA_Label02" text="순서/비과세" class="sta_WFDA_LabelP" position="absolute 0 399 95 425"/>
|
||||
<Static id="sta_WFDA_Label03" text="폐쇠일자" class="sta_WFDA_Label" position="absolute 0 424 95 450"/>
|
||||
<Static id="sta_WFDA_Label04" text="비고" class="sta_WFDA_Label" position="absolute 0 449 95 540" anchor="left top bottom"/>
|
||||
<Static id="sta_WFDA_Label01" class="sta_WFDA_Data" position="absolute 94 374 502 400" text=""/>
|
||||
<Static id="sta_WFDA_Label06" text="유효기간" class="sta_WFDA_LabelP" position="absolute 0 374 95 400"/>
|
||||
<Edit id="Edit02" taborder="24" position="absolute 98 352 173 372" class="input_point"/>
|
||||
<Calendar id="Calendar01" taborder="25" value="20110620" text="2011-06-20" dateformat="yyyy-MM-dd" position="absolute 98 377 188 397" class="input_point"/>
|
||||
<Calendar id="Calendar02" taborder="26" value="20110620" text="2011-06-20" dateformat="yyyy-MM-dd" position="absolute 201 377 291 397" class="input_point"/>
|
||||
<Static id="sta_WFDA_Label07" class="sta_WFDA_Data" position="absolute 332 349 502 375" text=""/>
|
||||
<Static id="sta_WFDA_Label08" class="sta_WFDA_Data" position="absolute 595 349 765 375" text="" anchor="left top right"/>
|
||||
<Static id="sta_WFDA_Label09" text="영문명" class="sta_WFDA_Label" position="absolute 501 349 596 375"/>
|
||||
<Edit id="Edit03" taborder="27" class="input_point" position="absolute 336 352 491 372"/>
|
||||
<Edit id="Edit04" taborder="28" position="absolute 599 352 754 372"/>
|
||||
<Static id="sta_WFDA_Label10" text="근무지역" class="sta_WFDA_LabelP" position="absolute 501 374 596 400"/>
|
||||
<Static id="sta_WFDA_Label11" class="sta_WFDA_Data" position="absolute 595 374 765 400" text="" anchor="left top right"/>
|
||||
<Combo id="Combo03" taborder="29" position="absolute 599 377 754 397"/>
|
||||
<Static id="sta_WFDA_Label12" class="sta_WFDA_Data" position="absolute 94 399 239 425" text=""/>
|
||||
<Static id="sta_WFDA_Label13" text="신설일자" class="sta_WFDA_Label" position="absolute 238 399 333 425"/>
|
||||
<Static id="sta_WFDA_Label14" class="sta_WFDA_Data" position="absolute 332 399 502 425" text=""/>
|
||||
<Static id="sta_WFDA_Label15" text="신설사유" class="sta_WFDA_Label" position="absolute 501 399 596 425"/>
|
||||
<Static id="sta_WFDA_Label16" class="sta_WFDA_Data" position="absolute 595 399 765 425" text="" anchor="left top right"/>
|
||||
<Static id="sta_WFDA_Label17" class="sta_WFDA_Data" position="absolute 94 424 239 450" text=""/>
|
||||
<Static id="sta_WFDA_Label18" text="한글명" class="sta_WFDA_Label" position="absolute 238 424 333 450"/>
|
||||
<Static id="sta_WFDA_Label19" class="sta_WFDA_Data" position="absolute 332 424 765 450" text="" anchor="left top right"/>
|
||||
<Static id="sta_WFDA_Label22" class="sta_WFDA_Data" position="absolute 94 449 765 540" text="" anchor="all"/>
|
||||
<Edit id="Edit05" taborder="30" class="input_point" position="absolute 98 402 163 422"/>
|
||||
<CheckBox id="CheckBox00" taborder="31" position="absolute 180 402 235 422"/>
|
||||
<Combo id="Combo04" taborder="32" position="absolute 599 402 754 422"/>
|
||||
<Calendar id="Calendar03" taborder="33" value="20110620" text="2011-06-20" dateformat="yyyy-MM-dd" position="absolute 336 402 426 422"/>
|
||||
<Calendar id="Calendar04" taborder="34" value="20110620" text="2011-06-20" dateformat="yyyy-MM-dd" position="absolute 98 427 188 447"/>
|
||||
<Edit id="Edit06" taborder="35" position="absolute 336 427 754 447"/>
|
||||
<TextArea id="TextArea00" taborder="36" position="absolute 98 452 754 537" anchor="all"/>
|
||||
<Button id="Button00" taborder="37" text="엑셀다운로드" position="absolute 670 77 765 97" anchor="top right"/>
|
||||
<Edit id="Edit07" taborder="38" class="input_point" position="absolute 91 32 154 52"/>
|
||||
<Button id="btn_WFSA_Search00" taborder="39" class="btn_WFSA_Search" position="absolute 156 32 176 52" style="image:URL('theme://images/ico_Search.png'); "/>
|
||||
<Edit id="Edit08" taborder="40" enable="false" position="absolute 178 32 281 52"/>
|
||||
<Grid id="Grid00" taborder="41" binddataset="ds_grid" useinputpanel="false" autofittype="col" position="absolute 0 102 765 307" anchor="left top right">
|
||||
<Formats>
|
||||
<Format id="default">
|
||||
<Columns>
|
||||
<Column size="70"/>
|
||||
<Column size="80"/>
|
||||
<Column size="80"/>
|
||||
<Column size="140"/>
|
||||
<Column size="80"/>
|
||||
<Column size="80"/>
|
||||
<Column size="80"/>
|
||||
<Column size="100"/>
|
||||
<Column size="80"/>
|
||||
</Columns>
|
||||
<Rows>
|
||||
<Row size="22" band="head"/>
|
||||
<Row size="20"/>
|
||||
</Rows>
|
||||
<Band id="head">
|
||||
<Cell text="진행상태"/>
|
||||
<Cell col="1" text="공사구분"/>
|
||||
<Cell col="2" text="발주번호"/>
|
||||
<Cell col="3" text="하도급명"/>
|
||||
<Cell col="4" text="공사기간"/>
|
||||
<Cell col="5" text="실행금액"/>
|
||||
<Cell col="6" text="요청자"/>
|
||||
<Cell col="7" text="요청일"/>
|
||||
<Cell col="8" text="구분"/>
|
||||
</Band>
|
||||
<Band id="body">
|
||||
<Cell text="bind:Column0"/>
|
||||
<Cell col="1" text="bind:Column1"/>
|
||||
<Cell col="2" text="bind:Column2"/>
|
||||
<Cell col="3" text="bind:Column3"/>
|
||||
<Cell col="4" text="bind:Column4"/>
|
||||
<Cell col="5" text="bind:Column5"/>
|
||||
<Cell col="6" text="bind:Column6"/>
|
||||
<Cell col="7" text="bind:Column7"/>
|
||||
<Cell col="8" text="bind:Column8"/>
|
||||
</Band>
|
||||
</Format>
|
||||
</Formats>
|
||||
</Grid>
|
||||
</Layout>
|
||||
</Layouts>
|
||||
<Objects>
|
||||
<Dataset id="ds_grid" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
|
||||
<ColumnInfo>
|
||||
<Column id="Column0" type="STRING" size="256"/>
|
||||
<Column id="Column1" type="STRING" size="256"/>
|
||||
<Column id="Column2" type="STRING" size="256"/>
|
||||
<Column id="Column3" type="STRING" size="256"/>
|
||||
<Column id="Column4" type="STRING" size="256"/>
|
||||
<Column id="Column5" type="STRING" size="256"/>
|
||||
<Column id="Column6" type="STRING" size="256"/>
|
||||
<Column id="Column7" type="STRING" size="256"/>
|
||||
<Column id="Column8" type="STRING" size="256"/>
|
||||
<Column id="Column9" type="STRING" size="256"/>
|
||||
</ColumnInfo>
|
||||
<Rows>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
</Rows>
|
||||
</Dataset>
|
||||
</Objects>
|
||||
</Form>
|
||||
</FDL>
|
||||
149
src/main/webapp/xui/work/Pattern_04.xfdl
Normal file
149
src/main/webapp/xui/work/Pattern_04.xfdl
Normal file
@@ -0,0 +1,149 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FDL version="1.4">
|
||||
<TypeDefinition url="..\default_typedef.xml"/>
|
||||
<Form id="Work" classname="Work" inheritanceid="" position="absolute 0 0 765 540" titletext="Master/Detail (1:n)">
|
||||
<Layouts>
|
||||
<Layout>
|
||||
<Static id="sta_WF_SearchBox" class="sta_WF_SearchBox" position="absolute 0 0 765 41" text="" anchor="left top right"/>
|
||||
<Static id="sta_WFSA_LabelP" text="사번/성명" class="sta_WFSA_LabelP" position="absolute 17 10 97 30"/>
|
||||
<Static id="sta_WFSA_PointLabel00" text="조직 :" class="sta_WFSA_Label" position="absolute 320 10 365 30"/>
|
||||
<Static id="sta_WFSA_PointLabel01" text="직위 :" class="sta_WFSA_Label" position="absolute 494 10 534 30"/>
|
||||
<Button id="btn_WFSA_Search" taborder="1" text="조회" class="btn_WFSA_Search" position="absolute 700 10 750 32" anchor="top right"/>
|
||||
<Button id="btn_WFSA_Search02" taborder="2" class="btn_WFSA_Search" position="absolute 156 10 176 30" style="image:URL('theme://images/ico_Search.png'); "/>
|
||||
<Edit id="Edit00" taborder="3" class="input_point" position="absolute 91 10 154 30"/>
|
||||
<Edit id="Edit01" taborder="4" enable="false" position="absolute 178 10 281 30"/>
|
||||
<Edit id="Edit02" taborder="5" value="컨설팅지원그룹" text="컨설팅지원그룹" readonly="true" position="absolute 354 10 472 30"/>
|
||||
<Edit id="Edit03" taborder="6" value="과장" text="과장" readonly="true" position="absolute 530 10 638 30"/>
|
||||
<Button id="btn_WF_crud" taborder="7" text="저장" class="btn_WF_crud" position="absolute 715 56 765 76" anchor="top right"/>
|
||||
<Static id="sta_WF_TitleLev1" text="급여정보" class="sta_WF_TitleLev1" position="absolute 0 59 134 73"/>
|
||||
<Static id="sta_WFDA_Label" text="시작일" class="sta_WFDA_LabelP" position="absolute 0 81 105 107"/>
|
||||
<Static id="sta_WFDA_Label05" class="sta_WFDA_Data" position="absolute 104 81 244 107" text=""/>
|
||||
<Calendar id="Calendar01" taborder="8" value="20110620" text="2011-06-20" dateformat="yyyy-MM-dd" class="input_point" position="absolute 108 84 198 104"/>
|
||||
<Static id="sta_WFDA_Label00" text="종료일" class="sta_WFDA_LabelP" position="absolute 243 81 348 107"/>
|
||||
<Static id="sta_WFDA_Label01" class="sta_WFDA_Data" position="absolute 347 81 487 107" text=""/>
|
||||
<Calendar id="Calendar02" taborder="9" value="20110620" text="2011-06-20" dateformat="yyyy-MM-dd" class="input_point" position="absolute 351 84 441 104"/>
|
||||
<Static id="sta_WFDA_Label02" text="급여지급여부" class="sta_WFDA_Label" position="absolute 486 81 616 107"/>
|
||||
<Static id="sta_WFDA_Label03" class="sta_WFDA_Data" position="absolute 615 81 765 107" text="" anchor="left top right"/>
|
||||
<Combo id="Combo03" taborder="10" position="absolute 619 84 704 104"/>
|
||||
<Static id="sta_WFDA_Label04" text="기본급" class="sta_WFDA_LabelP" position="absolute 0 106 105 132"/>
|
||||
<Static id="sta_WFDA_Label06" class="sta_WFDA_Data" position="absolute 104 106 244 132" text=""/>
|
||||
<Static id="sta_WFDA_Label07" text="기본급(%)" class="sta_WFDA_LabelP" position="absolute 243 106 348 132"/>
|
||||
<Static id="sta_WFDA_Label08" class="sta_WFDA_Data" position="absolute 347 106 487 132" text=""/>
|
||||
<Static id="sta_WFDA_Label09" text="상여금(%)" class="sta_WFDA_LabelP" position="absolute 486 106 616 132"/>
|
||||
<Static id="sta_WFDA_Label10" class="sta_WFDA_Data" position="absolute 615 106 765 132" text="" anchor="left top right"/>
|
||||
<MaskEdit id="MaskEdit00" taborder="11" class="input_point" position="absolute 108 109 228 129"/>
|
||||
<MaskEdit id="MaskEdit01" taborder="12" class="input_point" position="absolute 351 109 396 129"/>
|
||||
<MaskEdit id="MaskEdit02" taborder="13" class="input_point" position="absolute 619 109 664 129"/>
|
||||
<Static id="sta_WFDA_Label11" text="퇴직금기산일" class="sta_WFDA_Label" position="absolute 0 131 105 157"/>
|
||||
<Static id="sta_WFDA_Label12" class="sta_WFDA_Data" position="absolute 104 131 244 157" text=""/>
|
||||
<Static id="sta_WFDA_Label13" text="중간정산일" class="sta_WFDA_Label" position="absolute 243 131 348 157"/>
|
||||
<Static id="sta_WFDA_Label14" class="sta_WFDA_Data" position="absolute 347 131 487 157" text=""/>
|
||||
<Static id="sta_WFDA_Label15" text="중간정산횟수" class="sta_WFDA_Label" position="absolute 486 131 616 157"/>
|
||||
<Static id="sta_WFDA_Label16" class="sta_WFDA_Data" position="absolute 615 131 765 157" text="" anchor="left top right"/>
|
||||
<MaskEdit id="MaskEdit05" taborder="14" class="input_point" position="absolute 619 134 664 154"/>
|
||||
<Calendar id="Calendar03" taborder="15" value="20110620" text="2011-06-20" dateformat="yyyy-MM-dd" enable="false" position="absolute 108 134 198 154"/>
|
||||
<Calendar id="Calendar04" taborder="16" value="20110620" text="2011-06-20" readonly="true" dateformat="yyyy-MM-dd" position="absolute 351 134 441 154"/>
|
||||
<Static id="sta_WFDA_Label17" text="국민연금" class="sta_WFDA_Label" position="absolute 0 156 105 182"/>
|
||||
<Static id="sta_WFDA_Label18" class="sta_WFDA_Data" position="absolute 104 156 244 182" text=""/>
|
||||
<Static id="sta_WFDA_Label19" text="건강보험" class="sta_WFDA_Label" position="absolute 243 156 348 182"/>
|
||||
<Static id="sta_WFDA_Label20" class="sta_WFDA_Data" position="absolute 347 156 487 182" text=""/>
|
||||
<Static id="sta_WFDA_Label21" text="퇴직연금제도유형" wordwrap="none" class="sta_WFDA_Label" position="absolute 486 156 616 182"/>
|
||||
<Static id="sta_WFDA_Label22" class="sta_WFDA_Data" position="absolute 615 156 765 182" text="" anchor="left top right"/>
|
||||
<MaskEdit id="MaskEdit04" taborder="17" position="absolute 108 159 228 179"/>
|
||||
<MaskEdit id="MaskEdit03" taborder="18" position="absolute 351 159 471 179"/>
|
||||
<Combo id="Combo04" taborder="19" position="absolute 619 159 739 179"/>
|
||||
<Static id="sta_WFDA_Label23" text="거래은행" class="sta_WFDA_Label" position="absolute 0 181 105 207"/>
|
||||
<Static id="sta_WFDA_Label24" class="sta_WFDA_Data" position="absolute 104 181 244 207" text=""/>
|
||||
<Static id="sta_WFDA_Label25" text="계좌번호" class="sta_WFDA_Label" position="absolute 243 181 348 207"/>
|
||||
<Static id="sta_WFDA_Label26" class="sta_WFDA_Data" position="absolute 347 181 487 207" text=""/>
|
||||
<Static id="sta_WFDA_Label27" text="예금주" wordwrap="none" class="sta_WFDA_Label" position="absolute 486 181 616 207"/>
|
||||
<Static id="sta_WFDA_Label28" class="sta_WFDA_Data" position="absolute 615 181 765 207" text="" anchor="left top right"/>
|
||||
<MaskEdit id="MaskEdit07" taborder="20" position="absolute 351 184 471 204"/>
|
||||
<Combo id="Combo05" taborder="21" position="absolute 108 184 228 204"/>
|
||||
<Edit id="Edit04" taborder="22" position="absolute 619 184 739 204"/>
|
||||
<Button id="btn_WF_crud00" taborder="23" text="삭제" class="btn_WF_crud" position="absolute 663 56 713 76" anchor="top right"/>
|
||||
<Button id="btn_WF_crud01" taborder="24" text="추가" class="btn_WF_crud" position="absolute 611 56 661 76" anchor="top right"/>
|
||||
<Button id="btn_WF_crud03" taborder="26" text="저장" class="btn_WF_crudL2" position="absolute 715 222 765 242" anchor="top right"/>
|
||||
<Grid id="Grid00" taborder="27" binddataset="ds_grid" useinputpanel="false" position="absolute 0 247 765 540" autofittype="col" anchor="all">
|
||||
<Formats>
|
||||
<Format id="default">
|
||||
<Columns>
|
||||
<Column size="40"/>
|
||||
<Column size="35"/>
|
||||
<Column size="180"/>
|
||||
<Column size="100"/>
|
||||
<Column size="90"/>
|
||||
<Column size="80"/>
|
||||
<Column size="80"/>
|
||||
<Column size="80"/>
|
||||
<Column size="80"/>
|
||||
</Columns>
|
||||
<Rows>
|
||||
<Row size="22" band="head"/>
|
||||
<Row size="20"/>
|
||||
</Rows>
|
||||
<Band id="head">
|
||||
<Cell text="순서"/>
|
||||
<Cell col="1" displaytype="checkbox" edittype="checkbox"/>
|
||||
<Cell col="2" text="업체명"/>
|
||||
<Cell col="3" text="대표자"/>
|
||||
<Cell col="4" text="전화번호"/>
|
||||
<Cell col="5" text="등록유형"/>
|
||||
<Cell col="6" text="신용"/>
|
||||
<Cell col="7" text="현금"/>
|
||||
<Cell col="8" text="현장평가"/>
|
||||
</Band>
|
||||
<Band id="body">
|
||||
<Cell text="bind:Column0"/>
|
||||
<Cell col="1" displaytype="checkbox" edittype="checkbox" text="bind:Column1"/>
|
||||
<Cell col="2" text="bind:Column2"/>
|
||||
<Cell col="3" text="bind:Column3"/>
|
||||
<Cell col="4" text="bind:Column4"/>
|
||||
<Cell col="5" text="bind:Column5"/>
|
||||
<Cell col="6" text="bind:Column6"/>
|
||||
<Cell col="7" text="bind:Column7"/>
|
||||
<Cell col="8" text="bind:Column8"/>
|
||||
</Band>
|
||||
</Format>
|
||||
</Formats>
|
||||
</Grid>
|
||||
<Button id="btn_WF_crud04" taborder="28" text="삭제" class="btn_WF_crudL2" position="absolute 663 222 713 242" anchor="top right"/>
|
||||
<Button id="btn_WF_crud05" taborder="29" text="추가" class="btn_WF_crudL2" position="absolute 611 222 661 242" anchor="top right"/>
|
||||
</Layout>
|
||||
</Layouts>
|
||||
<Objects>
|
||||
<Dataset id="ds_grid" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
|
||||
<ColumnInfo>
|
||||
<Column id="Column0" type="STRING" size="256"/>
|
||||
<Column id="Column1" type="STRING" size="256"/>
|
||||
<Column id="Column2" type="STRING" size="256"/>
|
||||
<Column id="Column3" type="STRING" size="256"/>
|
||||
<Column id="Column4" type="STRING" size="256"/>
|
||||
<Column id="Column5" type="STRING" size="256"/>
|
||||
<Column id="Column6" type="STRING" size="256"/>
|
||||
<Column id="Column7" type="STRING" size="256"/>
|
||||
<Column id="Column8" type="STRING" size="256"/>
|
||||
<Column id="Column9" type="STRING" size="256"/>
|
||||
</ColumnInfo>
|
||||
<Rows>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
</Rows>
|
||||
</Dataset>
|
||||
</Objects>
|
||||
</Form>
|
||||
</FDL>
|
||||
176
src/main/webapp/xui/work/Pattern_05.xfdl
Normal file
176
src/main/webapp/xui/work/Pattern_05.xfdl
Normal file
File diff suppressed because one or more lines are too long
529
src/main/webapp/xui/work/Pattern_06.xfdl
Normal file
529
src/main/webapp/xui/work/Pattern_06.xfdl
Normal file
@@ -0,0 +1,529 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FDL version="1.4">
|
||||
<TypeDefinition url="..\default_typedef.xml"/>
|
||||
<Form id="Work" classname="Work" inheritanceid="" position="absolute 0 0 765 540" titletext="TAB">
|
||||
<Layouts>
|
||||
<Layout>
|
||||
<Static id="sta_WF_SearchBox" class="sta_WF_SearchBox" position="absolute 0 0 765 62" text="" anchor="left top right"/>
|
||||
<Static id="sta_WFSA_PointLabel" text="기준일자" class="sta_WFSA_LabelP" position="absolute 15 10 100 30"/>
|
||||
<Static id="sta_WFSA_PointLabel00" text="조직코드/명" class="sta_WFSA_Label" position="absolute 317 10 392 30"/>
|
||||
<Button id="btn_WFSA_Search" taborder="1" text="조회" class="btn_WFSA_Search" position="absolute 703 31 753 53" anchor="left right"/>
|
||||
<Static id="sta_WFSA_PointLabel02" text="사번/성명" class="sta_WFSA_LabelP" position="absolute 15 32 100 52"/>
|
||||
<Static id="sta_WFSA_PointLabel03" text="근무지역" class="sta_WFSA_Label" position="absolute 317 32 392 52"/>
|
||||
<Calendar id="Calendar00" taborder="2" value="20110620" text="2011-06-20" dateformat="yyyy-MM-dd" position="absolute 89 10 179 30"/>
|
||||
<Edit id="Edit00" taborder="3" position="absolute 392 10 457 30"/>
|
||||
<Button id="btn_WFSA_Search02" taborder="4" class="btn_WFSA_Search" position="absolute 458 10 478 30" style="image:URL('theme://images/ico_Search.png'); "/>
|
||||
<Edit id="Edit01" taborder="5" position="absolute 479 10 654 30"/>
|
||||
<Combo id="Combo01" taborder="6" position="absolute 392 32 542 52"/>
|
||||
<Edit id="Edit07" taborder="7" class="input_point" position="absolute 89 32 152 52"/>
|
||||
<Button id="btn_WFSA_Search00" taborder="8" class="btn_WFSA_Search" position="absolute 154 32 174 52" style="image:URL('theme://images/ico_Search.png'); "/>
|
||||
<Edit id="Edit08" taborder="9" enable="false" position="absolute 176 32 279 52"/>
|
||||
<Tab id="Tab00" taborder="10" tabindex="0" scrollbars="autoboth" position="absolute 0 79 765 540" anchor="all">
|
||||
<Tabpages>
|
||||
<Tabpage id="tabpage1" text="텝페이지01">
|
||||
<Layouts>
|
||||
<Layout>
|
||||
<Button id="btn_WF_crud" taborder="5" text="저장" class="btn_WF_crud" position="absolute 710 15 760 35" anchor="left right"/>
|
||||
<Button id="btn_WF_crud00" taborder="11" text="삭제" class="btn_WF_crud" position="absolute 658 15 708 35" anchor="left right"/>
|
||||
<Button id="btn_WF_crud01" taborder="12" text="수정" class="btn_WF_crud" position="absolute 606 15 656 35" anchor="left right"/>
|
||||
<Button id="btn_WF_crud02" taborder="13" text="추가" class="btn_WF_crud" position="absolute 554 15 604 35" anchor="left right"/>
|
||||
<Static id="sta_WF_TitleLev00" text="상세정보" class="sta_WF_TitleLev1" position="absolute 4 24 138 38"/>
|
||||
<Static id="sta_WFDA_Label12" text="하도급공사기간" class="sta_WFDA_LabelP" position="absolute 4 41 109 67"/>
|
||||
<Static id="sta_WFDA_Label13" class="sta_WFDA_Data" position="absolute 108 41 388 67" text=""/>
|
||||
<Static id="sta_WFDA_Label14" text="과세/비과세" class="sta_WFDA_LabelP" position="absolute 387 41 492 67"/>
|
||||
<Static id="sta_WFDA_Label15" class="sta_WFDA_Data" position="absolute 491 41 759 67" text="" anchor="left top right"/>
|
||||
<Static id="sta_WFDA_Label16" text="헌설실시" class="sta_WFDA_Label" position="absolute 4 66 109 92"/>
|
||||
<Static id="sta_WFDA_Label21" class="sta_WFDA_Data" position="absolute 108 66 388 92" text=""/>
|
||||
<Static id="sta_WFDA_Label22" text="헌설일시" class="sta_WFDA_LabelP" position="absolute 387 66 492 92"/>
|
||||
<Static id="sta_WFDA_Label23" class="sta_WFDA_Data" position="absolute 491 66 759 92" text="" anchor="left top right"/>
|
||||
<Static id="sta_WFDA_Label24" text="헌설방법" class="sta_WFDA_Label" position="absolute 4 91 109 117"/>
|
||||
<Static id="sta_WFDA_Label25" class="sta_WFDA_Data" position="absolute 108 91 388 117" text=""/>
|
||||
<Static id="sta_WFDA_Label26" text="헌설담당자" class="sta_WFDA_LabelP" position="absolute 387 91 492 117"/>
|
||||
<Static id="sta_WFDA_Label27" class="sta_WFDA_Data" position="absolute 491 91 759 117" text="" anchor="left top right"/>
|
||||
<Static id="sta_WFDA_Label28" text="헌설장소" class="sta_WFDA_LabelP" position="absolute 4 116 109 142"/>
|
||||
<Static id="sta_WFDA_Label35" class="sta_WFDA_Data" position="absolute 108 116 388 142" text=""/>
|
||||
<Static id="sta_WFDA_Label36" text="입찰담당자" class="sta_WFDA_LabelP" position="absolute 387 116 492 142"/>
|
||||
<Static id="sta_WFDA_Label37" class="sta_WFDA_Data" position="absolute 491 116 759 142" text="" anchor="left top right"/>
|
||||
<Static id="sta_WFDA_Label38" text="공사개요" class="sta_WFDA_Label" position="absolute 4 141 109 433" anchor="left top bottom"/>
|
||||
<Static id="sta_WFDA_Label39" class="sta_WFDA_Data" position="absolute 108 141 388 433" text="" anchor="left top bottom"/>
|
||||
<Static id="sta_WFDA_Label40" text="특기사항" class="sta_WFDA_Label" position="absolute 387 141 492 432" anchor="left top bottom"/>
|
||||
<Static id="sta_WFDA_Label41" class="sta_WFDA_Data" position="absolute 491 141 759 432" text="" anchor="all"/>
|
||||
<Calendar id="Calendar01" taborder="14" value="20110615" text="2011-06-15" dateformat="yyyy-MM-dd" class="input_point" position="absolute 112 44 202 64"/>
|
||||
<Calendar id="Calendar02" taborder="15" value="20110615" text="2011-06-15" dateformat="yyyy-MM-dd" class="input_point" position="absolute 220 44 310 64"/>
|
||||
<Radio id="Radio00" taborder="16" columncount="2" innerdataset="ds_radio_00" codecolumn="Column0" datacolumn="Column1" position="absolute 112 69 252 89"/>
|
||||
<Radio id="Radio01" taborder="17" columncount="2" index="1" innerdataset="ds_radio_01" codecolumn="Column0" datacolumn="Column1" value="1" position="absolute 112 97 252 117"/>
|
||||
<Edit id="Edit02" taborder="18" class="input_point" position="absolute 112 119 372 139"/>
|
||||
<Edit id="Edit05" taborder="19" class="input_point" position="absolute 494 44 564 64"/>
|
||||
<Calendar id="Calendar03" taborder="20" value="20110615" text="2011-06-15" dateformat="yyyy-MM-dd" class="input_point" position="absolute 494 69 584 89"/>
|
||||
<Combo id="Combo00" taborder="21" position="absolute 588 69 628 89"/>
|
||||
<Combo id="Combo02" taborder="22" position="absolute 651 69 691 89"/>
|
||||
<Edit id="Edit06" taborder="23" class="input_point" position="absolute 494 94 584 114"/>
|
||||
<Edit id="Edit03" taborder="24" class="input_point" position="absolute 494 119 584 139"/>
|
||||
<Button id="btn_WFSA_Search01" taborder="25" class="btn_WFSA_Search" position="absolute 586 94 606 114" style="image:URL('theme://images/ico_Search.png'); "/>
|
||||
<Button id="btn_WFSA_Search03" taborder="26" class="btn_WFSA_Search" position="absolute 586 119 606 139" style="image:URL('theme://images/ico_Search.png'); "/>
|
||||
<TextArea id="TextArea00" taborder="27" position="absolute 112 144 372 429" anchor="left top bottom"/>
|
||||
<TextArea id="TextArea01" taborder="28" position="absolute 494 144 754 428" anchor="all"/>
|
||||
<Static id="Static04" text="시" position="absolute 630 69 645 89"/>
|
||||
<Static id="Static05" text="분" position="absolute 694 69 709 89"/>
|
||||
<Static id="Static06" text="~" position="absolute 206 44 221 64"/>
|
||||
</Layout>
|
||||
</Layouts>
|
||||
</Tabpage>
|
||||
<Tabpage id="tabpage2" text="텝페이지02">
|
||||
<Layouts>
|
||||
<Layout>
|
||||
<Grid id="Grid00" taborder="1" binddataset="ds_grid" useinputpanel="false" position="absolute 5 41 759 420">
|
||||
<Formats>
|
||||
<Format id="default">
|
||||
<Columns>
|
||||
<Column size="80"/>
|
||||
<Column size="80"/>
|
||||
<Column size="80"/>
|
||||
<Column size="80"/>
|
||||
<Column size="80"/>
|
||||
<Column size="80"/>
|
||||
<Column size="80"/>
|
||||
<Column size="80"/>
|
||||
<Column size="80"/>
|
||||
<Column size="80"/>
|
||||
</Columns>
|
||||
<Rows>
|
||||
<Row size="24" band="head"/>
|
||||
<Row size="20"/>
|
||||
</Rows>
|
||||
<Band id="head">
|
||||
<Cell text="Column0"/>
|
||||
<Cell col="1" text="Column1"/>
|
||||
<Cell col="2" text="Column2"/>
|
||||
<Cell col="3" text="Column3"/>
|
||||
<Cell col="4" text="Column4"/>
|
||||
<Cell col="5" text="Column5"/>
|
||||
<Cell col="6" text="Column6"/>
|
||||
<Cell col="7" text="Column7"/>
|
||||
<Cell col="8" text="Column8"/>
|
||||
<Cell col="9" text="Column9"/>
|
||||
</Band>
|
||||
<Band id="body">
|
||||
<Cell text="bind:Column0"/>
|
||||
<Cell col="1" text="bind:Column1"/>
|
||||
<Cell col="2" text="bind:Column2"/>
|
||||
<Cell col="3" text="bind:Column3"/>
|
||||
<Cell col="4" text="bind:Column4"/>
|
||||
<Cell col="5" text="bind:Column5"/>
|
||||
<Cell col="6" text="bind:Column6"/>
|
||||
<Cell col="7" text="bind:Column7"/>
|
||||
<Cell col="8" text="bind:Column8"/>
|
||||
<Cell col="9" text="bind:Column9"/>
|
||||
</Band>
|
||||
</Format>
|
||||
</Formats>
|
||||
</Grid>
|
||||
<Button id="btn_WF_crud" taborder="2" text="저장" class="btn_WF_crud" position="absolute 710 16 760 36"/>
|
||||
<Button id="btn_WF_crud00" taborder="3" text="삭제" class="btn_WF_crud" position="absolute 658 16 708 36"/>
|
||||
<Button id="btn_WF_crud01" taborder="4" text="수정" class="btn_WF_crud" position="absolute 606 16 656 36"/>
|
||||
<Button id="btn_WF_crud02" taborder="5" text="추가" class="btn_WF_crud" position="absolute 554 16 604 36"/>
|
||||
</Layout>
|
||||
</Layouts>
|
||||
</Tabpage>
|
||||
<Tabpage id="tabpage3" text="텝페이지03"/>
|
||||
</Tabpages>
|
||||
</Tab>
|
||||
</Layout>
|
||||
</Layouts>
|
||||
<Objects>
|
||||
<Dataset id="ds_grid" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
|
||||
<ColumnInfo>
|
||||
<Column id="Column0" type="STRING" size="256"/>
|
||||
<Column id="Column1" type="STRING" size="256"/>
|
||||
<Column id="Column2" type="STRING" size="256"/>
|
||||
<Column id="Column3" type="STRING" size="256"/>
|
||||
<Column id="Column4" type="STRING" size="256"/>
|
||||
<Column id="Column5" type="STRING" size="256"/>
|
||||
<Column id="Column6" type="STRING" size="256"/>
|
||||
<Column id="Column7" type="STRING" size="256"/>
|
||||
<Column id="Column8" type="STRING" size="256"/>
|
||||
<Column id="Column9" type="STRING" size="256"/>
|
||||
<Column id="Column10" type="STRING" size="256"/>
|
||||
<Column id="Column11" type="STRING" size="256"/>
|
||||
<Column id="Column12" type="STRING" size="256"/>
|
||||
<Column id="Column13" type="STRING" size="256"/>
|
||||
<Column id="Column14" type="STRING" size="256"/>
|
||||
<Column id="Column15" type="STRING" size="256"/>
|
||||
<Column id="Column16" type="STRING" size="256"/>
|
||||
<Column id="Column17" type="STRING" size="256"/>
|
||||
<Column id="Column18" type="STRING" size="256"/>
|
||||
</ColumnInfo>
|
||||
<Rows>
|
||||
<Row>
|
||||
<Col id="Column0">가나다라</Col>
|
||||
<Col id="Column1">가나다라</Col>
|
||||
<Col id="Column2">가나다라</Col>
|
||||
<Col id="Column3">가나다라</Col>
|
||||
<Col id="Column4">가나다라</Col>
|
||||
<Col id="Column5">가나다라</Col>
|
||||
<Col id="Column6">가나다라</Col>
|
||||
<Col id="Column7">가나다라</Col>
|
||||
<Col id="Column8">가나다라</Col>
|
||||
<Col id="Column9">가나다라</Col>
|
||||
<Col id="Column10">가나다라</Col>
|
||||
<Col id="Column11">가나다라</Col>
|
||||
<Col id="Column12">가나다라</Col>
|
||||
<Col id="Column13">가나다라</Col>
|
||||
<Col id="Column14">가나다라</Col>
|
||||
<Col id="Column15">가나다라</Col>
|
||||
<Col id="Column16">가나다라</Col>
|
||||
<Col id="Column17">가나다라</Col>
|
||||
<Col id="Column18">가나다라</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="Column9">가나다라</Col>
|
||||
<Col id="Column0">가나다라</Col>
|
||||
<Col id="Column1">가나다라</Col>
|
||||
<Col id="Column2">가나다라</Col>
|
||||
<Col id="Column3">가나다라</Col>
|
||||
<Col id="Column4">가나다라</Col>
|
||||
<Col id="Column5">가나다라</Col>
|
||||
<Col id="Column6">가나다라</Col>
|
||||
<Col id="Column7">가나다라</Col>
|
||||
<Col id="Column8">가나다라</Col>
|
||||
<Col id="Column18">가나다라</Col>
|
||||
<Col id="Column17">가나다라</Col>
|
||||
<Col id="Column16">가나다라</Col>
|
||||
<Col id="Column15">가나다라</Col>
|
||||
<Col id="Column14">가나다라</Col>
|
||||
<Col id="Column13">가나다라</Col>
|
||||
<Col id="Column12">가나다라</Col>
|
||||
<Col id="Column11">가나다라</Col>
|
||||
<Col id="Column10">가나다라</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="Column9">가나다라</Col>
|
||||
<Col id="Column10">가나다라</Col>
|
||||
<Col id="Column11">가나다라</Col>
|
||||
<Col id="Column12">가나다라</Col>
|
||||
<Col id="Column13">가나다라</Col>
|
||||
<Col id="Column14">가나다라</Col>
|
||||
<Col id="Column15">가나다라</Col>
|
||||
<Col id="Column16">가나다라</Col>
|
||||
<Col id="Column17">가나다라</Col>
|
||||
<Col id="Column18">가나다라</Col>
|
||||
<Col id="Column0">가나다라</Col>
|
||||
<Col id="Column1">가나다라</Col>
|
||||
<Col id="Column2">가나다라</Col>
|
||||
<Col id="Column3">가나다라</Col>
|
||||
<Col id="Column4">가나다라</Col>
|
||||
<Col id="Column5">가나다라</Col>
|
||||
<Col id="Column6">가나다라</Col>
|
||||
<Col id="Column7">가나다라</Col>
|
||||
<Col id="Column8">가나다라</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="Column18">가나다라</Col>
|
||||
<Col id="Column17">가나다라</Col>
|
||||
<Col id="Column16">가나다라</Col>
|
||||
<Col id="Column15">가나다라</Col>
|
||||
<Col id="Column14">가나다라</Col>
|
||||
<Col id="Column13">가나다라</Col>
|
||||
<Col id="Column12">가나다라</Col>
|
||||
<Col id="Column11">가나다라</Col>
|
||||
<Col id="Column10">가나다라</Col>
|
||||
<Col id="Column9">가나다라</Col>
|
||||
<Col id="Column8">가나다라</Col>
|
||||
<Col id="Column7">가나다라</Col>
|
||||
<Col id="Column6">가나다라</Col>
|
||||
<Col id="Column5">가나다라</Col>
|
||||
<Col id="Column4">가나다라</Col>
|
||||
<Col id="Column3">가나다라</Col>
|
||||
<Col id="Column2">가나다라</Col>
|
||||
<Col id="Column1">가나다라</Col>
|
||||
<Col id="Column0">가나다라</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="Column0">가나다라</Col>
|
||||
<Col id="Column1">가나다라</Col>
|
||||
<Col id="Column2">가나다라</Col>
|
||||
<Col id="Column3">가나다라</Col>
|
||||
<Col id="Column4">가나다라</Col>
|
||||
<Col id="Column5">가나다라</Col>
|
||||
<Col id="Column6">가나다라</Col>
|
||||
<Col id="Column7">가나다라</Col>
|
||||
<Col id="Column8">가나다라</Col>
|
||||
<Col id="Column9">가나다라</Col>
|
||||
<Col id="Column10">가나다라</Col>
|
||||
<Col id="Column11">가나다라</Col>
|
||||
<Col id="Column12">가나다라</Col>
|
||||
<Col id="Column13">가나다라</Col>
|
||||
<Col id="Column14">가나다라</Col>
|
||||
<Col id="Column15">가나다라</Col>
|
||||
<Col id="Column16">가나다라</Col>
|
||||
<Col id="Column17">가나다라</Col>
|
||||
<Col id="Column18">가나다라</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="Column0">가나다라</Col>
|
||||
<Col id="Column1">가나다라</Col>
|
||||
<Col id="Column2">가나다라</Col>
|
||||
<Col id="Column3">가나다라</Col>
|
||||
<Col id="Column4">가나다라</Col>
|
||||
<Col id="Column5">가나다라</Col>
|
||||
<Col id="Column6">가나다라</Col>
|
||||
<Col id="Column7">가나다라</Col>
|
||||
<Col id="Column8">가나다라</Col>
|
||||
<Col id="Column9">가나다라</Col>
|
||||
<Col id="Column10">가나다라</Col>
|
||||
<Col id="Column11">가나다라</Col>
|
||||
<Col id="Column12">가나다라</Col>
|
||||
<Col id="Column13">가나다라</Col>
|
||||
<Col id="Column14">가나다라</Col>
|
||||
<Col id="Column15">가나다라</Col>
|
||||
<Col id="Column16">가나다라</Col>
|
||||
<Col id="Column17">가나다라</Col>
|
||||
<Col id="Column18">가나다라</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="Column0">가나다라</Col>
|
||||
<Col id="Column1">가나다라</Col>
|
||||
<Col id="Column2">가나다라</Col>
|
||||
<Col id="Column3">가나다라</Col>
|
||||
<Col id="Column4">가나다라</Col>
|
||||
<Col id="Column5">가나다라</Col>
|
||||
<Col id="Column6">가나다라</Col>
|
||||
<Col id="Column7">가나다라</Col>
|
||||
<Col id="Column8">가나다라</Col>
|
||||
<Col id="Column9">가나다라</Col>
|
||||
<Col id="Column10">가나다라</Col>
|
||||
<Col id="Column11">가나다라</Col>
|
||||
<Col id="Column12">가나다라</Col>
|
||||
<Col id="Column13">가나다라</Col>
|
||||
<Col id="Column14">가나다라</Col>
|
||||
<Col id="Column15">가나다라</Col>
|
||||
<Col id="Column16">가나다라</Col>
|
||||
<Col id="Column17">가나다라</Col>
|
||||
<Col id="Column18">가나다라</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="Column0">가나다라</Col>
|
||||
<Col id="Column1">가나다라</Col>
|
||||
<Col id="Column2">가나다라</Col>
|
||||
<Col id="Column3">가나다라</Col>
|
||||
<Col id="Column4">가나다라</Col>
|
||||
<Col id="Column5">가나다라</Col>
|
||||
<Col id="Column6">가나다라</Col>
|
||||
<Col id="Column7">가나다라</Col>
|
||||
<Col id="Column8">가나다라</Col>
|
||||
<Col id="Column9">가나다라</Col>
|
||||
<Col id="Column10">가나다라</Col>
|
||||
<Col id="Column11">가나다라</Col>
|
||||
<Col id="Column12">가나다라</Col>
|
||||
<Col id="Column13">가나다라</Col>
|
||||
<Col id="Column14">가나다라</Col>
|
||||
<Col id="Column15">가나다라</Col>
|
||||
<Col id="Column16">가나다라</Col>
|
||||
<Col id="Column17">가나다라</Col>
|
||||
<Col id="Column18">가나다라</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="Column0">가나다라</Col>
|
||||
<Col id="Column1">가나다라</Col>
|
||||
<Col id="Column2">가나다라</Col>
|
||||
<Col id="Column3">가나다라</Col>
|
||||
<Col id="Column4">가나다라</Col>
|
||||
<Col id="Column5">가나다라</Col>
|
||||
<Col id="Column6">가나다라</Col>
|
||||
<Col id="Column7">가나다라</Col>
|
||||
<Col id="Column8">가나다라</Col>
|
||||
<Col id="Column9">가나다라</Col>
|
||||
<Col id="Column10">가나다라</Col>
|
||||
<Col id="Column11">가나다라</Col>
|
||||
<Col id="Column12">가나다라</Col>
|
||||
<Col id="Column13">가나다라</Col>
|
||||
<Col id="Column14">가나다라</Col>
|
||||
<Col id="Column15">가나다라</Col>
|
||||
<Col id="Column16">가나다라</Col>
|
||||
<Col id="Column17">가나다라</Col>
|
||||
<Col id="Column18">가나다라</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="Column0">가나다라</Col>
|
||||
<Col id="Column1">가나다라</Col>
|
||||
<Col id="Column2">가나다라</Col>
|
||||
<Col id="Column3">가나다라</Col>
|
||||
<Col id="Column4">가나다라</Col>
|
||||
<Col id="Column5">가나다라</Col>
|
||||
<Col id="Column6">가나다라</Col>
|
||||
<Col id="Column7">가나다라</Col>
|
||||
<Col id="Column8">가나다라</Col>
|
||||
<Col id="Column9">가나다라</Col>
|
||||
<Col id="Column10">가나다라</Col>
|
||||
<Col id="Column11">가나다라</Col>
|
||||
<Col id="Column12">가나다라</Col>
|
||||
<Col id="Column13">가나다라</Col>
|
||||
<Col id="Column14">가나다라</Col>
|
||||
<Col id="Column15">가나다라</Col>
|
||||
<Col id="Column16">가나다라</Col>
|
||||
<Col id="Column17">가나다라</Col>
|
||||
<Col id="Column18">가나다라</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="Column0">가나다라</Col>
|
||||
<Col id="Column1">가나다라</Col>
|
||||
<Col id="Column2">가나다라</Col>
|
||||
<Col id="Column3">가나다라</Col>
|
||||
<Col id="Column4">가나다라</Col>
|
||||
<Col id="Column5">가나다라</Col>
|
||||
<Col id="Column6">가나다라</Col>
|
||||
<Col id="Column7">가나다라</Col>
|
||||
<Col id="Column8">가나다라</Col>
|
||||
<Col id="Column9">가나다라</Col>
|
||||
<Col id="Column10">가나다라</Col>
|
||||
<Col id="Column11">가나다라</Col>
|
||||
<Col id="Column12">가나다라</Col>
|
||||
<Col id="Column13">가나다라</Col>
|
||||
<Col id="Column14">가나다라</Col>
|
||||
<Col id="Column15">가나다라</Col>
|
||||
<Col id="Column16">가나다라</Col>
|
||||
<Col id="Column17">가나다라</Col>
|
||||
<Col id="Column18">가나다라</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="Column0">가나다라</Col>
|
||||
<Col id="Column1">가나다라</Col>
|
||||
<Col id="Column2">가나다라</Col>
|
||||
<Col id="Column3">가나다라</Col>
|
||||
<Col id="Column4">가나다라</Col>
|
||||
<Col id="Column5">가나다라</Col>
|
||||
<Col id="Column6">가나다라</Col>
|
||||
<Col id="Column7">가나다라</Col>
|
||||
<Col id="Column8">가나다라</Col>
|
||||
<Col id="Column9">가나다라</Col>
|
||||
<Col id="Column10">가나다라</Col>
|
||||
<Col id="Column11">가나다라</Col>
|
||||
<Col id="Column12">가나다라</Col>
|
||||
<Col id="Column13">가나다라</Col>
|
||||
<Col id="Column14">가나다라</Col>
|
||||
<Col id="Column15">가나다라</Col>
|
||||
<Col id="Column16">가나다라</Col>
|
||||
<Col id="Column17">가나다라</Col>
|
||||
<Col id="Column18">가나다라</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="Column0">가나다라</Col>
|
||||
<Col id="Column1">가나다라</Col>
|
||||
<Col id="Column2">가나다라</Col>
|
||||
<Col id="Column3">가나다라</Col>
|
||||
<Col id="Column4">가나다라</Col>
|
||||
<Col id="Column5">가나다라</Col>
|
||||
<Col id="Column6">가나다라</Col>
|
||||
<Col id="Column7">가나다라</Col>
|
||||
<Col id="Column8">가나다라</Col>
|
||||
<Col id="Column9">가나다라</Col>
|
||||
<Col id="Column10">가나다라</Col>
|
||||
<Col id="Column11">가나다라</Col>
|
||||
<Col id="Column12">가나다라</Col>
|
||||
<Col id="Column13">가나다라</Col>
|
||||
<Col id="Column14">가나다라</Col>
|
||||
<Col id="Column15">가나다라</Col>
|
||||
<Col id="Column16">가나다라</Col>
|
||||
<Col id="Column17">가나다라</Col>
|
||||
<Col id="Column18">가나다라</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="Column0">가나다라</Col>
|
||||
<Col id="Column1">가나다라</Col>
|
||||
<Col id="Column2">가나다라</Col>
|
||||
<Col id="Column3">가나다라</Col>
|
||||
<Col id="Column4">가나다라</Col>
|
||||
<Col id="Column5">가나다라</Col>
|
||||
<Col id="Column6">가나다라</Col>
|
||||
<Col id="Column7">가나다라</Col>
|
||||
<Col id="Column8">가나다라</Col>
|
||||
<Col id="Column9">가나다라</Col>
|
||||
<Col id="Column10">가나다라</Col>
|
||||
<Col id="Column11">가나다라</Col>
|
||||
<Col id="Column12">가나다라</Col>
|
||||
<Col id="Column13">가나다라</Col>
|
||||
<Col id="Column14">가나다라</Col>
|
||||
<Col id="Column15">가나다라</Col>
|
||||
<Col id="Column16">가나다라</Col>
|
||||
<Col id="Column17">가나다라</Col>
|
||||
<Col id="Column18">가나다라</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="Column0">가나다라</Col>
|
||||
<Col id="Column1">가나다라</Col>
|
||||
<Col id="Column2">가나다라</Col>
|
||||
<Col id="Column3">가나다라</Col>
|
||||
<Col id="Column4">가나다라</Col>
|
||||
<Col id="Column5">가나다라</Col>
|
||||
<Col id="Column6">가나다라</Col>
|
||||
<Col id="Column7">가나다라</Col>
|
||||
<Col id="Column8">가나다라</Col>
|
||||
<Col id="Column9">가나다라</Col>
|
||||
<Col id="Column10">가나다라</Col>
|
||||
<Col id="Column11">가나다라</Col>
|
||||
<Col id="Column12">가나다라</Col>
|
||||
<Col id="Column13">가나다라</Col>
|
||||
<Col id="Column14">가나다라</Col>
|
||||
<Col id="Column15">가나다라</Col>
|
||||
<Col id="Column16">가나다라</Col>
|
||||
<Col id="Column17">가나다라</Col>
|
||||
<Col id="Column18">가나다라</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="Column0">가나다라</Col>
|
||||
<Col id="Column1">가나다라</Col>
|
||||
<Col id="Column2">가나다라</Col>
|
||||
<Col id="Column3">가나다라</Col>
|
||||
<Col id="Column4">가나다라</Col>
|
||||
<Col id="Column5">가나다라</Col>
|
||||
<Col id="Column6">가나다라</Col>
|
||||
<Col id="Column7">가나다라</Col>
|
||||
<Col id="Column8">가나다라</Col>
|
||||
<Col id="Column9">가나다라</Col>
|
||||
<Col id="Column10">가나다라</Col>
|
||||
<Col id="Column11">가나다라</Col>
|
||||
<Col id="Column12">가나다라</Col>
|
||||
<Col id="Column13">가나다라</Col>
|
||||
<Col id="Column14">가나다라</Col>
|
||||
<Col id="Column15">가나다라</Col>
|
||||
<Col id="Column16">가나다라</Col>
|
||||
<Col id="Column17">가나다라</Col>
|
||||
<Col id="Column18">가나다라</Col>
|
||||
</Row>
|
||||
</Rows>
|
||||
</Dataset>
|
||||
<Dataset id="ds_radio_01" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
|
||||
<ColumnInfo>
|
||||
<Column id="Column0" type="STRING" size="256"/>
|
||||
<Column id="Column1" type="STRING" size="256"/>
|
||||
</ColumnInfo>
|
||||
<Rows>
|
||||
<Row>
|
||||
<Col id="Column0">0</Col>
|
||||
<Col id="Column1">온라인</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="Column0">1</Col>
|
||||
<Col id="Column1">오프라인</Col>
|
||||
</Row>
|
||||
</Rows>
|
||||
</Dataset>
|
||||
<Dataset id="ds_radio_00" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
|
||||
<ColumnInfo>
|
||||
<Column id="Column0" type="STRING" size="256"/>
|
||||
<Column id="Column1" type="STRING" size="256"/>
|
||||
</ColumnInfo>
|
||||
<Rows>
|
||||
<Row>
|
||||
<Col id="Column0">0</Col>
|
||||
<Col id="Column1">예</Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col id="Column0">1</Col>
|
||||
<Col id="Column1">아니오</Col>
|
||||
</Row>
|
||||
</Rows>
|
||||
</Dataset>
|
||||
</Objects>
|
||||
</Form>
|
||||
</FDL>
|
||||
138
src/main/webapp/xui/work/Pattern_07.xfdl
Normal file
138
src/main/webapp/xui/work/Pattern_07.xfdl
Normal file
@@ -0,0 +1,138 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FDL version="1.4">
|
||||
<TypeDefinition url="..\default_typedef.xml"/>
|
||||
<Form id="Work" classname="Work" inheritanceid="" position="absolute 0 0 765 540" titletext="Shuttle">
|
||||
<Layouts>
|
||||
<Layout>
|
||||
<Static id="sta_WF_SearchBox" class="sta_WF_SearchBox" position="absolute 0 0 765 41" text="" anchor="left top right"/>
|
||||
<Static id="sta_WFSA_PointLabel" class="sta_WFSA_Label" position="absolute 17 10 107 30" text="원본프로젝트"/>
|
||||
<Button id="btn_WFSA_Search" taborder="1" text="조회" class="btn_WFSA_Search" position="absolute 700 10 750 32" anchor="top right"/>
|
||||
<Button id="btn_WFSA_Search02" taborder="2" class="btn_WFSA_Search" position="absolute 164 10 184 30" style="image:URL('theme://images/ico_Search.png'); "/>
|
||||
<Edit id="Edit00" taborder="3" position="absolute 99 10 162 30"/>
|
||||
<Edit id="Edit01" taborder="4" enable="false" position="absolute 186 10 334 30"/>
|
||||
<Static id="sta_WFSA_PointLabel00" text="대상프로젝트" class="sta_WFSA_Label" position="absolute 363 10 453 30"/>
|
||||
<Button id="btn_WFSA_Search00" taborder="5" class="btn_WFSA_Search" position="absolute 510 10 530 30" style="image:URL('theme://images/ico_Search.png'); "/>
|
||||
<Edit id="Edit02" taborder="6" position="absolute 445 10 508 30"/>
|
||||
<Edit id="Edit03" taborder="7" enable="false" position="absolute 532 10 680 30"/>
|
||||
<Static id="sta_WF_TitleLev1" text="원본프로젝트" class="sta_WF_TitleLev1" position="absolute 0 55 134 69"/>
|
||||
<Static id="sta_WF_TitleLev00" text="대상프로젝트" class="sta_WF_TitleLev1" position="absolute 400 55 534 69"/>
|
||||
<Grid id="Grid00" taborder="8" useinputpanel="false" position="absolute 0 71 365 540" binddataset="ds_grid" formats="<Formats> <Format id="default"> <Columns> <Col size="80"/> <Col size="80"/> <Col size="80"/> <Col size="80"/> <Col size="80"/> <Col size="80"/> <Col size="80"/> </Columns> <Rows> <Row band="head" size="24"/> <Row band="body" size="24"/> </Rows> <Band id="head"> <Cell col="0" disptype="normal" text="Column0"/> <Cell col="1" disptype="normal" text="Column1"/> <Cell col="2" disptype="normal" text="Column2"/> <Cell col="3" disptype="normal" text="Column3"/> <Cell col="4" disptype="normal" text="Column4"/> <Cell col="5" disptype="normal" text="Column5"/> <Cell col="6" disptype="normal" text="Column6"/> </Band> <Band id="body"> <Cell col="0" disptype="normal" text="bind:Column0"/> <Cell col="1" disptype="normal" text="bind:Column1"/> <Cell col="2" disptype="normal" text="bind:Column2"/> <Cell col="3" disptype="normal" text="bind:Column3"/> <Cell col="4" disptype="normal" text="bind:Column4"/> <Cell col="5" disptype="normal" text="bind:Column5"/> <Cell col="6" disptype="normal" text="bind:Column6"/> </Band> </Format> </Formats> " autofittype="col" fillareatype="linerow" anchor="left top bottom">
|
||||
<Formats>
|
||||
<Format id="default">
|
||||
<Columns>
|
||||
<Column size="35"/>
|
||||
<Column size="80"/>
|
||||
<Column size="80"/>
|
||||
<Column size="80"/>
|
||||
<Column size="80"/>
|
||||
<Column size="80"/>
|
||||
<Column size="80"/>
|
||||
</Columns>
|
||||
<Rows>
|
||||
<Row size="18" band="head"/>
|
||||
<Row size="18" band="head"/>
|
||||
<Row size="20"/>
|
||||
</Rows>
|
||||
<Band id="head">
|
||||
<Cell rowspan="2" displaytype="checkbox" edittype="checkbox" text="Column0"/>
|
||||
<Cell col="1" rowspan="2" text="품명"/>
|
||||
<Cell col="2" rowspan="2" text="규격"/>
|
||||
<Cell col="3" rowspan="2" text="단위"/>
|
||||
<Cell col="4" colspan="3" text="실행"/>
|
||||
<Cell row="1" col="4" text="수량"/>
|
||||
<Cell row="1" col="5" text="단가"/>
|
||||
<Cell row="1" col="6" text="금액"/>
|
||||
</Band>
|
||||
<Band id="body">
|
||||
<Cell displaytype="checkbox" edittype="checkbox" text="bind:Column0"/>
|
||||
<Cell col="1" text="bind:Column1"/>
|
||||
<Cell col="2" text="bind:Column2"/>
|
||||
<Cell col="3" text="bind:Column3"/>
|
||||
<Cell col="4" text="bind:Column4"/>
|
||||
<Cell col="5" text="bind:Column5"/>
|
||||
<Cell col="6" text="bind:Column6"/>
|
||||
</Band>
|
||||
</Format>
|
||||
</Formats>
|
||||
</Grid>
|
||||
<Grid id="Grid01" taborder="9" binddataset="ds_grid" useinputpanel="false" autofittype="col" fillareatype="linerow" position="absolute 400 71 765 540" anchor="all">
|
||||
<Formats>
|
||||
<Format id="default">
|
||||
<Columns>
|
||||
<Column size="35"/>
|
||||
<Column size="80"/>
|
||||
<Column size="80"/>
|
||||
<Column size="80"/>
|
||||
<Column size="80"/>
|
||||
<Column size="80"/>
|
||||
<Column size="80"/>
|
||||
</Columns>
|
||||
<Rows>
|
||||
<Row size="18" band="head"/>
|
||||
<Row size="18" band="head"/>
|
||||
<Row size="20"/>
|
||||
</Rows>
|
||||
<Band id="head">
|
||||
<Cell rowspan="2" displaytype="checkbox" edittype="checkbox" text="Column0"/>
|
||||
<Cell col="1" rowspan="2" text="품명"/>
|
||||
<Cell col="2" rowspan="2" text="규격"/>
|
||||
<Cell col="3" rowspan="2" text="단위"/>
|
||||
<Cell col="4" colspan="3" text="실행"/>
|
||||
<Cell row="1" col="4" text="수량"/>
|
||||
<Cell row="1" col="5" text="단가"/>
|
||||
<Cell row="1" col="6" text="금액"/>
|
||||
</Band>
|
||||
<Band id="body">
|
||||
<Cell displaytype="checkbox" edittype="checkbox" text="bind:Column0"/>
|
||||
<Cell col="1" text="bind:Column1"/>
|
||||
<Cell col="2" text="bind:Column2"/>
|
||||
<Cell col="3" text="bind:Column3"/>
|
||||
<Cell col="4" text="bind:Column4"/>
|
||||
<Cell col="5" text="bind:Column5"/>
|
||||
<Cell col="6" text="bind:Column6"/>
|
||||
</Band>
|
||||
</Format>
|
||||
</Formats>
|
||||
</Grid>
|
||||
<Button id="Button00" taborder="10" position="absolute 373 269 392 289" style="image:URL('theme://images/btn_move_right_N.png'); :disabled {image:URL('theme://images/btn_move_right_D.png');} :mouseover {image:URL('theme://images/btn_move_right_O.png');}"/>
|
||||
<Button id="Button01" taborder="11" position="absolute 373 293 392 313" style="image:URL('theme://images/btn_move_left_N.png'); :disabled {image:URL('theme://images/btn_move_left_D.png');} :mouseover {image:URL('theme://images/btn_move_left_O.png');}"/>
|
||||
</Layout>
|
||||
</Layouts>
|
||||
<Objects>
|
||||
<Dataset id="ds_grid" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
|
||||
<ColumnInfo>
|
||||
<Column id="Column0" type="STRING" size="256"/>
|
||||
<Column id="Column1" type="STRING" size="256"/>
|
||||
<Column id="Column2" type="STRING" size="256"/>
|
||||
<Column id="Column3" type="STRING" size="256"/>
|
||||
<Column id="Column4" type="STRING" size="256"/>
|
||||
<Column id="Column5" type="STRING" size="256"/>
|
||||
<Column id="Column6" type="STRING" size="256"/>
|
||||
</ColumnInfo>
|
||||
<Rows>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
<Row/>
|
||||
</Rows>
|
||||
</Dataset>
|
||||
</Objects>
|
||||
</Form>
|
||||
</FDL>
|
||||
41
src/test/resources/log4j.xml
Normal file
41
src/test/resources/log4j.xml
Normal file
@@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
|
||||
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
|
||||
|
||||
<!-- Appenders -->
|
||||
<appender name="console" class="org.apache.log4j.ConsoleAppender">
|
||||
<param name="Target" value="System.out" />
|
||||
<layout class="org.apache.log4j.PatternLayout">
|
||||
<param name="ConversionPattern" value="%-5p: %c - %m%n" />
|
||||
</layout>
|
||||
</appender>
|
||||
|
||||
<!-- Application Loggers -->
|
||||
<logger name="com.terry.xplatform">
|
||||
<level value="info" />
|
||||
</logger>
|
||||
|
||||
<!-- 3rdparty Loggers -->
|
||||
<logger name="org.springframework.core">
|
||||
<level value="info" />
|
||||
</logger>
|
||||
|
||||
<logger name="org.springframework.beans">
|
||||
<level value="info" />
|
||||
</logger>
|
||||
|
||||
<logger name="org.springframework.context">
|
||||
<level value="info" />
|
||||
</logger>
|
||||
|
||||
<logger name="org.springframework.web">
|
||||
<level value="info" />
|
||||
</logger>
|
||||
|
||||
<!-- Root Logger -->
|
||||
<root>
|
||||
<priority value="info" />
|
||||
<appender-ref ref="console" />
|
||||
</root>
|
||||
|
||||
</log4j:configuration>
|
||||
Reference in New Issue
Block a user