first commit

This commit is contained in:
Minhyuk
2022-10-10 16:53:05 +09:00
commit d84b2b7238
212 changed files with 20162 additions and 0 deletions

8
.idea/.gitignore generated vendored Normal file
View File

@@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

20
.idea/compiler.xml generated Normal file
View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<annotationProcessing>
<profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="accounting-system" />
<module name="erp-system" />
</profile>
</annotationProcessing>
</component>
<component name="JavacSettings">
<option name="ADDITIONAL_OPTIONS_OVERRIDE">
<module name="accounting-system" options="" />
<module name="erp-system" options="-parameters" />
</option>
</component>
</project>

7
.idea/encodings.xml generated Normal file
View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding">
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
</component>
</project>

30
.idea/jarRepositories.xml generated Normal file
View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Central Repository" />
<option name="url" value="https://repo.maven.apache.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="codelds" />
<option name="name" value="codelds" />
<option name="url" value="https://code.lds.org/nexus/content/groups/main-repo" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="jboss.community" />
<option name="name" value="JBoss Community repository" />
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
<remote-repository>
<option name="id" value="releases" />
<option name="name" value="releases" />
<option name="url" value="http://127.0.0.1:8282/nexus/content/repositories/releases" />
</remote-repository>
</component>
</project>

7
.idea/jpa-buddy.xml generated Normal file
View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JpaBuddyIdeaProjectConfig">
<option name="defaultUnitInitialized" value="true" />
<option name="renamerInitialized" value="true" />
</component>
</project>

20
.idea/misc.xml generated Normal file
View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="FrameworkDetectionExcludesConfiguration">
<file type="web" url="file://$PROJECT_DIR$" />
</component>
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_19" default="true" project-jdk-name="openjdk-19" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
<component name="ProjectType">
<option name="id" value="jpab" />
</component>
</project>

6
.idea/vcs.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

View File

@@ -0,0 +1,128 @@
<?xml version="1.0" encoding="utf-8"?>
<Window>
<Form Height="486" Id="acountManagementForm" Left="8" OnLoadCompleted="accountManagementForm_OnLoadCompleted" PidAttrib="7" Title="New&#32;Form" Top="8" Ver="1.0" Width="700" WorkArea="true">
<Static Border="Flat" BorderColor="SCROLLBAR" Height="216" Id="Static1" Left="288" TabOrder="3" Top="48" Width="400"></Static>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,14" Height="24" Id="Static0" Left="8" TabOrder="1" Text="계정과목관리" Top="8" VAlign="Middle" Width="680"></Static>
<TreeView BindDataset="dsAccount" Font="KBIZ한마음고딕&#32;B,10" Height="400" Id="accountNameTreeView" Left="8" LevelColumn="level" OnClick="accountNameTreeView_OnClick" TabOrder="2" TEXTColumn="account_name" Top="48" Width="264"></TreeView>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="Static2" Left="352" TabOrder="4" Text="상위계정코드" Top="64" VAlign="Middle" Width="107"></Static>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="Static3" Left="352" TabOrder="5" Text="계정과목코드" Top="96" VAlign="Middle" Width="107"></Static>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="Static4" Left="352" TabOrder="6" Text="계정과목명" Top="128" VAlign="Middle" Width="107"></Static>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="Static5" Left="352" TabOrder="7" Text="대차구분" Top="160" VAlign="Middle" Width="107"></Static>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="Static6" Left="352" TabOrder="8" Text="수정여부" Top="192" VAlign="Middle" Width="107"></Static>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="Static7" Left="352" TabOrder="9" Text="사용여부" Top="224" VAlign="Middle" Width="107"></Static>
<Edit BindDataset="dsAccount" Column="parent_account" DisableColor="BACKGROUND" Enable="FALSE" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="accountParent" Left="472" LeftMargin="2" TabOrder="10" Top="64" Width="142"></Edit>
<Edit BindDataset="dsAccount" Column="ACCOUNT_CODE" DisableColor="BACKGROUND" Enable="FALSE" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="accountCode" Left="472" LeftMargin="2" TabOrder="11" Top="96" Width="142"></Edit>
<Edit BindDataset="dsAccount" Column="account_name" DisableColor="BACKGROUND" Enable="FALSE" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="accountName" Left="472" LeftMargin="2" TabOrder="12" Top="128" Width="142"></Edit>
<Edit BindDataset="dsAccount" Column="account_balance" DisableColor="BACKGROUND" Enable="FALSE" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="accountBalance" Left="472" LeftMargin="2" TabOrder="13" Top="160" Width="142"></Edit>
<Edit BindDataset="dsAccount" Column="account_change" DisableColor="BACKGROUND" Enable="FALSE" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="accountChange" Left="472" LeftMargin="2" TabOrder="14" Top="192" Width="142"></Edit>
<Edit BindDataset="dsAccount" Column="account_use" DisableColor="BACKGROUND" Enable="FALSE" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="accountUse" Left="472" LeftMargin="2" TabOrder="15" Top="224" Width="142"></Edit>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="add" Left="522" OnClick="add_OnClick" TabOrder="16" Text="추가" Top="453" Width="56"></Button>
<Grid AutoFit="TRUE" BindDataset="dsAcountManagement" BkColor2="default" BoldHead="true" Bottom="448" Editable="TRUE" Enable="true" EndLineColor="default" Height="176" Id="accountGrid" InputPanel="FALSE" Left="288" LineColor="default" MinWidth="100" OnCellClick="accountGrid_OnCellClick" Right="689" TabOrder="17" TabStop="true" Top="272" UseDBuff="true" UsePopupMenu="true" UseSelColor="true" Visible="true" VLineColor="default" WheelScrollRow="1" Width="401">
<contents>
<format id="Default">
<columns>
<col width="40"/>
<col width="79"/>
<col width="112"/>
<col width="94"/>
<col width="87"/>
</columns>
<head>
<cell bkcolor="#f7e4cf" col="0" display="text" font="KBIZ한마음고딕&#32;B,10" text="No"/>
<cell bkcolor="#f7e4cf" col="1" display="text" font="KBIZ한마음고딕&#32;B,10" text="관리항목코드"/>
<cell bkcolor="#f7e4cf" col="2" display="text" font="KBIZ한마음고딕&#32;B,10" text="관리항목명"/>
<cell bkcolor="#f7e4cf" col="3" display="text" font="KBIZ한마음고딕&#32;B,10" text="입력여부"/>
<cell bkcolor="#f7e4cf" col="4" display="text" font="KBIZ한마음고딕&#32;B,10" text="사용여부"/>
</head>
<body>
<cell align="center" col="0" display="text" expr="currow+1" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="1" colid="management_code" display="text" edit="normal" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="2" colid="account_management_name" display="text" edit="normal" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="3" colid="account_change" display="text" edit="normal" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="4" colid="account_use" display="text" edit="normal" font="KBIZ한마음고딕&#32;B,10"/>
</body>
</format>
</contents>
</Grid>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="delete" Left="577" OnClick="delete_OnClick" TabOrder="18" Text="삭제" Top="453" Width="56"></Button>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="save" Left="632" OnClick="save_OnClick" TabOrder="19" Text="저장" Top="453" Width="56"></Button>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="accountAddBtn" Left="192" OnClick="accountAddBtn_OnClick" TabOrder="20" Text="회사설정계정" Top="453" Width="79"></Button>
</Form>
<Script><![CDATA[
// 콜백 함수 ~
function callback(trid, ErrorCode, ErrorMsg){
if(trid=='getAccountList'){
if(ErrorCode<0){
alert(ErrorMsg);
}else{
//alert(global.http.RecvHttpStr);
var accountCode=dsAccount.getColumn(dsAccount.GetCurrow(),"account_code");
dsAcountManagement.filter("account_code='"+accountCode+"'");
}
}
}
// 계정 등록 버튼
function accountAddBtn_OnClick(obj)
{
dialog("accounting::accountRegis.xml","",450,486,"",550,200);
}
// 계정과목관리 폼이 로드된 후 ~
function accountManagementForm_OnLoadCompleted(obj)
{
Transaction("getAccountList","svcAccounting::/account/account.do?method=getAccountList","","dsAccount=dsAccount dsAcountManagement=dsAcountManagement","","callback");
//var accountCode=dsAccount.getColumn(dsAccount.GetCurrow(),"account_code");
//dsAcountManagement.filter("account_code='"+accountCode+"'");
}
// 관리항목 추가 버튼
function add_OnClick(obj)
{
if(dsAccount.getColumn(dsAccount.GetCurrow(),"level") == '3'){
dsAcountManagement.addrow();
dsAcountManagement.setColumn(dsAcountManagement.row,'account_code', accountCode.Text);
}else{
alert("최하위 계정에만 추가할 수 있습니다.");
}
}
// 관리항목그리드 클릭 시
function accountGrid_OnCellClick(obj,nRow,nCell,nX,nY,nPivotIndex)
{
if(accountGrid.GetCellText("body",nRow,nCell).length==0){
//관리과목 컬럼을 세팅한다.
dsDetailCode.filter("distinction_code='AM'");
Dialog("base::codeInfo.xml","",300,400);
}
}
// 관리항목 삭제 버튼
function delete_OnClick(obj)
{
dsAcountManagement.deleteRow(dsAcountManagement.row);
}
// 관리항목 저장 버튼
function save_OnClick(obj)
{
if(Confirm("변경사항을 저장하시겠습니까?")){
Transaction("batchAccountManagement","svcAccounting::/account/accountManagement.do?method=batchAccountManagement","dsAcountManagement=dsAcountManagement:U","","","callback");
}
}
// 왼쪽 트리뷰에 계정과목을 클릭하면
function accountNameTreeView_OnClick(obj,nOldRow,nNewRow)
{
var accountCode = dsAccount.GetColumn(nNewRow,"account_code");
dsAcountManagement.filter("account_code='"+accountCode+"'");
}
// 새로고침 버튼
function reloadBtn_OnClick(obj)
{
reload();
}
]]></Script>
</Window>

View File

@@ -0,0 +1,192 @@
<?xml version="1.0" encoding="utf-8"?>
<Window>
<Form Height="486" Id="accountRegisForm" Left="8" OnLoadCompleted="accountRegisForm_OnLoadCompleted" PidAttrib="7" Title="New&#32;Form" Top="8" Ver="1.0" Width="632" WorkArea="true">
<Datasets>
<Dataset DataSetType="Dataset" Id="dsFirstAccount">
<Contents>
<colinfo id="account_code" size="256" summ="default" type="STRING"/>
<colinfo id="account_name" size="256" summ="default" type="STRING"/>
<colinfo id="parent_account" size="256" summ="default" type="STRING"/>
<colinfo id="account_balance" size="256" summ="default" type="STRING"/>
<colinfo id="account_change" size="256" summ="default" type="STRING"/>
<colinfo id="account_use" size="256" summ="default" type="STRING"/>
<colinfo id="level" size="256" summ="default" type="STRING"/>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="dsSecondAccount">
<Contents>
<colinfo id="account_code" size="256" summ="default" type="STRING"/>
<colinfo id="account_name" size="256" summ="default" type="STRING"/>
<colinfo id="parent_account" size="256" summ="default" type="STRING"/>
<colinfo id="account_balance" size="256" summ="default" type="STRING"/>
<colinfo id="account_change" size="256" summ="default" type="STRING"/>
<colinfo id="account_use" size="256" summ="default" type="STRING"/>
<colinfo id="level" size="256" summ="default" type="STRING"/>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="dsThirdAccount">
<Contents>
<colinfo id="account_code" size="256" summ="default" type="STRING"/>
<colinfo id="account_name" size="256" summ="default" type="STRING"/>
<colinfo id="parent_account" size="256" summ="default" type="STRING"/>
<colinfo id="account_balance" size="256" summ="default" type="STRING"/>
<colinfo id="account_change" size="256" summ="default" type="STRING"/>
<colinfo id="account_use" size="256" summ="default" type="STRING"/>
<colinfo id="level" size="256" summ="default" type="STRING"/>
</Contents>
</Dataset>
</Datasets>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,14" Height="24" Id="Static0" Left="8" TabOrder="1" Text="계정과목등록" Top="8" VAlign="Middle" Width="616"></Static>
<Static Border="Flat" BorderColor="SCROLLBAR" Height="216" Id="Static1" Left="8" TabOrder="2" Top="256" Width="368"></Static>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="Static2" Left="37" TabOrder="3" Text="상위계정코드" Top="272" VAlign="Middle" Width="107"></Static>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="Static3" Left="37" TabOrder="4" Text="계정과목코드" Top="304" VAlign="Middle" Width="107"></Static>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="Static4" Left="37" TabOrder="5" Text="계정과목명" Top="336" VAlign="Middle" Width="107"></Static>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="Static5" Left="37" TabOrder="6" Text="대차구분" Top="368" VAlign="Middle" Width="107"></Static>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="Static6" Left="37" TabOrder="7" Text="수정여부" Top="400" VAlign="Middle" Width="107"></Static>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="Static7" Left="37" TabOrder="8" Text="사용여부" Top="432" VAlign="Middle" Width="107"></Static>
<Edit BindDataset="dsThirdAccount" Column="parent_account" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="accountParent" Left="157" LeftMargin="2" TabOrder="9" Top="272" Width="182"></Edit>
<Edit BindDataset="dsThirdAccount" Column="account_code" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="accountCode" Left="157" LeftMargin="2" TabOrder="10" Top="304" Width="182"></Edit>
<Edit BindDataset="dsThirdAccount" Column="account_name" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="accountName" Left="157" LeftMargin="2" TabOrder="11" Top="336" Width="182"></Edit>
<Edit BindDataset="dsThirdAccount" Column="account_balance" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="accountBalance" Left="157" LeftMargin="2" OnClick="accountBalance_OnClick" TabOrder="12" Top="368" Width="182"></Edit>
<Edit BindDataset="dsThirdAccount" Column="account_change" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="accountChange" Left="157" LeftMargin="2" TabOrder="13" Top="400" Width="182"></Edit>
<Edit BindDataset="dsThirdAccount" Column="account_use" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="accountUse" Left="157" LeftMargin="2" TabOrder="14" Top="432" Width="182"></Edit>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="add" Left="403" OnClick="add_OnClick" TabOrder="15" Text="추가" Top="45" Width="56"></Button>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="delete" Left="458" OnClick="delete_OnClick" TabOrder="16" Text="삭제" Top="45" Width="56"></Button>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="save" Left="513" OnClick="save_OnClick" TabOrder="17" Text="저장" Top="45" Width="56"></Button>
<Grid AutoEnter="TRUE" AutoFit="TRUE" BindDataset="dsFirstAccount" BkColor2="default" BoldHead="true" Bottom="248" ColSizing="TRUE" Enable="true" EndLineColor="default" Height="136" Id="firstAccountGrid" InputPanel="FALSE" Left="8" LineColor="default" MinWidth="100" MultiSelect="TRUE" OnCellClick="firstAccountGrid_OnCellClick" Right="192" TabOrder="19" TabStop="true" Top="112" UseDBuff="true" UsePopupMenu="true" UseSelColor="true" Visible="true" VLineColor="default" WheelScrollRow="1" Width="184">
<contents>
<format id="Default">
<columns>
<col width="50"/>
<col width="60"/>
</columns>
<head>
<cell bkcolor="#f7e4cf" col="0" display="text" font="KBIZ한마음고딕&#32;B,10" text="계정코드"/>
<cell bkcolor="#f7e4cf" col="1" display="text" font="KBIZ한마음고딕&#32;B,10" text="계정명"/>
</head>
<body>
<cell align="center" col="0" colid="account_code" display="text" edit="normal" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="1" colid="account_name" display="text" edit="normal" font="KBIZ한마음고딕&#32;B,10"/>
</body>
</format>
</contents>
</Grid>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="Static8" Left="8" TabOrder="18" Text="상위&#32;계정" Top="80" VAlign="Middle" Width="184"></Static>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="Static9" Left="196" TabOrder="20" Text="중간&#32;계정" Top="80" VAlign="Middle" Width="184"></Static>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="Static10" Left="384" TabOrder="21" Text="하위&#32;계정" Top="80" VAlign="Middle" Width="240"></Static>
<Grid AutoEnter="TRUE" AutoFit="TRUE" BindDataset="dsSecondAccount" BkColor2="default" BoldHead="true" Bottom="248" ColSizing="TRUE" Enable="true" EndLineColor="default" Height="136" Id="secondAccountGrid" InputPanel="FALSE" Left="196" LineColor="default" MinWidth="100" MultiSelect="TRUE" OnCellClick="secondAccountGrid_OnCellClick" Right="380" TabOrder="22" TabStop="true" Top="112" UseDBuff="true" UsePopupMenu="true" UseSelColor="true" Visible="true" VLineColor="default" WheelScrollRow="1" Width="184">
<contents>
<format id="Default">
<columns>
<col width="50"/>
<col width="60"/>
</columns>
<head>
<cell bkcolor="#f7e4cf" col="0" display="text" font="KBIZ한마음고딕&#32;B,10" text="계정코드"/>
<cell bkcolor="#f7e4cf" col="1" display="text" font="KBIZ한마음고딕&#32;B,10" text="계정명"/>
</head>
<body>
<cell align="center" col="0" colid="account_code" display="text" edit="normal" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="1" colid="account_name" display="text" edit="normal" font="KBIZ한마음고딕&#32;B,10"/>
</body>
</format>
</contents>
</Grid>
<Grid AutoEnter="TRUE" AutoFit="TRUE" BindDataset="dsThirdAccount" BkColor2="default" BoldHead="true" Bottom="472" ColSizing="TRUE" Enable="true" EndLineColor="default" Height="360" Id="thirdAccountGrid" InputPanel="FALSE" Left="384" LineColor="default" MinWidth="100" MultiSelect="TRUE" Right="624" TabOrder="23" TabStop="true" Top="112" UseDBuff="true" UsePopupMenu="true" UseSelColor="true" Visible="true" VLineColor="default" WheelScrollRow="1" Width="240">
<contents>
<format id="Default">
<columns>
<col width="50"/>
<col width="100"/>
</columns>
<head>
<cell bkcolor="#f7e4cf" col="0" display="text" font="KBIZ한마음고딕&#32;B,10" text="계정코드"/>
<cell bkcolor="#f7e4cf" col="1" display="text" font="KBIZ한마음고딕&#32;B,10" text="계정명"/>
</head>
<body>
<cell align="center" col="0" colid="account_code" display="text" edit="normal" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="1" colid="account_name" display="text" edit="normal" font="KBIZ한마음고딕&#32;B,10"/>
</body>
</format>
</contents>
</Grid>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="cancel" Left="568" OnClick="cancel_OnClick" TabOrder="24" Text="취소" Top="45" Width="56"></Button>
</Form>
<Script><![CDATA[
function accountRegisForm_OnLoadCompleted(obj)
{
//dsAccount.Filter("level=1");
dsFirstAccount.Copy(dsAccount);
dsFirstAccount.Filter("level=1");
}
// 대차 구분 코드 받아오는 Dialog
function accountBalance_OnClick(obj)
{
dsDetailCode.Filter("distinction_code='DC'");
Dialog("base::codeInfo.xml","",300,400);
}
// 상위 계정 그리드 클릭 시
function firstAccountGrid_OnCellClick(obj,nRow,nCell,nX,nY,nPivotIndex)
{
var firstCode=dsFirstAccount.GetColumn(nRow, "account_code");
//alert(firstCode);
dsSecondAccount.Copy(dsAccount);
dsSecondAccount.Filter("parent_account='"+firstCode+"'");
}
// 중간 계정 그리드 클릭 시
function secondAccountGrid_OnCellClick(obj,nRow,nCell,nX,nY,nPivotIndex)
{
var secondCode=dsSecondAccount.GetColumn(nRow, "account_code");
//alert(firstCode);
dsThirdAccount.Copy(dsAccount);
dsThirdAccount.Filter("parent_account='"+secondCode+"'");
}
// 추가 버튼
function add_OnClick(obj)
{
var secondCode=dsSecondAccount.GetColumn(dsSecondAccount.GetCurrow(), "account_code");
dsThirdAccount.AddRow();
dsThirdAccount.SetColumn(dsThirdAccount.GetCurrow(),"parent_account",secondCode);
dsThirdAccount.SetColumn(dsThirdAccount.GetCurrow(),"account_change",'Y');
dsThirdAccount.SetColumn(dsThirdAccount.GetCurrow(),"account_use",'Y');
}
// 삭제 버튼
function delete_OnClick(obj)
{
dsThirdAccount.DeleteRow(dsThirdAccount.GetCurrow());
}
// 저장 버튼
function save_OnClick(obj)
{
if(Confirm("변경사항을 저장하시겠습니까?")){
Transaction("batchAccount","svcAccounting::/account/account.do?method=batchAccount","dsAccount=dsThirdAccount:U","","","callback");
}
}
// 콜백 함수 ~
function callback(trid, ErrorCode, ErrorMsg)
{
if(trid=="batchAccount"){
if(ErrorCode!=0){
alert("저장 실패: "+ErrorMsg);
}else{
alert("저장 완료");
dsAccount.Copy(dsThirdAccount);
}
}
}
function cancel_OnClick(obj)
{
close();
}
]]></Script>
</Window>

View File

@@ -0,0 +1,187 @@
<?xml version="1.0" encoding="utf-8"?>
<Window>
<Form Height="486" Id="journalListForm" Left="8" OnLoadCompleted="journalListForm_OnLoadCompleted" PidAttrib="7" Title="New&#32;Form" Top="8" Ver="1.0" Width="700" WorkArea="true">
<Datasets>
<Dataset DataSetType="Dataset" Id="dsJournalList">
<Contents>
<colinfo id="slip_date" size="256" summ="default" type="STRING"/>
<colinfo id="journal_type" size="256" summ="default" type="STRING"/>
<colinfo id="account_code" size="256" summ="default" type="STRING"/>
<colinfo id="account_name" size="256" summ="default" type="STRING"/>
<colinfo id="journal_amt" size="256" summ="default" type="STRING"/>
<colinfo id="summary_name" size="256" summ="default" type="STRING"/>
<colinfo id="customer_code" size="256" summ="default" type="STRING"/>
<colinfo id="customer_name" size="256" summ="default" type="STRING"/>
<colinfo id="debtor" size="256" summ="default" type="STRING"/>
<colinfo id="creditor" size="256" summ="default" type="STRING"/>
<colinfo id="slip_type" size="256" summ="default" type="STRING"/>
<colinfo id="slip_status" size="256" summ="default" type="STRING"/>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="slipDiv">
<Contents>
<colinfo id="slip_division" size="256" summ="default" type="STRING"/>
<record>
<slip_division>전체</slip_division>
</record>
<record>
<slip_division>차변</slip_division>
</record>
<record>
<slip_division>대변</slip_division>
</record>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="slipDept">
<Contents>
<colinfo id="dept_name" size="256" summ="default" type="STRING"/>
<record>
<dept_name>전체</dept_name>
</record>
<record>
<dept_name>경영부</dept_name>
</record>
<record>
<dept_name>관리부</dept_name>
</record>
<record>
<dept_name>재경부</dept_name>
</record>
<record>
<dept_name>생산부</dept_name>
</record>
<record>
<dept_name>구매부</dept_name>
</record>
<record>
<dept_name>영업부</dept_name>
</record>
<record>
<dept_name>개발부</dept_name>
</record>
<record>
<dept_name>품질부</dept_name>
</record>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="slipCategory">
<Contents>
<colinfo id="slip_category" size="256" summ="default" type="STRING"/>
<record>
<slip_category>전체</slip_category>
</record>
<record>
<slip_category>일반</slip_category>
</record>
<record>
<slip_category>매입</slip_category>
</record>
<record>
<slip_category>매출</slip_category>
</record>
<record>
<slip_category>수금</slip_category>
</record>
<record>
<slip_category>반제</slip_category>
</record>
<record>
<slip_category>결산</slip_category>
</record>
</Contents>
</Dataset>
</Datasets>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,14" Height="24" Id="Static0" TabOrder="1" Text="분개장" Top="8" VAlign="Middle" Width="696"></Static>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="journalListSearch" Left="592" OnClick="journalListSearch_OnClick" TabOrder="2" Text="조회" Top="43" Width="46"></Button>
<Grid AutoFit="TRUE" BindDataset="dsJournalList" BkColor2="default" BoldHead="true" Bottom="472" Editable="TRUE" Enable="true" EndLineColor="default" Height="392" Id="journalListGrid" InputPanel="FALSE" LineColor="default" MinWidth="100" Right="696" TabOrder="3" TabStop="true" Top="80" UseDBuff="true" UsePopupMenu="true" UseSelColor="true" Visible="true" VLineColor="default" WheelScrollRow="1" Width="696">
<contents>
<format id="Default">
<columns>
<col width="70"/>
<col width="40"/>
<col width="40"/>
<col width="50"/>
<col width="80"/>
<col width="80"/>
<col width="80"/>
<col width="100"/>
<col width="50"/>
<col width="80"/>
</columns>
<head>
<cell align="center" bkcolor="#f7e4cf" col="0" display="text" font="KBIZ한마음고딕&#32;B,10" rowspan="2" text="일자"/>
<cell align="center" bkcolor="#f7e4cf" col="1" display="text" font="KBIZ한마음고딕&#32;B,10" rowspan="2" text="유형"/>
<cell align="center" bkcolor="#f7e4cf" col="2" display="text" font="KBIZ한마음고딕&#32;B,10" rowspan="2" text="구분"/>
<cell align="center" bkcolor="#f7e4cf" col="3" colspan="2" display="text" font="KBIZ한마음고딕&#32;B,10" rowspan="2" text="계정과목"/>
<cell align="center" bkcolor="#f7e4cf" col="5" colspan="2" display="text" font="KBIZ한마음고딕&#32;B,10" text="금액"/>
<cell align="center" bkcolor="#f7e4cf" col="7" display="text" font="KBIZ한마음고딕&#32;B,10" rowspan="2" text="적요"/>
<cell align="center" bkcolor="#f7e4cf" col="8" colspan="2" display="text" font="KBIZ한마음고딕&#32;B,10" rowspan="2" text="거래처명"/>
<cell align="center" bkcolor="#f7e4cf" col="5" display="text" font="KBIZ한마음고딕&#32;B,10" row="1" text="차변"/>
<cell align="center" bkcolor="#f7e4cf" col="6" display="text" font="KBIZ한마음고딕&#32;B,10" row="1" text="대변"/>
</head>
<body>
<cell align="center" bkcolor2="#faedde" col="0" colid="slip_date" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" bkcolor2="#faedde" col="1" colid="slip_type" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" bkcolor2="#faedde" col="2" colid="journal_type" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" bkcolor2="#faedde" col="3" colid="account_code" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" bkcolor2="#faedde" col="4" colid="account_name" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" bkcolor2="#faedde" col="5" colid="debtor" display="number" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" bkcolor2="#faedde" col="6" colid="creditor" display="number" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" bkcolor2="#faedde" col="7" colid="summary_name" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" bkcolor2="#faedde" col="8" colid="customer_code" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" bkcolor2="#faedde" col="9" colid="customer_name" display="text" font="KBIZ한마음고딕&#32;B,10"/>
</body>
</format>
</contents>
</Grid>
<Calendar DisableColor="BACKGROUND" Font="KBIZ한마음고딕&#32;B,10" Height="25" Id="sDate" Left="362" SaturdayTextColor="blue" SundayTextColor="red" TabOrder="4" Top="44" Width="105"></Calendar>
<Static Align="Center" Font="KBIZ한마음고딕&#32;B,10" Height="20" Id="Static9" Left="457" TabOrder="6" Text="~" Top="46" VAlign="Middle" Width="32"></Static>
<Calendar DisableColor="BACKGROUND" Font="KBIZ한마음고딕&#32;B,10" Height="25" Id="eDate" Left="480" SaturdayTextColor="blue" SundayTextColor="red" TabOrder="5" Top="44" Width="105"></Calendar>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="excelPrint" Left="640" OnClick="excelPrint_OnClick" TabOrder="7" Text="엑셀출력" Top="43" Width="56"></Button>
<Combo DataColumn="dept_name" Font="KBIZ한마음고딕&#32;B,10" Height="22" Id="deptName" INDEX="0" InnerDataset="slipDept" Left="80" TabOrder="8" Top="45" Width="79"></Combo>
<Static Align="Center" Font="KBIZ한마음고딕&#32;B,10" Height="28" Id="Static1" Left="22" TabOrder="9" Text="결의부서" Top="42" VAlign="Middle" Width="59"></Static>
<Static Align="Center" Font="KBIZ한마음고딕&#32;B,10" Height="28" Id="Static4" Left="182" TabOrder="10" Text="전표유형" Top="42" VAlign="Middle" Width="59"></Static>
<Combo DataColumn="slip_category" Font="KBIZ한마음고딕&#32;B,10" Height="22" Id="slipType" INDEX="0" InnerDataset="slipCategory" Left="240" TabOrder="11" Top="45" Width="79"></Combo>
</Form>
<Script><![CDATA[
// 콜백 함수 ~
function callback(trid, ErrorCode, ErrorMsg)
{
if(trid=="getJournalList"){
if(ErrorCode != 0){
alert(ErrorMsg);
}else{
}
}
}
// 분개장 폼이 로드된 후 ~
function journalListForm_OnLoadCompleted(obj)
{
strDate = GetDate();
year = Mid(strDate,0,4);
strDate = Mid(strDate,0,8);
sDate.value = year+'0101' ;
eDate.value = strDate ;
}
// 조회 버튼
function journalListSearch_OnClick(obj)
{
//alert(deptName.value +" "+slipType.value +" "+slipStatus.value);
//alert(sDate.value+" "+eDate.value);
Transaction("getJournalList","svcAccounting::/slip/slip.do?method=getJournalList","","dsJournalList=dsJournalList",
"deptName='"+deptName.value+"' slipType='"+slipType.value+"' sDate='"+sDate.Value+"' eDate='"+eDate.Value+"'","callback");
}
// 엑셀 출력 버튼
function excelPrint_OnClick(obj)
{
if(Confirm("분개장을 출력하시겠습니까?")){
journalListGrid.ExportExcelEx("JournalList");
}
}
]]></Script>
</Window>

View File

@@ -0,0 +1,376 @@
<?xml version="1.0" encoding="utf-8"?>
<Window>
<Form Height="600" Id="slipApproveForm" Left="8" OnLoadCompleted="slipApproveForm_OnLoadCompleted" PidAttrib="7" Title="New&#32;Form" Top="8" Ver="1.0" Width="700" WorkArea="true">
<Datasets>
<Dataset DataSetType="Dataset" Id="ds_slip_approve">
<Contents>
<colinfo id="APPROVER_DATE" size="256" type="STRING"/>
<colinfo id="SLIP_SEQ" size="256" type="STRING"/>
<colinfo id="SLIP_TYPE" size="256" type="STRING"/>
<colinfo id="SLIP_BALLOT_NO" size="256" type="STRING"/>
<colinfo id="SLIP_STATUS" size="256" type="STRING"/>
<colinfo id="APPROVER" size="256" type="STRING"/>
<colinfo id="SLIP_WORKER" size="256" type="STRING"/>
<colinfo id="DIFFRENCE_AMT" size="256" type="STRING"/>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="ds_slip_approve_sub">
<Contents>
<colinfo id="JOURNAL_NO" size="256" type="STRING"/>
<colinfo id="SLIP_GUBUN" size="256" type="STRING"/>
<colinfo id="ACCOUNT_CODE" size="256" type="STRING"/>
<colinfo id="ACCOUNT_NAME" size="256" type="STRING"/>
<colinfo id="CUSTOMER_CODE" size="256" type="STRING"/>
<colinfo id="CUSTOMER_NAME" size="256" type="STRING"/>
<colinfo id="JOURNAL_AMT" size="256" type="STRING"/>
<colinfo id="DESCRIPT_NAME" size="256" type="STRING"/>
<colinfo id="JOURNAL_RECEIPT" size="256" type="STRING"/>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="slipDiv">
<Contents>
<colinfo id="slip_division" size="256" summ="default" type="STRING"/>
<record>
<slip_division>전체</slip_division>
</record>
<record>
<slip_division>차변</slip_division>
</record>
<record>
<slip_division>대변</slip_division>
</record>
<record>
<slip_division>입금</slip_division>
</record>
<record>
<slip_division>출금</slip_division>
</record>
<record>
<slip_division>매입부가세</slip_division>
</record>
<record>
<slip_division>매출부가세</slip_division>
</record>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="dsSlipStatus">
<Contents>
<colinfo id="slip_status" size="256" summ="default" type="STRING"/>
<record>
<slip_status>전체</slip_status>
</record>
<record>
<slip_status>승인</slip_status>
</record>
<record>
<slip_status>미결</slip_status>
</record>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="slipDept">
<Contents>
<colinfo id="dept_name" size="256" summ="default" type="STRING"/>
<record>
<dept_name>전체</dept_name>
</record>
<record>
<dept_name>경영부</dept_name>
</record>
<record>
<dept_name>관리부</dept_name>
</record>
<record>
<dept_name>재경부</dept_name>
</record>
<record>
<dept_name>생산부</dept_name>
</record>
<record>
<dept_name>구매부</dept_name>
</record>
<record>
<dept_name>영업부</dept_name>
</record>
<record>
<dept_name>개발부</dept_name>
</record>
<record>
<dept_name>품질부</dept_name>
</record>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="slipCategory">
<Contents>
<colinfo id="slip_category" size="256" summ="default" type="STRING"/>
<record>
<slip_category>전체</slip_category>
</record>
<record>
<slip_category>일반</slip_category>
</record>
<record>
<slip_category>매입</slip_category>
</record>
<record>
<slip_category>매출</slip_category>
</record>
<record>
<slip_category>수금</slip_category>
</record>
<record>
<slip_category>반제</slip_category>
</record>
<record>
<slip_category>결산</slip_category>
</record>
</Contents>
</Dataset>
</Datasets>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,14" Height="24" Id="Static0" TabOrder="1" Text="전표승인/해제" Top="8" VAlign="Middle" Width="680"></Static>
<Static Align="Center" Font="KBIZ한마음고딕&#32;B,10" Height="32" Id="Static2" Left="200" TabOrder="2" Text="작성자" Top="48" VAlign="Middle" Width="65"></Static>
<Edit Align="CENTER" DisableColor="BACKGROUND" Enable="FALSE" Font="KBIZ한마음고딕&#32;B,10" Height="25" Id="empNo" Left="256" TabOrder="3" Top="52" Width="59"></Edit>
<Edit Align="CENTER" DisableColor="BACKGROUND" Enable="FALSE" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="empName" Left="319" TabOrder="4" Top="52" Width="85"></Edit>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="approve" Left="528" OnClick="approve_OnClick" TabOrder="5" Text="전표승인" Top="48" Width="67"></Button>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="cancel" Left="600" OnClick="cancle_OnClick" TabOrder="6" Text="승인해제" Top="48" Width="65"></Button>
<Static Align="Center" Font="KBIZ한마음고딕&#32;B,10" Height="28" Id="Static4" Left="14" TabOrder="7" Text="전표유형" Top="86" VAlign="Middle" Width="59"></Static>
<Combo DataColumn="slip_category" Font="KBIZ한마음고딕&#32;B,10" Height="22" Id="slipType" INDEX="0" InnerDataset="slipCategory" Left="72" TabOrder="8" Top="89" Width="87"></Combo>
<Static Align="Center" Font="KBIZ한마음고딕&#32;B,10" Height="28" Id="Static7" Left="173" TabOrder="9" Text="전표상태" Top="86" VAlign="Middle" Width="59"></Static>
<Combo DataColumn="slip_status" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="slipStatus" INDEX="0" InnerDataset="dsSlipStatus" Left="232" TabOrder="10" Top="88" Width="89"></Combo>
<Static Align="Center" Font="KBIZ한마음고딕&#32;B,10" Height="20" Id="Static8" Left="331" TabOrder="11" Text="결의기간" Top="90" VAlign="Middle" Width="70"></Static>
<Calendar Font="KBIZ한마음고딕&#32;B,10" Height="25" Id="sDate" Left="394" SaturdayTextColor="blue" SundayTextColor="red" TabOrder="12" Top="88" Value="20160901" Width="105"></Calendar>
<Calendar Font="KBIZ한마음고딕&#32;B,10" Height="25" Id="eDate" Left="528" SaturdayTextColor="blue" SundayTextColor="red" TabOrder="13" Top="88" Value="20160930" Width="105"></Calendar>
<Static Align="Center" Font="KBIZ한마음고딕&#32;B,10" Height="20" Id="Static9" Left="497" TabOrder="14" Text="~" Top="90" VAlign="Middle" Width="32"></Static>
<Button Height="24" Id="search" ImageID="search" Left="640" OnClick="search_OnClick" TabOrder="15" Text="Button2" Top="88" Width="24"></Button>
<Grid AutoFit="TRUE" BindDataset="dsSlip" BkColor2="default" BoldHead="true" Bottom="263" Enable="true" EndLineColor="default" Height="143" Id="slipGrid" InputPanel="FALSE" LineColor="default" MinWidth="100" OnCellClick="slipGrid_OnCellClick" Right="680" TabOrder="16" TabStop="true" Top="120" UseDBuff="true" UsePopupMenu="true" UseSelColor="true" Visible="true" VLineColor="default" WheelScrollRow="1" Width="680">
<contents>
<format id="Default">
<columns>
<col width="80"/>
<col width="40"/>
<col width="50"/>
<col width="120"/>
<col width="80"/>
<col width="50"/>
<col width="70"/>
<col width="70"/>
<col width="90"/>
</columns>
<head>
<cell align="center" bkcolor="#f7e4cf" col="0" display="text" font="KBIZ한마음고딕&#32;B,10" text="결의일자"/>
<cell align="center" bkcolor="#f7e4cf" col="1" display="text" font="KBIZ한마음고딕&#32;B,10" text="번호"/>
<cell align="center" bkcolor="#f7e4cf" col="2" display="text" font="KBIZ한마음고딕&#32;B,10" text="유형"/>
<cell align="center" bkcolor="#f7e4cf" col="3" display="text" font="KBIZ한마음고딕&#32;B,10" text="품의내역"/>
<cell align="center" bkcolor="#f7e4cf" col="4" display="text" font="KBIZ한마음고딕&#32;B,10" text="기표일자"/>
<cell align="center" bkcolor="#f7e4cf" col="5" display="text" font="KBIZ한마음고딕&#32;B,10" text="전표상태"/>
<cell align="center" bkcolor="#f7e4cf" col="6" display="text" font="KBIZ한마음고딕&#32;B,10" text="승인자"/>
<cell align="center" bkcolor="#f7e4cf" col="7" display="text" font="KBIZ한마음고딕&#32;B,10" text="작업자"/>
<cell align="center" bkcolor="#f7e4cf" col="8" display="text" font="KBIZ한마음고딕&#32;B,10" text="대차차액"/>
</head>
<body>
<cell align="center" col="0" colid="slip_date" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="1" colid="slip_seq" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="2" colid="slip_type" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="3" colid="slip_content" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="4" colid="approval_date" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="5" colid="slip_status" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="6" colid="APPROVER" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="7" colid="slip_worker" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="8" colid="difference_amt" display="number" font="KBIZ한마음고딕&#32;B,10"/>
</body>
</format>
</contents>
</Grid>
<Grid AutoFit="TRUE" BindDataset="dsJournal" BkColor2="default" BoldHead="true" Bottom="400" Enable="true" EndLineColor="default" Height="136" Id="jourGrid" InputPanel="FALSE" LineColor="default" MinWidth="100" OnCellClick="jourGrid_OnCellClick" Right="680" TabOrder="17" TabStop="true" Top="264" UseDBuff="true" UsePopupMenu="true" UseSelColor="true" Visible="true" VLineColor="default" WheelScrollRow="1" Width="680">
<contents>
<format id="Default">
<columns>
<col width="35"/>
<col width="50"/>
<col width="70"/>
<col width="130"/>
<col width="60"/>
<col width="80"/>
<col width="70"/>
<col width="110"/>
<col width="70"/>
</columns>
<head>
<cell align="center" bkcolor="#f7e4cf" col="0" display="text" font="KBIZ한마음고딕&#32;B,10" text="순번"/>
<cell align="center" bkcolor="#f7e4cf" col="1" display="text" font="KBIZ한마음고딕&#32;B,10" text="구분"/>
<cell align="center" bkcolor="#f7e4cf" col="2" display="text" font="KBIZ한마음고딕&#32;B,10" text="계정과목코드"/>
<cell align="center" bkcolor="#f7e4cf" col="3" display="text" font="KBIZ한마음고딕&#32;B,10" text="계정과목명"/>
<cell align="center" bkcolor="#f7e4cf" col="4" display="text" font="KBIZ한마음고딕&#32;B,10" text="거래처코드"/>
<cell align="center" bkcolor="#f7e4cf" col="5" display="text" font="KBIZ한마음고딕&#32;B,10" text="거래처명"/>
<cell align="center" bkcolor="#f7e4cf" col="6" display="text" font="KBIZ한마음고딕&#32;B,10" text="금액"/>
<cell align="center" bkcolor="#f7e4cf" col="7" display="text" font="KBIZ한마음고딕&#32;B,10" text="적요"/>
<cell align="center" bkcolor="#f7e4cf" col="8" display="text" font="KBIZ한마음고딕&#32;B,10" text="증빙"/>
</head>
<body>
<cell align="center" col="0" colid="JOURNAL_NO" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="1" colid="journal_type" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="2" colid="account_code" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="3" colid="account_name" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="4" colid="customer_code" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="5" colid="customer_name" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="6" colid="journal_amt" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="7" colid="summary_name" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="8" colid="journal_receipt" display="text" font="KBIZ한마음고딕&#32;B,10"/>
</body>
</format>
</contents>
</Grid>
<Calendar DisableColor="BACKGROUND" Enable="FALSE" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="apprDate" Left="416" SaturdayTextColor="blue" SundayTextColor="red" TabOrder="18" Top="52" Value="TODAY" Width="101"></Calendar>
<Grid AutoFit="TRUE" BindDataset="dsDebtor" BkColor2="default" BoldHead="true" Bottom="562" Enable="true" EndLineColor="default" Height="154" Id="debtor" InputPanel="FALSE" LineColor="default" MinWidth="100" Right="328" TabOrder="19" TabStop="true" Top="408" UseDBuff="true" UsePopupMenu="true" UseSelColor="true" Visible="true" VLineColor="default" WheelScrollRow="1" Width="328">
<contents>
<format id="Default">
<columns>
<col width="75"/>
<col width="151"/>
<col width="96"/>
</columns>
<head>
<cell align="center" bkcolor="#f7e4cf" col="0" colspan="2" display="text" font="KBIZ한마음고딕&#32;B,10" text="차변"/>
<cell align="center" bkcolor="#f7e4cf" col="2" display="text" font="KBIZ한마음고딕&#32;B,10"/>
</head>
<body>
<cell align="center" col="0" colid="account_code" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="1" colid="account_name" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="2" colid="journal_amt" display="number" font="KBIZ한마음고딕&#32;B,10"/>
</body>
<summary>
<cell align="center" bkcolor="#f7e4cf" col="0" colspan="2" display="text" font="KBIZ한마음고딕&#32;B,10" text="차변합계"/>
<cell align="center" bkcolor="#f7e4cf" col="2" display="number" expr='sum(&quot;journal_amt&quot;)' font="KBIZ한마음고딕&#32;B,10"/>
</summary>
</format>
</contents>
</Grid>
<Grid AutoFit="TRUE" BindDataset="dsCreditor" BkColor2="default" BoldHead="true" Bottom="562" Enable="true" EndLineColor="default" Height="154" Id="creditor" InputPanel="FALSE" Left="352" LineColor="default" MinWidth="100" Right="680" TabOrder="20" TabStop="true" Top="408" UseDBuff="true" UsePopupMenu="true" UseSelColor="true" Visible="true" VLineColor="default" WheelScrollRow="1" Width="328">
<contents>
<format id="Default">
<columns>
<col width="75"/>
<col width="151"/>
<col width="96"/>
</columns>
<head>
<cell align="center" bkcolor="#f7e4cf" col="0" colspan="2" display="text" font="KBIZ한마음고딕&#32;B,10" text="대변"/>
<cell align="center" bkcolor="#f7e4cf" col="2" display="text" font="KBIZ한마음고딕&#32;B,10"/>
</head>
<body>
<cell align="center" col="0" colid="account_code" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="1" colid="account_name" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="2" colid="journal_amt" display="number" font="KBIZ한마음고딕&#32;B,10"/>
</body>
<summary>
<cell align="center" bkcolor="#f7e4cf" col="0" colspan="2" display="text" font="KBIZ한마음고딕&#32;B,10" text="대변합계"/>
<cell align="center" bkcolor="#f7e4cf" col="2" display="number" expr='sum(&quot;journal_amt&quot;)' font="KBIZ한마음고딕&#32;B,10"/>
</summary>
</format>
</contents>
</Grid>
<Combo DataColumn="dept_name" Font="KBIZ한마음고딕&#32;B,10" Height="22" Id="deptName" INDEX="0" InnerDataset="slipDept" Left="72" TabOrder="21" Top="53" Width="87"></Combo>
<Static Align="Center" Font="KBIZ한마음고딕&#32;B,10" Height="28" Id="Static1" Left="14" TabOrder="22" Text="결의부서" Top="50" VAlign="Middle" Width="59"></Static>
</Form>
<Script><![CDATA[var accountCode,cha,dae;
// 콜백 함수 ~
function callback(trid, ErrorCode, ErrorMsg){
if(trid=="getSlipList" || trid=="batchSlipList"){
if(dsSlip.GetRowCount()==0){
alert("조회된 데이터가 없습니다.");
}else{
//slipGridFilter(0);
slipListFilter(dsSlip.getCurrow());
jourGrid.Redraw=true;
setChaDae(0);
}
}
}
// 전표 승인해제 폼이 로드된 후 ~
function slipApproveForm_OnLoadCompleted(obj)
{
//deptName.Text=gvDeptName;
empNo.Text=gvEmpNo;
empName.Text=gvEmpName;
//그리드 클리어.
dsSlip.Clear();
dsJournal.Clear();
dsDebtor.Clear();
dsCreditor.Clear();
}
// 조회 버튼
function search_OnClick(obj)
{
// 전표, 분개, 분개상세 데이터를 가져온다.
Transaction("getSlipList","svcAccounting::/slip/slip.do?method=getSlipApproveList","","dsSlip=dsSlip dsJournal=dsJournal dsJournalManagement=dsJournalManagement",
"deptName='"+deptName.value+"' slipType='"+slipType.value+"' slipStatus='"+slipStatus.value+"' sDate='"+sDate.Value+"' eDate='"+eDate.Value+"'","callback");
}
function slipGrid_OnCellClick(obj,nRow,nCell,nX,nY,nPivotIndex)
{
slipListFilter(nRow);
// 차변, 대변 데이터셋을 세팅한다.
setChaDae(nRow);
}
// 현재 전표에 따라 전표번호로 분개 리스트를 필터해준다
function slipListFilter(nRow)
{
slipNo=dsSlip.GetColumn(nRow,"slip_no");
jourGrid.Redraw=false;
dsJournal.filter("slip_no='"+slipNo+"'");
jourGrid.Redraw=true;
}
function jourGrid_OnCellClick(obj,nRow,nCell,nX,nY,nPivotIndex)
{
setChaDae(nRow);
}
function setChaDae(nRow){
debtor.Redraw = false;
creditor.Redraw = false;
dsDebtor.copyF(dsJournal);
dsDebtor.Filter("journal_type='차변'");
dsCreditor.copyF(dsJournal);
dsCreditor.Filter("journal_type='대변'");
debtor.Redraw = true;
creditor.Redraw = true;
cha=parseInt(replace(debtor.GetCellText("summary", 0, 1),",",""));
dae=parseInt(replace(creditor.GetCellText("summary", 0, 1),",",""));
trace(cha+' ------------------ '+dae);
}
function approve_OnClick(obj)
{
if(confirm("선택한 전표를 승인하시겠습니까?")){
if(cha==dae){
dsSlip.setColumn(dsSlip.GetCurrow(),'approval_date',apprDate.Value);
dsSlip.setColumn(dsSlip.GetCurrow(),'slip_ballot_no',apprDate.Value+'001');
dsSlip.setColumn(dsSlip.GetCurrow(),'approver',gvEmpName);
dsSlip.setColumn(dsSlip.GetCurrow(),'slip_status','승인');
Transaction("batchSlipList","svcAccounting::/slip/slip.do?method=batchSlipList","dsSlip=dsSlip:U dsJournal=dsJournal:U dsJournalManagement=dsJournalManagement:U","","","callback");
}else{
alert("차변과 대변의 금액이 맞지 않습니다.");
}
}
}
// 승인해제 버튼
function cancle_OnClick(obj)
{
if(confirm("승인된 전표를 해제하시겠습니까?")){
dsSlip.setColumn(dsSlip.GetCurrow(),'approval_date','');
dsSlip.setColumn(dsSlip.GetCurrow(),'slip_ballot_no','');
dsSlip.setColumn(dsSlip.GetCurrow(),'approver','');
dsSlip.setColumn(dsSlip.GetCurrow(),'slip_status','미결');
Transaction("batchSlipList","svcAccounting::/slip/slip.do?method=batchSlipList","dsSlip=dsSlip:U dsJournal=dsJournal:U dsJournalManagement=dsJournalManagement:U","","","callback");
}
}
]]></Script>
</Window>

View File

@@ -0,0 +1,470 @@
<?xml version="1.0" encoding="utf-8"?>
<Window>
<Form Height="700" Id="slipInputForm" Left="8" OnLoadCompleted="slipInputForm_OnLoadCompleted" PidAttrib="7" Title="New&#32;Form" Top="8" Ver="1.0" Width="700" WorkArea="true">
<Datasets>
<Dataset DataSetType="Dataset" Id="slipType">
<Contents>
<colinfo id="menu" size="256" type="STRING"/>
<record>
<menu>일반</menu>
</record>
<record>
<menu>매입</menu>
</record>
<record>
<menu>매출</menu>
</record>
<record>
<menu>수금</menu>
</record>
<record>
<menu>반제</menu>
</record>
<record>
<menu>수정</menu>
</record>
<record>
<menu>결산</menu>
</record>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="daecha">
<Contents>
<colinfo id="name" size="256" type="STRING"/>
<record>
<name>차변</name>
</record>
<record>
<name>대변</name>
</record>
</Contents>
</Dataset>
</Datasets>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,14" Height="24" Id="Static0" TabOrder="1" Text="전표입력/조회" Top="8" VAlign="Middle" Width="680"></Static>
<Static Align="Center" Font="KBIZ한마음고딕&#32;B,10" Height="29" Id="Static2" Left="171" TabOrder="3" Text="결의부서" Top="73" VAlign="Middle" Width="61"></Static>
<Edit Align="CENTER" DisableColor="BACKGROUND" Enable="FALSE" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="deptNo" Left="227" LeftMargin="2" TabOrder="4" Top="77" Width="53"></Edit>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="deptInfo" Left="357" OnClick="deptInfo_OnClick" TabOrder="5" Text="검색" Top="76" Width="43"></Button>
<Static Align="Center" Font="KBIZ한마음고딕&#32;B,10" Height="32" Id="Static3" Left="-8" TabOrder="6" Text="작성자" Top="72" VAlign="Middle" Width="61"></Static>
<Edit Align="CENTER" DisableColor="BACKGROUND" Enable="FALSE" Font="KBIZ한마음고딕&#32;B,10" Height="23" Id="empNo" Left="45" LeftMargin="2" TabOrder="7" Top="77" Width="58"></Edit>
<Edit Align="CENTER" DisableColor="BACKGROUND" Enable="FALSE" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="empName" Left="107" LeftMargin="2" TabOrder="8" Top="77" Width="62"></Edit>
<Static Align="Center" Font="KBIZ한마음고딕&#32;B,10" Height="29" Id="Static4" Left="400" TabOrder="9" Text="결의기간" Top="72" VAlign="Middle" Width="61"></Static>
<Static Align="Center" Font="KBIZ한마음고딕&#32;B,10" Height="18" Id="Static5" Left="552" TabOrder="10" Text="~" Top="79" VAlign="Middle" Width="17"></Static>
<Calendar Font="KBIZ한마음고딕&#32;B,10" Height="23" Id="eDate" Left="568" SaturdayTextColor="blue" SundayTextColor="red" TabOrder="11" Top="77" Value="20160930" Width="101"></Calendar>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="slipSearch" Left="195" OnClick="slipSearch_OnClick" TabOrder="12" Text="전표조회" Top="43" Width="67"></Button>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="insertSlip" Left="277" OnClick="insertSlip_OnClick" TabOrder="13" Text="전표입력" Top="43" Width="67"></Button>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="deleteSlip" Left="343" OnClick="deleteSlip_OnClick" TabOrder="14" Text="전표삭제" Top="43" Width="65"></Button>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="save" Left="567" OnClick="save_OnClick" TabOrder="15" Text="저장" Top="43" Width="60"></Button>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="cancel" Left="626" OnClick="cancel_OnClick" TabOrder="16" Text="취소" Top="43" Width="54"></Button>
<Grid AutoFit="TRUE" BindDataset="dsSlip" BkColor2="default" BoldHead="true" Bottom="264" Editable="TRUE" Enable="true" EndLineColor="default" Height="155" Id="slipGrid" InputPanel="FALSE" LineColor="default" MinWidth="100" OnCellClick="slipGrid_OnCellClick" OnEnterDown="slipGrid_OnEnterDown" Right="680" TabOrder="17" TabStop="true" Top="109" UseDBuff="true" UsePopupMenu="true" UseSelColor="true" Visible="true" VLineColor="default" WheelScrollRow="1" Width="680">
<contents>
<format id="Default">
<columns>
<col width="90"/>
<col width="48"/>
<col width="95"/>
<col width="48"/>
<col width="95"/>
<col width="49"/>
<col width="70"/>
<col width="70"/>
<col width="70"/>
</columns>
<head>
<cell align="center" bkcolor="#f7e4cf" col="0" display="text" font="KBIZ한마음고딕&#32;B,10" text="전표번호"/>
<cell align="center" bkcolor="#f7e4cf" col="1" display="text" font="KBIZ한마음고딕&#32;B,10" text="번호"/>
<cell align="center" bkcolor="#f7e4cf" col="2" display="text" font="KBIZ한마음고딕&#32;B,10" text="품의내역"/>
<cell align="center" bkcolor="#f7e4cf" col="3" display="text" font="KBIZ한마음고딕&#32;B,10" text="유형"/>
<cell align="center" bkcolor="#f7e4cf" col="4" display="text" font="KBIZ한마음고딕&#32;B,10" text="기표번호"/>
<cell align="center" bkcolor="#f7e4cf" col="5" display="text" font="KBIZ한마음고딕&#32;B,10" text="상태"/>
<cell align="center" bkcolor="#f7e4cf" col="6" display="text" font="KBIZ한마음고딕&#32;B,10" text="승인자"/>
<cell align="center" bkcolor="#f7e4cf" col="7" display="text" font="KBIZ한마음고딕&#32;B,10" text="대차차액"/>
<cell align="center" bkcolor="#f7e4cf" col="8" display="text" font="KBIZ한마음고딕&#32;B,10" text="작업자"/>
</head>
<body>
<cell align="center" col="0" colid="slip_no" display="text" edit="normal" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="1" colid="slip_seq" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="2" colid="slip_content" display="text" edit="normal" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="3" colid="slip_type" combocol="menu" combodataset="slipType" combotext="menu" display="text" edit="combo" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="4" colid="slip_ballot_no" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="5" colid="slip_status" combotext="menu" display="text" edit="combo" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="6" colid="approver" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="7" colid="difference_amt" display="number" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="8" colid="slip_worker" display="text" font="KBIZ한마음고딕&#32;B,10"/>
</body>
</format>
</contents>
</Grid>
<Grid AutoFit="TRUE" BindDataset="dsJournal" BkColor2="default" BoldHead="true" Bottom="413" Editable="TRUE" Enable="true" EndLineColor="default" Height="152" Id="jourGrid" InputPanel="FALSE" LineColor="default" MinWidth="100" OnCellClick="jourGrid_OnCellClick" OnEnterDown="jourGrid_OnEnterDown" Right="680" TabOrder="2" TabStop="true" Top="261" UseDBuff="true" UsePopupMenu="true" UseSelColor="true" Visible="true" VLineColor="default" WheelScrollRow="1" Width="680">
<contents>
<format id="Default">
<columns>
<col width="30"/>
<col width="40"/>
<col width="70"/>
<col width="140"/>
<col width="60"/>
<col width="70"/>
<col width="80"/>
<col width="90"/>
<col width="60"/>
</columns>
<head>
<cell align="center" bkcolor="#f7e4cf" col="0" display="text" font="KBIZ한마음고딕&#32;B,10" text="순번"/>
<cell align="center" bkcolor="#f7e4cf" col="1" display="text" font="KBIZ한마음고딕&#32;B,10" text="구분"/>
<cell align="center" bkcolor="#f7e4cf" col="2" display="text" font="KBIZ한마음고딕&#32;B,10" text="계정과목코드"/>
<cell align="center" bkcolor="#f7e4cf" col="3" display="text" font="KBIZ한마음고딕&#32;B,10" text="계정과목명"/>
<cell align="center" bkcolor="#f7e4cf" col="4" display="text" font="KBIZ한마음고딕&#32;B,10" text="거래처코드"/>
<cell align="center" bkcolor="#f7e4cf" col="5" display="text" font="KBIZ한마음고딕&#32;B,10" text="거래처명"/>
<cell align="center" bkcolor="#f7e4cf" col="6" display="text" font="KBIZ한마음고딕&#32;B,10" text="금액"/>
<cell align="center" bkcolor="#f7e4cf" col="7" display="text" font="KBIZ한마음고딕&#32;B,10" text="적요"/>
<cell align="center" bkcolor="#f7e4cf" col="8" display="text" font="KBIZ한마음고딕&#32;B,10" text="증빙"/>
</head>
<body>
<cell align="center" col="0" colid="journal_no" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="1" colid="journal_type" combocol="name" combodataset="daecha" combotext="name" display="text" edit="combo" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="2" colid="account_code" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="3" colid="account_name" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="4" colid="customer_code" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="5" colid="customer_name" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="6" colid="journal_amt" display="number" edit="normal" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="7" colid="summary_name" display="text" edit="normal" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="8" colid="JOURNAL_RECEIPT" display="text" edit="normal" font="KBIZ한마음고딕&#32;B,10"/>
</body>
</format>
</contents>
</Grid>
<Div Height="96" Id="jourCompDiv" TabOrder="18" Text="Div0" Top="417" Width="680">
<Contents></Contents>
</Div>
<Edit Align="CENTER" DisableColor="BACKGROUND" Enable="FALSE" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="deptName" Left="283" LeftMargin="2" TabOrder="20" Top="77" Width="69"></Edit>
<Grid AutoFit="TRUE" BindDataset="dsDebtor" BkColor2="default" BoldHead="true" Bottom="682" Enable="true" EndLineColor="default" Height="154" Id="debtor" InputPanel="FALSE" LineColor="default" MinWidth="100" Right="328" TabOrder="19" TabStop="true" Top="528" UseDBuff="true" UsePopupMenu="true" UseSelColor="true" Visible="true" VLineColor="default" WheelScrollRow="1" Width="328">
<contents>
<format id="Default">
<columns>
<col width="80"/>
<col width="140"/>
<col width="100"/>
</columns>
<head>
<cell bkcolor="#f7e4cf" col="0" colspan="2" display="text" font="KBIZ한마음고딕&#32;B,10" text="차변"/>
<cell align="center" bkcolor="#f7e4cf" col="2" display="text" font="KBIZ한마음고딕&#32;B,10"/>
</head>
<body>
<cell col="0" colid="account_code" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell col="1" colid="account_name" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="2" colid="journal_amt" display="number" font="KBIZ한마음고딕&#32;B,10"/>
</body>
<summary>
<cell align="center" bkcolor="#f7e4cf" col="0" colspan="2" display="text" font="KBIZ한마음고딕&#32;B,10" text="차변합계"/>
<cell align="center" bkcolor="#f7e4cf" col="2" display="number" expr='sum(&quot;journal_amt&quot;)' font="KBIZ한마음고딕&#32;B,10"/>
</summary>
</format>
</contents>
</Grid>
<Grid AutoFit="TRUE" BindDataset="dsCreditor" BkColor2="default" BoldHead="true" Bottom="680" Enable="true" EndLineColor="default" Height="154" Id="creditor" InputPanel="FALSE" Left="352" LineColor="default" MinWidth="100" Right="680" TabOrder="21" TabStop="true" Top="526" UseDBuff="true" UsePopupMenu="true" UseSelColor="true" Visible="true" VLineColor="default" WheelScrollRow="1" Width="328">
<contents>
<format id="Default">
<columns>
<col width="80"/>
<col width="140"/>
<col width="100"/>
</columns>
<head>
<cell align="center" bkcolor="#f7e4cf" col="0" colspan="2" display="text" font="KBIZ한마음고딕&#32;B,10" text="대변"/>
<cell align="center" bkcolor="#f7e4cf" col="2" display="text" font="KBIZ한마음고딕&#32;B,10"/>
</head>
<body>
<cell col="0" colid="account_code" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell col="1" colid="account_name" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="2" colid="journal_amt" display="number" font="KBIZ한마음고딕&#32;B,10"/>
</body>
<summary>
<cell align="center" bkcolor="#f7e4cf" col="0" colspan="2" display="text" font="KBIZ한마음고딕&#32;B,10" text="대변합계"/>
<cell align="center" bkcolor="#f7e4cf" col="2" display="number" expr='sum(&quot;journal_amt&quot;)' font="KBIZ한마음고딕&#32;B,10"/>
</summary>
</format>
</contents>
</Grid>
<Calendar Font="KBIZ한마음고딕&#32;B,10" HeaderFont="KBIZ한마음고딕&#32;B,10" Height="23" Id="sDate" Left="455" SaturdayTextColor="blue" SelectedDayFont="KBIZ한마음고딕&#32;B,9" SundayTextColor="red" TabOrder="22" Top="77" Value="20160901" WeeksFont="KBIZ한마음고딕&#32;B,9" Width="99"></Calendar>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="insertJournal" Left="423" OnClick="insertJournal_OnClick" TabOrder="23" Text="분개입력" Top="43" Width="65"></Button>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="deleteJournal" Left="487" OnClick="deleteJournal_OnClick" TabOrder="24" Text="분개삭제" Top="43" Width="65"></Button>
</Form>
<Script><![CDATA[var accountCode, slipNo, jourSlipNo, accCode;
// 콜백 함수 ~
function callback(trid, ErrorCode, ErrorMsg)
{
if(trid=="getSlipList"){
if(dsSlip.GetRowCount()==0){
alert("조회된 데이터가 없습니다.");
}else{
//alert(global.http.RecvHttpStr);
slipListFilter(dsSlip.getCurrow());
jourGrid.Redraw=true;
//slipNo=dsSlip.GetColumn(dsSlip.GetCurrow(),"slip_no");
//createComponent(0,slipNo);
createComponent(dsJournal.getCurrow(),dsJournal.getColumn(dsJournal.getCurrow(),"slip_no"));
setChaDae(0);
}
}else if(trid=="batchSlipList"){
if(ErrorCode!=0){
alert("저장 실패: "+ErrorMsg);
}else{
alert("저장 완료");
}
}
}
// 부서 검색 버튼
function deptInfo_OnClick(obj)
{
dsDetailCode.filter("distinction_code='DP'");
dialog("base::codeInfo.xml","",400,300,"",550,200);
}
// 전표 조회 버튼
function slipSearch_OnClick(obj)
{
if(deptNo.Text==''){
alert("부서를 선택해주세요. ");
}else{
// 실시간이 아니라 true됨과 동시에 한번에 변경된 내용이 화면에 뿌려진다. 변경시 변경이 완료된 시점에 수정이 가능하다.
jourGrid.Redraw=false;
// 전표, 분개, 분개상세 데이터를 가져온다.
Transaction("getSlipList","svcAccounting::/slip/slip.do?method=getSlipList","","dsSlip=dsSlip dsJournal=dsJournal dsJournalManagement=dsJournalManagement",
"deptName='"+deptName.Text+"' sDate='"+sDate.Value+"' eDate='"+eDate.Value+"'","callback");
}
}
// 전표 입력 버튼 전표번호, 사원번호, 결의날짜 셋팅
function insertSlip_OnClick(obj)
{
strDate = GetDate();
// Mid 입력된 문자열에서 가운데 부분을 주어진 길이만큼 Return한다.
strDate = Mid(strDate,0,8);
//alert(strDate);
dsSlip.AddRow();
dsSlip.SetColumn(dsSlip.row,"slip_no",strDate+"-");
dsSlip.SetColumn(dsSlip.row,"emp_no",empNo);
dsSlip.SetColumn(dsSlip.row,"slip_date",strDate);
dsSlip.SetColumn(dsSlip.row,"slip_status","미결");
dsSlip.SetColumn(dsSlip.row,"slip_worker",gvEmpName);
dsSlip.SetColumn(dsSlip.row,"slip_dept",gvDeptName);
dsSlip.SetColumn(dsSlip.row,"emp_no",gvEmpNo);
}
// 전표삭제 버튼
function deleteSlip_OnClick(obj)
{
if(Confirm("선택한 전표를 삭제하시겠습니까?")){
dsSlip.DeleteRow(dsSlip.row);
// 전표를 삭제하면 분개도 삭제되어야 한다.
for(i=0;i<dsJournal.getRowcount()+1;i++){
dsJournal.DeleteRow(i);
dsJournalManagement.DeleteRow(i);
}
}
}
// 분개 입력 버튼
function insertJournal_OnClick(obj)
{
// 유형을 선택했을 때 분개 칸 생긴다.
dsJournal.AddRow();
dsJournal.SetColumn(dsJournal.row,"journal_no",dsJournal.GetCurrow()+1);
//dsJournal.SetColumn(dsJournal.row,"slip_no",dsSlip.GetColumn(dsSlip.GetCurrow(),"slip_no"));
jourSlipNo=dsSlip.getColumn(dsSlip.getCurrow(), "slip_no");
//dsJournal.SetColumn(dsJournal.row,"journal_no",dsJournal.GetCurrow());
//dsJournal.SetColumn(nRow,"slip_seq",0);
// 작성한 전표번호를 분개 데이터셋에도 세팅한다.
//alert(jourSlipNo);
dsJournal.SetColumn(dsJournal.row,"slip_no",jourSlipNo);
dsJournalManagement.SetColumn(nRow,"journal_no",dsJournal.GetCurrow());
dsJournalManagement.SetColumn(nRow,"slip_no",jourSlipNo);
}
// 분개 삭제 버튼
function deleteJournal_OnClick(obj)
{
dsJournal.DeleteRow(dsJournal.row);
}
// slipInput 폼이 로드 된 후 ~
function slipInputForm_OnLoadCompleted(obj)
{
empNo.Text=gvEmpNo;
empName.Text=gvEmpName;
// Dataset의 Column 정보와 Record를 모두 삭제한다. 최초 Loading 된 Data도 전부 삭제되므로 복구할 수 없다.
dsSlip.Clear();
dsJournal.Clear();
dsDebtor.Clear();
dsCreditor.Clear();
// 분개 창에서 계정과목을 띄운다.
Transaction("getAccountList","svcAccounting::/account/account.do?method=getAccountList","","dsAccount=dsAccount dsAcountManagement=dsAcountManagement ","","callback");
}
// 전표 그리드의 셀을 클릭 하면 ~
function slipGrid_OnCellClick(obj,nRow,nCell,nX,nY,nPivotIndex)
{
slipListFilter(nRow);
// 차변, 대변 데이터셋을 세팅한다.
setChaDae(nRow);
}
// 전표 그리드에서 엔터를 치면 ~
function slipGrid_OnEnterDown(obj,nRow,nCell,strVal,nPivotIndex)
{
// 엔터치면 다음 셀로 이동한다.
obj.MoveToNextCell();
}
// 분개 그리드 셀을 클릭하면 뜨는 Dialog
function jourGrid_OnCellClick(obj,nRow,nCell,nX,nY,nPivotIndex)
{
if(nCell==2 || nCell==3){
//계정과목 컬럼을 세팅한다.
Dialog("base::accountInfo.xml","",250,300);
}else if(nCell==4 || nCell==5){
//거래처 컬럼을 세팅한다.
dsDetailCode.Filter("distinction_code='CT'");
Dialog("base::codeInfo.xml","",250,300);
}
createComponent(nRow,slipNo);
}
// 분개 그리드에서 엔터를 치면 ~
function jourGrid_OnEnterDown(obj,nRow,nCell,strVal,nPivotIndex)
{
obj.MoveToNextCell();
setChaDae(dsSlip.GetCurrow());
}
// 컴포넌트를 생성
function createComponent(nRow,slipNo){
// 기존 분개상세를 지운다.
for ( var c = Length(jourCompDiv.Components()); c >= 0; c-- ) {
jourCompDiv.Destroy(jourCompDiv.Components[c].id);
}
jourSlipNo=dsSlip.GetColumn(dsSlip.GetCurrow(),"slip_no");
trace("jourSlipNo ::: --------------- "+jourSlipNo);
dsJournalManagement.Filter("journal_no='"+dsJournal.GetColumn(nRow,"journal_no")+"' && slip_no='"+jourSlipNo+"'");
// Dataset의 내용을 XML 형식으로 저장해서 문자열로 얻어낸다.
//trace(dsJournalManagement.SaveXML());
var iTop=3, iLeft=3;
// 분개 상세를 생성한다.
for(i=1; i<dsJournalManagement.GetRowCount()+1; i++){
var accValue=dsJournalManagement.GetColumn(i-1,"value");
var accName=dsJournalManagement.GetColumn(i-1,"management_name");
var accComp=dsJournalManagement.GetColumn(i-1,"management_type");
trace(accValue+" ---------- "+accName+" ---------- "+accComp);
// Create((StartXML에 등록된) 컴포넌트명, ID, 속성들, 인자들)
jourCompDiv.Create("Edit","text"+i, 'Border="None" Enable="False" Height="25" Align="CENTER" Left="'+iLeft+'" Top="'+iTop+'" Width="70" text = "'+accName+'" ');
iLeft+=75;
// OnChanged는 '' 맨앞에 두면 안먹힌다.
if(accComp != 'CODE'){
jourCompDiv.Create(accComp,i,'Height="25" Align="CENTER" Left="'+iLeft+'" Top="'+iTop+'" Width="120" OnChanged="EditOnChanged" text = "'+accValue+'" ');
}else{
accCode=dsJournalManagement.GetColumn(i-1,"management_code");
jourCompDiv.Create('Edit',i,'Height="25" Align="CENTER" Left="'+iLeft+'" Top="'+iTop+'" Width="120" OnClick="codeInput" text = "'+accValue+'" ');
}
if(i%4==0){
iTop+=35;
iLeft=3;
}else{
iLeft+=120;
}
}
}
function EditOnChanged(obj, strCode, strText, nOldIndex, nNewIndex)
{
//alert(obj.id);
var num = trim(obj.id);
var comment = "";
comment = obj.value;
//trace(dsJournalManagement.SaveXML());
dsJournalManagement.SetColumn(parseInt(num)-1,"value",comment);
}
function codeInput(obj){
dsDetailCode.filter("distinction_code='"+accCode+"'");
var codeIdx;
codeIdx = "codeNum="+trim(obj.id);
Dialog("base::codeInfo.xml",codeIdx,300,300,"",550,200);
}
// 현재 전표에 따라 전표번호로 분개 리스트를 필터해준다
function slipListFilter(nRow)
{
slipNo=dsSlip.GetColumn(nRow,"slip_no");
jourGrid.Redraw=false;
dsJournal.filter("slip_no='"+slipNo+"'");
jourGrid.Redraw=true;
}
// 차변/대변 뿌리기
function setChaDae(nRow)
{
debtor.Redraw = false;
creditor.Redraw = false;
dsDebtor.copyF(dsJournal);
dsDebtor.Filter("journal_type='차변'");
dsCreditor.copyF(dsJournal);
dsCreditor.Filter("journal_type='대변'");
debtor.Redraw = true;
creditor.Redraw = true;
// 대차차액을 구한다. summary는 그리드의 sum을 뜻한다.
var debtor=parseInt(replace(debtor.GetCellText("summary", 0, 1),",",""));
var creditor=parseInt(replace(creditor.GetCellText("summary", 0, 1),",",""));
trace(debtor+" --------------- "+creditor);
dsSlip.SetColumn(nRow,"difference_amt",debtor-creditor);
}
// 저장 버튼
function save_OnClick(obj)
{
if(Confirm("전표를 저장하시겠습니까?")){
//var count=dsJournal.GetCount()-1;
// 분개 타입이 없는 행을 삭제한다.
//alert("count : "+count);
if(length(dsJournal.GetColumn(count, "journal_type"))==0){
dsJournal.DeleteRow(count);
}
Transaction("batchSlipList","svcAccounting::/slip/slip.do?method=batchSlipList","dsSlip=dsSlip:U dsJournal=dsJournal:U dsJournalManagement=dsJournalManagement:U",
"","","callback");
}
}
// 취소 버튼
function cancel_OnClick(obj)
{
if(confirm("취소하시겠습니까?")){
Reload();
}
}
]]></Script>
</Window>

View File

@@ -0,0 +1,255 @@
<?xml version="1.0" encoding="utf-8"?>
<ConnectGroup BkColor="white" device="Win32&#32;(800x600)" Font="Default,0" height="600" SessionURL="base::login.xml" Statusbar="true" Title="accounting" titlebar="true" version="1.0" width="800" work_height="562" work_width="800">
<container Version="1000">
<Component Height="21" Id="Spin" Image="10" Name="cySpin" Title="Spin" Version="1000" Width="121"/>
<Component Height="21" Id="MaskEdit" Image="19" Name="cyMaskedit" Title="MaskEdit" Version="1000" Width="121"/>
<Component Height="21" Id="Button" Image="2" Name="cyButton" Title="Button" Version="1000" Width="104"/>
<Component Height="13" Id="Static" Image="8" Name="cyStatic" Title="Static" Version="1000" Width="40"/>
<Component Height="21" Id="Edit" Image="3" Name="cyEdit" Title="Edit" Version="1000" Width="121"/>
<Component Height="65" Id="Shape" Image="28" Name="cyShape" Title="Shape" Version="1000" Width="65"/>
<Component Height="65" Id="Pie" Image="30" Name="cyPie" Title="Pie" Version="1000" Width="65"/>
<Component Height="21" Id="Checkbox" Image="4" Name="cyCheckBox" Title="Check&#32;Box" Version="1000" Width="97"/>
<Component Height="24" Id="FileDialog" Image="18" Name="cyFileDialog" Title="File&#32;Dialog" Version="1000" Width="24"/>
<Component Height="24" Id="File" Image="25" Name="cyFile" Title="File" Version="1000" Width="24"/>
<Component Height="97" Id="List" Image="6" Name="cyListBox" Title="List" Version="1000" Width="145"/>
<Component Height="21" Id="Combo" Image="5" Name="cyComboEx" Title="ComboBox" Version="1000" Width="145"/>
<Component Height="21" Id="Radio" Image="7" Name="cyRadio" Title="Radio" Version="1000" Width="113"/>
<Component Height="72" Id="TextArea" Image="16" Name="cyTextArea" Title="Text&#32;Area" Version="1000" Width="185"/>
<Component Height="17" Id="Progressbar" Image="31" Name="cyProgressbar" Title="Progressbar" Version="1000" Width="150"/>
<Component Height="97" Id="TreeView" Image="11" Module="CyTreeView" Name="cyTreeView" Title="Tree&#32;View" Version="1000" Width="121"/>
<Component Height="120" Id="Grid" Image="1" Module="CyGrid" Name="cyGrid" Title="Grid" Version="1000" Width="320"/>
<Component Height="105" Id="Image" Image="9" Name="cyImage" Title="Image" Version="1000" Width="105"/>
<Component Height="21" Id="Calendar" Image="13" Module="CyCalendarEx" Name="cyCalendarEx" Title="Calendar" Version="1000" Width="145"/>
<Component Height="193" Id="Div" Image="20" Name="cyDiv" Title="Division" Version="1000" Width="289"/>
<Component Id="PopupDiv" Image="54" Name="CyPopupDiv" Title="Popup&#32;Div" Version="1000"/>
<Component Height="193" Id="Tab" Image="12" Name="cyTab" Title="Tab" Version="1000" Width="289"/>
<Component Height="260" Id="WebBrowser" Image="24" Module="CyWebBrowser" Name="cyWebBrowser" Title="WebBrowser" Version="1000" Width="364"/>
<Component Height="168" Id="swFlash" Image="27" Module="CySWFlash" Name="cySWFlash" Title="Flash" Version="1000" Width="248"/>
<Component Height="24" Id="MenuBar" Image="32" Module="CyMenuBar" Name="cyMenuBar" Title="MenuBar" Version="1000" Width="192"/>
<Component Height="50" Id="Split" Image="55" Module="CySplit" Name="cySplit" Title="Split" Version="1000" Width="8"/>
<Component Height="8" Id="SplitJoint" Image="56" Module="CySplitU" Name="cySplitJoint" Title="SplitJoint" Version="1000" Width="8"/>
<Component Height="50" Id="Sign" Image="57" Module="CySign" Name="cySign" Title="Sign" Version="1000" Width="50"/>
</container>
<protocols version="1000">
<protocol id="file" name="cyHttpAdp" version="1000"/>
<protocol id="http" name="cyHttpAdp" version="1000"/>
<protocol id="https" name="cyHttpAdp" version="1000"/>
</protocols>
<AppGroups>
<AppGroup CodePage="utf-8" Language="0" Prefix="base" Type="Form" Version="1.0">
<script Baseurl="./base/Win32/" CacheLevel="none" Ext="xml" ScriptUrl="./base/Script/"/>
</AppGroup>
<AppGroup CodePage="utf-8" Language="1042" Prefix="insa" Type="form" Version="1000">
<Script Baseurl="./insa/Win32/" ScriptUrl="./insa/Script/"/>
</AppGroup>
<AppGroup CodePage="utf-8" Language="1042" Prefix="accounting" Type="form" Version="1000">
<Script Baseurl="./accounting/Win32/" ScriptUrl="./accounting/Script/"/>
</AppGroup>
<AppGroup CodePage="utf-8" Language="1042" Prefix="settlement" Type="form" Version="1000">
<Script Baseurl="./settlement/Win32/" ScriptUrl="./settlement/Script/"/>
</AppGroup>
<DataGroup Baseurl="http://localhost/project4th/base" CodePage="utf-8" Language="0" Prefix="svcBase" Streamver="4000" TrMethod="normal" Type="JSP" Version="1000"/>
<DataGroup Baseurl="http://localhost/project4th/accounting" CodePage="utf-8" Language="0" Prefix="svcAccounting" Streamver="4000" TrMethod="normal" Type="JSP" Version="1000"/>
<DataGroup Baseurl="http://localhost/project4th/insa" CodePage="utf-8" Language="0" Prefix="svcInsa" Streamver="4000" TrMethod="normal" Type="JSP" Version="1000"/>
</AppGroups>
<Script></Script>
<DataObjects></DataObjects>
<ServiceObjects></ServiceObjects>
<Datasets>
<Dataset DataSetType="Dataset" Id="dsEmp">
<Contents>
<colinfo id="emp_no" size="256" summ="default" type="STRING"/>
<colinfo id="emp_name" size="256" summ="default" type="STRING"/>
<colinfo id="emp_address" size="256" summ="default" type="STRING"/>
<colinfo id="emp_email" size="256" summ="default" type="STRING"/>
<colinfo id="emp_position" size="256" summ="default" type="STRING"/>
<colinfo id="dept_no" size="256" summ="default" type="STRING"/>
<colinfo id="emp_image" size="256" summ="default" type="STRING"/>
<colinfo id="emp_pw" size="256" summ="default" type="STRING"/>
<colinfo id="memo" size="256" summ="default" type="STRING"/>
<colinfo id="emp_tel" size="256" summ="default" type="STRING"/>
<colinfo id="emp_hiredate" size="256" summ="default" type="STRING"/>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="dsCode">
<Contents>
<colinfo id="distinction_code" size="256" summ="default" type="STRING"/>
<colinfo id="code_name" size="256" summ="default" type="STRING"/>
<colinfo id="code_use" size="256" summ="default" type="STRING"/>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="dsDetailCode">
<Contents>
<colinfo id="distinction_code" size="256" summ="default" type="STRING"/>
<colinfo id="detail_code" size="256" summ="default" type="STRING"/>
<colinfo id="detail_codename" size="256" summ="default" type="STRING"/>
<colinfo id="detail_use" size="256" summ="default" type="STRING"/>
<colinfo id="memo" size="256" summ="default" type="STRING"/>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="dsMenu">
<Contents>
<colinfo id="level" size="256" summ="default" type="STRING"/>
<colinfo id="menu_code" size="256" summ="default" type="STRING"/>
<colinfo id="menu_name" size="256" summ="default" type="STRING"/>
<colinfo id="menu_url" size="256" summ="default" type="STRING"/>
<colinfo id="menu_use" size="256" summ="default" type="STRING"/>
<colinfo id="parent_menu_code" size="256" summ="default" type="STRING"/>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="dsSlip">
<Contents>
<colinfo id="slip_no" size="256" summ="default" type="STRING"/>
<colinfo id="emp_no" size="256" summ="default" type="STRING"/>
<colinfo id="slip_ballot_no" size="256" summ="default" type="STRING"/>
<colinfo id="slip_seq" size="256" summ="default" type="STRING"/>
<colinfo id="slip_date" size="256" summ="default" type="STRING"/>
<colinfo id="slip_content" size="256" summ="default" type="STRING"/>
<colinfo id="slip_status" size="256" summ="default" type="STRING"/>
<colinfo id="approver" size="256" summ="default" type="STRING"/>
<colinfo id="approval_date" size="256" summ="default" type="STRING"/>
<colinfo id="difference_amt" size="256" summ="default" type="STRING"/>
<colinfo id="slip_worker" size="256" summ="default" type="STRING"/>
<colinfo id="slip_type" size="256" summ="default" type="STRING"/>
<colinfo id="slip_dept" size="256" summ="default" type="STRING"/>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="dsJournal">
<Contents>
<colinfo id="journal_no" size="256" summ="default" type="STRING"/>
<colinfo id="slip_no" size="256" summ="default" type="STRING"/>
<colinfo id="account_code" size="256" summ="default" type="STRING"/>
<colinfo id="customer_code" size="256" summ="default" type="STRING"/>
<colinfo id="account_name" size="256" summ="default" type="STRING"/>
<colinfo id="customer_name" size="256" summ="default" type="STRING"/>
<colinfo id="journal_type" size="256" summ="default" type="STRING"/>
<colinfo id="journal_amt" size="256" summ="default" type="STRING"/>
<colinfo id="summary_code" size="256" summ="default" type="STRING"/>
<colinfo id="summary_name" size="256" summ="default" type="STRING"/>
<colinfo id="journal_receipt" size="256" summ="default" type="STRING"/>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="dsAccount">
<Contents>
<colinfo id="account_code" size="256" summ="default" type="STRING"/>
<colinfo id="account_name" size="256" summ="default" type="STRING"/>
<colinfo id="parent_account" size="256" summ="default" type="STRING"/>
<colinfo id="account_balance" size="256" summ="default" type="STRING"/>
<colinfo id="account_change" size="256" summ="default" type="STRING"/>
<colinfo id="account_use" size="256" summ="default" type="STRING"/>
<colinfo id="level" size="256" summ="default" type="STRING"/>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="dsAcountManagement">
<Contents>
<colinfo id="management_code" size="256" summ="default" type="STRING"/>
<colinfo id="account_code" size="256" summ="default" type="STRING"/>
<colinfo id="account_management_name" size="256" summ="default" type="STRING"/>
<colinfo id="account_change" size="256" summ="default" type="STRING"/>
<colinfo id="account_use" size="256" summ="default" type="STRING"/>
<colinfo id="management_type" size="256" summ="default" type="STRING"/>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="dsSettlement">
<Contents>
<colinfo id="settlement_code" size="256" summ="default" type="STRING"/>
<colinfo id="settlement_name" size="256" summ="default" type="STRING"/>
<colinfo id="parent_settlement_code" size="256" summ="default" type="STRING"/>
<colinfo id="settlement_sum" size="256" summ="default" type="STRING"/>
<colinfo id="journal_amt" size="256" summ="default" type="STRING"/>
<colinfo id="settlement_year" size="256" summ="default" type="STRING"/>
<colinfo id="settlement_amt" size="256" summ="default" type="STRING"/>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="dsSettlementAccount">
<Contents>
<colinfo id="settlement_code" size="256" summ="default" type="STRING"/>
<colinfo id="settlement_name" size="256" summ="default" type="STRING"/>
<colinfo id="settlement_account_code" size="256" summ="default" type="STRING"/>
<colinfo id="settlement_account_name" size="256" summ="default" type="STRING"/>
<colinfo id="settlement_account_summary" size="256" summ="default" type="STRING"/>
<colinfo id="offsetting_account_code" size="256" summ="default" type="STRING"/>
<colinfo id="offsetting_account_name" size="256" summ="default" type="STRING"/>
<colinfo id="offsetting_account_summary" size="256" summ="default" type="STRING"/>
<colinfo id="memo" size="256" summ="default" type="STRING"/>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="dsJournalManagement">
<Contents>
<colinfo id="journal_no" size="256" summ="default" type="STRING"/>
<colinfo id="slip_no" size="256" summ="default" type="STRING"/>
<colinfo id="management_code" size="256" summ="default" type="STRING"/>
<colinfo id="value" size="256" summ="default" type="STRING"/>
<colinfo id="management_name" size="256" summ="default" type="STRING"/>
<colinfo id="management_type" size="256" summ="default" type="STRING"/>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="dsDebtor">
<Contents>
<colinfo id="journal_no" size="256" summ="default" type="STRING"/>
<colinfo id="account_code" size="256" summ="default" type="STRING"/>
<colinfo id="customer_code" size="256" summ="default" type="STRING"/>
<colinfo id="account_name" size="256" summ="default" type="STRING"/>
<colinfo id="journal_receipt" size="256" summ="default" type="STRING"/>
<colinfo id="customer_name" size="256" summ="default" type="STRING"/>
<colinfo id="journal_type" size="256" summ="default" type="STRING"/>
<colinfo id="journal_amt" size="256" summ="default" type="STRING"/>
<colinfo id="summary_name" size="256" summ="default" type="STRING"/>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="dsCreditor">
<Contents>
<colinfo id="journal_no" size="256" summ="default" type="STRING"/>
<colinfo id="account_code" size="256" summ="default" type="STRING"/>
<colinfo id="customer_code" size="256" summ="default" type="STRING"/>
<colinfo id="account_name" size="256" summ="default" type="STRING"/>
<colinfo id="journal_receipt" size="256" summ="default" type="STRING"/>
<colinfo id="customer_name" size="256" summ="default" type="STRING"/>
<colinfo id="journal_type" size="256" summ="default" type="STRING"/>
<colinfo id="journal_amt" size="256" summ="default" type="STRING"/>
<colinfo id="summary_name" size="256" summ="default" type="STRING"/>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="dsJournalList">
<Contents>
<colinfo id="slip_ballot_date" size="256" summ="default" type="STRING"/>
<colinfo id="slip_seq" size="256" summ="default" type="STRING"/>
<colinfo id="journal_amt" size="256" summ="default" type="STRING"/>
<colinfo id="account_name" size="256" summ="default" type="STRING"/>
<colinfo id="summary_name" size="256" summ="default" type="STRING"/>
<colinfo id="customer_code" size="256" summ="default" type="STRING"/>
<colinfo id="customer_name" size="256" summ="default" type="STRING"/>
<colinfo id="debtor" size="256" summ="default" type="STRING"/>
<colinfo id="creditor" size="256" summ="default" type="STRING"/>
<colinfo id="slip_type" size="256" summ="default" type="STRING"/>
<colinfo id="journal_type" size="256" summ="default" type="STRING"/>
<colinfo id="slip_no" size="256" summ="default" type="STRING"/>
<colinfo id="journal_no" size="256" summ="default" type="STRING"/>
<colinfo id="account_code" size="256" summ="default" type="STRING"/>
<colinfo id="slip_status" size="256" summ="default" type="STRING"/>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="dsPermission">
<Contents>
<colinfo id="permission_code" size="256" summ="default" type="STRING"/>
<colinfo id="menu_name" size="256" summ="default" type="STRING"/>
<colinfo id="menu_code" size="256" summ="default" type="STRING"/>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="dsEmpPermission">
<Contents>
<colinfo id="emp_no" size="256" summ="default" type="STRING"/>
<colinfo id="permission_code" size="256" summ="default" type="STRING"/>
<colinfo id="permission_name" size="256" summ="default" type="STRING"/>
</Contents>
</Dataset>
</Datasets>
<Resource Ext="res" Url="C:\MiniProject\MiPlatform\accounting\image\images.res" Version="1000"/>
<Variables>
<Var Id="gvEmpName" Type="Global"/>
<Var Id="gvEmpNo" Type="Global"/>
<Var Id="gvEmpPs" Type="Global"/>
<Var Id="gvDeptNo" Type="Global"/>
<Var Id="gvDeptName" Type="Global"/>
</Variables>
</ConnectGroup>

View File

@@ -0,0 +1,220 @@
<?xml version="1.0" encoding="utf-8"?>
<Window>
<Form Height="400" Id="accountInfoForm" Left="8" OnLoadCompleted="accountInfoForm_OnLoadCompleted" PidAttrib="7" Title="New&#32;Form" Top="8" Ver="1.0" Width="608" WorkArea="true">
<Datasets>
<Dataset DataSetType="Dataset" Id="dsFirstAccount">
<Contents>
<colinfo id="account_code" size="256" summ="default" type="STRING"/>
<colinfo id="account_name" size="256" summ="default" type="STRING"/>
<colinfo id="parent_account" size="256" summ="default" type="STRING"/>
<colinfo id="account_balance" size="256" summ="default" type="STRING"/>
<colinfo id="account_change" size="256" summ="default" type="STRING"/>
<colinfo id="account_use" size="256" summ="default" type="STRING"/>
<colinfo id="level" size="256" summ="default" type="STRING"/>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="dsSecondAccount">
<Contents>
<colinfo id="account_code" size="256" summ="default" type="STRING"/>
<colinfo id="account_name" size="256" summ="default" type="STRING"/>
<colinfo id="parent_account" size="256" summ="default" type="STRING"/>
<colinfo id="account_balance" size="256" summ="default" type="STRING"/>
<colinfo id="account_change" size="256" summ="default" type="STRING"/>
<colinfo id="account_use" size="256" summ="default" type="STRING"/>
<colinfo id="level" size="256" summ="default" type="STRING"/>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="dsThirdAccount">
<Contents>
<colinfo id="account_code" size="256" summ="default" type="STRING"/>
<colinfo id="account_name" size="256" summ="default" type="STRING"/>
<colinfo id="parent_account" size="256" summ="default" type="STRING"/>
<colinfo id="account_balance" size="256" summ="default" type="STRING"/>
<colinfo id="account_change" size="256" summ="default" type="STRING"/>
<colinfo id="account_use" size="256" summ="default" type="STRING"/>
<colinfo id="level" size="256" summ="default" type="STRING"/>
</Contents>
</Dataset>
</Datasets>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,14" Height="26" Id="Static0" Left="8" TabOrder="1" Text="계정과목조회" Top="8" VAlign="Middle" Width="592"></Static>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,10" Height="27" Id="Static1" Left="200" TabOrder="2" Text="항목검색" Top="45" VAlign="Middle" Width="56"></Static>
<Edit Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="search" Left="260" LeftMargin="2" OnKeyDown="search_OnKeyDown" TabOrder="3" Top="45" Width="132"></Edit>
<Button Height="24" Id="searchBtn" ImageID="search" Left="394" OnClick="searchBtn_OnClick" TabOrder="4" Text="Button0" Top="46" Width="23"></Button>
<Grid AutoEnter="TRUE" AutoFit="TRUE" BindDataset="dsFirstAccount" BkColor2="default" BoldHead="true" Bottom="384" ColSizing="TRUE" Enable="true" EndLineColor="default" Height="272" Id="firstAccountGrid" InputPanel="FALSE" Left="8" LineColor="default" MinWidth="100" MultiSelect="TRUE" OnCellClick="firstAccountGrid_OnCellClick" Right="168" TabOrder="5" TabStop="true" Top="112" UseDBuff="true" UsePopupMenu="true" UseSelColor="true" Visible="true" VLineColor="default" WheelScrollRow="1" Width="160">
<contents>
<format id="Default">
<columns>
<col width="50"/>
<col width="60"/>
</columns>
<head>
<cell bkcolor="#f7e4cf" col="0" display="text" font="KBIZ한마음고딕&#32;B,10" text="계정코드"/>
<cell bkcolor="#f7e4cf" col="1" display="text" font="KBIZ한마음고딕&#32;B,10" text="계정명"/>
</head>
<body>
<cell align="center" col="0" colid="account_code" display="text" edit="normal" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="1" colid="account_name" display="text" edit="normal" font="KBIZ한마음고딕&#32;B,10"/>
</body>
</format>
</contents>
</Grid>
<Grid AutoEnter="TRUE" AutoFit="TRUE" BindDataset="dsSecondAccount" BkColor2="default" BoldHead="true" Bottom="384" ColSizing="TRUE" Enable="true" EndLineColor="default" Height="272" Id="secondAccountGrid" InputPanel="FALSE" Left="172" LineColor="default" MinWidth="100" MultiSelect="TRUE" OnCellClick="secondAccountGrid_OnCellClick" Right="332" TabOrder="6" TabStop="true" Top="112" UseDBuff="true" UsePopupMenu="true" UseSelColor="true" Visible="true" VLineColor="default" WheelScrollRow="1" Width="160">
<contents>
<format id="Default">
<columns>
<col width="50"/>
<col width="60"/>
</columns>
<head>
<cell bkcolor="#f7e4cf" col="0" display="text" font="KBIZ한마음고딕&#32;B,10" text="계정코드"/>
<cell bkcolor="#f7e4cf" col="1" display="text" font="KBIZ한마음고딕&#32;B,10" text="계정명"/>
</head>
<body>
<cell align="center" col="0" colid="account_code" display="text" edit="normal" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="1" colid="account_name" display="text" edit="normal" font="KBIZ한마음고딕&#32;B,10"/>
</body>
</format>
</contents>
</Grid>
<Grid AutoEnter="TRUE" AutoFit="TRUE" BindDataset="dsThirdAccount" BkColor2="default" BoldHead="true" Bottom="384" ColSizing="TRUE" Enable="true" EndLineColor="default" Height="272" Id="thirdAccountGrid" InputPanel="FALSE" Left="336" LineColor="default" MinWidth="100" MultiSelect="TRUE" OnCellDBLClick="thirdAccountGrid_OnCellDblClick" Right="600" TabOrder="7" TabStop="true" Top="112" UseDBuff="true" UsePopupMenu="true" UseSelColor="true" Visible="true" VLineColor="default" WheelScrollRow="1" Width="264">
<contents>
<format id="Default">
<columns>
<col width="50"/>
<col width="100"/>
</columns>
<head>
<cell bkcolor="#f7e4cf" col="0" display="text" font="KBIZ한마음고딕&#32;B,10" text="계정코드"/>
<cell bkcolor="#f7e4cf" col="1" display="text" font="KBIZ한마음고딕&#32;B,10" text="계정명"/>
</head>
<body>
<cell align="center" col="0" colid="account_code" display="text" edit="normal" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="1" colid="account_name" display="text" edit="normal" font="KBIZ한마음고딕&#32;B,10"/>
</body>
</format>
</contents>
</Grid>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="Static8" Left="8" TabOrder="8" Text="상위&#32;계정" Top="80" VAlign="Middle" Width="160"></Static>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="Static9" Left="172" TabOrder="9" Text="중간&#32;계정" Top="80" VAlign="Middle" Width="160"></Static>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="Static10" Left="336" TabOrder="10" Text="하위&#32;계정" Top="80" VAlign="Middle" Width="264"></Static>
</Form>
<Script><![CDATA[
// 계정과목 폼이 로드 된 후~
function accountInfoForm_OnLoadCompleted(obj)
{
//dsAccount.filter("account_use='Y'");
dsAccount.UnFilter();
dsFirstAccount.Copy(dsAccount);
dsFirstAccount.Filter("level=1");
}
// 조회 버튼
function searchBtn_OnClick(obj)
{
var accountCode=search.Text;
var sFilter;
if(accountCode=""){
alert("검색할 항목을 입력하여 주십시오.");
dsAccount.UnFilter();
}else{
dsThirdAccount.Copy(dsAccount);
if(accountCode.trim().length > 0 ) {
sFilter += " || pos(account_name," + quote(accountCode) + ") >= 0";
sFilter += " || pos(account_code," + quote(accountCode) + ") >= 0";
}
dsThirdAccount.Filter(sFilter);
//dsAccount.filter("account_name='"+name"'");
}
}
// 조회 창에서 엔터를 치면 ~
function search_OnKeyDown(obj,nChar,bShift,bCtrl,bAlt,nLLParam,nHLParam)
{
if(nChar == 13){
searchBtn_OnClick();
}
}
// 상위 계정 그리드 클릭 시
function firstAccountGrid_OnCellClick(obj,nRow,nCell,nX,nY,nPivotIndex)
{
var firstCode=dsFirstAccount.GetColumn(nRow, "account_code");
//alert(firstCode);
dsSecondAccount.Copy(dsAccount);
dsSecondAccount.Filter("parent_account='"+firstCode+"'");
}
// 중간 계정 그리드 클릭 시
function secondAccountGrid_OnCellClick(obj,nRow,nCell,nX,nY,nPivotIndex)
{
var secondCode=dsSecondAccount.GetColumn(nRow, "account_code");
//alert(firstCode);
dsThirdAccount.Copy(dsAccount);
dsThirdAccount.Filter("parent_account='"+secondCode+"'");
}
// 하위 계정 그리드 더블클릭 시
function thirdAccountGrid_OnCellDblClick(obj,nRow,nCell,nX,nY,nPivotIndex)
{
var code=dsThirdAccount.getColumn(nRow,"account_code");
var name=dsThirdAccount.getColumn(nRow,"account_name");
parent.dsJournal.SetColumn(parent.dsJournal.GetCurrow(),"account_code",code);
parent.dsJournal.SetColumn(parent.dsJournal.GetCurrow(),"account_name",name);
// 변경되는 값을 jourCompDiv에 세팅한다.
var journalNo=parent.dsJournal.GetColumn(parent.dsJournal.GetCurrow(),"journal_no");
var slipNo=parent.dsSlip.GetColumn(parent.dsSlip.GetCurrow(),"slip_no");
// Dataset에 바인딩 이벤트를 일시 중단시킨다.
parent.dsJournalManagement.fireEvent = false;
var iCnt = parent.dsJournalManagement.GetRowCount();
// 뒤에서부터 삭제한다.
for(var i=iCnt-1; i>=0; i--){
// 조건문
if((parent.dsJournalManagement.GetColumn(i,"journal_no") == journalNo) && (parent.dsJournalManagement.GetColumn(i,"slip_no") == slipNo))
{
// 실제 삭제하는 실행문이다.
parent.dsJournalManagement.DeleteRow(i);
}
}
// Dataset에 바인딩 이벤트를 시작시킨다.
parent.dsJournalManagement.fireEvent = true;
var accountCode = parent.dsJournal.GetColumn(parent.dsJournal.GetCurrow(),"account_code");
dsAcountManagement.UnFilter();
dsAcountManagement.Filter("account_code='"+accountCode+"'");
// 분개상세 생성한다.
for(i=0; i<dsAcountManagement.GetRowCount(); i++){
parent.dsJournalManagement.AddRow();
var accName=dsAcountManagement.GetColumn(i,"account_management_name");
var accCode=dsAcountManagement.GetColumn(i,"management_code");
var accComp=dsAcountManagement.GetColumn(i,"management_type");
// 코드명 + 코드타입
trace("variable: "+accName+" ---------- "+accComp);
parent.dsJournalManagement.SetColumn(parent.dsJournalManagement.GetCurrow(),"management_name",accName);
parent.dsJournalManagement.SetColumn(parent.dsJournalManagement.GetCurrow(),"management_code",accCode);
parent.dsJournalManagement.SetColumn(parent.dsJournalManagement.GetCurrow(),"management_type",accComp);
parent.dsJournalManagement.SetColumn(parent.dsJournalManagement.GetCurrow(),"journal_no",journalNo);
parent.dsJournalManagement.SetColumn(parent.dsJournalManagement.GetCurrow(),"slip_no",slipNo);
trace(journalNo+','+slipNo+','+accName+','+accCode+','+accComp);
}
// 분개상세를 새로고침한다.
parent.createComponent(parent.dsJournal.GetCurrow(),slipNo);
close();
}
]]></Script>
</Window>

View File

@@ -0,0 +1,115 @@
<?xml version="1.0" encoding="utf-8"?>
<Window>
<Form Height="486" Id="codeForm" Left="8" OnLoadCompleted="codeForm_OnLoadCompleted" PidAttrib="7" Title="New&#32;Form" Top="8" Ver="1.0" Width="700" WorkArea="true">
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="Static1" Left="24" TabOrder="1" Text="코드" Top="112" VAlign="Middle" Width="288"></Static>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,14" Height="24" Id="Static0" Left="26" TabOrder="2" Text="코드&#32;관리" Top="24" VAlign="Middle" Width="638"></Static>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="Static2" Left="328" TabOrder="3" Text="상세코드" Top="112" VAlign="Middle" Width="336"></Static>
<Grid AutoFit="TRUE" BindDataset="dsCode" BkColor2="default" BoldHead="true" Bottom="432" Enable="true" EndLineColor="default" Height="288" Id="codeGrid" InputPanel="FALSE" Left="24" LineColor="default" MinWidth="100" OnCellClick="codeGrid_OnCellClick" Right="312" TabOrder="4" TabStop="true" Top="144" UseDBuff="true" UsePopupMenu="true" UseSelColor="true" Visible="true" VLineColor="default" WheelScrollRow="1" Width="288">
<contents>
<format id="Default">
<columns>
<col width="23"/>
<col width="106"/>
<col width="104"/>
<col width="50"/>
</columns>
<head>
<cell bkcolor="#f7e4cf" col="0" display="text" font="KBIZ한마음고딕&#32;B,10" text="No"/>
<cell bkcolor="#f7e4cf" col="1" display="text" font="KBIZ한마음고딕&#32;B,10" text="코드구분코드"/>
<cell bkcolor="#f7e4cf" col="2" display="text" font="KBIZ한마음고딕&#32;B,10" text="코드명"/>
<cell bkcolor="#f7e4cf" col="3" display="text" font="KBIZ한마음고딕&#32;B,10" text="수정여부"/>
</head>
<body>
<cell align="center" col="0" display="text" expr="currow+1" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="1" colid="distinction_code" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="2" colid="code_name" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="3" colid="code_use" display="text" font="KBIZ한마음고딕&#32;B,10"/>
</body>
</format>
</contents>
</Grid>
<Grid AutoFit="TRUE" BindDataset="dsDetailCode" BkColor2="default" BoldHead="true" Bottom="432" Editable="TRUE" Enable="true" EndLineColor="default" Height="288" Id="detailCodeGrid" InputPanel="FALSE" Left="328" LineColor="default" MinWidth="100" OnEnterDown="detailCodeGrid_OnEnterDown" Right="664" TabOrder="5" TabStop="true" Top="144" UseDBuff="true" UsePopupMenu="true" UseSelColor="true" Visible="true" VLineColor="default" WheelScrollRow="1" Width="336">
<contents>
<format id="Default">
<columns>
<col width="95"/>
<col width="80"/>
<col width="105"/>
<col width="50"/>
</columns>
<head>
<cell bkcolor="#f7e4cf" col="0" display="text" font="KBIZ한마음고딕&#32;B,10" text="상세코드"/>
<cell bkcolor="#f7e4cf" col="1" display="text" font="KBIZ한마음고딕&#32;B,10" text="코드구분코드"/>
<cell bkcolor="#f7e4cf" col="2" display="text" font="KBIZ한마음고딕&#32;B,10" text="상세코드명"/>
<cell bkcolor="#f7e4cf" col="3" display="text" font="KBIZ한마음고딕&#32;B,10" text="사용여부"/>
</head>
<body>
<cell align="center" col="0" colid="DETAIL_CODE" display="text" edit="normal" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="1" colid="distinction_code" display="text" edit="normal" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="2" colid="detail_codename" display="text" edit="normal" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="3" colid="detail_use" display="text" edit="normal" font="KBIZ한마음고딕&#32;B,10"/>
</body>
</format>
</contents>
</Grid>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="addCode" Left="443" OnClick="addCode_OnClick" TabOrder="6" Text="추가" Top="69" Width="56"></Button>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="save" Left="498" OnClick="save_OnClick" TabOrder="7" Text="저장" Top="69" Width="56"></Button>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="delete" Left="553" OnClick="delete_OnClick" TabOrder="8" Text="삭제" Top="69" Width="56"></Button>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="reset" Left="608" OnClick="reset_OnClick" TabOrder="9" Text="취소" Top="69" Width="56"></Button>
</Form>
<Script><![CDATA[
// 코드 폼이 로드 된 후 ~
function codeForm_OnLoadCompleted(obj)
{
//Transaction("getCodeList","svcBase::/code.do?method=getCodeList","","dsCode=dsCode dsDetailCode=dsDetailCode","","callback");
var code = dsCode.getColumn(dsCode.GetCurrow(),'distinction_code');
//trace(code);
dsDetailCode.filter("distinction_code='"+code+"'");
}
// 코드그리드가 로드 된 후 ~
function codeGrid_OnCellClick(obj,nRow,nCell,nX,nY,nPivotIndex)
{
var code = dsCode.GetColumn(nRow,"distinction_code");
dsDetailCode.filter("distinction_code='"+code+"'");
}
// 추가 버튼
function addCode_OnClick(obj)
{
dsdetailcode.AddRow();
}
// 삭제 버튼
function delete_OnClick(obj)
{
if(Confirm("선택한 코드상세 정보를 삭제하시겠습니까?")){
dsDetailCode.DeleteRow(dsDetailCode.row);
}
}
// 코드상세그리드에서 엔터를 누르면 다음 셀로 ~
function detailCodeGrid_OnEnterDown(obj,nRow,nCell,strVal,nPivotIndex)
{
// Cell의 Focus를 다음 Editable Cell로 자동 이동시킨다.
obj.MoveToNextCell();
}
function reset_OnClick(obj)
{
if(confirm("취소하시겠습니까?")){
reload();
}
}
// 저장 버튼
function save_OnClick(obj)
{
if(Confirm("변경사항을 저장하시겠습니까?")){
Transaction("batchCodeList","svcBase::/code.do?method=batchCodeList","dsDetailCode=dsDetailCode:U","","","callback");
reload();
}
}
]]></Script>
</Window>

View File

@@ -0,0 +1,73 @@
<?xml version="1.0" encoding="utf-8"?>
<Window>
<Form Height="400" Id="codeInfoForm" Left="8" PidAttrib="7" Title="New&#32;Form" Top="8" Ver="1.0" Width="300" WorkArea="true">
<Grid AutoFit="TRUE" BindDataset="dsDetailCode" BkColor2="default" BoldHead="true" Bottom="387" Enable="true" EndLineColor="default" Font="KBIZ한마음고딕&#32;B,10" Height="347" Id="codeInfo" InputPanel="FALSE" Left="9" LineColor="default" MinWidth="100" OnCellClick="codeInfo_OnCellClick" Right="288" TabOrder="1" TabStop="true" Top="40" UseDBuff="true" UsePopupMenu="true" UseSelColor="true" Visible="true" VLineColor="default" WheelScrollRow="1" Width="279">
<contents>
<format id="Default">
<columns>
<col width="40"/>
<col width="60"/>
<col width="100"/>
</columns>
<head>
<cell align="center" bkcolor="#f7e4cf" col="0" display="text" font="KBIZ한마음고딕&#32;B,10" text="No"/>
<cell align="center" bkcolor="#f7e4cf" col="1" display="text" font="KBIZ한마음고딕&#32;B,10" text="코드"/>
<cell align="center" bkcolor="#f7e4cf" col="2" display="text" font="KBIZ한마음고딕&#32;B,10" text="코드명"/>
</head>
<body>
<cell align="center" col="0" display="text" expr="currow+1" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="1" colid="detail_code" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="2" colid="detail_codename" display="text" font="KBIZ한마음고딕&#32;B,10"/>
</body>
</format>
</contents>
</Grid>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,15" Height="26" Id="Static0" Left="9" TabOrder="2" Text="코드&#32;조회" Top="9" VAlign="Middle" Width="279"></Static>
</Form>
<Script><![CDATA[
function codeInfo_OnCellClick(obj,nRow,nCell,nX,nY,nPivotIndex)
{
var code=dsDetailCode.GetColumn(nRow,"detail_code");
var codeName=dsDetailCode.GetColumn(nRow,"detail_codename");
if(dsDetailCode.GetColumn(nRow,"distinction_code")=='DC'){
parent.accountBalance.text=code;
}else if(dsDetailCode.GetColumn(nRow,"distinction_code")=='DP'){
if(gvEmpName == ''){
//글로벌변수지정
gvDeptNo=code;
gvDeptName=codeName;
}else if(IsExistVar("codeNum")){
//alert(codeNum);
parent.jourCompDiv.Object(codeNum).text=codeName;
dsJournalManagement.SetColumn(parseInt(codeNum)-1,"value",codeName);
close();
}
parent.deptNo.text=code;
parent.deptName.text=codeName;
}else if(dsDetailCode.GetColumn(nRow,"distinction_code")=='PS'){
//var code=dsDetailCode.GetColumn(nRow,"detail_code");
//var name=dsDetailCode.GetColumn(nRow,"detail_codename");
parent.dsEmpPermission.SetColumn(parent.dsEmpPermission.GetCurrow(),"permission_code",code);
parent.dsEmpPermission.SetColumn(parent.dsEmpPermission.GetCurrow(),"permission_name",codeName);
}else if(dsDetailCode.GetColumn(nRow,"distinction_code")=='AM'){
//var code=dsDetailCode.GetColumn(nRow,"detail_code");
//var name=dsDetailCode.GetColumn(nRow,"detail_codename");
parent.dsAcountManagement.SetColumn(dsAcountManagement.row,"management_code",code);
parent.dsAcountManagement.SetColumn(dsAcountManagement.row,"account_management_name",codeName);
parent.dsAcountManagement.SetColumn(dsAcountManagement.row,"account_change","Y");
parent.dsAcountManagement.SetColumn(dsAcountManagement.row,"account_use","Y");
}else if(dsDetailCode.GetColumn(nRow,"distinction_code")=='CT'){
parent.dsJournal.SetColumn(dsJournal.GetCurrow(),"customer_code",code);
parent.dsJournal.SetColumn(dsJournal.GetCurrow(),"customer_name",codeName);
}
close();
}
]]></Script>
</Window>

View File

@@ -0,0 +1,50 @@
<?xml version="1.0" encoding="utf-8"?>
<Window>
<Form Height="400" Id="empInfo" Left="8" PidAttrib="7" Title="New&#32;Form" Top="8" Ver="1.0" Width="300" WorkArea="true">
<Grid AutoFit="TRUE" BindDataset="dsEmp" BkColor2="default" BoldHead="true" Bottom="387" Enable="true" EndLineColor="default" Font="KBIZ한마음고딕&#32;B,10" Height="347" Id="empInfo" InputPanel="FALSE" Left="8" LineColor="default" MinWidth="100" OnCellClick="empInfo_OnCellClick" Right="289" TabOrder="1" TabStop="true" Top="40" UseDBuff="true" UsePopupMenu="true" UseSelColor="true" Visible="true" VLineColor="default" WheelScrollRow="1" Width="281">
<contents>
<format id="Default">
<columns>
<col width="40"/>
<col width="60"/>
<col width="100"/>
</columns>
<head>
<cell align="center" bkcolor="#f7e4cf" col="0" display="text" font="KBIZ한마음고딕&#32;B,10" text="No"/>
<cell align="center" bkcolor="#f7e4cf" col="1" display="text" font="KBIZ한마음고딕&#32;B,10" text="사원번호"/>
<cell align="center" bkcolor="#f7e4cf" col="2" display="text" font="KBIZ한마음고딕&#32;B,10" text="사원명"/>
</head>
<body>
<cell align="center" col="0" display="text" expr="currow+1" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="1" colid="emp_no" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="2" colid="emp_name" display="text" font="KBIZ한마음고딕&#32;B,10"/>
</body>
</format>
</contents>
</Grid>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,15" Height="26" Id="Static0" Left="9" TabOrder="2" Text="사번&#32;조회" Top="11" VAlign="Middle" Width="279"></Static>
</Form>
<Script><![CDATA[
function empInfo_OnCellClick(obj,nRow,nCell,nX,nY,nPivotIndex)
{
var empNo=dsEmp.GetColumn(nRow,"emp_no");
var empName=dsEmp.GetColumn(nRow,"emp_name");
var empPw=dsEmp.GetColumn(nRow,"emp_pw");
var empPs=dsPermission.GetColumn(nRow,"permission_code");
//글로벌변수지정
gvEmpNo=empNo;
gvEmpName=empName;
gvEmpPs=empPs;
//trace("권한코드--------------------------"+gvEmpPs);
//로그인창에 셋팅한다.
parent.empNo.text=empNo;
parent.empName.text=empName;
parent.setPw(empPw);
close();
}
]]></Script>
</Window>

View File

@@ -0,0 +1,106 @@
<?xml version="1.0" encoding="utf-8"?>
<Window>
<Form Height="300" Id="loginForm" Left="8" OnLoadCompleted="loginForm_OnLoadCompleted" PidAttrib="7" Title="New&#32;Form" Top="8" Ver="1.0" Width="300" WorkArea="true">
<Static Align="Center" BKColor="#edaf78" Color="MENUTEXT" Font="KBIZ한마음고딕&#32;B,10" Height="32" Id="Static1" Left="40" TabOrder="3" Text="부서코드" Top="32" VAlign="Middle" Width="64"></Static>
<Edit Enable="FALSE" Font="KBIZ한마음고딕&#32;B,10" Height="30" Id="deptNo" Left="104" LeftMargin="2" TabOrder="1" Top="32" Width="128"></Edit>
<Button Font="나눔바른고딕,9" Height="30" Id="deptSearchBtn" ImageID="search" Left="234" OnClick="deptSearchBtn_OnClick" TabOrder="11" Text="조회" Top="34" Width="23"></Button>
<Static Align="Center" BKColor="#edaf78" Color="MENUTEXT" Font="KBIZ한마음고딕&#32;B,10" Height="32" Id="Static2" Left="40" TabOrder="6" Text="부서명" Top="72" VAlign="Middle" Width="64"></Static>
<Edit Enable="FALSE" Font="KBIZ한마음고딕&#32;B,10" Height="30" Id="deptName" Left="104" LeftMargin="2" TabOrder="2" Top="72" Width="153"></Edit>
<Static Align="Center" BKColor="#edaf78" Color="MENUTEXT" Font="KBIZ한마음고딕&#32;B,10" Height="32" Id="Static3" Left="40" TabOrder="7" Text="사번" Top="112" VAlign="Middle" Width="64"></Static>
<Edit Enable="FALSE" Font="KBIZ한마음고딕&#32;B,10" Height="30" Id="empNo" Left="104" LeftMargin="2" OnChanged="Edit1_OnChanged" TabOrder="4" Top="112" Width="128"></Edit>
<Button Font="나눔바른고딕,9" Height="30" Id="empSearchBtn" ImageID="search" Left="233" OnClick="empSearchBtn_OnClick" TabOrder="12" Text="조회" Top="116" Width="24"></Button>
<Static Align="Center" BKColor="#edaf78" Color="MENUTEXT" Font="KBIZ한마음고딕&#32;B,10" Height="32" Id="Static4" Left="40" TabOrder="8" Text="사원명" Top="152" VAlign="Middle" Width="64"></Static>
<Edit Enable="FALSE" Font="KBIZ한마음고딕&#32;B,10" Height="30" Id="empName" Left="104" LeftMargin="2" TabOrder="5" Top="152" Width="153"></Edit>
<Static Align="Center" BKColor="#edaf78" Color="MENUTEXT" Font="KBIZ한마음고딕&#32;B,10" Height="32" Id="Static5" Left="40" TabOrder="14" Text="비밀번호" Top="192" VAlign="Middle" Width="64"></Static>
<Edit Font="KBIZ한마음고딕&#32;B,10" Height="30" Id="empPw" Left="104" LeftMargin="2" OnKeyDown="empPw_OnKeyDown" Password="TRUE" TabOrder="13" Top="192" Width="153"></Edit>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,11" Height="33" Id="login" Left="104" OnClick="login_OnClick" TabOrder="9" Text="로그인" Top="232" Width="74"></Button>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,11" Height="33" Id="cancel" Left="184" OnClick="cancel_OnClick" TabOrder="10" Text="취소" Top="232" Width="74"></Button>
</Form>
<Script><![CDATA[var empPassword;
//부서 검색 버튼
function deptSearchBtn_OnClick(obj)
{
//세션연결한다.
dsDetailCode.Filter("distinction_code='DP'");
initSession(true);
dialog("base::codeInfo.xml","",400,300,"",550,200);
}
//사원 검색 버튼
function empSearchBtn_OnClick(obj)
{
dsEmp.Filter("dept_no='"+deptNo.Text+"'");
//false하면 값이 안넘어간다.
initSession(true);
dialog("base::empInfo.xml","",400,300,"",550,200);
empPw.SetFocus();
}
//취소 버튼
function cancel_OnClick(obj)
{
exit();
}
//로그인 폼이 로드 완료된 후
function loginForm_OnLoadCompleted(obj)
{
//글로벌데이터셋으로 세팅한다.
Transaction("getCodeList","svcBase::/code.do?method=getCodeList","","dsCode=dsCode dsDetailCode=dsDetailCode","","callback");
transaction("getEmpList","svcInsa::/emp/emp.do?method=getEmpList", "", "dsEmp=dsEmp","","callback");
Transaction("getPermission","svcBase::/permission.do?method=getPermission","","dsPermission=dsPermission","","callback");
Transaction("getEmpPermission","svcBase::/permission.do?method=getEmpPermission","","dsEmpPermission=dsEmpPermission","","callback");
}
function callback(trid, ErrorCode, ErrorMsg)
{
//플랫폼컨트롤러에서 메서드를 호출해 호출한 메서드에 대한 에러코드와 에러메세지를 날려준다.
if(trid == "getEmpList" || trid == "getDeptList" || trid == "getDetailCodeList"){
if( ErrorCode < 0 ){
alert("실패"+ErrorMsg);
}else{
//alert("성공"+ErrorMsg);
}
}else if(trid == "getPermission" || trid == "getEmpPermission"){
if( ErrorCode < 0 ){
alert("실패"+ErrorMsg);
}else{
//trace(dsPermission.SaveXML());
}
}
}
//비번받아오는 함수
function setPw(pw){
empPassword=pw;
}
//로그인 클릭이벤트
function login_OnClick(obj)
{
if(empNo=="" || empName=""){
alert("사원정보를 선택해주세요.");
}else if(empNo.Text==gvEmpNo ){
if(empPw.Text==empPassword){
alert(empName.Text+"님 환영합니다.");
go("base::menu.xml");
}else{
alert("사번과 비밀번호가 맞지 않습니다.");
}
}else{
alert("해당 사번이 없습니다.");
}
}
function empPw_OnKeyDown(obj,nChar,bShift,bCtrl, bAlt,LLParam,HLParam)
{
if(nChar == 13){
login_OnClick();
}
}
]]></Script>
</Window>

View File

@@ -0,0 +1,128 @@
<?xml version="1.0" encoding="utf-8"?>
<Window>
<Form Height="600" Id="menuForm" Left="8" OnLoadCompleted="menuForm_OnLoadCompleted" PidAttrib="7" Title="New&#32;Form" Top="8" Ver="1.0" Width="920" WorkArea="true">
<Datasets>
<Dataset DataSetType="Dataset" Id="dsMyPermission">
<Contents>
<colinfo id="emp_no" size="256" summ="default" type="STRING"/>
<colinfo id="permission_code" size="256" summ="default" type="STRING"/>
<colinfo id="permission_name" size="256" summ="default" type="STRING"/>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="permission">
<Contents>
<colinfo id="permission_code" size="256" summ="default" type="STRING"/>
<colinfo id="menu_name" size="256" summ="default" type="STRING"/>
<colinfo id="menu_code" size="256" summ="default" type="STRING"/>
</Contents>
</Dataset>
</Datasets>
<Image FillType="STRETCH" Height="65" Id="Image0" ImageID="banner" Left="24" TabOrder="6" Top="8" Width="872"></Image>
<MenuBar CaptionCol="menu_name" EnableCol="Enable" EndColor="WINDOW" Font="KBIZ한마음고딕&#32;B,10" GradationMode="Horizontal" Height="24" HighlightBKColor="#aa8472" IconCol="Icon" Id="MenuBar" IDCol="menu_url" Left="24" LevelCol="level" MainTextColor="black" MenuDataset="dsMenu" OnMenuClick="MenuBar_OnMenuClick" PopupBoard3D="False" PopupLeftMargin="12" PopupTextColor="black" Selection3D="False" StartColor="#e9ae6f" Style="ORIGINAL" TabOrder="1" Top="73" Width="761"></MenuBar>
<TreeView BindDataset="dsMenu" Font="KBIZ한마음고딕&#32;B,10" Height="413" Id="TreeView" Left="24" LevelColumn="level" OnClick="TreeView_OnClick" TabOrder="2" TEXTColumn="menu_name" Top="176" Width="160"></TreeView>
<Div Height="486" Id="div" Left="192" scroll="true" TabOrder="3" Text="Div0" Top="104" Url="base::welcome.xml" Width="700">
<Contents></Contents>
</Div>
<Edit Align="RIGHT" DisableBKColor="#f7e4cf" DisableColor="BACKGROUND" Enable="FALSE" Font="KBIZ한마음고딕&#32;B,10" Height="23" Id="deptInfo" Left="80" RightMargin="3" TabOrder="4" Top="104" Width="104"></Edit>
<Edit Align="RIGHT" DisableBKColor="#f7e4cf" DisableColor="BACKGROUND" Enable="FALSE" Font="KBIZ한마음고딕&#32;B,10" Height="22" Id="empCodeInfo" ImeMode="none" Left="80" RightMargin="3" TabOrder="5" Top="128" Width="104"></Edit>
<Edit Align="RIGHT" DisableBKColor="#f7e4cf" DisableColor="BACKGROUND" Enable="FALSE" Font="KBIZ한마음고딕&#32;B,10" Height="23" Id="deptTitle" Left="24" RightMargin="3" TabOrder="7" Text="부서명" Top="104" Width="56"></Edit>
<Edit Align="RIGHT" DisableBKColor="#f7e4cf" DisableColor="BACKGROUND" Enable="FALSE" Font="KBIZ한마음고딕&#32;B,10" Height="23" Id="empTitle" Left="24" RightMargin="3" TabOrder="8" Text="사번" Top="128" Width="56"></Edit>
<Edit Align="RIGHT" DisableBKColor="#f7e4cf" DisableColor="BACKGROUND" Enable="FALSE" Font="KBIZ한마음고딕&#32;B,10" Height="23" Id="Edit0" Left="24" RightMargin="3" TabOrder="10" Text="사원명" Top="152" Width="56"></Edit>
<Edit Align="RIGHT" DisableBKColor="#f7e4cf" DisableColor="BACKGROUND" Enable="FALSE" Font="KBIZ한마음고딕&#32;B,10" Height="22" Id="empNameInfo" ImeMode="none" Left="80" RightMargin="3" TabOrder="9" Top="152" Width="104"></Edit>
<Button Appearance="FLAT" BKColor="#aa8472" Color="MENU" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="logout" Left="840" OnClick="logout_OnClick" TabOrder="11" Text="로그아웃" Top="73" Width="56"></Button>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="reloadBtn" Left="785" OnClick="reloadBtn_OnClick" TabOrder="12" Text="새로고침" Top="73" Width="56"></Button>
</Form>
<Script><![CDATA[
// 콜백 함수
function callback(trid, ErrorCode, ErrorMsg)
{
if( trid == "getMenuList"){
//alert("성공");
}
}
//트리뷰 클릭 시
function TreeView_OnClick(obj,nOldRow,nNewRow)
{
var check = false;
var menuUrl = dsMenu.GetColumn(nNewRow,"menu_url");
var menuCode=dsMenu.GetColumn(nNewRow,"menu_code");
var result = permission.FindRow("menu_code", menuCode);
trace(menuCode+","+result);
// Dataset에서 지정한 Column ID의 Column 값과 입력된 Value의 값이 일치하는 첫번째 레코드 Index를 얻어온다.
if(!(result==-1)){
check = true;
}
if(check = false){
alert("접근할 수 없는 화면입니다.");
return;
}
Div.Url=menuUrl;
}
//메뉴폼을 로드한 후
function menuForm_OnLoadCompleted(obj)
{
//window.movewindow("500","200","920","600");
deptInfo.Text=gvDeptName;
empCodeInfo.Text=gvEmpNo;
empNameInfo.Text=gvEmpName;
dsEmp.UnFilter();
Transaction("getMenuList","svcBase::/menu.do?method=getMenuList","","dsMenu=dsMenu","","callback");
dsEmpPermission.Filter("emp_no='"+gvEmpNo+"'");
for(var i=0; i<dsEmpPermission.GetRowCount(); i++){
var permissionCode=dsEmpPermission.GetColumn(i, "permission_code");
dsPermission.Filter("permission_code='"+permissionCode+"'");
permission.AppendDataset(dsPermission);
//trace(permission.SaveXML());
}
}
//메뉴바
function MenuBar_OnMenuClick(obj, strID)
{
var rowCount=dsMenu.GetRowCount();
for(var index=1; index<=rowCount; index++){
var menuCode = dsMenu.getColumn(index, "menu_code");
var menuUrl = dsMenu.getColumn(index, "menu_url");
if(permission.FindRow("menu_code",menuCode)==-1 && menuUrl!=Null){
MenuBar.EnableItem(menuUrl,"false");
}
}
var code=dsMenu.LookUp("menu_url", strID, "menu_code");
trace(code);
if(strID.length()!=0){
if(!(permission.FindRow("menu_code", code)==-1)){
Div.Url=strID;
}else{
alert("접근할 수 없는 화면입니다.");
}
}
}
// 로그아웃 버튼
function logout_OnClick(obj)
{
if(confirm("로그아웃하시겠습니까?")){
SetVariable('gvDeptName','','global');
SetVariable('gvEmpName','','global');
go("base::login.xml");
}
}
// 새로고침 버튼
function reloadBtn_OnClick(obj)
{
div.Reload();
}
]]></Script>
</Window>

View File

@@ -0,0 +1,235 @@
<?xml version="1.0" encoding="utf-8"?>
<Window>
<Form Height="486" Id="adminForm" Left="8" OnLoadCompleted="adminForm_OnLoadCompleted" PidAttrib="7" Title="New&#32;Form" Top="8" Ver="1.0" Width="700" WorkArea="true">
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,14" Height="24" Id="Static0" Left="8" TabOrder="1" Text="권한관리" Top="8" VAlign="Middle" Width="680"></Static>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="Static2" Left="248" TabOrder="2" Text="접근가능메뉴" Top="248" VAlign="Middle" Width="200"></Static>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="Static1" Left="8" TabOrder="3" Text="권한" Top="248" VAlign="Middle" Width="200"></Static>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="Static3" Left="496" TabOrder="4" Text="전체메뉴" Top="248" VAlign="Middle" Width="192"></Static>
<Grid AutoEnter="TRUE" AutoFit="TRUE" BindDataset="dsEmpPermission" BkColor2="default" BoldHead="true" Bottom="440" ColSizing="TRUE" Enable="true" EndLineColor="default" Height="160" Id="permissionGrid" InputPanel="FALSE" Left="8" LineColor="default" MinWidth="100" MultiSelect="TRUE" OnCellClick="permissionGrid_OnCellClick" Right="208" TabOrder="5" TabStop="true" Top="280" UseDBuff="true" UsePopupMenu="true" UseSelColor="true" Visible="true" VLineColor="default" WheelScrollRow="1" Width="200">
<contents>
<format id="Default">
<columns>
<col width="100"/>
<col width="90"/>
</columns>
<head>
<cell bkcolor="#f7e4cf" col="0" display="text" font="KBIZ한마음고딕&#32;B,10" text="권한코드"/>
<cell bkcolor="#f7e4cf" col="1" display="text" font="KBIZ한마음고딕&#32;B,10" text="권한명"/>
</head>
<body>
<cell align="center" col="0" colid="permission_code" display="text" edit="normal" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="1" colid="permission_name" display="text" edit="normal" font="KBIZ한마음고딕&#32;B,10"/>
</body>
</format>
</contents>
</Grid>
<Grid AutoFit="TRUE" BindDataset="dsPermission" BkColor2="default" BoldHead="true" Bottom="472" Enable="true" EndLineColor="default" Height="192" Id="perMenuGrid" InputPanel="FALSE" Left="248" LineColor="default" MinWidth="100" Right="448" TabOrder="6" TabStop="true" Top="280" UseDBuff="true" UsePopupMenu="true" UseSelColor="true" Visible="true" VLineColor="default" WheelScrollRow="1" Width="200">
<contents>
<format id="Default">
<columns>
<col width="28"/>
<col width="80"/>
<col width="80"/>
</columns>
<head>
<cell bkcolor="#f7e4cf" col="0" display="text" font="KBIZ한마음고딕&#32;B,10" text="No"/>
<cell bkcolor="#f7e4cf" col="1" display="text" font="KBIZ한마음고딕&#32;B,10" text="메뉴코드"/>
<cell bkcolor="#f7e4cf" col="2" display="text" font="KBIZ한마음고딕&#32;B,10" text="메뉴명"/>
</head>
<body>
<cell align="center" col="0" display="text" expr="currow+1" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="1" colid="menu_code" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="2" colid="menu_name" display="text" font="KBIZ한마음고딕&#32;B,10"/>
</body>
</format>
</contents>
</Grid>
<Grid AutoFit="TRUE" BindDataset="dsMenu" BkColor2="default" BoldHead="true" Bottom="472" Enable="true" EndLineColor="default" Height="192" Id="menuGrid" InputPanel="FALSE" Left="496" LineColor="default" MinWidth="100" Right="689" TabOrder="7" TabStop="true" Top="280" UseDBuff="true" UsePopupMenu="true" UseSelColor="true" Visible="true" VLineColor="default" WheelScrollRow="1" Width="193">
<contents>
<format id="Default">
<columns>
<col width="26"/>
<col width="80"/>
<col width="80"/>
</columns>
<head>
<cell bkcolor="#f7e4cf" col="0" display="text" font="KBIZ한마음고딕&#32;B,10" text="No"/>
<cell bkcolor="#f7e4cf" col="1" display="text" font="KBIZ한마음고딕&#32;B,10" text="메뉴코드"/>
<cell bkcolor="#f7e4cf" col="2" display="text" font="KBIZ한마음고딕&#32;B,10" text="메뉴명"/>
</head>
<body>
<cell align="center" col="0" display="text" expr="currow+1" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="1" colid="MENU_CODE" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="2" colid="menu_name" display="text" font="KBIZ한마음고딕&#32;B,10"/>
</body>
</format>
</contents>
</Grid>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Height="21" Id="add" Left="459" OnClick="add_OnClick" TabOrder="8" Text="&lt;&lt;" Top="344" Width="22"></Button>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Height="21" Id="remove" Left="459" OnClick="remove_OnClick" TabOrder="9" Text="&gt;&gt;" Top="376" Width="22"></Button>
<Grid AutoFit="TRUE" BindDataset="dsEmp" BkColor2="default" BoldHead="true" Bottom="240" Enable="true" EndLineColor="default" Height="168" Id="empListGrid" InputPanel="FALSE" Left="8" LineColor="default" MinWidth="100" OnCellClick="empListGrid_OnCellClick" Right="688" TabOrder="10" TabStop="true" Top="72" UseDBuff="true" UsePopupMenu="true" UseSelColor="true" Visible="true" VLineColor="default" WheelScrollRow="1" Width="680">
<contents>
<format id="Default">
<columns>
<col width="93"/>
<col width="150"/>
<col width="150"/>
<col width="150"/>
<col width="150"/>
</columns>
<head>
<cell bkcolor="#f7e4cf" col="0" display="text" font="KBIZ한마음고딕&#32;B,10" text="No"/>
<cell bkcolor="#f7e4cf" col="1" display="text" font="KBIZ한마음고딕&#32;B,10" text="사번"/>
<cell bkcolor="#f7e4cf" col="2" display="text" font="KBIZ한마음고딕&#32;B,10" text="성명"/>
<cell bkcolor="#f7e4cf" col="3" display="text" font="KBIZ한마음고딕&#32;B,10" text="부서"/>
<cell bkcolor="#f7e4cf" col="4" display="text" font="KBIZ한마음고딕&#32;B,10" text="직급"/>
</head>
<body>
<cell align="center" col="0" colid="No" display="text" expr="currow+1" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="1" colid="emp_no" combocol="emp_no" combodataset="dsEmp" combotext="emp_no" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="2" colid="emp_name" combocol="emp_name" combodataset="dsEmp" combotext="emp_name" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="3" colid="dept_no" combocol="detail_code" combodataset="dsDetailCode" combotext="detail_codename" display="combo" edit="normal" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="4" colid="emp_position" combocol="detail_code" combodataset="dsDetailCode" combotext="detail_codename" display="combo" font="KBIZ한마음고딕&#32;B,10"/>
</body>
<summary>
<cell bkcolor="whitesmoke" col="0" colspan="4" display="text">
<cell align="center" col="0" display="text" font="나눔바른고딕,9" text="총인원"/>
<cell col="1" display="text"/>
<cell col="2" display="text"/>
<cell col="3" display="text"/>
</cell>
<cell bkcolor="whitesmoke" col="4" display="text" expr='rowcount()+&quot;명&quot;'/>
</summary>
</format>
</contents>
</Grid>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="Static4" Left="378" TabOrder="11" Text="성명" Top="40" VAlign="Middle" Width="46"></Static>
<Edit Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="empName" ImeMode="none" Left="424" TabOrder="12" Top="40" Width="88"></Edit>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="empSearchBtn" Left="519" OnClick="empSearchBtn_OnClick" TabOrder="13" Text="조회" Top="40" Width="41"></Button>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="reset" Left="632" OnClick="reset_OnClick" TabOrder="14" Text="취소" Top="40" Width="56"></Button>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="save" Left="568" OnClick="save_OnClick" TabOrder="15" Text="저장" Top="40" Width="56"></Button>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="permissionAddBtn" Left="119" OnClick="permissionAddBtn_OnClick" TabOrder="16" Text="추가" Top="448" Width="41"></Button>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="permissionRemoveBtn" Left="167" OnClick="permissionRemoveBtn_OnClick" TabOrder="17" Text="삭제" Top="448" Width="41"></Button>
</Form>
<Script><![CDATA[var empNo,permission;
// 콜백 함수 ~
function callback(trid, ErrorCode, ErrorMsg)
{
if(trid=="getEmpPermission"){
empNo=dsEmp.GetColumn(0, "emp_no");
dsEmpPermission.Filter("emp_no='"+empNo+"'");
}else if(trid=="getPermissionList"){
dsEmpPermission.SetColumn(dsEmpPermission.GetCurrow(), "emp_no", empNo);
}else if(trid=="batchPermission"){
if(ErrorCode!=0){
alert("권한수정 실패: "+ErrorMsg);
}else{
alert("권한수정이 완료되었습니다.");
reload();
}
}
}
// permission폼이 로드된 후 ~
function adminForm_OnLoadCompleted(obj)
{
dsEmpPermission.Clear();
dsPermission.Clear();
Transaction("getEmpPermission","svcBase::/permission.do?method=getEmpPermission","","dsEmpPermission=dsEmpPermission","","callback");
}
// 권한 그리드를 클릭하면
function permissionGrid_OnCellClick(obj,nRow,nCell,nX,nY,nPivotIndex)
{
if(permissionGrid.GetCellText("body",nRow,nCell).length==0)
{
dsDetailCode.filter("distinction_code='PS'");
dialog("base::codeInfo.xml","",300,300,"",550,200);
}else{
permission = dsEmpPermission.GetColumn(nRow,"permission_code");
sendData(permission);
}
}
function sendData(permission)
{
trace(empNo +" ---------------- " +permission);
Transaction("getPermissionList","svcBase::/permission.do?method=getPermissionList","","dsPermission=dsPermission","permission='"+permission+"'","callback");
}
// 권한 추가 버튼
function permissionAddBtn_OnClick(obj)
{
dsEmpPermission.AddRow();
}
// 사원정보 그리드를 클릭하면
function empListGrid_OnCellClick(obj,nRow,nCell,nX,nY,nPivotIndex)
{
dsPermission.Clear();
empNo=dsEmp.GetColumn(nRow, "emp_no");
dsEmpPermission.Filter("emp_no='"+empNo+"'");
}
// add 버튼
function add_OnClick(obj)
{
var addRow=dsPermission.AddRow();
var menuCode = dsMenu.GetColumn(dsMenu.row,"menu_code");
var menuName = dsMenu.GetColumn(dsMenu.row,"menu_name");
dsPermission.SetColumn(addRow,"menu_code",menuCode);
dsPermission.SetColumn(addRow,"menu_name",menuName);
//trace("insert ------------------"+permission);
dsPermission.SetColumn(addRow,"permission_code",permission);
}
// remove 버튼
function remove_OnClick(obj)
{
dsPermission.deleteRow(dsPermission.GetCurrow());
}
// 리셋 버튼
function reset_OnClick(obj)
{
Reload();
}
function permissionRemoveBtn_OnClick(obj)
{
dsEmpPermission.deleteRow(dsEmpPermission.GetCurrow());
}
// 사원 조회 버튼
function empSearchBtn_OnClick(obj)
{
//transaction("getEmpList","svcInsa::/emp/emp.do?method=getEmpList", "", "dsEmp=dsEmp","","callback");
var name=empName.Text;
var sFilter;
if(name=""){
dsEmp.UnFilter();
}else{
if(name.trim().length > 0 ) sFilter += " || pos(emp_name," + quote(name) + ") >= 0";
dsEmp.Filter(sFilter);
}
}
// 저장 버튼
function save_OnClick(obj)
{
if(Confirm("변경사항을 저장하시겠습니까?")){
Transaction("batchPermission","svcBase::/permission.do?method=batchPermission","dsEmpPermission=dsEmpPermission:U dsPermission=dsPermission:U","","","callback");
}
}
]]></Script>
</Window>

View File

@@ -0,0 +1,135 @@
<?xml version="1.0" encoding="utf-8"?>
<Window>
<Form Height="400" Id="postInfo" Left="8" OnLoadCompleted="postInfo_OnLoadCompleted" PidAttrib="7" Title="New&#32;Form" Top="8" Ver="1.0" Width="370" WorkArea="true">
<Datasets>
<Dataset DataSetType="Dataset" Id="dsAddr">
<Contents>
<colinfo id="zip_no" size="256" summ="default" type="STRING"/>
<colinfo id="address" size="256" summ="default" type="STRING"/>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="dsSigungu">
<Contents>
<colinfo id="gungu" size="256" summ="default" type="STRING"/>
<colinfo id="sido" size="256" summ="default" type="STRING"/>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="dsSido">
<Contents>
<colinfo id="sido_code" size="256" summ="default" type="STRING"/>
<colinfo id="sido_value" size="256" summ="default" type="STRING"/>
</Contents>
</Dataset>
</Datasets>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,16" Height="32" Id="Static0" Left="16" TabOrder="1" Text="우편번호&#32;검색" Top="24" VAlign="Middle" Width="336"></Static>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="Static1" Left="16" TabOrder="2" Text="시&#32;도" Top="70" VAlign="Middle" Width="59"></Static>
<Combo CodeColumn="sido_value" DataColumn="sido_value" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="sido" InnerDataset="dsSido" Left="84" OnChanged="sido_OnChanged" TabOrder="3" Text="선택하세요" Top="71" Width="83"></Combo>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="Static2" Left="179" TabOrder="4" Text="시&#32;/&#32;군&#32;/&#32;구" Top="70" VAlign="Middle" Width="72"></Static>
<Combo CodeColumn="gungu" DataColumn="gungu" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="sigungu" InnerDataset="dsSigungu" Left="259" TabOrder="5" Text="선택하세요" Top="71" Width="93"></Combo>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="Static3" Left="16" TabOrder="6" Text="도로명&#32;입력" Top="104" VAlign="Middle" Width="88"></Static>
<Edit Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="roadName" Left="112" TabOrder="7" Top="104" Width="199"></Edit>
<Button Height="24" Id="addrSearch" ImageID="search" Left="320" OnClick="addrSearch_OnClick" TabOrder="8" Text="Button0" Top="104" Width="26"></Button>
<Grid AutoFit="TRUE" BindDataset="dsAddr" BkColor2="default" BoldHead="true" Bottom="285" Enable="true" EndLineColor="default" Font="KBIZ한마음고딕&#32;B,10" Height="149" Id="addrGrid" InputPanel="FALSE" Left="16" LineColor="default" MinWidth="100" OnCellDBLClick="addrGrid_OnCellDblClick" Right="352" TabOrder="9" TabStop="true" Top="136" UseDBuff="true" UsePopupMenu="true" UseSelColor="true" Visible="true" VLineColor="default" WheelScrollRow="1" Width="336">
<contents>
<format id="Default">
<columns>
<col width="101"/>
<col width="74"/>
<col width="76"/>
<col width="78"/>
</columns>
<head>
<cell bkcolor="#f7e4cf" col="0" display="text" font="KBIZ한마음고딕&#32;B,10" text="우편번호"/>
<cell align="center" bkcolor="#f7e4cf" col="1" colspan="3" display="text" font="KBIZ한마음고딕&#32;B,10" text="주소"/>
</head>
<body>
<cell col="0" colid="ZIP_NO" display="text"/>
<cell col="1" colid="address" colspan="3" display="text"/>
</body>
</format>
</contents>
</Grid>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="Static6" Left="16" TabOrder="10" Text="상세주소" Top="320" VAlign="Middle" Width="61"></Static>
<Edit Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="detailAddr" Left="84" TabOrder="11" Top="321" Width="268"></Edit>
<Button Appearance="FLAT" BKColor="#aa8472" Font="KBIZ한마음고딕&#32;B,10" Height="28" Id="success" Left="120" OnClick="success_OnClick" TabOrder="12" Text="입력완료" Top="352" Width="62"></Button>
<Button Appearance="FLAT" BKColor="#aa8472" Font="KBIZ한마음고딕&#32;B,10" Height="28" Id="reset" Left="192" OnClick="reset_OnClick" TabOrder="13" Text="취소" Top="352" Width="64"></Button>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="Static4" Left="16" TabOrder="14" Text="선택주소" Top="288" VAlign="Middle" Width="61"></Static>
<Edit Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="addr" Left="84" TabOrder="15" Top="289" Width="268"></Edit>
</Form>
<Script><![CDATA[var sidoCode;
var sidoValue;
var zipCode;
var dong;
// 취소 버튼
function reset_OnClick(obj)
{
if(confirm("취소하시겠습니까?")){
close();
}
}
// post폼이 로드된 후 ~
function postInfo_OnLoadCompleted(obj)
{
Transaction("getSido","svcBase::/post.do?method=getSido","","dsSido=dsSido","","callback");
}
// 시/도 콤보가 체인지 되면 ~
function sido_OnChanged(obj,strCode,strText,nOldIndex,nNewIndex)
{
sidoCode=dsSido.GetColumn(nNewIndex, "sido_code");
sidoValue=dsSido.GetColumn(nNewIndex, "sido_value");
Transaction("getSiGunGuList","svcBase::/post.do?method=getSiGunGuList","","dsSigungu=dsSigungu","sido='"+sidoCode+"'","callback");
}
// 콜백 함수
function callback(trid, ErrorCode, ErrorMsg){
if(trid="dsSido" || trid="dsSigungu" || trid="getAddrList"){
if(dsAddr.GetRowCount()==0 || dsAddr.GetRowCount()==0 || dsAddr.GetRowCount()==0 ){
alert("검색된 결과가 없습니다.");
}
}
}
// 도로명주소 입력 후 검색하는 버튼
function addrSearch_OnClick(obj)
{
if(sido.Text==''){
alert("시도를 선택해주세요.");
}else if(sigungu.Text==''){
alert("시군구를 선택해주세요.");
}else if(roadName.Text==''){
alert("도로명을 입력해주세요.");
}else{
//시군, 시군구, 동 다 보내서 가져온다.
trace("variable: "+sidoCode+" "+sigungu.Text+" "+roadName.Text);
Transaction("getAddrList","svcBase::/post.do?method=getAddrList","","dsAddr=dsAddr","sido='"+sidoCode+"' sigungu='"+sigungu.Text+"' roadName='"+roadName.Text+"'","callback");
}
}
// 그리드에서 주소 선택 후 더블클릭 하면 입력 되는 함수
function addrGrid_OnCellDblClick(obj,nRow,nCell,nX,nY,nPivotIndex)
{
zipCode=dsAddr.GetColumn(nRow,"zip_no");
dong=dsAddr.GetColumn(nRow,"address");
addr.text=zipCode+" "+sidoValue+" "+dong;
}
// 부모창에 주소 입력하기
function success_OnClick(obj)
{
if(sido.Text==''){
alert("시도를 선택해주세요.");
}else if(sigungu.Text==''){
alert("시군구를 선택해주세요.");
}else if(roadName.Text==''){
alert("도로명을 입력해주세요.");
}else if(detailAddr.Text==''){
alert("상세주소를 입력해주세요.");
}else{
parent.empAddr.text=zipCode+" "+sidoValue+" "+dong+" "+detailAddr.Text;
close();
}
}
]]></Script>
</Window>

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<Window>
<Form Height="486" Id="welcome" Left="8" PidAttrib="7" Title="New&#32;Form" Top="8" Ver="1.0" Width="700" WorkArea="true">
<Image FillType="STRETCH" Height="484" Id="Image0" ImageID="accounting" TabOrder="1" Width="698"></Image>
</Form>
<Script></Script>
</Window>

BIN
miplatform/image/images.res Normal file

Binary file not shown.

View File

@@ -0,0 +1,342 @@
<?xml version="1.0" encoding="utf-8"?>
<Window>
<Form Height="486" Id="empForm" Left="8" OnLoadCompleted="empForm_OnLoadCompleted" PidAttrib="7" Title="New&#32;Form" Top="8" Ver="1.0" Width="700" WorkArea="true">
<Datasets>
<Dataset DataSetType="Dataset" Id="dsPosition">
<Contents>
<colinfo id="DETAIL_CODE" size="256" summ="default" type="STRING"/>
<colinfo id="DETAIL_NAME" size="256" summ="default" type="STRING"/>
<record>
<DETAIL_CODE>PT001</DETAIL_CODE>
<DETAIL_NAME>대표이사</DETAIL_NAME>
</record>
<record>
<DETAIL_CODE>PT002</DETAIL_CODE>
<DETAIL_NAME>전무이사</DETAIL_NAME>
</record>
<record>
<DETAIL_CODE>PT003</DETAIL_CODE>
<DETAIL_NAME>상무이사</DETAIL_NAME>
</record>
<record>
<DETAIL_CODE>PT004</DETAIL_CODE>
<DETAIL_NAME>팀장</DETAIL_NAME>
</record>
<record>
<DETAIL_CODE>PT005</DETAIL_CODE>
<DETAIL_NAME>부장</DETAIL_NAME>
</record>
<record>
<DETAIL_CODE>PT006</DETAIL_CODE>
<DETAIL_NAME>차장</DETAIL_NAME>
</record>
<record>
<DETAIL_CODE>PT007</DETAIL_CODE>
<DETAIL_NAME>과장</DETAIL_NAME>
</record>
<record>
<DETAIL_CODE>PT008</DETAIL_CODE>
<DETAIL_NAME>대리</DETAIL_NAME>
</record>
<record>
<DETAIL_CODE>PT009</DETAIL_CODE>
<DETAIL_NAME>주임</DETAIL_NAME>
</record>
<record>
<DETAIL_CODE>PT010</DETAIL_CODE>
<DETAIL_NAME>사원</DETAIL_NAME>
</record>
<record>
<DETAIL_CODE>PT011</DETAIL_CODE>
<DETAIL_NAME>인턴</DETAIL_NAME>
</record>
<record>
<DETAIL_CODE>PT012</DETAIL_CODE>
<DETAIL_NAME>기타</DETAIL_NAME>
</record>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="dsImg">
<Contents>
<colinfo id="emp_filename" size="256" summ="default" type="STRING"/>
<colinfo encrypt="base64" id="img_file_data" size="256" summ="default" type="BLOB"/>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="dsDept">
<Contents>
<colinfo id="DETAIL_CODE" size="256" summ="default" type="STRING"/>
<colinfo id="DETAIL_NAME" size="256" summ="default" type="STRING"/>
<record>
<DETAIL_CODE>DP001</DETAIL_CODE>
<DETAIL_NAME>경영부</DETAIL_NAME>
</record>
<record>
<DETAIL_CODE>DP002</DETAIL_CODE>
<DETAIL_NAME>관리부</DETAIL_NAME>
</record>
<record>
<DETAIL_CODE>DP003</DETAIL_CODE>
<DETAIL_NAME>재경부</DETAIL_NAME>
</record>
<record>
<DETAIL_CODE>DP004</DETAIL_CODE>
<DETAIL_NAME>생산부</DETAIL_NAME>
</record>
<record>
<DETAIL_CODE>DP005</DETAIL_CODE>
<DETAIL_NAME>구매부</DETAIL_NAME>
</record>
<record>
<DETAIL_CODE>DP006</DETAIL_CODE>
<DETAIL_NAME>영업부</DETAIL_NAME>
</record>
<record>
<DETAIL_CODE>DP007</DETAIL_CODE>
<DETAIL_NAME>개발부</DETAIL_NAME>
</record>
<record>
<DETAIL_CODE>DP008</DETAIL_CODE>
<DETAIL_NAME>품질부</DETAIL_NAME>
</record>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="dsDeptTel">
<Contents>
<colinfo id="DETAIL_CODE" size="256" summ="default" type="STRING"/>
<colinfo id="DETAIL_NAME" size="256" summ="default" type="STRING"/>
<record>
<DETAIL_CODE>DP001</DETAIL_CODE>
<DETAIL_NAME>070-111-1111</DETAIL_NAME>
</record>
<record>
<DETAIL_CODE>DP002</DETAIL_CODE>
<DETAIL_NAME>070-111-1112</DETAIL_NAME>
</record>
<record>
<DETAIL_CODE>DP003</DETAIL_CODE>
<DETAIL_NAME>070-111-1113</DETAIL_NAME>
</record>
<record>
<DETAIL_CODE>DP004</DETAIL_CODE>
<DETAIL_NAME>070-111-1114</DETAIL_NAME>
</record>
<record>
<DETAIL_CODE>DP005</DETAIL_CODE>
<DETAIL_NAME>070-111-1115</DETAIL_NAME>
</record>
<record>
<DETAIL_CODE>DP006</DETAIL_CODE>
<DETAIL_NAME>070-111-1116</DETAIL_NAME>
</record>
<record>
<DETAIL_CODE>DP007</DETAIL_CODE>
<DETAIL_NAME>070-111-1117</DETAIL_NAME>
</record>
<record>
<DETAIL_CODE>DP008</DETAIL_CODE>
<DETAIL_NAME>070-111-1118</DETAIL_NAME>
</record>
</Contents>
</Dataset>
</Datasets>
<Static Border="Flat" BorderColor="SCROLLBAR" Font="KBIZ한마음고딕&#32;B,10" Height="265" Id="Static10" Left="8" TabOrder="29" Text="사원상세정보" Top="216" Type="Groupbox" Width="672"></Static>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,14" Height="24" Id="Static0" Left="8" TabOrder="1" Text="사원관리" Top="8" VAlign="Middle" Width="672"></Static>
<Grid AutoFit="TRUE" BindDataset="dsEmp" BkColor2="default" BoldHead="true" Bottom="217" Enable="true" EndLineColor="default" Font="KBIZ한마음고딕&#32;B,10" Height="152" Id="empListGrid" InputPanel="FALSE" Left="8" LineColor="default" MinWidth="100" OnCellClick="empListGrid_OnCellClick" Right="680" TabOrder="2" TabStop="true" Top="65" UseDBuff="true" UsePopupMenu="true" UseSelColor="true" Visible="true" VLineColor="default" WheelScrollRow="1" Width="672">
<contents>
<format id="Default">
<columns>
<col width="50"/>
<col width="120"/>
<col width="150"/>
<col width="150"/>
<col width="150"/>
</columns>
<head>
<cell bkcolor="#f7e4cf" col="0" display="text" font="KBIZ한마음고딕&#32;B,10" text="No"/>
<cell bkcolor="#f7e4cf" col="1" display="text" font="KBIZ한마음고딕&#32;B,10" text="사번"/>
<cell bkcolor="#f7e4cf" col="2" display="text" font="KBIZ한마음고딕&#32;B,10" text="성명"/>
<cell bkcolor="#f7e4cf" col="3" display="text" font="KBIZ한마음고딕&#32;B,10" text="부서"/>
<cell bkcolor="#f7e4cf" col="4" display="text" font="KBIZ한마음고딕&#32;B,10" text="직급"/>
</head>
<body>
<cell align="center" col="0" colid="No" display="text" expr="currow+1" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="1" colid="emp_no" combocol="emp_no" combodataset="dsEmp" combotext="emp_no" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="2" colid="emp_name" combocol="emp_name" combodataset="dsEmp" combotext="emp_name" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="3" colid="dept_no" combocol="detail_code" combodataset="dsDetailCode" combotext="detail_codename" display="combo" edit="normal" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" col="4" colid="emp_position" combocol="DETAIL_CODE" combodataset="dsPosition" combotext="DETAIL_NAME" display="combo" font="KBIZ한마음고딕&#32;B,10"/>
</body>
<summary>
<cell align="center" bkcolor="#f7e4cf" col="0" colspan="4" display="text" font="KBIZ한마음고딕&#32;B,10">
<cell align="center" col="0" colspan="4" display="text" text="총&#32;인원"/>
</cell>
<cell align="center" bkcolor="#f7e4cf" col="4" display="text" expr='RowCount()+&quot;명&quot;' font="KBIZ한마음고딕&#32;B,10"/>
</summary>
</format>
</contents>
</Grid>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="Static1" Left="250" TabOrder="3" Text="성명" Top="36" VAlign="Middle" Width="46"></Static>
<Edit Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="empName" ImeMode="none" Left="304" TabOrder="4" Top="36" Width="88"></Edit>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="empSearchBtn" Left="399" OnClick="empSearchBtn_OnClick" TabOrder="5" Text="조회" Top="36" Width="41"></Button>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="empAddBtn" Left="459" OnClick="empAddBtn_OnClick" TabOrder="6" Text="추가" Top="36" Width="56"></Button>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="empSaveBtn" Left="514" OnClick="empSaveBtn_OnClick" TabOrder="7" Text="저장" Top="36" Width="56"></Button>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="empRemoveBtn" Left="569" OnClick="empRemoveBtn_OnClick" TabOrder="8" Text="삭제" Top="36" Width="56"></Button>
<Image Border="Sunken" Height="176" Id="empImg" Left="48" OnClick="empImg_OnClick" TabOrder="9" Top="236" Width="146"></Image>
<Static Align="Center" BKColor="#edaf78" Border="Flat" BorderColor="INACTIVECAPTION" Font="KBIZ한마음고딕&#32;B,10" Height="27" Id="Static2" Left="216" TabOrder="10" Text="성명" Top="234" VAlign="Middle" Width="65"></Static>
<Static Align="Center" BKColor="#edaf78" Border="Flat" BorderColor="INACTIVECAPTION" Font="KBIZ한마음고딕&#32;B,10" Height="27" Id="dept" Left="216" TabOrder="11" Text="부서" Top="268" VAlign="Middle" Width="65"></Static>
<Static Align="Center" BKColor="#edaf78" Border="Flat" BorderColor="INACTIVECAPTION" Font="KBIZ한마음고딕&#32;B,10" Height="27" Id="Static4" Left="216" TabOrder="12" Text="비밀번호" Top="364" VAlign="Middle" Width="65"></Static>
<Static Align="Center" BKColor="#edaf78" Border="Flat" BorderColor="INACTIVECAPTION" Font="KBIZ한마음고딕&#32;B,10" Height="27" Id="Static5" Left="216" TabOrder="13" Text="주소" Top="300" VAlign="Middle" Width="65"></Static>
<Static Align="Center" BKColor="#edaf78" Border="Flat" BorderColor="INACTIVECAPTION" Font="KBIZ한마음고딕&#32;B,10" Height="27" Id="Static6" Left="216" TabOrder="14" Text="전화번호" Top="332" VAlign="Middle" Width="65"></Static>
<Static Align="Center" BKColor="#edaf78" Border="Flat" BorderColor="INACTIVECAPTION" Font="KBIZ한마음고딕&#32;B,10" Height="27" Id="Static7" Left="442" TabOrder="15" Text="e_mail" Top="332" VAlign="Middle" Width="65"></Static>
<Static Align="Center" BKColor="#edaf78" Border="Flat" BorderColor="INACTIVECAPTION" Font="KBIZ한마음고딕&#32;B,10" Height="27" Id="Static8" Left="442" TabOrder="16" Text="사번" Top="236" VAlign="Middle" Width="65"></Static>
<Static Align="Center" BKColor="#edaf78" Border="Flat" BorderColor="INACTIVECAPTION" Font="KBIZ한마음고딕&#32;B,10" Height="27" Id="Static11" Left="216" TabOrder="17" Text="비고" Top="396" VAlign="Middle" Width="65"></Static>
<Edit BindDataset="dsEmp" Column="emp_name" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="empNameEdit" Left="288" LeftMargin="2" TabOrder="18" Top="236" Width="124"></Edit>
<Edit BindDataset="dsEmp" Column="emp_no" DisableColor="BACKGROUND" Enable="FALSE" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="empNo" Left="512" LeftMargin="2" TabOrder="19" Top="236" Width="124"></Edit>
<Edit BindDataset="dsEmp" Column="emp_address" DisableColor="BACKGROUND" Enable="FALSE" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="empAddr" Left="288" LeftMargin="2" TabOrder="20" Top="300" Width="312"></Edit>
<Edit BindDataset="dsEmp" Column="emp_pw" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="empPw" Left="288" LeftMargin="2" OnChanged="Edit1_OnChanged" Password="TRUE" TabOrder="21" Top="364" Width="128"></Edit>
<Edit BindDataset="dsEmp" Column="memo" Font="KBIZ한마음고딕&#32;B,10" Height="80" Id="empMemo" Left="288" LeftMargin="2" OnChanged="Edit1_OnChanged" TabOrder="22" Top="396" Width="344"></Edit>
<Combo BindDataset="dsEmp" CodeColumn="detail_code" Column="dept_no" DataColumn="DETAIL_NAME" DisplayRowCnt="8" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="deptNo" InnerDataset="dsDept" Left="288" TabOrder="23" Top="268" Width="122"></Combo>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="empResetBtn" Left="624" OnClick="empResetBtn_OnClick" TabOrder="24" Text="취소" Top="36" Width="56"></Button>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="28" Id="selectImgBtn" Left="57" OnClick="selectImgBtn_OnClick" TabOrder="25" Text="열기" Top="420" Width="64"></Button>
<Button Height="25" Id="addrSearchBtn" ImageID="search" Left="607" OnClick="addrSearchBtn_OnClick" TabOrder="26" Text="Button0" Top="300" Width="25"></Button>
<Static Align="Center" BKColor="#edaf78" Border="Flat" BorderColor="INACTIVECAPTION" Font="KBIZ한마음고딕&#32;B,10" Height="27" Id="Static14" Left="442" TabOrder="27" Text="입사일" Top="364" VAlign="Middle" Width="65"></Static>
<Static Align="Center" BKColor="#edaf78" Border="Flat" BorderColor="INACTIVECAPTION" Font="KBIZ한마음고딕&#32;B,10" Height="27" Id="position" Left="442" TabOrder="29" Text="직급" Top="268" VAlign="Middle" Width="65"></Static>
<Combo BindDataset="dsEmp" CodeColumn="DETAIL_CODE" Column="emp_position" DataColumn="DETAIL_NAME" Font="KBIZ한마음고딕&#32;B,10" Height="23" Id="empPositionCode" ImeMode="none" InnerDataset="dsPosition" Left="512" TabOrder="30" Top="268" Width="121"></Combo>
<File Bottom="476" Height="24" Id="imgFile" Left="128" Right="152" TabOrder="34" Top="452" Width="24"></File>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="28" Id="saveImgBtn" Left="120" OnClick="saveImgBtn_OnClick" TabOrder="30" Text="저장" Top="420" Width="64"></Button>
<Edit BindDataset="dsEmp" Column="emp_email" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="empEmail" Left="512" LeftMargin="2" TabOrder="31" Top="332" Width="124"></Edit>
<Calendar BindDataset="dsEmp" Column="emp_hiredate" Font="KBIZ한마음고딕&#32;B,10" Height="27" Id="hiredate" Left="512" SaturdayTextColor="blue" SundayTextColor="red" TabOrder="32" Top="364" Width="123"></Calendar>
<FileDialog Bottom="476" Height="24" Id="imgFileOpen" Left="89" Right="113" TabOrder="33" Top="452" Width="24"></FileDialog>
<Edit BindDataset="dsEmp" Column="emp_tel" Font="KBIZ한마음고딕&#32;B,10" Height="24" Id="empTel" Left="288" LeftMargin="2" TabOrder="28" Top="332" Width="128"></Edit>
</Form>
<Script><![CDATA[var empFilename;
// 조회 버튼
function empSearchBtn_OnClick(obj)
{
//transaction("getEmpList","svcInsa::/emp/emp.do?method=getEmpList", "", "dsEmp=dsEmp","","callback");
var name=empName.Text;
var sFilter;
if(name=""){
dsEmp.UnFilter();
}else{
if(name.trim().length > 0 ) sFilter += " || pos(emp_name," + quote(name) + ") >= 0";
dsEmp.Filter(sFilter);
}
}
// 콜백 함수
function callback(trid, ErrorCode, ErrorMsg){
if(trid=="getEmpList"){
if(dsEmp.getRowCount()==0){
alert("조회된 데이터가 없습니다.");
}else{
}
}else if(trid=="saveEmpImg"){
if(ErrorCode==0){
alert("사진저장완료.");
}
}
}
// 취소 버튼
function empResetBtn_OnClick(obj)
{
if(confirm("취소하시겠습니까?")){
go("insa::emp.xml");
}
}
// 추가 버튼
function empAddBtn_OnClick(obj)
{
dsEmp.addrow();
}
// 삭제 버튼
function empRemoveBtn_OnClick(obj)
{
if(Confirm("선택한 사원정보를 삭제하시겠습니까?")){
dsEmp.DeleteRow(dsEmp.GetCurrow());
}
}
// 이미지 열기
function selectImgBtn_OnClick(obj)
{
imgFileOpen.Open();
//파일 저장하는 곳에 경로 넣는다.
var empImgFilePath=imgFileOpen.FilePath + "\\" + imgFileOpen.FileName;
imgFile.FileName=empImgFilePath;
//alert(" ----- " +fileName);
// 실제 이미지 나오게 한다.
empImg.ImageID=empImgFilePath;
empImg.FillType="STRETCH";
}
// 이미지 저장
function saveImgBtn_OnClick(obj)
{
// 파일 이름을 가져온다.
empFilename=imgFileOpen.Filename;
// 파일 읽어들이는 것. read binary의 줄임말이다.
imgFile.Open("rb");
// ReadBinary 한번에 읽어올 Buffer의 Size를 정한다. 지정하지 않으면 파일의 모든 내용을 읽어온다.
var empImgFile=imgFile.ReadBinary();
dsImg.AddRow();
// 이미지 이름과 실제 저장될 데이터 값을 셋팅한다.
dsImg.SetColumn(dsImg.GetCurrow(),"emp_filename",empFileName);
dsImg.SetColumn(dsImg.GetCurrow(),"img_file_data",empImgFile);
Transaction("saveEmpImg","svcInsa::/emp/emp.do?method=saveEmpImg","dsImg=dsImg:u","","","callback");
}
// empForm을 로드한 후
function empForm_OnLoadCompleted(obj)
{
trace(dsEmp.SaveXML());
var empImgName=dsEmp.getColumn(dsEmp.GetCurrow(),'emp_image');
empImg.ImageID="http://localhost/project4th/image/"+empImgName+"?time="+timem();
empImg.FillType="STRETCH";
}
// 그리드에서 선택한 셀의 이미지 얻어오기
function empListGrid_OnCellClick(obj,nRow,nCell,nX,nY,nPivotIndex)
{
var empImgName=dsEmp.getColumn(nRow,'emp_image');
empFileName=imgFile.ReadBinary();
trace(" ----------- "+empImgName);
if(Length(empImgName)!=0){
empImg.ImageID="http://localhost/project4th/image/"+empImgName+"?time="+timem();
empImg.FillType="STRETCH";
//dsEmp.setColumn(dsEmp.GetCurrow(),'emp_image',reImgName);
}else{
empImg.ImageID="http://localhost/project4th/image/noimage.gif?time="+timem();
}
}
// 저장 버튼
function empSaveBtn_OnClick(obj)
{
if(empFileName != null){
dsEmp.setColumn(dsEmp.GetCurrow(),'emp_image',empFileName);
}else{
dsEmp.setColumn(dsEmp.GetCurrow(),'emp_image',empImgName);
}
if(Confirm("변경사항을 저장하시겠습니까?")){
Transaction("batchEmpList","svcInsa::/emp/emp.do?method=batchEmpList","dsEmp=dsEmp:U","","","callback");
}
Reload();
}
//우편번호&주소 검색 버튼
function addrSearchBtn_OnClick(obj)
{
dialog("base::postInfo.xml","",400,370,"",550,200);
}
]]></Script>
</Window>

View File

@@ -0,0 +1,197 @@
<?xml version="1.0" encoding="utf-8"?>
<Window>
<Form Height="488" Id="incomeStatementForm" Left="8" OnLoadCompleted="incomeStatementForm_OnLoadCompleted" PidAttrib="7" Title="New&#32;Form" Top="8" Ver="1.0" Width="700" WorkArea="true">
<Datasets>
<Dataset DataSetType="Dataset" Id="dsIncomeStatement">
<Contents>
<colinfo id="ACCOUNT_CODE" size="256" summ="default" type="STRING"/>
<colinfo id="PARENT_ACCOUNT" size="256" summ="default" type="STRING"/>
<colinfo id="ACCOUNT_NAME" size="256" summ="default" type="STRING"/>
<colinfo id="AMT" size="256" summ="default" type="STRING"/>
<colinfo id="TOTAL_AMT" size="256" summ="default" type="STRING"/>
<colinfo id="income_year" size="256" summ="default" type="STRING"/>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="selectYear">
<Contents>
<colinfo id="preYear" size="256" summ="default" type="STRING"/>
<record>
<preYear>2016</preYear>
</record>
<record>
<preYear>2015</preYear>
</record>
<record>
<preYear>2014</preYear>
</record>
<record>
<preYear>2013</preYear>
</record>
<record>
<preYear>2012</preYear>
</record>
<record>
<preYear>2011</preYear>
</record>
<record>
<preYear>2010</preYear>
</record>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="dsTotalIncome">
<Contents>
<colinfo id="income_year" size="256" summ="default" type="STRING"/>
<colinfo id="net_profit" size="256" summ="default" type="STRING"/>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="dsFormerIncome">
<Contents>
<colinfo id="ACCOUNT_CODE" size="256" summ="default" type="STRING"/>
<colinfo id="PARENT_ACCOUNT" size="256" summ="default" type="STRING"/>
<colinfo id="ACCOUNT_NAME" size="256" summ="default" type="STRING"/>
<colinfo id="AMT" size="256" summ="default" type="STRING"/>
<colinfo id="TOTAL_AMT" size="256" summ="default" type="STRING"/>
<colinfo id="income_year" size="256" summ="default" type="STRING"/>
</Contents>
</Dataset>
</Datasets>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,14" Height="24" Id="Static0" TabOrder="1" Text="손익계산서" Top="8" VAlign="Middle" Width="696"></Static>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="incomeSearch" Left="536" OnClick="incomeSearch_OnClick" TabOrder="2" Text="조회" Top="43" Width="46"></Button>
<Grid AutoFit="TRUE" BindDataset="dsIncomeStatement" BkColor2="default" BoldHead="true" Bottom="472" Editable="TRUE" Enable="true" EndLineColor="default" Height="392" Id="incomeStatementGrid" InputPanel="FALSE" LineColor="default" MinWidth="100" Right="696" TabOrder="3" TabStop="true" Top="80" UseDBuff="true" UsePopupMenu="true" UseSelColor="true" Visible="true" VLineColor="default" WheelScrollRow="1" Width="696">
<contents>
<format id="Default">
<columns>
<col width="150"/>
<col width="80"/>
<col width="80"/>
<col width="80"/>
<col width="80"/>
</columns>
<head>
<cell bkcolor="#f7e4cf" col="0" display="text" font="KBIZ한마음고딕&#32;B,10" rowspan="2" text="과목"/>
<cell bkcolor="#f7e4cf" col="1" colspan="2" display="text" font="KBIZ한마음고딕&#32;B,10" text="당기"/>
<cell bkcolor="#f7e4cf" col="3" colspan="2" display="text" font="KBIZ한마음고딕&#32;B,10" text="전기"/>
<cell bkcolor="#f7e4cf" col="1" colspan="2" display="text" font="KBIZ한마음고딕&#32;B,10" row="1" text="금액"/>
<cell bkcolor="#f7e4cf" col="3" colspan="2" display="text" font="KBIZ한마음고딕&#32;B,10" row="1" text="금액"/>
</head>
<body>
<cell align="center" bkcolor="expr:iif(parent_account&#32;==&#32;40&#32;||&#32;parent_account&#32;==&#32;50,&#32;&apos;#EEC699&apos;)" bkcolor2="expr:iif(parent_account&#32;==&#32;40&#32;||&#32;parent_account&#32;==&#32;50,&#32;&apos;#EEC699&apos;,&#32;&apos;#FAEDDE&apos;)" col="0" colid="ACCOUNT_NAME" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" bkcolor="expr:iif(parent_account&#32;==&#32;40&#32;||&#32;parent_account&#32;==&#32;50,&#32;&apos;#EEC699&apos;)" bkcolor2="expr:iif(parent_account&#32;==&#32;40&#32;||&#32;parent_account&#32;==&#32;50,&#32;&apos;#EEC699&apos;,&#32;&apos;#FAEDDE&apos;)" col="1" colid="AMT" display="number" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" bkcolor="expr:iif(parent_account&#32;==&#32;40&#32;||&#32;parent_account&#32;==&#32;50,&#32;&apos;#EEC699&apos;)" bkcolor2="expr:iif(parent_account&#32;==&#32;40&#32;||&#32;parent_account&#32;==&#32;50,&#32;&apos;#EEC699&apos;,&#32;&apos;#FAEDDE&apos;)" col="2" colid="TOTAL_AMT" display="number" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" bkcolor="expr:iif(parent_account&#32;==&#32;40&#32;||&#32;parent_account&#32;==&#32;50,&#32;&apos;#EEC699&apos;)" bkcolor2="expr:iif(parent_account&#32;==&#32;40&#32;||&#32;parent_account&#32;==&#32;50,&#32;&apos;#EEC699&apos;,&#32;&apos;#FAEDDE&apos;)" col="3" colid="ACCOUNT_CODE" combocol="ACCOUNT_CODE" combodataset="dsFormerIncome" combotext="AMT" display="combo" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" bkcolor="expr:iif(parent_account&#32;==&#32;40&#32;||&#32;parent_account&#32;==&#32;50,&#32;&apos;#EEC699&apos;)" bkcolor2="expr:iif(parent_account&#32;==&#32;40&#32;||&#32;parent_account&#32;==&#32;50,&#32;&apos;#EEC699&apos;,&#32;&apos;#FAEDDE&apos;)" col="4" colid="ACCOUNT_CODE" combocol="ACCOUNT_CODE" combodataset="dsFormerIncome" combotext="TOTAL_AMT" display="combo" font="KBIZ한마음고딕&#32;B,10"/>
</body>
<summary>
<cell align="center" bkcolor="#f7e4cf" col="0" display="text" font="KBIZ한마음고딕&#32;B,10" text="순이익"/>
<cell bkcolor="#f7e4cf" col="1" display="text"/>
<cell align="center" bkcolor="#f7e4cf" col="2" display="number" font="KBIZ한마음고딕&#32;B,10"/>
<cell bkcolor="#f7e4cf" col="3" display="text"/>
<cell align="center" bkcolor="#f7e4cf" col="4" display="number" font="KBIZ한마음고딕&#32;B,10"/>
</summary>
</format>
</contents>
</Grid>
<Calendar DisableColor="BACKGROUND" Enable="FALSE" Font="KBIZ한마음고딕&#32;B,10" Height="25" Id="sDate" Left="290" SaturdayTextColor="blue" SundayTextColor="red" TabOrder="4" Top="44" Width="105"></Calendar>
<Static Align="Center" Font="KBIZ한마음고딕&#32;B,10" Height="20" Id="Static9" Left="393" TabOrder="6" Text="~" Top="46" VAlign="Middle" Width="32"></Static>
<Calendar DisableColor="BACKGROUND" Enable="FALSE" Font="KBIZ한마음고딕&#32;B,10" Height="25" Id="eDate" Left="424" SaturdayTextColor="blue" SundayTextColor="red" TabOrder="5" Top="44" Width="105"></Calendar>
<Combo DataColumn="preYear" Font="KBIZ한마음고딕&#32;B,10" Height="25" Id="selYear" INDEX="0" InnerDataset="selectYear" Left="216" OnChanged="selYear_OnChanged" TabOrder="7" Top="44" Width="63"></Combo>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="excelPrint" Left="632" OnClick="excelPrint_OnClick" TabOrder="8" Text="엑셀출력" Top="43" Width="56"></Button>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="incomeSave" Left="584" OnClick="incomeSave_OnClick" TabOrder="9" Text="저장" Top="43" Width="46"></Button>
</Form>
<Script><![CDATA[var year, strDate, total;
// 콜백 함수 ~
function callback(trid, ErrorCode, ErrorMsg)
{
if(trid=="getIncomeStatementList"){
if(ErrorCode != 0){
alert(ErrorMsg);
}else{
sum();
//alert(dsIncomeStatement.GetColumn(0,"income_year"));
}
}else if(trid=="batchIncomeStatementList"){
if(ErrorCode != 0){
alert("해당 연도는 저장할 수 없습니다. 관리자에게 문의하세요 !!");
}else{
alert("저장 성공");
}
}
}
var profit, cost, total, fProfit, fCost, fTotal;
// 당기, 전기 순이익 총계 구하는 함수 ~
function sum()
{
var profitCheck=dsIncomeStatement.findrow("account_code","402");
var costCheck=dsIncomeStatement.findrow("account_code","503");
profit=parseInt(dsIncomeStatement.totalSum("total_amt", 0, profitCheck));
cost=parseInt(dsIncomeStatement.totalSum("total_amt", profitCheck+1));
total=profit-cost;
incomeStatementGrid.SetCellProp("summ",2,"value", total);
var former_profit=parseInt(dsFormerIncome.totalSum("total_amt", 0, profitCheck));
var former_cost=parseInt(dsFormerIncome.totalSum("total_amt", profitCheck+1));
var former_total=former_profit-former_cost;
incomeStatementGrid.SetCellProp("summ",4,"value", former_total);
}
// 손익계산서 폼이 로드된 후 ~
function incomeStatementForm_OnLoadCompleted(obj)
{
strDate = GetDate();
year = Mid(strDate,0,4);
strDate = Mid(strDate,0,8);
sDate.value = year+'0101' ;
eDate.value = strDate ;
}
// 날짜 선택 콤보가 바뀌면 ~
function selYear_OnChanged(obj,strCode,strText,nOldIndex,nNewIndex)
{
year = selYear.Value ;
if(year == '2016'){
sDate.value = year+'0101' ;
eDate.value = strDate ;
}else{
sDate.value = parseInt(year)+'0101' ;
eDate.value = parseInt(year)+'1231' ;
}
}
// 조회 버튼
function incomeSearch_OnClick(obj)
{
//alert("시작 : "+sDate.Value+" 끝 : "+eDate.Value);
Transaction("getIncomeStatementList","svcAccounting::/slip/settlement.do?method=getIncomeStatementList","","dsIncomeStatement=dsIncomeStatement dsFormerIncome=dsFormerIncome",
"sDate='"+sDate.Value+"' eDate='"+eDate.Value+"'","callback");
}
// 엑셀 출력
function excelPrint_OnClick(obj)
{
if(Confirm("손익계산서를 출력하시겠습니까?")){
incomeStatementGrid.ExportExcelEx("IncomeStatement");
}
}
// 저장 버튼
function incomeSave_OnClick(obj)
{
dsTotalIncome.AddRow();
dsTotalIncome.SetColumn(dsTotalIncome.GetCurrow(), "income_year", year);
dsTotalIncome.SetColumn(dsTotalIncome.GetCurrow(), "net_profit", total);
if(Confirm("손익계산서를 저장하시겠습니까?")){
Transaction("batchIncomeStatementList","svcAccounting::/slip/settlement.do?method=batchIncomeStatementList","dsTotalIncome=dsTotalIncome:A dsIncomeStatement=dsIncomeStatement:A",
"","","callback");
}
}
]]></Script>
</Window>

View File

@@ -0,0 +1,214 @@
<?xml version="1.0" encoding="utf-8"?>
<Window>
<Form Height="488" Id="statementOfPositionForm" Left="8" OnLoadCompleted="statementOfPositionForm_OnLoadCompleted" PidAttrib="7" Title="New&#32;Form" Top="8" Ver="1.0" Width="700" WorkArea="true">
<Datasets>
<Dataset DataSetType="Dataset" Id="dsStatementPosition">
<Contents>
<colinfo id="ACCOUNT_CODE" size="256" summ="default" type="STRING"/>
<colinfo id="PARENT_ACCOUNT" size="256" summ="default" type="STRING"/>
<colinfo id="ACCOUNT_NAME" size="256" summ="default" type="STRING"/>
<colinfo id="AMT" size="256" summ="default" type="STRING"/>
<colinfo id="TOTAL_AMT" size="256" summ="default" type="STRING"/>
<colinfo id="STATEMENT_YEAR" size="256" summ="default" type="STRING"/>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="dsFormerStatementPosition">
<Contents>
<colinfo id="ACCOUNT_CODE" size="256" summ="default" type="STRING"/>
<colinfo id="PARENT_ACCOUNT" size="256" summ="default" type="STRING"/>
<colinfo id="ACCOUNT_NAME" size="256" summ="default" type="STRING"/>
<colinfo id="AMT" size="256" summ="default" type="STRING"/>
<colinfo id="TOTAL_AMT" size="256" summ="default" type="STRING"/>
<colinfo id="STATEMENT_YEAR" size="256" summ="default" type="STRING"/>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="selectYear">
<Contents>
<colinfo id="preYear" size="256" summ="default" type="STRING"/>
<record>
<preYear>2016</preYear>
</record>
<record>
<preYear>2015</preYear>
</record>
<record>
<preYear>2014</preYear>
</record>
<record>
<preYear>2013</preYear>
</record>
<record>
<preYear>2012</preYear>
</record>
<record>
<preYear>2011</preYear>
</record>
<record>
<preYear>2010</preYear>
</record>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="dsTotalStatement">
<Contents>
<colinfo id="statement_year" size="256" summ="default" type="STRING"/>
<colinfo id="asset_total" size="256" summ="default" type="STRING"/>
<colinfo id="capital_total" size="256" summ="default" type="STRING"/>
<colinfo id="debt_total" size="256" summ="default" type="STRING"/>
</Contents>
</Dataset>
</Datasets>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,14" Height="24" Id="statementOfPosition" TabOrder="1" Text="재무상태표" Top="8" VAlign="Middle" Width="696"></Static>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="statementSearch" Left="536" OnClick="statementSearch_OnClick" TabOrder="2" Text="조회" Top="43" Width="46"></Button>
<Grid AutoFit="TRUE" BindDataset="dsStatementPosition" BkColor2="default" BoldHead="true" Bottom="472" Editable="TRUE" Enable="true" EndLineColor="default" Height="392" Id="statementOfPositionGrid" InputPanel="FALSE" LineColor="default" MinWidth="100" Right="696" TabOrder="3" TabStop="true" Top="80" UseDBuff="true" UsePopupMenu="true" UseSelColor="true" Visible="true" VLineColor="default" WheelScrollRow="1" Width="696">
<contents>
<format id="Default">
<columns>
<col width="150"/>
<col width="80"/>
<col width="80"/>
<col width="80"/>
<col width="80"/>
</columns>
<head>
<cell bkcolor="#f7e4cf" col="0" display="text" font="KBIZ한마음고딕&#32;B,10" rowspan="2" text="과목"/>
<cell bkcolor="#f7e4cf" col="1" colspan="2" display="text" font="KBIZ한마음고딕&#32;B,10" text="당기"/>
<cell bkcolor="#f7e4cf" col="3" colspan="2" display="text" font="KBIZ한마음고딕&#32;B,10" text="전기"/>
<cell bkcolor="#f7e4cf" col="1" colspan="2" display="text" font="KBIZ한마음고딕&#32;B,10" row="1" text="금액"/>
<cell bkcolor="#f7e4cf" col="3" colspan="2" display="text" font="KBIZ한마음고딕&#32;B,10" row="1" text="금액"/>
</head>
<body>
<cell align="center" bkcolor="expr:iif(parent_account&#32;==&#32;10&#32;||&#32;parent_account&#32;==&#32;20&#32;||&#32;parent_account&#32;==&#32;30&#32;,&#32;&apos;#EEC699&apos;)" bkcolor2="expr:iif(parent_account&#32;==&#32;10&#32;||&#32;parent_account&#32;==&#32;20&#32;||&#32;parent_account&#32;==&#32;30&#32;,&#32;&apos;#EEC699&apos;,&#32;&apos;#FAEDDE&apos;)" col="0" colid="ACCOUNT_NAME" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" bkcolor="expr:iif(parent_account&#32;==&#32;10&#32;||&#32;parent_account&#32;==&#32;20&#32;||&#32;parent_account&#32;==&#32;30&#32;,&#32;&apos;#EEC699&apos;)" bkcolor2="expr:iif(parent_account&#32;==&#32;10&#32;||&#32;parent_account&#32;==&#32;20&#32;||&#32;parent_account&#32;==&#32;30&#32;,&#32;&apos;#EEC699&apos;,&#32;&apos;#FAEDDE&apos;)" col="1" colid="AMT" display="number" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" bkcolor="expr:iif(parent_account&#32;==&#32;10&#32;||&#32;parent_account&#32;==&#32;20&#32;||&#32;parent_account&#32;==&#32;30&#32;,&#32;&apos;#EEC699&apos;)" bkcolor2="expr:iif(parent_account&#32;==&#32;10&#32;||&#32;parent_account&#32;==&#32;20&#32;||&#32;parent_account&#32;==&#32;30&#32;,&#32;&apos;#EEC699&apos;,&#32;&apos;#FAEDDE&apos;)" col="2" colid="TOTAL_AMT" display="number" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" bkcolor="expr:iif(parent_account&#32;==&#32;10&#32;||&#32;parent_account&#32;==&#32;20&#32;||&#32;parent_account&#32;==&#32;30&#32;,&#32;&apos;#EEC699&apos;)" bkcolor2="expr:iif(parent_account&#32;==&#32;10&#32;||&#32;parent_account&#32;==&#32;20&#32;||&#32;parent_account&#32;==&#32;30&#32;,&#32;&apos;#EEC699&apos;,&#32;&apos;#FAEDDE&apos;)" col="3" colid="ACCOUNT_CODE" combocol="ACCOUNT_CODE" combodataset="dsFormerStatementPosition" combotext="AMT" display="combo" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" bkcolor="expr:iif(parent_account&#32;==&#32;10&#32;||&#32;parent_account&#32;==&#32;20&#32;||&#32;parent_account&#32;==&#32;30&#32;,&#32;&apos;#EEC699&apos;)" bkcolor2="expr:iif(parent_account&#32;==&#32;10&#32;||&#32;parent_account&#32;==&#32;20&#32;||&#32;parent_account&#32;==&#32;30&#32;,&#32;&apos;#EEC699&apos;,&#32;&apos;#FAEDDE&apos;)" col="4" colid="ACCOUNT_CODE" combocol="ACCOUNT_CODE" combodataset="dsFormerStatementPosition" combotext="TOTAL_AMT" display="combo" font="KBIZ한마음고딕&#32;B,10"/>
</body>
<summary>
<cell align="center" bkcolor="#f7e4cf" col="0" display="text" font="KBIZ한마음고딕&#32;B,10" text="자산총계"/>
<cell bkcolor="#f7e4cf" col="1" display="text"/>
<cell align="center" bkcolor="#f7e4cf" col="2" display="number" font="KBIZ한마음고딕&#32;B,10"/>
<cell bkcolor="#f7e4cf" col="3" display="text"/>
<cell align="center" bkcolor="#f7e4cf" col="4" display="number" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" bkcolor="#f7e4cf" col="0" display="text" font="KBIZ한마음고딕&#32;B,10" row="1" text="자본과&#32;부채총계"/>
<cell align="center" bkcolor="#f7e4cf" col="1" display="text" font="KBIZ한마음고딕&#32;B,10" row="1"/>
<cell align="center" bkcolor="#f7e4cf" col="2" display="number" font="KBIZ한마음고딕&#32;B,10" row="1"/>
<cell align="center" bkcolor="#f7e4cf" col="3" display="text" font="KBIZ한마음고딕&#32;B,10" row="1"/>
<cell align="center" bkcolor="#f7e4cf" col="4" display="number" font="KBIZ한마음고딕&#32;B,10" row="1"/>
</summary>
</format>
</contents>
</Grid>
<Calendar DisableColor="BACKGROUND" Enable="FALSE" Font="KBIZ한마음고딕&#32;B,10" Height="25" Id="sDate" Left="290" SaturdayTextColor="blue" SundayTextColor="red" TabOrder="4" Top="44" Width="105"></Calendar>
<Static Align="Center" Font="KBIZ한마음고딕&#32;B,10" Height="20" Id="Static9" Left="393" TabOrder="6" Text="~" Top="46" VAlign="Middle" Width="32"></Static>
<Calendar DisableColor="BACKGROUND" Enable="FALSE" Font="KBIZ한마음고딕&#32;B,10" Height="25" Id="eDate" Left="424" SaturdayTextColor="blue" SundayTextColor="red" TabOrder="5" Top="44" Width="105"></Calendar>
<Combo DataColumn="preYear" Font="KBIZ한마음고딕&#32;B,10" Height="25" Id="selYear" INDEX="0" InnerDataset="selectYear" Left="216" OnChanged="selYear_OnChanged" TabOrder="7" Top="44" Width="63"></Combo>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="excelPrint" Left="632" OnClick="excelPrint_OnClick" TabOrder="8" Text="엑셀출력" Top="43" Width="56"></Button>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="statementSave" Left="584" OnClick="statementSave_OnClick" TabOrder="9" Text="저장" Top="43" Width="46"></Button>
</Form>
<Script><![CDATA[var year, strDate, total;
// 콜백 함수 ~
function callback(trid, ErrorCode, ErrorMsg)
{
if(trid=="getStatementPositionList"){
if(ErrorCode != 0){
alert(ErrorMsg);
}else{
sum();
//alert(dsIncomeStatement.GetColumn(0,"income_year"));
}
}else if(trid=="batchStatementPositionList"){
if(ErrorCode != 0){
alert("해당 연도는 저장할 수 없습니다. 관리자에게 문의하세요 !!");
}else{
alert("저장 성공");
}
}
}
var asset, capital, debt, total;
// 총 자산, 자본, 부채 합계 구하는 함수 ~
function sum()
{
var assetCheck=dsStatementPosition.findrow("account_code","106");
var debtCheck=dsStatementPosition.findrow("account_code","202");
var capitalCheck=dsStatementPosition.findrow("account_code","305");
asset=parseInt(dsStatementPosition.totalSum("total_amt", 0, assetCheck));
debt=parseInt(dsStatementPosition.totalSum("total_amt", assetCheck+1, capitalCheck-debtCheck));
capital=parseInt(dsStatementPosition.totalSum("total_amt", debtCheck+1));
total=debt+capital;
//alert(capitalCheck-debtCheck);
statementOfPositionGrid.SetCellProp("summ",2,"value",asset);
statementOfPositionGrid.SetCellProp("summ",7,"value",total);
var former_asset=parseInt(dsFormerStatementPosition.totalSum("total_amt", 0, assetCheck));
var former_debt=parseInt(dsFormerStatementPosition.totalSum("total_amt", assetCheck+1, capitalCheck-debtCheck));
var former_capital=parseInt(dsFormerStatementPosition.totalSum("total_amt", debtCheck+1));
var former_total=former_debt+former_capital;
statementOfPositionGrid.SetCellProp("summ",4,"value",former_asset);
statementOfPositionGrid.SetCellProp("summ",9,"value",former_total);
}
// 재무상태표 폼이 로드된 후 ~
function statementOfPositionForm_OnLoadCompleted(obj)
{
strDate = GetDate();
year = Mid(strDate,0,4);
strDate = Mid(strDate,0,8);
sDate.value = year+'0101' ;
eDate.value = strDate ;
}
// 날짜 선택 콤보가 바뀌면 ~
function selYear_OnChanged(obj,strCode,strText,nOldIndex,nNewIndex)
{
year = selYear.Value ;
if(year == '2016'){
sDate.value = year+'0101' ;
eDate.value = strDate ;
}else{
sDate.value = parseInt(year)+'0101' ;
eDate.value = parseInt(year)+'1231' ;
}
}
// 조회 버튼
function statementSearch_OnClick(obj)
{
//alert("시작 : "+sDate.Value+" 끝 : "+eDate.Value);
Transaction("getStatementPositionList","svcAccounting::/slip/settlement.do?method=getStatementPositionList","","dsStatementPosition=dsStatementPosition dsFormerStatementPosition=dsFormerStatementPosition",
"sDate='"+sDate.Value+"' eDate='"+eDate.Value+"'","callback");
}
// 엑셀 출력
function excelPrint_OnClick(obj)
{
if(Confirm("재무상태표를 출력하시겠습니까?")){
statementOfPositionGrid.ExportExcelEx("StatementOfPosition");
}
}
// 저장 버튼
function statementSave_OnClick(obj)
{
dsTotalStatement.AddRow();
dsTotalStatement.SetColumn(dsTotalStatement.GetCurrow(), "statement_year", year);
dsTotalStatement.SetColumn(dsTotalStatement.GetCurrow(), "asset_total", asset);
dsTotalStatement.SetColumn(dsTotalStatement.GetCurrow(), "capital_total", capital);
dsTotalStatement.SetColumn(dsTotalStatement.GetCurrow(), "debt_total", debt);
if(Confirm("재무상태표를 저장하시겠습니까?")){
Transaction("batchStatementPositionList","svcAccounting::/slip/settlement.do?method=batchStatementPositionList","dsStatementPosition=dsStatementPosition:A dsTotalStatement=dsTotalStatement:A",
"","","callback");
}
}
]]></Script>
</Window>

View File

@@ -0,0 +1,159 @@
<?xml version="1.0" encoding="utf-8"?>
<Window>
<Form Height="488" Id="totalTrialBalanceForm" Left="8" OnLoadCompleted="totalTrialBalanceForm_OnLoadCompleted" PidAttrib="7" Title="New&#32;Form" Top="8" Ver="1.0" Width="700" WorkArea="true">
<Datasets>
<Dataset DataSetType="Dataset" Id="dsTotalTrialBalance">
<Contents>
<colinfo id="account_code" size="256" summ="default" type="STRING"/>
<colinfo id="account_name" size="256" summ="default" type="STRING"/>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="selectYear">
<Contents>
<colinfo id="preYear" size="256" summ="default" type="STRING"/>
<record>
<preYear>2016</preYear>
</record>
<record>
<preYear>2015</preYear>
</record>
<record>
<preYear>2014</preYear>
</record>
<record>
<preYear>2013</preYear>
</record>
<record>
<preYear>2012</preYear>
</record>
<record>
<preYear>2011</preYear>
</record>
<record>
<preYear>2010</preYear>
</record>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="dsTotalCreditor">
<Contents>
<colinfo id="account_code" size="256" summ="default" type="STRING"/>
<colinfo id="amt" size="256" summ="default" type="STRING"/>
<colinfo id="account_name" size="256" summ="default" type="STRING"/>
<colinfo id="journal_type" size="256" summ="default" type="STRING"/>
</Contents>
</Dataset>
<Dataset DataSetType="Dataset" Id="dsTotalDebtor">
<Contents>
<colinfo id="account_code" size="256" summ="default" type="STRING"/>
<colinfo id="amt" size="256" summ="default" type="STRING"/>
<colinfo id="account_name" size="256" summ="default" type="STRING"/>
<colinfo id="journal_type" size="256" summ="default" type="STRING"/>
</Contents>
</Dataset>
</Datasets>
<Static Align="Center" BKColor="#edaf78" Font="KBIZ한마음고딕&#32;B,14" Height="24" Id="Static0" TabOrder="1" Text="합계&#32;잔액&#32;시산표" Top="8" VAlign="Middle" Width="696"></Static>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="totalSearch" Left="592" OnClick="totalSearch_OnClick" TabOrder="2" Text="조회" Top="43" Width="46"></Button>
<Grid AutoFit="TRUE" BindDataset="dsTotalTrialBalance" BkColor2="default" BoldHead="true" Bottom="480" Editable="TRUE" Enable="true" EndLineColor="default" Height="400" Id="totalTrialBalanceGrid" InputPanel="FALSE" LineColor="default" MinWidth="100" Right="696" TabOrder="3" TabStop="true" Top="80" UseDBuff="true" UsePopupMenu="true" UseSelColor="true" Visible="true" VLineColor="default" WheelScrollRow="1" Width="696">
<contents>
<format id="Default">
<columns>
<col width="100"/>
<col width="100"/>
<col width="50"/>
<col width="150"/>
<col width="100"/>
<col width="100"/>
</columns>
<head>
<cell align="center" bkcolor="#f7e4cf" col="0" colspan="2" display="text" font="KBIZ한마음고딕&#32;B,10">
<cell align="center" col="0" colspan="2" display="text" font="KBIZ한마음고딕&#32;B,10" text="차변"/>
</cell>
<cell align="center" bkcolor="#f7e4cf" col="2" colspan="2" display="text" font="KBIZ한마음고딕&#32;B,10" rowspan="2" text="계정과목"/>
<cell align="center" bkcolor="#f7e4cf" col="4" colspan="2" display="text" font="KBIZ한마음고딕&#32;B,10">
<cell col="0" colspan="2" display="text" font="KBIZ한마음고딕&#32;B,10" text="대변"/>
</cell>
<cell align="center" bkcolor="#f7e4cf" col="0" display="text" font="KBIZ한마음고딕&#32;B,10" row="1" text="잔액"/>
<cell align="center" bkcolor="#f7e4cf" col="1" display="text" font="KBIZ한마음고딕&#32;B,10" row="1" text="합계"/>
<cell align="center" bkcolor="#f7e4cf" col="4" display="text" font="KBIZ한마음고딕&#32;B,10" row="1" text="합계"/>
<cell align="center" bkcolor="#f7e4cf" col="5" display="text" font="KBIZ한마음고딕&#32;B,10" row="1" text="잔액"/>
</head>
<body>
<cell align="center" bkcolor="expr:iif(account_code&#32;==&#32;10&#32;||&#32;account_code&#32;==&#32;20&#32;||&#32;account_code&#32;==&#32;30&#32;||&#32;account_code&#32;==&#32;40&#32;||&#32;account_code&#32;==&#32;50&#32;,&#32;&apos;#EEC699&apos;)" bkcolor2="expr:iif(account_code&#32;==&#32;10&#32;||&#32;account_code&#32;==&#32;20&#32;||&#32;account_code&#32;==&#32;30&#32;||&#32;account_code&#32;==&#32;40&#32;||&#32;account_code&#32;==&#32;50&#32;,&#32;&apos;#EEC699&apos;,&#32;&apos;#FAEDDE&apos;)" col="0" display="text" edit="normal" expr='iif(parseInt(dsTotalDebtor.getColumn(currow,&#32;&quot;amt&quot;))-parseInt(dsTotalCreditor.getColumn(currow,&#32;&quot;amt&quot;))&#32;&gt;&#32;0&#32;,&#32;parseInt(dsTotalDebtor.getColumn(currow,&#32;&quot;amt&quot;))-parseInt(dsTotalCreditor.getColumn(currow,&#32;&quot;amt&quot;)),&#32;&quot;&quot;)' font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" bkcolor="expr:iif(account_code&#32;==&#32;10&#32;||&#32;account_code&#32;==&#32;20&#32;||&#32;account_code&#32;==&#32;30&#32;||&#32;account_code&#32;==&#32;40&#32;||&#32;account_code&#32;==&#32;50&#32;,&#32;&apos;#EEC699&apos;)" bkcolor2="expr:iif(account_code&#32;==&#32;10&#32;||&#32;account_code&#32;==&#32;20&#32;||&#32;account_code&#32;==&#32;30&#32;||&#32;account_code&#32;==&#32;40&#32;||&#32;account_code&#32;==&#32;50&#32;,&#32;&apos;#EEC699&apos;,&#32;&apos;#FAEDDE&apos;)" col="1" colid="account_code" combocol="account_code" combodataset="dsTotalDebtor" combotext="amt" display="combo" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" bkcolor="expr:iif(account_code&#32;==&#32;10&#32;||&#32;account_code&#32;==&#32;20&#32;||&#32;account_code&#32;==&#32;30&#32;||&#32;account_code&#32;==&#32;40&#32;||&#32;account_code&#32;==&#32;50&#32;,&#32;&apos;#EEC699&apos;)" bkcolor2="expr:iif(account_code&#32;==&#32;10&#32;||&#32;account_code&#32;==&#32;20&#32;||&#32;account_code&#32;==&#32;30&#32;||&#32;account_code&#32;==&#32;40&#32;||&#32;account_code&#32;==&#32;50&#32;,&#32;&apos;#EEC699&apos;,&#32;&apos;#FAEDDE&apos;)" col="2" colid="account_code" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" bkcolor="expr:iif(account_code&#32;==&#32;10&#32;||&#32;account_code&#32;==&#32;20&#32;||&#32;account_code&#32;==&#32;30&#32;||&#32;account_code&#32;==&#32;40&#32;||&#32;account_code&#32;==&#32;50&#32;,&#32;&apos;#EEC699&apos;)" bkcolor2="expr:iif(account_code&#32;==&#32;10&#32;||&#32;account_code&#32;==&#32;20&#32;||&#32;account_code&#32;==&#32;30&#32;||&#32;account_code&#32;==&#32;40&#32;||&#32;account_code&#32;==&#32;50&#32;,&#32;&apos;#EEC699&apos;,&#32;&apos;#FAEDDE&apos;)" col="3" colid="account_name" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" bkcolor="expr:iif(account_code&#32;==&#32;10&#32;||&#32;account_code&#32;==&#32;20&#32;||&#32;account_code&#32;==&#32;30&#32;||&#32;account_code&#32;==&#32;40&#32;||&#32;account_code&#32;==&#32;50&#32;,&#32;&apos;#EEC699&apos;)" bkcolor2="expr:iif(account_code&#32;==&#32;10&#32;||&#32;account_code&#32;==&#32;20&#32;||&#32;account_code&#32;==&#32;30&#32;||&#32;account_code&#32;==&#32;40&#32;||&#32;account_code&#32;==&#32;50&#32;,&#32;&apos;#EEC699&apos;,&#32;&apos;#FAEDDE&apos;)" col="4" colid="account_code" combocol="account_code" combodataset="dsTotalCreditor" combotext="amt" display="combo" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" bkcolor="expr:iif(account_code&#32;==&#32;10&#32;||&#32;account_code&#32;==&#32;20&#32;||&#32;account_code&#32;==&#32;30&#32;||&#32;account_code&#32;==&#32;40&#32;||&#32;account_code&#32;==&#32;50&#32;,&#32;&apos;#EEC699&apos;)" bkcolor2="expr:iif(account_code&#32;==&#32;10&#32;||&#32;account_code&#32;==&#32;20&#32;||&#32;account_code&#32;==&#32;30&#32;||&#32;account_code&#32;==&#32;40&#32;||&#32;account_code&#32;==&#32;50&#32;,&#32;&apos;#EEC699&apos;,&#32;&apos;#FAEDDE&apos;)" col="5" display="text" expr='iif(parseInt(dsTotalCreditor.getColumn(currow,&#32;&quot;amt&quot;))-parseInt(dsTotalDebtor.getColumn(currow,&#32;&quot;amt&quot;))&#32;&gt;&#32;0&#32;,&#32;parseInt(dsTotalCreditor.getColumn(currow,&#32;&quot;amt&quot;))-parseInt(dsTotalDebtor.getColumn(currow,&#32;&quot;amt&quot;)),&#32;&quot;&quot;)' font="KBIZ한마음고딕&#32;B,10"/>
</body>
<summary>
<cell align="center" bkcolor="#f7e4cf" col="0" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" bkcolor="#f7e4cf" col="1" display="number" expr='sum(&quot;amt&quot;)' font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" bkcolor="#f7e4cf" col="2" colspan="2" display="text" font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" bkcolor="#f7e4cf" col="4" display="number" expr='sum(&quot;amt&quot;)' font="KBIZ한마음고딕&#32;B,10"/>
<cell align="center" bkcolor="#f7e4cf" col="5" display="text" font="KBIZ한마음고딕&#32;B,10"/>
</summary>
</format>
</contents>
</Grid>
<Calendar DisableColor="BACKGROUND" Enable="FALSE" Font="KBIZ한마음고딕&#32;B,10" Height="25" Id="sDate" InnerDataset="selectYear" Left="346" SaturdayTextColor="blue" SundayTextColor="red" TabOrder="4" Top="44" Width="105"></Calendar>
<Static Align="Center" Font="KBIZ한마음고딕&#32;B,10" Height="20" Id="Static9" Left="449" TabOrder="6" Text="~" Top="46" VAlign="Middle" Width="32"></Static>
<Calendar DisableColor="BACKGROUND" Enable="FALSE" Font="KBIZ한마음고딕&#32;B,10" Height="25" Id="eDate" Left="480" SaturdayTextColor="blue" SundayTextColor="red" TabOrder="5" Top="44" Width="105"></Calendar>
<Combo DataColumn="preYear" Font="KBIZ한마음고딕&#32;B,10" Height="25" Id="selYear" INDEX="0" InnerDataset="selectYear" Left="272" OnChanged="selYear_OnChanged" TabOrder="7" Top="44" Width="63"></Combo>
<Button Appearance="FLAT" BKColor="#aa8472" Color="WINDOW" Font="KBIZ한마음고딕&#32;B,10" Height="26" Id="excelPrint" Left="640" OnClick="excelPrint_OnClick" TabOrder="8" Text="엑셀출력" Top="43" Width="56"></Button>
</Form>
<Script><![CDATA[var year, strDate;
// 콜백 함수 ~
function callback(trid, ErrorCode, ErrorMsg)
{
if(trid=="getTotalTrialBalanceList"){
if(ErrorCode != 0){
alert(ErrorMsg);
}
dsTotalTrialBalance.Copy(dsTotalDebtor);
}else{
}
}
// 합계 시산표 폼이 로드된 후 ~
function totalTrialBalanceForm_OnLoadCompleted(obj)
{
strDate = GetDate();
year = Mid(strDate,0,4);
strDate = Mid(strDate,0,8);
sDate.value = year+'0101' ;
eDate.value = strDate ;
}
// 조회 버튼
function totalSearch_OnClick(obj)
{
//alert("시작 : "+sDate.Value+" 끝 : "+eDate.Value);
Transaction("getTotalTrialBalanceList","svcAccounting::/slip/settlement.do?method=getTotalTrialBalanceList","","dsTotalCreditor=dsTotalCreditor dsTotalDebtor=dsTotalDebtor",
"sDate='"+sDate.Value+"' eDate='"+eDate.Value+"'","callback");
}
// 날짜 선택 콤보가 바뀌면 ~
function selYear_OnChanged(obj,strCode,strText,nOldIndex,nNewIndex)
{
year = selYear.Value ;
if(year == '2016'){
sDate.value = year+'0101' ;
eDate.value = strDate ;
}else{
sDate.value = parseInt(year)+'0101' ;
eDate.value = parseInt(year)+'1231' ;
}
}
// 엑셀로 출력 ~
function excelPrint_OnClick(obj)
{
if(Confirm("시산표를 출력하시겠습니까?")){
totalTrialBalanceGrid.ExportExcelEx("TotalTrialBalance");
}
}
]]></Script>
</Window>

View File

@@ -0,0 +1,166 @@
<?xml version="1.0" encoding="utf-8"?>
<FDL version="1.5">
<TypeDefinition url="..\default_typedef.xml"/>
<Form id="accountManagement" classname="accountManagement" left="0" top="0" width="800" height="460" titletext="New Form" onload="accountManagement_onload">
<Layouts>
<Layout>
<Static id="Static00" taborder="0" text="계정과목관리" left="1.69%" top="8" right="3.39%" height="25" style="background:#edaf78ff;align:center middle;font:bold antialias 14 Verdana;"/>
<Static id="Static03" taborder="1" text="상위계정코드" left="49.15%" top="54" right="32.71%" height="26" style="background:#edaf78ff;align:center middle;font:bold antialias 11 Verdana;"/>
<Edit id="accountParent" taborder="2" readonly="true" left="68.47%" top="54" right="7.46%" height="26" style="font:bold antialias 10 Verdana;"/>
<Grid id="accountManagementGrid" taborder="3" binddataset="dsAcountManagement" useinputpanel="false" autofittype="col" left="43.22%" top="256" right="1.19%" height="160" style="font:나눔바른고딕,9,bold antialias;" oncellclick="accountManagementGrid_oncellclick">
<Formats>
<Format id="default">
<Columns>
<Column size="25"/>
<Column size="90"/>
<Column size="85"/>
<Column size="60"/>
<Column size="60"/>
</Columns>
<Rows>
<Row size="24" band="head"/>
<Row size="24"/>
</Rows>
<Band id="head">
<Cell style="background:#f7e4cfff;font:Verdana,10,bold;" text="No"/>
<Cell col="1" style="background:#f7e4cfff;font:Verdana,10,bold;" text="관리항목코드"/>
<Cell col="2" style="background:#f7e4cfff;font:Verdana,10,bold;" text="관리항목명"/>
<Cell col="3" style="background:#f7e4cfff;font:Verdana,10,bold;" text="입력여부"/>
<Cell col="4" style="background:#f7e4cfff;font:Verdana,10,bold;" text="사용여부"/>
</Band>
<Band id="body">
<Cell style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" expr="expr:currow+1"/>
<Cell col="1" edittype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:management_code"/>
<Cell col="2" edittype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:account_management_name"/>
<Cell col="3" edittype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:account_change"/>
<Cell col="4" edittype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:account_use"/>
</Band>
</Format>
</Formats>
</Grid>
<Static id="Static01" taborder="4" text="계정과목코드" left="49.15%" top="87" right="32.71%" height="26" style="background:#edaf78ff;align:center middle;font:bold antialias 11 Verdana;"/>
<Edit id="accountCode" taborder="5" readonly="true" left="68.47%" top="87" right="7.46%" height="26" style="font:bold antialias 10 Verdana;"/>
<Static id="Static02" taborder="6" text="계정과목명" left="49.15%" top="120" right="32.71%" height="26" style="background:#edaf78ff;align:center middle;font:bold antialias 11 Verdana;"/>
<Edit id="accountName" taborder="7" readonly="true" left="68.47%" top="120" right="7.46%" height="26" style="font:bold antialias 10 Verdana;"/>
<Static id="Static04" taborder="8" text="대차구분" left="49.15%" top="153" right="32.71%" height="26" style="background:#edaf78ff;align:center middle;font:bold antialias 11 Verdana;"/>
<Edit id="accountBalance" taborder="9" readonly="true" left="68.47%" top="153" right="7.46%" height="26" style="font:bold antialias 10 Verdana;"/>
<Static id="Static05" taborder="10" text="수정여부" left="49.15%" top="186" right="32.71%" height="26" style="background:#edaf78ff;align:center middle;font:bold antialias 11 Verdana;"/>
<Edit id="accountChange" taborder="11" readonly="true" left="68.47%" top="186" right="7.46%" height="26" style="font:bold antialias 10 Verdana;"/>
<Static id="Static06" taborder="12" text="사용여부" left="49.15%" top="219" right="32.71%" height="26" style="background:#edaf78ff;align:center middle;font:bold antialias 11 Verdana;"/>
<Edit id="accountUse" taborder="13" readonly="true" left="68.47%" top="219" right="7.46%" height="26" style="font:bold antialias 10 Verdana;"/>
<Grid id="accountGrid" taborder="14" binddataset="dsAccount" useinputpanel="false" autofittype="col" treeusecheckbox="false" treeinitstatus="expand,all" left="1.69%" top="51" right="57.63%" height="366" style="linetype:onlyvert;" oncellclick="accountGrid_oncellclick">
<Formats>
<Format id="default">
<Columns>
<Column size="145"/>
</Columns>
<Rows>
<Row size="24"/>
</Rows>
<Band id="body">
<Cell displaytype="tree" edittype="tree" style="background:transparent;background2:transparent;font:bold 10 Verdana;" text="bind:account_name" treelevel="bind:level"/>
</Band>
</Format>
</Formats>
</Grid>
<Button id="addBtn" taborder="15" text="추가" left="70.34%" top="422" right="20.17%" height="24" style="color:gray;font:bold antialias 10 Verdana;" onclick="addBtn_onclick"/>
<Button id="saveBtn" taborder="16" text="저장" left="89.32%" top="422" right="1.19%" height="24" style="color:gray;font:bold antialias 10 Verdana;" onclick="saveBtn_onclick"/>
<Button id="delBtn" taborder="17" text="삭제" left="79.83%" top="422" right="10.68%" height="24" style="color:gray;font:bold antialias 10 Verdana;" onclick="delBtn_onclick"/>
<Button id="accountAddBtn" taborder="18" text="회사계정설정" left="27.29%" top="422" right="57.8%" height="24" style="color:gray;font:bold antialias 10 Verdana;" onclick="accountAddBtn_onclick"/>
</Layout>
</Layouts>
<Bind>
<BindItem id="item0" compid="accountParent" propid="value" datasetid="dsAccount" columnid="parent_account"/>
<BindItem id="item1" compid="accountCode" propid="value" datasetid="dsAccount" columnid="account_code"/>
<BindItem id="item2" compid="accountName" propid="value" datasetid="dsAccount" columnid="account_name"/>
<BindItem id="item3" compid="accountBalance" propid="value" datasetid="dsAccount" columnid="account_balance"/>
<BindItem id="item4" compid="accountChange" propid="value" datasetid="dsAccount" columnid="account_change"/>
<BindItem id="item5" compid="accountUse" propid="value" datasetid="dsAccount" columnid="account_use"/>
</Bind>
<Script type="xscript5.0"><![CDATA[
// 콜백 함수
this.callback = function(trid, errorCode, errorMsg){
if(trid=="batchAccountManagement"){
if(errorCode !=0){
alert("등록 실패");
}
}else if(trid=="getAccountList"){
if(errorCode !=0){
alert("조회 실패");
}
}
}
// 계정과목 폼이 로드되면
this.accountManagement_onload = function(obj:Form, e:nexacro.LoadEventInfo)
{
this.transaction("getAccountList","DataUrl::account/getAccountList.do","","dsAccount=dsAccount dsAcountManagement=dsAcountManagement","","callback");
var accountCode = application.dsAccount.getColumn(e.eventid,"account_code");
application.dsAcountManagement.filter("account_code=='"+accountCode+"'");
}
// 계정과목 그리드 클릭시
this.accountGrid_oncellclick = function(obj:Grid, e:nexacro.GridClickEventInfo)
{
var accountCode = application.dsAccount.getColumn(e.row,"account_code");
application.dsAcountManagement.filter("account_code=='"+accountCode+"'");
}
// 추가 버튼
this.addBtn_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
if(application.dsAccount.getColumn(application.dsAccount.rowposition,"level") == '3'){
application.dsAcountManagement.addRow();
var accountCode=this.accountCode.value;
application.dsAcountManagement.setColumn(application.dsAcountManagement.rowposition,'account_code', accountCode);
}else{
alert("최하위 계정에만 추가할 수 있습니다.");
}
}
// 삭제 버튼
this.delBtn_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
application.dsAcountManagement.deleteRow(e.row);
}
// 관리과목 저장 버튼
this.saveBtn_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
if(confirm("변경사항을 저장하시겠습니까?")){
this.transaction("batchAccountManagement","DataUrl::accountManagement/batchAccountManagement.do","dsAcountManagement=dsAcountManagement:U","","","callback");
}
}
// 회사설정계정 버튼
this.accountAddBtn_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
application.open("계정과목등록", "Accounting::accountRegis.xfdl", this.parent , "", "showtitlebar=true showstatusbar=false", "", "");
//application.open("사원리스트", "Base::empInfo.xfdl", this.parent , "" , "showtitlebar=true showstatusbar=false" , 500, 250, 0, 0);
}
// 관리과목 그리드 클릭시
this.accountManagementGrid_oncellclick = function(obj:Grid, e:nexacro.GridClickEventInfo)
{
obj.moveToNextCell();
if(this.accountManagementGrid.getCellText(e.row, e.cell).length == 0){
//관리과목 컬럼을 세팅한다.
application.dsDetailCode.filter("distinction_code=='AM'");
application.open("코드리스트", "Base::codeInfo.xfdl", this.parent, "" , "showtitlebar=true showstatusbar=false", "", "");
}
}
// 관리과목 받아오는 함수
this.setCodeInfo = function(code, codeName){
application.dsAcountManagement.setColumn(application.dsAcountManagement.rowposition, "management_code", code);
application.dsAcountManagement.setColumn(application.dsAcountManagement.rowposition, "account_management_name", codeName);
application.dsAcountManagement.setColumn(application.dsAcountManagement.rowposition, "account_change", "Y");
application.dsAcountManagement.setColumn(application.dsAcountManagement.rowposition, "account_use", "Y");
}
]]></Script>
</Form>
</FDL>

View File

@@ -0,0 +1,208 @@
<?xml version="1.0" encoding="utf-8"?>
<FDL version="1.5">
<TypeDefinition url="..\default_typedef.xml"/>
<Form id="accountRegis" classname="accountRegis" left="0" top="0" width="730" height="486" titletext="New Form" onload="accountRegis_onload">
<Layouts>
<Layout>
<Static id="Static00" taborder="0" text="계정과목등록" left="1.37%" top="8" right="1.37%" height="25" style="background:#edaf78ff;align:center middle;font:bold antialias 14 Verdana;"/>
<Static id="Static03" taborder="1" text="상위계정코드" left="10.14%" top="286" right="75.21%" height="26" style="background:#edaf78ff;align:center middle;font:bold antialias 10 Verdana;"/>
<Edit id="accountParent" taborder="2" left="25.75%" top="286" right="49.32%" height="26" style="font:bold antialias 10 Verdana;"/>
<Static id="Static01" taborder="3" text="계정과목코드" left="10.14%" top="319" right="75.21%" height="26" style="background:#edaf78ff;align:center middle;font:bold antialias 10 Verdana;"/>
<Edit id="accountCode" taborder="4" left="25.75%" top="319" right="49.32%" height="26" style="font:bold antialias 10 Verdana;"/>
<Static id="Static02" taborder="5" text="계정과목명" left="10.14%" top="352" right="75.21%" height="26" style="background:#edaf78ff;align:center middle;font:bold antialias 10 Verdana;"/>
<Edit id="accountName" taborder="6" left="25.75%" top="352" right="49.32%" height="26" style="font:bold antialias 10 Verdana;"/>
<Static id="Static04" taborder="7" text="대차구분" left="10.14%" top="385" right="75.21%" height="26" style="background:#edaf78ff;align:center middle;font:bold antialias 10 Verdana;"/>
<Edit id="accountBalance" taborder="8" left="25.75%" top="385" right="49.32%" height="26" style="font:bold antialias 10 Verdana;"/>
<Static id="Static05" taborder="9" text="수정여부" left="10.14%" top="418" right="75.21%" height="26" style="background:#edaf78ff;align:center middle;font:bold antialias 10 Verdana;"/>
<Edit id="accountChange" taborder="10" left="25.75%" top="418" right="49.32%" height="26" style="font:bold antialias 10 Verdana;"/>
<Static id="Static06" taborder="11" text="사용여부" left="10.14%" top="451" right="75.21%" height="26" style="background:#edaf78ff;align:center middle;font:bold antialias 10 Verdana;"/>
<Edit id="accountUse" taborder="12" left="25.75%" top="451" right="49.32%" height="26" style="font:bold antialias 10 Verdana;"/>
<Button id="addBtn" taborder="13" text="추가" left="67.81%" top="44" right="24.52%" height="24" style="color:gray;font:bold antialias 10 Verdana;" onclick="addBtn_onclick"/>
<Button id="saveBtn" taborder="14" text="저장" onclick="saveBtn_onclick" left="83.15%" top="44" right="9.18%" height="24" style="color:gray;font:bold antialias 10 Verdana;"/>
<Button id="delBtn" taborder="15" text="삭제" left="75.48%" top="44" right="16.85%" height="24" style="color:gray;font:bold antialias 10 Verdana;" onclick="delBtn_onclick"/>
<Button id="cancelBtn" taborder="16" text="취소" onclick="cancelBtn_onclick" left="90.82%" top="44" right="1.51%" height="24" style="color:gray;font:bold antialias 10 Verdana;"/>
<Static id="Static07" taborder="17" text="상위 계정" left="1.51%" top="80" right="70.41%" height="24" style="background:#edaf78ff;align:center middle;font:bold antialias 10 Verdana;"/>
<Grid id="firstAccountGrid" taborder="18" binddataset="dsFirstAccount" useinputpanel="false" autofittype="col" left="1.51%" top="116" right="70.41%" height="160" oncellclick="firstAccountGrid_oncellclick">
<Formats>
<Format id="default">
<Columns>
<Column size="60"/>
<Column size="120"/>
</Columns>
<Rows>
<Row size="24" band="head"/>
<Row size="24"/>
</Rows>
<Band id="head">
<Cell displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="계정코드"/>
<Cell col="1" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="계정명"/>
</Band>
<Band id="body">
<Cell displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:account_code"/>
<Cell col="1" displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:account_name"/>
</Band>
</Format>
</Formats>
</Grid>
<Static id="Static08" taborder="19" text="중간 계정" left="30%" top="80" right="39.73%" height="24" style="background:#edaf78ff;align:center middle;font:bold antialias 10 Verdana;"/>
<Grid id="secondAccountGrid" taborder="20" binddataset="dsSecondAccount" useinputpanel="false" autofittype="col" left="30%" top="116" right="39.73%" height="160" oncellclick="secondAccountGrid_oncellclick">
<Formats>
<Format id="default">
<Columns>
<Column size="60"/>
<Column size="150"/>
</Columns>
<Rows>
<Row size="24" band="head"/>
<Row size="24"/>
</Rows>
<Band id="head">
<Cell displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="계정코드"/>
<Cell col="1" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="계정명"/>
</Band>
<Band id="body">
<Cell displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:account_code"/>
<Cell col="1" displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:account_name"/>
</Band>
</Format>
</Formats>
</Grid>
<Static id="Static09" taborder="21" text="하위 계정" left="60.68%" top="80" right="1.37%" height="24" style="background:#edaf78ff;align:center middle;font:bold antialias 10 Verdana;"/>
<Grid id="thirdAccountGrid" taborder="22" binddataset="dsThirdAccount" useinputpanel="false" autofittype="col" left="60.68%" top="116" right="1.37%" height="360">
<Formats>
<Format id="default">
<Columns>
<Column size="60"/>
<Column size="150"/>
</Columns>
<Rows>
<Row size="24" band="head"/>
<Row size="24"/>
</Rows>
<Band id="head">
<Cell displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="계정코드"/>
<Cell col="1" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="계정명"/>
</Band>
<Band id="body">
<Cell displaytype="normal" edittype="none" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:account_code"/>
<Cell col="1" displaytype="normal" edittype="none" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:account_name"/>
</Band>
</Format>
</Formats>
</Grid>
</Layout>
</Layouts>
<Bind>
<BindItem id="item0" compid="accountParent" propid="value" datasetid="dsThirdAccount" columnid="parent_account"/>
<BindItem id="item1" compid="accountCode" propid="value" datasetid="dsThirdAccount" columnid="account_code"/>
<BindItem id="item2" compid="accountName" propid="value" datasetid="dsThirdAccount" columnid="account_name"/>
<BindItem id="item3" compid="accountBalance" propid="value" datasetid="dsThirdAccount" columnid="account_balance"/>
<BindItem id="item4" compid="accountChange" propid="value" datasetid="dsThirdAccount" columnid="account_change"/>
<BindItem id="item5" compid="accountUse" propid="value" datasetid="dsThirdAccount" columnid="account_use"/>
</Bind>
<Objects>
<Dataset id="dsSecondAccount" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
<ColumnInfo>
<Column id="account_code" type="STRING" size="256"/>
<Column id="account_name" type="STRING" size="256"/>
<Column id="parent_account" type="STRING" size="256"/>
<Column id="account_balance" type="STRING" size="256"/>
<Column id="account_change" type="STRING" size="256"/>
<Column id="account_use" type="STRING" size="256"/>
<Column id="level" type="STRING" size="256"/>
</ColumnInfo>
</Dataset>
<Dataset id="dsFirstAccount" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
<ColumnInfo>
<Column id="account_code" type="STRING" size="256"/>
<Column id="account_name" type="STRING" size="256"/>
<Column id="parent_account" type="STRING" size="256"/>
<Column id="account_balance" type="STRING" size="256"/>
<Column id="account_change" type="STRING" size="256"/>
<Column id="account_use" type="STRING" size="256"/>
<Column id="level" type="STRING" size="256"/>
</ColumnInfo>
</Dataset>
<Dataset id="dsThirdAccount" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
<ColumnInfo>
<Column id="account_code" type="STRING" size="256"/>
<Column id="account_name" type="STRING" size="256"/>
<Column id="parent_account" type="STRING" size="256"/>
<Column id="account_balance" type="STRING" size="256"/>
<Column id="account_change" type="STRING" size="256"/>
<Column id="account_use" type="STRING" size="256"/>
<Column id="level" type="STRING" size="256"/>
</ColumnInfo>
</Dataset>
</Objects>
<Script type="xscript5.0"><![CDATA[
// 콜백 함수
this.callback = function(trid, errorCode, errorMsg){
if(trid=="batchAccount"){
if(errorCode !=0){
alert("등록 실패");
}else{
//alert("등록 성공");
application.dsAccount.copyData(this.dsThirdAccount);
reload();
}
}
}
// 계정과목등록 폼이 로드되면
this.accountRegis_onload = function(obj:Form, e:nexacro.LoadEventInfo)
{
this.dsFirstAccount.copyData(application.dsAccount);
this.dsFirstAccount.filter("level==1");
}
// 상위계정 그리드 클릭 시
this.firstAccountGrid_oncellclick = function(obj:Grid, e:nexacro.GridClickEventInfo)
{
var firstCode=this.dsFirstAccount.getColumn(e.row, "account_code");
this.dsSecondAccount.copyData(application.dsAccount);
this.dsSecondAccount.filter("parent_account=='"+firstCode+"'");
this.dsThirdAccount.clear();
}
// 중간계정 그리드 클릭 시
this.secondAccountGrid_oncellclick = function(obj:Grid, e:nexacro.GridClickEventInfo)
{
var secondCode=this.dsSecondAccount.getColumn(e.row, "account_code");
this.dsThirdAccount.copyData(application.dsAccount);
this.dsThirdAccount.filter("parent_account=='"+secondCode+"'");
}
// 추가 버튼
this.addBtn_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
var secondCode=this.dsSecondAccount.getColumn(this.dsSecondAccount.rowposition, "account_code");
this.dsThirdAccount.addRow();
this.dsThirdAccount.setColumn(this.dsThirdAccount.rowposition,'parent_account', secondCode);
this.dsThirdAccount.setColumn(this.dsThirdAccount.rowposition,'account_change', 'Y');
this.dsThirdAccount.setColumn(this.dsThirdAccount.rowposition,'account_use', 'Y');
}
// 삭제 버튼
this.delBtn_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
this.dsThirdAccount.deleteRow(this.dsThirdAccount.rowposition);
}
// 취소 버튼
this.cancelBtn_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
this.close();
}
// 저장 버튼
this.saveBtn_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
if(confirm("변경사항을 저장하시겠습니까?")){
this.transaction("batchAccount","DataUrl::account/batchAccount.do","dsAccount=dsThirdAccount:U","","","callback");
}
}
]]></Script>
</Form>
</FDL>

View File

@@ -0,0 +1,165 @@
<?xml version="1.0" encoding="utf-8"?>
<FDL version="1.5">
<TypeDefinition url="..\default_typedef.xml"/>
<Form id="journalList" classname="journalList" left="0" top="0" width="800" height="530" titletext="New Form" onload="journalList_onload">
<Layouts>
<Layout>
<Calendar id="sDate" taborder="0" dateformat="yyyy-MM-dd" left="40.52%" top="38" right="40.17%" height="26" style="font:bold 10 Verdana;"/>
<Static id="Static04" taborder="1" text="~" left="60.17%" top="38" right="37.41%" height="26" style="align:center middle;font:bold antialias 10 Verdana;"/>
<Calendar id="eDate" taborder="2" dateformat="yyyy-MM-dd" left="62.59%" top="38" right="18.1%" height="26" style="font:bold 10 Verdana;"/>
<Static id="Static05" taborder="3" text="결의부서" left="0.69%" top="38" right="88.62%" height="26" style="align:center middle;font:bold antialias 10 Verdana;"/>
<Combo id="deptName" taborder="4" value="전체" text="전체" innerdataset="dsDept" datacolumn="DEPT_NAME" index="0" left="11.03%" top="38" right="79.31%" height="26" style="font:bold 10 Verdana;"/>
<Static id="Static06" taborder="5" text="전표유형" left="20%" top="38" right="69.31%" height="26" style="align:center middle;font:bold antialias 10 Verdana;"/>
<Combo id="slipType" taborder="6" value="전체" text="전체" innerdataset="dsSlipCategory" datacolumn="slip_category" index="0" left="30.34%" top="38" right="60%" height="26" style="font:bold 10 Verdana;"/>
<Static id="Static00" taborder="7" text="분개장" left="1.21%" top="8" right="0.69%" height="25" style="background:#edaf78ff;align:center middle;font:bold antialias 14 Verdana;"/>
<Button id="search" taborder="8" text="조회" left="82.59%" top="38" right="10.52%" height="24" style="color:gray;font:bold antialias 10 Verdana;" onclick="search_onclick"/>
<Button id="cancelBtn" taborder="9" text="엑셀출력" onclick="cancelBtn_onclick" left="89.48%" top="38" right="0.86%" height="24" style="color:gray;font:bold antialias 10 Verdana;"/>
<Grid id="slipGrid" taborder="10" binddataset="dsJournalList" useinputpanel="false" autofittype="col" oncellclick="slipGrid_oncellclick" left="1.21%" top="72" right="0.69%" height="445" style="font:Verdana,10,bold antialias;">
<Formats>
<Format id="default">
<Columns>
<Column size="70"/>
<Column size="40"/>
<Column size="40"/>
<Column size="40"/>
<Column size="90"/>
<Column size="60"/>
<Column size="60"/>
<Column size="50"/>
<Column size="40"/>
<Column size="70"/>
</Columns>
<Rows>
<Row size="24" band="head"/>
<Row size="24" band="head"/>
<Row size="24"/>
</Rows>
<Band id="head">
<Cell rowspan="2" style="background:#f7e4cfff;font:bold 10 Verdana;" text="일자"/>
<Cell col="1" rowspan="2" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="유형"/>
<Cell col="2" rowspan="2" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="구분"/>
<Cell col="3" rowspan="2" colspan="2" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="계정과목"/>
<Cell col="5" colspan="2" style="background:#f7e4cfff;font:bold 10 Verdana;" text="금액"/>
<Cell col="7" rowspan="2" style="background:#f7e4cfff;font:bold 10 Verdana;" text="적요"/>
<Cell col="8" rowspan="2" colspan="2" style="background:#f7e4cfff;font:bold 10 Verdana;" text="거래처명"/>
<Cell row="1" col="5" style="background:#f7e4cfff;font:bold 10 Verdana;" text="차변"/>
<Cell row="1" col="6" style="background:#f7e4cfff;font:bold 10 Verdana;" text="대변"/>
</Band>
<Band id="body">
<Cell displaytype="normal" edittype="none" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:slip_date"/>
<Cell col="1" displaytype="normal" edittype="none" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:slip_type" combodataset="slipType" combocodecol="name" combodatacol="name" combodisplay="edit"/>
<Cell col="2" displaytype="normal" edittype="none" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:journal_type"/>
<Cell col="3" style="background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:account_code"/>
<Cell col="4" displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:account_name" combodisplay="edit"/>
<Cell col="5" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:debtor"/>
<Cell col="6" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:creditor"/>
<Cell col="7" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:summary_name"/>
<Cell col="8" displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:customer_code"/>
<Cell col="9" style="background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:customer_name"/>
</Band>
</Format>
</Formats>
</Grid>
</Layout>
</Layouts>
<Objects>
<Dataset id="dsSlipCategory" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
<ColumnInfo>
<Column id="slip_category" type="STRING" size="256"/>
</ColumnInfo>
<Rows>
<Row>
<Col id="slip_category">전체</Col>
</Row>
<Row>
<Col id="slip_category">일반</Col>
</Row>
<Row>
<Col id="slip_category">매입</Col>
</Row>
<Row>
<Col id="slip_category">매출</Col>
</Row>
<Row>
<Col id="slip_category">수금</Col>
</Row>
<Row>
<Col id="slip_category">반제</Col>
</Row>
<Row>
<Col id="slip_category">결산</Col>
</Row>
</Rows>
</Dataset>
<Dataset id="dsDept" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
<ColumnInfo>
<Column id="DEPT_NAME" type="STRING" size="256"/>
</ColumnInfo>
<Rows>
<Row>
<Col id="DEPT_NAME">전체</Col>
</Row>
<Row>
<Col id="DEPT_NAME">경영부</Col>
</Row>
<Row>
<Col id="DEPT_NAME">관리부</Col>
</Row>
<Row>
<Col id="DEPT_NAME">재경부</Col>
</Row>
<Row>
<Col id="DEPT_NAME">생산부</Col>
</Row>
<Row>
<Col id="DEPT_NAME">구매부</Col>
</Row>
<Row>
<Col id="DEPT_NAME">영업부</Col>
</Row>
<Row>
<Col id="DEPT_NAME">개발부</Col>
</Row>
<Row>
<Col id="DEPT_NAME">품질부</Col>
</Row>
</Rows>
</Dataset>
</Objects>
<Script type="xscript5.0"><![CDATA[
// 콜백 함수
this.callback = function(trid, errorCode, errorMsg){
if(trid=="getJournalList"){
if(application.dsJournalList.getRowCount()==0){
alert("조회된 데이터가 없습니다.");
}
}
}
// 분개장 폼이 로드되면
this.journalList_onload = function(obj:Form, e:nexacro.LoadEventInfo)
{
var objDate = new Date();
var pToday = objDate.getFullYear() + "";
var pMonth = objDate.getMonth()+1;
var pDate = objDate.getDate();
var strDate = pToday+pMonth+pDate;
this.sDate.set_value(pToday+'0101');
this.eDate.set_value(strDate);
}
// 조회 버튼
this.search_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
//alert(deptName.value);
//alert(slipType.value);
//alert(sDate.value);
//alert(eDate.value);
this.transaction("getJournalList","DataUrl::slip/getJournalList.do","","dsJournalList=dsJournalList",
"deptName='"+this.deptName.value+"' slipType='"+this.slipType.value+"' sDate='"+this.sDate.value+"' eDate='"+this.eDate.value+"'","callback");
}
]]></Script>
</Form>
</FDL>

View File

@@ -0,0 +1,355 @@
<?xml version="1.0" encoding="utf-8"?>
<FDL version="1.5">
<TypeDefinition url="..\default_typedef.xml"/>
<Form id="slipApprove" classname="slipApprove" left="0" top="0" width="800" height="530" titletext="New Form" onload="slipApprove_onload">
<Layouts>
<Layout>
<Static id="Static00" taborder="0" text="전표승인/해제" left="1.21%" top="8" right="0.69%" height="25" style="background:#edaf78ff;align:center middle;font:나눔바른고딕,14,bold antialias;"/>
<Button id="approveBtn" taborder="1" text="전표승인" left="78.45%" top="38" right="11.9%" height="24" style="color:gray;font:bold antialias 10 Verdana;" onclick="approveBtn_onclick"/>
<Button id="cancelBtn" taborder="2" text="승인해제" left="89.48%" top="38" right="0.86%" height="24" style="color:gray;font:bold antialias 10 Verdana;" onclick="cancelBtn_onclick"/>
<Button id="search" taborder="3" left="93.5%" top="70" right="2.88%" height="26" style="image:URL('search1');background:@gradation URL('theme://search1.Bmp') stretch;color:gray;font:bold antialias 9 나눔바른고딕;" onclick="search_onclick"/>
<Static id="Static03" taborder="4" text="결의기간" left="46.5%" top="70" right="42.75%" height="26" style="align:center middle;font:bold antialias 10 Verdana;"/>
<Edit id="empName" taborder="5" readonly="true" left="47.93%" top="37" right="42.41%" height="26" style="align:center middle;font:bold antialias 10 Verdana;"/>
<Calendar id="sDate" taborder="6" value="20160901" dateformat="yyyy-MM-dd" left="56.5%" top="70" right="27.13%" height="26" style="font:bold 10 Verdana;"/>
<Static id="Static04" taborder="7" text="~" left="73.25%" top="70" right="24.38%" height="26" style="align:center middle;font:나눔바른고딕,9,bold antialias;"/>
<Calendar id="eDate" taborder="8" value="20160930" dateformat="yyyy-MM-dd" left="75.63%" top="70" right="8.13%" height="26" style="font:bold 10 Verdana;"/>
<Grid id="slipGrid" taborder="9" binddataset="dsSlip" useinputpanel="false" autofittype="col" left="1.21%" top="104" right="0.69%" height="152" style="font:Verdana,10,bold antialias;" oncellclick="slipGrid_oncellclick">
<Formats>
<Format id="default">
<Columns>
<Column size="90"/>
<Column size="30"/>
<Column size="30"/>
<Column size="80"/>
<Column size="90"/>
<Column size="30"/>
<Column size="50"/>
<Column size="50"/>
<Column size="70"/>
</Columns>
<Rows>
<Row size="24" band="head"/>
<Row size="24"/>
</Rows>
<Band id="head">
<Cell style="background:#f7e4cfff;font:bold 10 Verdana;" text="결의일자"/>
<Cell col="1" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="번호"/>
<Cell col="2" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="유형"/>
<Cell col="3" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="품의내역"/>
<Cell col="4" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="기표일자"/>
<Cell col="5" style="background:#f7e4cfff;font:bold 10 Verdana;" text="상태"/>
<Cell col="6" style="background:#f7e4cfff;font:bold 10 Verdana;" text="승인자"/>
<Cell col="7" style="background:#f7e4cfff;font:bold 10 Verdana;" text="작업자"/>
<Cell col="8" style="background:#f7e4cfff;font:bold 10 Verdana;" text="대차차액"/>
</Band>
<Band id="body">
<Cell displaytype="normal" edittype="text" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:slip_date"/>
<Cell col="1" displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:slip_seq"/>
<Cell col="2" displaytype="normal" edittype="none" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:slip_type" combodataset="slipType" combocodecol="name" combodatacol="name" combodisplay="edit"/>
<Cell col="3" displaytype="normal" edittype="text" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:slip_content"/>
<Cell col="4" displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:approval_date" combodisplay="edit"/>
<Cell col="5" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:slip_status"/>
<Cell col="6" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:approver"/>
<Cell col="7" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:slip_worker"/>
<Cell col="8" displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:difference_amt"/>
</Band>
</Format>
</Formats>
</Grid>
<Grid id="debtor" taborder="10" binddataset="dsDebtor" useinputpanel="false" autofittype="col" oncellclick="empListGrid_oncellclick" left="1.21%" top="408" right="50.34%" height="110" style="font:Verdana,10,bold antialias;">
<Formats>
<Format id="default">
<Columns>
<Column size="60"/>
<Column size="80"/>
<Column size="100"/>
</Columns>
<Rows>
<Row size="24" band="head"/>
<Row size="24"/>
<Row size="24" band="summ"/>
</Rows>
<Band id="head">
<Cell colspan="2" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="차변"/>
<Cell col="2" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;"/>
</Band>
<Band id="body">
<Cell displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:account_code" combodataset="dsDept" combocodecol="DETAIL_CODE" combodatacol="DETAIL_NAME" combodisplay="edit"/>
<Cell col="1" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:account_name"/>
<Cell col="2" displaytype="number" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:journal_amt" combodataset="dsPosition" combocodecol="detail_code" combodatacol="detail_name" combodisplay="edit"/>
</Band>
<Band id="summary">
<Cell colspan="2" style="align:center middle;background:#f7e4cfff;font:bold 10 Verdana;" text="차변합계"/>
<Cell col="2" displaytype="number" style="align:center middle;background:#f7e4cfff;font:bold 10 Verdana;" expr="expr:getSum(&quot;parseInt(journal_amt)&quot;)"/>
</Band>
</Format>
</Formats>
</Grid>
<Grid id="journalGrid" taborder="11" binddataset="dsJournal" useinputpanel="false" autofittype="col" oncellclick="journalGrid_oncellclick" onenterdown="journalGrid_onenterdown" left="1.21%" top="256" right="0.69%" height="152" style="font:Verdana,10,bold antialias;">
<Formats>
<Format id="default">
<Columns>
<Column size="30"/>
<Column size="30"/>
<Column size="80"/>
<Column size="80"/>
<Column size="70"/>
<Column size="70"/>
<Column size="70"/>
<Column size="70"/>
<Column size="70"/>
</Columns>
<Rows>
<Row size="24" band="head"/>
<Row size="24"/>
</Rows>
<Band id="head">
<Cell style="background:#f7e4cfff;font:bold 10 Verdana;" text="순번"/>
<Cell col="1" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="구분"/>
<Cell col="2" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="계정과목코드"/>
<Cell col="3" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="계정과목명"/>
<Cell col="4" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="거래처코드"/>
<Cell col="5" style="background:#f7e4cfff;font:bold 10 Verdana;" text="거래처명"/>
<Cell col="6" style="background:#f7e4cfff;font:bold 10 Verdana;" text="금액"/>
<Cell col="7" style="background:#f7e4cfff;font:bold 10 Verdana;" text="적요"/>
<Cell col="8" style="background:#f7e4cfff;font:bold 10 Verdana;" text="증빙"/>
</Band>
<Band id="body">
<Cell style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:journal_no"/>
<Cell col="1" displaytype="normal" edittype="none" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:journal_type" combodataset="daecha" combocodecol="name" combodatacol="name"/>
<Cell col="2" displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:account_code"/>
<Cell col="3" displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:account_name" combodisplay="edit"/>
<Cell col="4" displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:customer_code" combodisplay="edit"/>
<Cell col="5" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:customer_name"/>
<Cell col="6" displaytype="number" edittype="text" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:journal_amt"/>
<Cell col="7" edittype="text" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:summary_name"/>
<Cell col="8" edittype="text" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:journal_receipt"/>
</Band>
</Format>
</Formats>
</Grid>
<Grid id="creditor" taborder="12" binddataset="dsCreditor" useinputpanel="false" autofittype="col" oncellclick="empListGrid_oncellclick" left="50.86%" top="408" right="0.69%" height="110" style="font:Verdana,10,bold antialias;">
<Formats>
<Format id="default">
<Columns>
<Column size="60"/>
<Column size="80"/>
<Column size="100"/>
</Columns>
<Rows>
<Row size="24" band="head"/>
<Row size="24"/>
<Row size="24" band="summ"/>
</Rows>
<Band id="head">
<Cell colspan="2" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="대변"/>
<Cell col="2" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;"/>
</Band>
<Band id="body">
<Cell displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:account_code" combodisplay="edit"/>
<Cell col="1" displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;" text="bind:account_name"/>
<Cell col="2" displaytype="number" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:journal_amt" combodisplay="edit"/>
</Band>
<Band id="summary">
<Cell colspan="2" style="align:center middle;background:#f7e4cfff;font:bold 10 Verdana;" text="대변합계"/>
<Cell col="2" displaytype="number" style="align:center middle;background:#f7e4cfff;font:bold 10 Verdana;" expr="expr:getSum(&quot;parseInt(journal_amt)&quot;)"/>
</Band>
</Format>
</Formats>
</Grid>
<Calendar id="approveDate" taborder="13" dateformat="yyyy-MM-dd" enable="false" left="57.76%" top="37" right="22.93%" height="26" style="font:bold 10 Verdana;"/>
<Edit id="empNo" taborder="14" readonly="true" left="39.66%" top="37" right="52.07%" height="26" style="align:center middle;font:bold antialias 10 Verdana;"/>
<Static id="Static01" taborder="15" text="작성자" left="31.03%" top="37" right="58.28%" height="26" style="align:center middle;font:bold antialias 10 Verdana;"/>
<Combo id="deptName" taborder="16" value="전체" innerdataset="dsDept" datacolumn="DEPT_NAME" left="11.03%" top="37" right="76.55%" height="26" style="font:bold 10 Verdana;"/>
<Static id="Static02" taborder="17" text="결의부서" left="0.69%" top="37" right="88.62%" height="26" style="align:center middle;font:bold antialias 10 Verdana;"/>
<Static id="Static05" taborder="18" text="전표유형" left="0.69%" top="70" right="88.62%" height="26" style="align:center middle;font:bold antialias 10 Verdana;"/>
<Combo id="slipType" taborder="19" value="전체" innerdataset="dsSlipCategory" datacolumn="slip_category" left="11.03%" top="70" right="79.31%" height="26" style="font:bold 10 Verdana;"/>
<Static id="Static06" taborder="20" text="전표상태" left="21.38%" top="70" right="67.93%" height="26" style="align:center middle;font:bold antialias 10 Verdana;"/>
<Combo id="slipStatus" taborder="21" value="전체" text="전체" innerdataset="dsSlipStatus" datacolumn="slip_status" index="0" left="31.72%" top="70" right="58.62%" height="26" style="font:bold 10 Verdana;"/>
</Layout>
</Layouts>
<Objects>
<Dataset id="dsSlipStatus" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
<ColumnInfo>
<Column id="slip_status" type="STRING" size="256"/>
</ColumnInfo>
<Rows>
<Row>
<Col id="slip_status">전체</Col>
</Row>
<Row>
<Col id="slip_status">승인</Col>
</Row>
<Row>
<Col id="slip_status">미결</Col>
</Row>
</Rows>
</Dataset>
<Dataset id="dsDept" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
<ColumnInfo>
<Column id="DEPT_NAME" type="STRING" size="256"/>
</ColumnInfo>
<Rows>
<Row>
<Col id="DEPT_NAME">전체</Col>
</Row>
<Row>
<Col id="DEPT_NAME">경영부</Col>
</Row>
<Row>
<Col id="DEPT_NAME">관리부</Col>
</Row>
<Row>
<Col id="DEPT_NAME">재경부</Col>
</Row>
<Row>
<Col id="DEPT_NAME">생산부</Col>
</Row>
<Row>
<Col id="DEPT_NAME">구매부</Col>
</Row>
<Row>
<Col id="DEPT_NAME">영업부</Col>
</Row>
<Row>
<Col id="DEPT_NAME">개발부</Col>
</Row>
<Row>
<Col id="DEPT_NAME">품질부</Col>
</Row>
</Rows>
</Dataset>
<Dataset id="dsSlipCategory" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
<ColumnInfo>
<Column id="slip_category" type="STRING" size="256"/>
</ColumnInfo>
<Rows>
<Row>
<Col id="slip_category">전체</Col>
</Row>
<Row>
<Col id="slip_category">일반</Col>
</Row>
<Row>
<Col id="slip_category">매입</Col>
</Row>
<Row>
<Col id="slip_category">매출</Col>
</Row>
<Row>
<Col id="slip_category">수금</Col>
</Row>
<Row>
<Col id="slip_category">반제</Col>
</Row>
<Row>
<Col id="slip_category">결산</Col>
</Row>
</Rows>
</Dataset>
</Objects>
<Script type="xscript5.0"><![CDATA[var cha, dae;
// 콜백 함수
this.callback = function(trid, errorCode, errorMsg){
if(trid=="getSlipList"){
if(application.dsSlip.getRowCount()==0){
alert("조회된 데이터가 없습니다.");
}else{
//trace(dsJournal.saveXML());
this.slipListFilter();
this.setChaDae(dsSlip.rowposition);
}
}else if(trid=="batchSlipList"){
if(ErrorCode!=0){
alert("등록 실패: "+ErrorMsg);
}
}
}
// 슬립리스트필터
this.slipListFilter = function(){
slipNo=application.dsSlip.getColumn(application.dsSlip.rowposition,"slip_no");
application.dsJournal.filter("slip_no=='"+slipNo+"'");
}
// 차변 - 대변
this.setChaDae = function(nRow)
{
application.dsDebtor.clearData();
application.dsDebtor.copyData(application.dsJournal,true);
application.dsDebtor.filter("journal_type=='차변'");
application.dsCreditor.clearData();
application.dsCreditor.copyData(application.dsJournal,true);
application.dsCreditor.filter("journal_type=='대변'");
var moneyDebit=parseInt(this.debtor.getCellText( -2,1).replace(",",""),"10");
var moneyCreditor=parseInt(this.creditor.getCellText( -2,1).replace(",",""),"10");
}
// 전표승인해제 폼이 로드된 후
this.slipApprove_onload = function(obj:Form, e:nexacro.LoadEventInfo)
{
this.empNo.set_value(gvEmpNo);
this.empName.set_value(gvEmpName);
var objDate = new Date();
var pToday = objDate.getFullYear() + "";
var pMonth = objDate.getMonth()+1;
var pDate = objDate.getDate();
var strDate = pToday+pMonth+pDate;
this.approveDate.set_value(strDate);
application.dsSlip.clear();
application.dsJournal.clear();
application.dsDebtor.clear();
application.dsCreditor.clear();
}
// 조회 버튼
this.search_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
this.transaction("getSlipList","DataUrl::slip/getSlipApproveList.do","","dsSlip=dsSlip dsJournal=dsJournal dsJournalManagement=dsJournalManagement",
"deptName='"+this.deptName.value+"' slipType='"+this.slipType.value+"' slipStatus='"+this.slipStatus.value+"' sDate='"+this.sDate.value+"' eDate='"+this.eDate.value+"'","callback");
}
// 전표 그리드를 클릭하면
this.slipGrid_oncellclick = function(obj:Grid, e:nexacro.GridClickEventInfo)
{
this.slipListFilter();
this.setChaDae();
}
// 전표 승인 버튼
this.approveBtn_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
if(confirm("선택한 전표를 승인하시겠습니까?")){
if(this.cha==this.dae){
application.dsSlip.setColumn(application.dsSlip.rowposition,'approval_date',this.approveDate.value);
application.dsSlip.setColumn(application.dsSlip.rowposition,'slip_ballot_no',this.approveDate.value+'001');
application.dsSlip.setColumn(application.dsSlip.rowposition,'approver',gvEmpName);
application.dsSlip.setColumn(application.dsSlip.rowposition,'slip_status','승인');
this.transaction("batchSlipList","DataUrl::slip/batchSlipList.do","dsSlip=dsSlip:U dsJournal=dsJournal:U dsJournalManagement=dsJournalManagement:U","","","callback");
}else{
alert("차변과 대변의 금액이 맞지 않습니다.");
}
}
}
// 승인 해제 버튼
this.cancelBtn_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
if(confirm("승인된 전표를 해제하시겠습니까?")){
application.dsSlip.setColumn(application.dsSlip.rowposition,'approval_date','');
application.dsSlip.setColumn(application.dsSlip.rowposition,'slip_ballot_no','');
application.dsSlip.setColumn(application.dsSlip.rowposition,'approver','');
application.dsSlip.setColumn(application.dsSlip.rowposition,'slip_status','미결');
this.transaction("batchSlipList","DataUrl::slip/batchSlipList.do","dsSlip=dsSlip:U dsJournal=dsJournal:U dsJournalManagement=dsJournalManagement:U","","","callback");
}
}
]]></Script>
</Form>
</FDL>

View File

@@ -0,0 +1,541 @@
<?xml version="1.0" encoding="utf-8"?>
<FDL version="1.5">
<TypeDefinition url="..\default_typedef.xml"/>
<Form id="slipInput" classname="slipInput" left="0" top="0" width="800" height="660" onload="slipInput_onload">
<Layouts>
<Layout>
<Static id="Static00" taborder="0" text="전표입력/조회" left="1.21%" top="8" right="0.69%" height="25" style="background:#edaf78ff;align:center middle;font:나눔바른고딕,14,bold antialias;"/>
<Button id="insertJournal" taborder="1" text="분개입력" left="59.14%" top="38" right="31.21%" height="24" style="color:gray;font:bold antialias 10 Verdana;" onclick="insertJournal_onclick"/>
<Button id="deleteJournal" taborder="2" text="분개삭제" left="68.79%" top="38" right="21.55%" height="24" style="color:gray;font:bold antialias 10 Verdana;" onclick="deleteJournal_onclick"/>
<Button id="saveBtn" taborder="3" text="저장" left="79.83%" top="38" right="10.52%" height="24" style="color:gray;font:bold antialias 10 Verdana;" onclick="saveBtn_onclick"/>
<Button id="cancelBtn" taborder="4" text="취소" left="89.48%" top="38" right="0.86%" height="24" style="color:gray;font:bold antialias 10 Verdana;"/>
<Button id="deleteSlip" taborder="5" text="전표삭제" left="48.1%" top="38" right="42.24%" height="24" style="color:gray;font:bold antialias 10 Verdana;" onclick="deleteSlip_onclick"/>
<Button id="insertSlip" taborder="6" text="전표입력" onclick="insertSlip_onclick" left="38.45%" top="38" right="51.9%" height="24" style="color:gray;font:bold antialias 10 Verdana;"/>
<Button id="slipSearch" taborder="7" text="전표조회" left="27.41%" top="38" right="62.93%" height="24" style="color:gray;font:bold antialias 10 Verdana;" onclick="slipSearch_onclick"/>
<Static id="Static02" taborder="8" text="결의부서" left="10.17%" top="70" right="79.14%" height="26" style="align:center middle;font:bold antialias 10 Verdana;"/>
<Button id="deptInfo" taborder="9" text="검색" left="38.97%" top="70" right="53.97%" height="24" style="color:gray;font:bold antialias 10 Verdana;" onclick="deptInfo_onclick"/>
<Static id="Static01" taborder="10" text="작성자" left="-0.69%" top="37" right="90%" height="26" style="align:center middle;font:bold antialias 10 Verdana;"/>
<Static id="Static03" taborder="11" text="결의기간" left="50.88%" top="70" right="38.38%" height="26" style="align:center middle;font:bold antialias 10 Verdana;"/>
<Edit id="empName" taborder="12" readonly="true" left="16.21%" top="37" right="74.14%" height="26" style="align:center middle;font:bold antialias 10 Verdana;"/>
<Edit id="empNo" taborder="13" readonly="true" left="7.93%" top="37" right="83.79%" height="26" style="align:center middle;font:bold antialias 10 Verdana;"/>
<Edit id="deptNo" taborder="14" readonly="true" left="20.17%" top="70" right="71.55%" height="26" style="align:center middle;font:bold antialias 10 Verdana;"/>
<Edit id="deptName" taborder="15" readonly="true" left="28.45%" top="70" right="61.9%" height="26" style="align:center middle;font:bold antialias 10 Verdana;"/>
<Calendar id="sDate" taborder="16" value="20160901" dateformat="yyyy-MM-dd" left="60.75%" top="70" right="22.88%" height="26" style="align:center;font:bold 10 Verdana;"/>
<Static id="Static04" taborder="17" text="~" left="77.41%" top="70" right="20.17%" height="26" style="align:center middle;font:나눔바른고딕,9,bold antialias;"/>
<Calendar id="eDate" taborder="18" value="20160930" dateformat="yyyy-MM-dd" left="79.88%" top="70" right="3.88%" height="26" style="align:center;font:bold 10 Verdana;"/>
<Grid id="slipGrid" taborder="19" binddataset="dsSlip" useinputpanel="false" autofittype="col" oncellclick="slipGrid_oncellclick" left="1.21%" top="104" right="0.69%" height="152" style="font:Verdana,10,bold antialias;" onenterdown="slipGrid_onenterdown">
<Formats>
<Format id="default">
<Columns>
<Column size="90"/>
<Column size="30"/>
<Column size="80"/>
<Column size="70"/>
<Column size="90"/>
<Column size="30"/>
<Column size="50"/>
<Column size="70"/>
<Column size="50"/>
</Columns>
<Rows>
<Row size="24" band="head"/>
<Row size="24"/>
</Rows>
<Band id="head">
<Cell style="background:#f7e4cfff;font:bold 10 Verdana;" text="전표번호"/>
<Cell col="1" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="번호"/>
<Cell col="2" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="품의내역"/>
<Cell col="3" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="유형"/>
<Cell col="4" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="기표번호"/>
<Cell col="5" style="background:#f7e4cfff;font:bold 10 Verdana;" text="상태"/>
<Cell col="6" style="background:#f7e4cfff;font:bold 10 Verdana;" text="승인자"/>
<Cell col="7" style="background:#f7e4cfff;font:bold 10 Verdana;" text="대차차액"/>
<Cell col="8" style="background:#f7e4cfff;font:bold 10 Verdana;" text="작업자"/>
</Band>
<Band id="body">
<Cell displaytype="normal" edittype="text" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,9;selectfont:Verdana,9;" text="bind:slip_no"/>
<Cell col="1" displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,9;selectfont:Verdana,9;" text="bind:slip_seq"/>
<Cell col="2" displaytype="normal" edittype="text" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,9;selectfont:Verdana,9;" text="bind:slip_content"/>
<Cell col="3" displaytype="combo" edittype="combo" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,9;selectfont:Verdana,9;" text="bind:slip_type" combodataset="slipType" combocodecol="name" combodatacol="name" combodisplay="edit"/>
<Cell col="4" displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,9;selectfont:Verdana,9;" text="bind:slip_ballot_no" combodisplay="edit"/>
<Cell col="5" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,9;selectfont:Verdana,9;" text="bind:slip_status"/>
<Cell col="6" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,9;selectfont:Verdana,9;" text="bind:approver"/>
<Cell col="7" displaytype="number" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,9;selectfont:Verdana,9;" text="bind:difference_amt"/>
<Cell col="8" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,9;selectfont:Verdana,9;" text="bind:slip_worker"/>
</Band>
</Format>
</Formats>
</Grid>
<Grid id="debtor" taborder="20" binddataset="dsDebtor" useinputpanel="false" autofittype="col" oncellclick="empListGrid_oncellclick" left="1.21%" top="544" right="50.34%" height="110" style="font:Verdana,10,bold antialias;">
<Formats>
<Format id="default">
<Columns>
<Column size="60"/>
<Column size="80"/>
<Column size="100"/>
</Columns>
<Rows>
<Row size="24" band="head"/>
<Row size="24"/>
<Row size="24" band="summ"/>
</Rows>
<Band id="head">
<Cell colspan="2" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="차변"/>
<Cell col="2" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;"/>
</Band>
<Band id="body">
<Cell displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,10,bold;selectfont:Verdana,10,bold;" text="bind:account_code" combodataset="dsDept" combocodecol="DETAIL_CODE" combodatacol="DETAIL_NAME" combodisplay="edit"/>
<Cell col="1" style="align:center middle;background:#f9f0d7ff;background2:transparent;selectfont:Verdana,10,bold;" text="bind:account_name"/>
<Cell col="2" displaytype="number" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,10,bold;selectfont:Verdana,10,bold;" text="bind:journal_amt" combodataset="dsPosition" combocodecol="detail_code" combodatacol="detail_name" combodisplay="edit"/>
</Band>
<Band id="summary">
<Cell colspan="2" style="align:center middle;background:#f7e4cfff;font:bold 10 Verdana;" text="차변합계"/>
<Cell col="2" displaytype="number" style="align:center middle;background:#f7e4cfff;font:bold 10 Verdana;" expr="expr:application.dsDebtor.getSum(&quot;parseInt(journal_amt)&quot;)"/>
</Band>
</Format>
</Formats>
</Grid>
<Grid id="journalGrid" taborder="21" binddataset="dsJournal" useinputpanel="false" autofittype="col" oncellclick="journalGrid_oncellclick" left="1.21%" top="256" right="0.69%" height="152" style="font:Verdana,10,bold antialias;" onenterdown="journalGrid_onenterdown">
<Formats>
<Format id="default">
<Columns>
<Column size="30"/>
<Column size="30"/>
<Column size="80"/>
<Column size="80"/>
<Column size="70"/>
<Column size="70"/>
<Column size="70"/>
<Column size="70"/>
<Column size="70"/>
</Columns>
<Rows>
<Row size="24" band="head"/>
<Row size="24"/>
</Rows>
<Band id="head">
<Cell style="background:#f7e4cfff;font:bold 10 Verdana;" text="순번"/>
<Cell col="1" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="구분"/>
<Cell col="2" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="계정과목코드"/>
<Cell col="3" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="계정과목명"/>
<Cell col="4" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="거래처코드"/>
<Cell col="5" style="background:#f7e4cfff;font:bold 10 Verdana;" text="거래처명"/>
<Cell col="6" style="background:#f7e4cfff;font:bold 10 Verdana;" text="금액"/>
<Cell col="7" style="background:#f7e4cfff;font:bold 10 Verdana;" text="적요"/>
<Cell col="8" style="background:#f7e4cfff;font:bold 10 Verdana;" text="증빙"/>
</Band>
<Band id="body">
<Cell style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,9;selectfont:Verdana,9;" text="bind:journal_no"/>
<Cell col="1" displaytype="combo" edittype="combo" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,9;selectfont:Verdana,9;" text="bind:journal_type" combodataset="daecha" combocodecol="name" combodatacol="name"/>
<Cell col="2" displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,9;selectfont:Verdana,9;" text="bind:account_code"/>
<Cell col="3" displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,9;selectfont:Verdana,9;" text="bind:account_name" combodisplay="edit"/>
<Cell col="4" displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,9;selectfont:Verdana,9;" text="bind:customer_code" combodisplay="edit"/>
<Cell col="5" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,9;selectfont:Verdana,9;" text="bind:customer_name"/>
<Cell col="6" displaytype="number" edittype="text" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,9;selectfont:Verdana,9;" text="bind:journal_amt"/>
<Cell col="7" edittype="text" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,9;selectfont:Verdana,9;" text="bind:summary_name"/>
<Cell col="8" edittype="text" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,9;selectfont:Verdana,9;" text="bind:journal_receipt"/>
</Band>
</Format>
</Formats>
</Grid>
<Grid id="creditor" taborder="22" binddataset="dsCreditor" useinputpanel="false" autofittype="col" oncellclick="empListGrid_oncellclick" left="50.86%" top="544" right="0.69%" height="110" style="font:Verdana,10,bold antialias;">
<Formats>
<Format id="default">
<Columns>
<Column size="60"/>
<Column size="80"/>
<Column size="100"/>
</Columns>
<Rows>
<Row size="24" band="head"/>
<Row size="24"/>
<Row size="24" band="summ"/>
</Rows>
<Band id="head">
<Cell colspan="2" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="대변"/>
<Cell col="2" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;"/>
</Band>
<Band id="body">
<Cell displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 11 Verdana;" text="bind:account_code" combodisplay="edit"/>
<Cell col="1" displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 11 Verdana;" text="bind:account_name"/>
<Cell col="2" displaytype="number" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 11 Verdana;" text="bind:journal_amt" combodisplay="edit"/>
</Band>
<Band id="summary">
<Cell colspan="2" style="align:center middle;background:#f7e4cfff;font:bold 10 Verdana;" text="대변합계"/>
<Cell col="2" displaytype="number" style="align:center middle;background:#f7e4cfff;font:bold 10 Verdana;" expr="expr:application.dsCreditor.getSum(&quot;parseInt(journal_amt)&quot;)"/>
</Band>
</Format>
</Formats>
</Grid>
<Div id="jourCompDiv" taborder="23" left="1.21%" top="408" right="0.69%" height="136" style="background:transparent;"/>
</Layout>
</Layouts>
<Objects>
<Dataset id="daecha" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
<ColumnInfo>
<Column id="name" type="STRING" size="256"/>
</ColumnInfo>
<Rows>
<Row>
<Col id="name">차변</Col>
</Row>
<Row>
<Col id="name">대변</Col>
</Row>
</Rows>
</Dataset>
<Dataset id="slipType" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
<ColumnInfo>
<Column id="name" type="STRING" size="256"/>
</ColumnInfo>
<Rows>
<Row>
<Col id="name">일반</Col>
</Row>
<Row>
<Col id="name">매입</Col>
</Row>
<Row>
<Col id="name">매출</Col>
</Row>
<Row>
<Col id="name">수금</Col>
</Row>
<Row>
<Col id="name">반제</Col>
</Row>
<Row>
<Col id="name">수정</Col>
</Row>
<Row>
<Col id="name">결산</Col>
</Row>
</Rows>
</Dataset>
</Objects>
<Script type="xscript5.0"><![CDATA[var accountCode, slipNo, accComp, jourSlipNo, managementCode, managementIdx;
// 콜백 함수
this.callback = function(trid, errorCode, errorMsg){
if(trid=="getSlipList"){
if(application.dsSlip.getRowCount()==0){
alert("조회된 데이터가 없습니다.");
}else{
//trace(dsJournal.saveXML());
this.slipListFilter();
this.slipNo=application.dsSlip.getColumn(application.dsSlip.rowposition,"slip_no");
//this.createComponent(application.dsJournal.rowposition, application.dsJournal.getColumn(application.dsJournal.rowposition,"slip_no"));
this.setChaDae(application.dsSlip.rowposition);
}
}else if(trid=="getAccountList"){
if(errorCode!=0){
alert("조회 실패: "+errorMsg);
}
}else if(trid=="batchSlipList"){
if(errorCode!=0){
alert("수정 실패: "+errorMsg);
}
}
}
// 전표입력 폼이 로드되면
this.slipInput_onload = function(obj:Form, e:nexacro.LoadEventInfo)
{
this.empNo.set_value(gvEmpNo);
this.empName.set_value(gvEmpName);
application.dsSlip.clearData();
application.dsJournal.clearData();
application.dsDebtor.clearData();
application.dsCreditor.clearData();
this.transaction("getAccountList","DataUrl::account/getAccountList.do","","dsAccount=dsAccount dsAcountManagement=dsAcountManagement","","callback");
}
// 부서검색 버튼
this.deptInfo_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
application.dsDetailCode.filter("distinction_code=='DP'");
application.open("코드리스트", "Base::codeInfo.xfdl", this.parent, "" , "showtitlebar=true showstatusbar=false", "","");
}
// 팝업창에서 선택한 부서정보를 edit에 자동입력
this.setCodeInfo = function(deptNo, deptName)
{
this.deptNo.set_value(deptNo);
this.deptName.set_value(deptName);
}
// 전표 조회 버튼
this.slipSearch_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
if(this.deptNo.value=='' || this.deptName.value=='' ){
alert("부서를 선택해주세요. ");
}else{
//alert(this.deptName.value+" , "+this.sDate.value+" , "+this.eDate.value);
this.transaction("getSlipList","DataUrl::slip/getSlipList.do","","dsSlip=dsSlip dsJournal=dsJournal dsJournalManagement=dsJournalManagement",
"deptName='"+this.deptName.value+"' sDate='"+this.sDate.value+"' eDate='"+this.eDate.value+"'","callback");
}
}
// 슬립리스트필터
this.slipListFilter = function slipListFilter(){
this.slipNo=application.dsSlip.getColumn(application.dsSlip.rowposition,"slip_no");
application.dsJournal.filter("slip_no=='"+this.slipNo+"'");
}
// 차변 - 대변
this.setChaDae = function setChaDae(nRow)
{
application.dsDebtor.clearData();
application.dsDebtor.copyData(application.dsJournal,true);
application.dsDebtor.filter("journal_type=='차변'");
application.dsCreditor.clearData();
application.dsCreditor.copyData(application.dsJournal,true);
application.dsCreditor.filter("journal_type=='대변'");
var moneyDebit=parseInt(this.debtor.getCellText( -2,1).replace(",",""),"10");
var moneyCreditor=parseInt(this.creditor.getCellText( -2,1).replace(",",""),"10");
application.dsSlip.setColumn(nRow,"difference_amt",moneyDebit-moneyCreditor);
}
// 전표그리드를 클릭하면
this.slipGrid_oncellclick = function(obj:Grid, e:nexacro.GridClickEventInfo)
{
this.slipListFilter();
//this.createComponent(e.row, this.slipNo);
this.setChaDae();
}
// 취소버튼
function resetBtn_onclick(obj:Button, e:ClickEventInfo)
{
reload();
}
// 전표입력 버튼
this.insertSlip_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
var objDate = new Date();
var pToday = objDate.getFullYear() + "";
var pMonth = objDate.getMonth()+1;
var pDate = objDate.getDate();
var strDate = pToday+pMonth+pDate;
//alert(strDate);
application.dsSlip.addRow();
application.dsSlip.setColumn(application.dsSlip.rowposition,"slip_no",strDate+"-");
application.dsSlip.setColumn(application.dsSlip.rowposition,"emp_no",this.empNo.value);
application.dsSlip.setColumn(application.dsSlip.rowposition,"slip_date",strDate);
application.dsSlip.setColumn(application.dsSlip.rowposition,"slip_status","미결");
application.dsSlip.setColumn(application.dsSlip.rowposition,"slip_worker",gvEmpName);
application.dsSlip.setColumn(application.dsSlip.rowposition,"slip_dept",gvDeptName);
application.dsSlip.setColumn(application.dsSlip.rowposition,"emp_no",gvEmpNo);
}
// 전표그리드에서 엔터를 치면
this.slipGrid_onenterdown = function(obj:Grid, e:nexacro.GridEditEventInfo)
{
obj.moveToNextCell();
}
// 전표 삭제 버튼
this.deleteSlip_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
if(confirm("선택한 전표를 삭제하시겠습니까?")){
application.dsSlip.deleteRow(application.dsSlip.rowposition);
// 전표를 삭제하면 분개도 삭제되어야 한다.
for(i=0;i<application.dsJournal.getRowCount()+1;i++){
application.dsJournal.deleteRow(i);
application.dsJournalManagement.deleteRow(i);
}
}
}
// 분개 입력 버튼
this.insertJournal_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
application.dsJournal.addRow();
application.dsJournal.setColumn(application.dsJournal.rowposition,"journal_no",application.dsJournal.rowposition+1);
this.jourSlipNo=application.dsSlip.getColumn(application.dsSlip.rowposition, "slip_no");
application.dsJournal.setColumn(application.dsJournal.rowposition,"slip_no",this.jourSlipNo);
application.dsJournalManagement.setColumn(application.dsJournal.rowposition,"journal_no",application.dsJournal.rowposition);
application.dsJournalManagement.setColumn(application.dsJournal.rowposition,"slip_no",this.jourSlipNo);
}
// 분개 삭제
this.deleteJournal_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
application.dsJournal.deleteRow(application.dsJournal.rowposition);
}
// 분개그리드를 클릭하면
this.journalGrid_oncellclick = function(obj:Grid, e:nexacro.GridClickEventInfo)
{
if(e.cell==2 || e.cell==3){
//계정과목 컬럼을 세팅한다.
application.open("계정과목리스트", "Base::accountInfo.xfdl", this.parent, "" , "showtitlebar=true showstatusbar=false", "","");
}else if(e.cell==4 || e.cell==5){
//거래처 컬럼을 세팅한다.
application.dsDetailCode.filter("distinction_code=='CT'");
application.open("코드리스트", "Base::codeInfo.xfdl", this.parent, "" , "showtitlebar=true showstatusbar=false", "","");
}
//this.createComponent(e.row,slipNo);
}
// 분개그리드에서 엔터를 치면
this.journalGrid_onenterdown = function(obj:Grid, e:nexacro.GridEditEventInfo)
{
obj.moveToNextCell();
this.setChaDae(application.dsSlip.rowposition);
}
// 계정과목 팝업창에서 받아온 값
this.setAccountCodeInfo = function(code, name)
{
application.dsJournal.setColumn(application.dsJournal.rowposition,"account_code", code);
application.dsJournal.setColumn(application.dsJournal.rowposition,"account_name", name);
}
/*
// 컴포넌트 생성
this.createComponent = function(row,slipNo)
{
//기존 분개상세를 지운다.
for ( var c = this.jourCompDiv.components.length ; c >= 0; c-- ) {
this.jourCompDiv.removeChild("Edit"+c);
this.jourCompDiv.removeChild("EditValue"+c);
}
trace("slipNo ::: --------------- "+slipNo);
application.dsJournalManagement.filter("journal_no=='"+application.dsJournal.getColumn(row,"journal_no")+"' && slip_no=='"+slipNo+"'");
application.dsJournal.setColumn(application.dsJournal.rowposition,"slip_no",slipNo);
var iTop=3, iLeft=3;
// 분개 상세를 생성한다.
for(i=1; i<application.dsJournalManagement.getRowCount()+1; i++){
var accValue=application.dsJournalManagement.getColumn(i-1,"value");
var accName=application.dsJournalManagement.getColumn(i-1,"management_name");
var accComp=application.dsJournalManagement.getColumn(i-1,"management_type");
trace(accValue+" ---------- "+accName+" ---------- "+accComp);
var objEdit = new Edit();
//스크립트에서 동적으로 컴포넌트를 생성한 후에 초기화한다.
objEdit.init("Edit"+i, iLeft,iTop,iLeft+80,iTop+25);
this.jourCompDiv.addChild("Edit"+i, objEdit);
objEdit.set_background("white");
objEdit.set_border_style("none");
objEdit.set_align("right");
objEdit.set_enable("false");
objEdit.set_value(accName);
objEdit.show();
iLeft+=80;
if(accComp=="CALENDAR"){
var objCalendar = new Calendar();
objCalendar.init(i, iLeft,iTop,iLeft+110,iTop+25);
this.jourCompDiv.addChild("EditValue"+i, objCalendar);
objCalendar.set_background("whitesmoke");
objCalendar.set_border_style = "none";
objCalendar.set_dateformat("yyyy-MM-dd");
objCalendar.set_align("center");
objCalendar.set_enable("true");
objCalendar.set_value(accValue);
objCalendar.addEventHandler("oncloseup",this.objCalendar_oncloseup,this);
objCalendar.show();
}else if(accComp=="EDIT"){
var objEdit = new Edit();
objEdit.init(i, iLeft,iTop,iLeft+80,iTop+25);
this.jourCompDiv.addChild("EditValue"+i, objEdit);
objEdit.set_background("whitesmoke");
objEdit.set_border_style("none");
objEdit.set_align("center");
objEdit.set_enable("true");
objEdit.set_value(accValue);
//objEdit.oneditclick.addHandler(editClick);
objEdit.addEventHandler("ontextchanged",this.objEdit_ontextchanged,this);
objEdit.show();
}else{
this.managementCode=application.dsJournalManagement.getColumn(i-1,"management_code");
this.managementIdx=i;
var objEdit = new Edit();
objEdit.init(i, iLeft,iTop,iLeft+80,iTop+25);
this.jourCompDiv.addChild("EditValue"+i, objEdit);
objEdit.set_background("whitesmoke");
objEdit.set_border_style("none");
objEdit.set_align("center");
objEdit.set_enable("true");
objEdit.set_value(accValue);
objEdit.addEventHandler("oneditclick",this.objEdit_oneditclick,this);
objEdit.addEventHandler("ontextchanged",this.objEdit_ontextchanged,this);
objEdit.show();
}
if(i%4==0){
iTop+=35;
iLeft=3;
}else{
iLeft+=110;
}
}
}
this.objCalendar_oncloseup = function(obj:Edit, e:nexacro.KeyEventInfo)
{
//alert(obj.value);
application.dsJournalManagement.setColumn(parseInt(obj.name)-1,"value",obj.value);
}
this.objEdit_ontextchanged = function(obj:Edit, e:nexacro.KeyEventInfo)
{
application.dsJournalManagement.setColumn(parseInt(obj.name)-1,"value",obj.text);
}
this.objEdit_oneditclick = function(obj:Edit, e:nexacro.KeyEventInfo)
{
//alert(obj);
//alert(managementCode);
//alert(managementIdx);
//dialog(obj,"Base::codeInfo.xfdl", this, {managementCode:accCode},obj.name);
application.dsDetailCode.filter("distinction_code=='"+managementCode+"'");
dialog("modal", "Base::codeInfo.xfdl", MainFrame, {a:'aaa',b:'bbb'}, "showtitlebar=true showstatusbar=false", 400, 150, 800, 600,this);
this.createComponent(application.dsJournal.rowposition,this.slipNo);
}
this.setManagementCodeInfo = function(codeName){
application.dsJournalManagement.setColumn(parseInt(managementIdx)-1,"value", codeName);
}
*/
this.setManagementCodeInfo = function(code, codeName){
application.dsJournal.setColumn(application.dsJournal.rowposition,"customer_code", code);
application.dsJournal.setColumn(application.dsJournal.rowposition,"customer_name", codeName);
}
// 저장 버튼
this.saveBtn_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
if(confirm("전표를 저장하시겠습니까?")){
//var count=dsJournal.GetCount()-1;
// 분개 타입이 없는 행을 삭제한다.
//alert("count : "+count);
//if(length(dsJournal.GetColumn(count, "journal_type"))==null){
// dsJournal.DeleteRow(count);
//}
this.transaction("batchSlipList","DataUrl::slip/batchSlipList.do","dsSlip=dsSlip:U dsJournal=dsJournal:U dsJournalManagement=dsJournalManagement:U",
"","","callback");
}
}
]]></Script>
</Form>
</FDL>

View File

@@ -0,0 +1,197 @@
<?xml version="1.0" encoding="utf-8"?>
<FDL version="1.5">
<TypeDefinition url="..\default_typedef.xml"/>
<Form id="accountInfo" classname="accountInfo" left="0" top="0" width="730" height="486" titletext="New Form" onload="accountInfo_onload">
<Layouts>
<Layout>
<Static id="Static00" taborder="0" text="계정과목조회" left="1.37%" top="8" right="1.37%" height="25" style="background:#edaf78ff;align:center middle;font:bold antialias 14 Verdana;"/>
<Static id="Static07" taborder="1" text="상위 계정" left="1.51%" top="80" right="70.41%" height="24" style="background:#edaf78ff;align:center middle;font:bold antialias 10 Verdana;"/>
<Grid id="firstAccountGrid" taborder="2" binddataset="dsFirstAccount" useinputpanel="false" autofittype="col" left="1.51%" top="116" right="70.41%" height="360" oncellclick="firstAccountGrid_oncellclick">
<Formats>
<Format id="default">
<Columns>
<Column size="60"/>
<Column size="120"/>
</Columns>
<Rows>
<Row size="24" band="head"/>
<Row size="24"/>
</Rows>
<Band id="head">
<Cell displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="계정코드"/>
<Cell col="1" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="계정명"/>
</Band>
<Band id="body">
<Cell displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,10,bold;" text="bind:account_code"/>
<Cell col="1" displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,10,bold;" text="bind:account_name"/>
</Band>
</Format>
</Formats>
</Grid>
<Static id="Static08" taborder="3" text="중간 계정" left="30%" top="80" right="39.73%" height="24" style="background:#edaf78ff;align:center middle;font:bold antialias 10 Verdana;"/>
<Grid id="secondAccountGrid" taborder="4" binddataset="dsSecondAccount" useinputpanel="false" autofittype="col" left="30%" top="116" right="39.73%" height="360" oncellclick="secondAccountGrid_oncellclick">
<Formats>
<Format id="default">
<Columns>
<Column size="60"/>
<Column size="150"/>
</Columns>
<Rows>
<Row size="24" band="head"/>
<Row size="24"/>
</Rows>
<Band id="head">
<Cell displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="계정코드"/>
<Cell col="1" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="계정명"/>
</Band>
<Band id="body">
<Cell displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,10,bold;" text="bind:account_code"/>
<Cell col="1" displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,10,bold;" text="bind:account_name"/>
</Band>
</Format>
</Formats>
</Grid>
<Static id="Static09" taborder="5" text="하위 계정" left="60.68%" top="80" right="1.37%" height="24" style="background:#edaf78ff;align:center middle;font:bold antialias 10 Verdana;"/>
<Grid id="thirdAccountGrid" taborder="6" binddataset="dsThirdAccount" useinputpanel="false" autofittype="col" left="60.68%" top="116" right="1.37%" height="360" oncelldblclick="thirdAccountGrid_oncelldblclick">
<Formats>
<Format id="default">
<Columns>
<Column size="60"/>
<Column size="150"/>
</Columns>
<Rows>
<Row size="24" band="head"/>
<Row size="24"/>
</Rows>
<Band id="head">
<Cell displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="계정코드"/>
<Cell col="1" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="계정명"/>
</Band>
<Band id="body">
<Cell displaytype="normal" edittype="none" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,10,bold;" text="bind:account_code"/>
<Cell col="1" displaytype="normal" edittype="none" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,10,bold;" text="bind:account_name"/>
</Band>
</Format>
</Formats>
</Grid>
<Static id="Static02" taborder="7" text="항목검색" left="34.25%" top="46" right="56.16%" height="26" style="background:#edaf78ff;align:center middle;font:bold antialias 10 Verdana;"/>
<Edit id="search" taborder="8" left="44.79%" top="46" right="43.15%" height="26" style="font:bold antialias 10 Verdana;"/>
<Button id="searchBtn" taborder="9" text="조회" onclick="empSearchBtn_onclick" left="57.4%" top="46" right="36.99%" height="24" style="color:gray;font:bold antialias 10 Verdana;"/>
</Layout>
</Layouts>
<Objects>
<Dataset id="dsFirstAccount" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
<ColumnInfo>
<Column id="account_code" type="STRING" size="256"/>
<Column id="account_name" type="STRING" size="256"/>
<Column id="parent_account" type="STRING" size="256"/>
<Column id="account_balance" type="STRING" size="256"/>
<Column id="account_change" type="STRING" size="256"/>
<Column id="account_use" type="STRING" size="256"/>
<Column id="level" type="STRING" size="256"/>
</ColumnInfo>
</Dataset>
<Dataset id="dsSecondAccount" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
<ColumnInfo>
<Column id="account_code" type="STRING" size="256"/>
<Column id="account_name" type="STRING" size="256"/>
<Column id="parent_account" type="STRING" size="256"/>
<Column id="account_balance" type="STRING" size="256"/>
<Column id="account_change" type="STRING" size="256"/>
<Column id="account_use" type="STRING" size="256"/>
<Column id="level" type="STRING" size="256"/>
</ColumnInfo>
</Dataset>
<Dataset id="dsThirdAccount" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
<ColumnInfo>
<Column id="account_code" type="STRING" size="256"/>
<Column id="account_name" type="STRING" size="256"/>
<Column id="parent_account" type="STRING" size="256"/>
<Column id="account_balance" type="STRING" size="256"/>
<Column id="account_change" type="STRING" size="256"/>
<Column id="account_use" type="STRING" size="256"/>
<Column id="level" type="STRING" size="256"/>
</ColumnInfo>
</Dataset>
</Objects>
<Script type="xscript5.0"><![CDATA[
// 계정과목조회 폼이 로드되면
this.accountInfo_onload = function(obj:Form, e:nexacro.LoadEventInfo)
{
this.dsFirstAccount.copyData(application.dsAccount);
this.dsFirstAccount.filter("level==1");
}
// 상위계정 그리드 클릭 시
this.firstAccountGrid_oncellclick = function(obj:Grid, e:nexacro.GridClickEventInfo)
{
var firstCode=this.dsFirstAccount.getColumn(e.row, "account_code");
this.dsSecondAccount.copyData(application.dsAccount);
this.dsSecondAccount.filter("parent_account=='"+firstCode+"'");
this.dsThirdAccount.clear();
}
// 중간계정 그리드 클릭 시
this.secondAccountGrid_oncellclick = function(obj:Grid, e:nexacro.GridClickEventInfo)
{
var secondCode=this.dsSecondAccount.getColumn(e.row, "account_code");
this.dsThirdAccount.copyData(application.dsAccount);
this.dsThirdAccount.filter("parent_account=='"+secondCode+"'");
}
// 하위계정 그리드 더블클릭 시
this.thirdAccountGrid_oncelldblclick = function(obj:Grid, e:nexacro.GridClickEventInfo)
{
var code=this.dsThirdAccount.getColumn(e.row,"account_code");
var name=this.dsThirdAccount.getColumn(e.row,"account_name");
this.opener.setAccountCodeInfo(code, name);
// 변경되는 값을 jourCompDiv에 세팅한다.
var journalNo = application.dsJournal.getColumn(application.dsJournal.rowposition,"journal_no");
var slipNo = application.dsSlip.getColumn(application.dsSlip.rowposition,"slip_no");
trace("slipNo ------------------------------------ "+slipNo);
var iCnt = application.dsJournalManagement.getRowCount();
// 뒤에서부터 삭제한다.
for(var i=iCnt-1;i>=0;i--){
if((application.dsJournalManagement.getColumn(i,"journal_no") == journalNo) && (application.dsJournalManagement.getColumn(i,"slip_no") == slipNo))
{
// 실제 삭제하는 실행문이다.
application.dsJournalManagement.deleteRow(i);
}
}
var accountCode = application.dsJournal.getColumn( application.dsJournal.rowposition,"account_code");
application.dsAcountManagement.filter("");
application.dsAcountManagement.filter("account_code=='"+accountCode+"'");
// 분개상세 생성한다.
for (i=0; i <application.dsAcountManagement.getRowCount() ;i++){
application.dsJournalManagement.addRow();
var accName=application.dsAcountManagement.getColumn(i,"account_management_name");
var accCode=application.dsAcountManagement.getColumn(i,"management_code");
var accComp=application.dsAcountManagement.getColumn(i,"management_type");
// 코드명 + 코드타입
trace("variable: "+accName+" ---------- "+accComp);
application.dsJournalManagement.setColumn(application.dsJournalManagement.rowposition,"management_name",accName);
application.dsJournalManagement.setColumn(application.dsJournalManagement.rowposition,"management_code",accCode);
application.dsJournalManagement.setColumn(application.dsJournalManagement.rowposition,"management_type",accComp);
application.dsJournalManagement.setColumn(application.dsJournalManagement.rowposition,"journal_no",journalNo);
application.dsJournalManagement.setColumn(application.dsJournalManagement.rowposition,"slip_no",slipNo);
}
//this.opener.createComponent(dsJournal.rowposition,slipNo);
this.close();
}
]]></Script>
</Form>
</FDL>

112
nexacro/Base/code.xfdl Normal file
View File

@@ -0,0 +1,112 @@
<?xml version="1.0" encoding="utf-8"?>
<FDL version="1.5">
<TypeDefinition url="..\default_typedef.xml"/>
<Form id="code" classname="code" left="0" top="0" width="800" height="460" titletext="New Form">
<Layouts>
<Layout>
<Static id="Static00" taborder="0" text="코드관리" left="1.9%" top="8" right="1.55%" height="25" style="background:#edaf78ff;align:center middle;font:bold antialias 14 Verdana;"/>
<Button id="addBtn" taborder="1" text="추가" left="59.66%" top="44" right="30.69%" height="24" style="color:gray;font:bold antialias 10 Verdana;" onclick="addBtn_onclick"/>
<Button id="saveBtn" taborder="2" text="저장" left="69.31%" top="44" right="21.03%" height="24" style="color:gray;font:bold antialias 10 Verdana;" onclick="saveBtn_onclick"/>
<Button id="delBtn" taborder="3" text="삭제" left="78.97%" top="44" right="11.38%" height="24" style="color:gray;font:bold antialias 10 Verdana;" onclick="delBtn_onclick"/>
<Button id="resetBtn" taborder="4" text="취소" left="88.62%" top="44" right="1.72%" height="24" style="color:gray;font:bold antialias 10 Verdana;"/>
<Static id="Static01" taborder="5" text="코드" left="1.9%" top="80" right="55.86%" height="24" style="background:#edaf78ff;align:center middle;font:bold antialias 10 Verdana;"/>
<Grid id="codeGrid" taborder="6" binddataset="dsCode" useinputpanel="false" autofittype="col" left="1.9%" top="116" right="55.86%" height="328" oncellclick="codeGrid_oncellclick">
<Formats>
<Format id="default">
<Columns>
<Column size="30"/>
<Column size="50"/>
<Column size="100"/>
<Column size="50"/>
</Columns>
<Rows>
<Row size="24" band="head"/>
<Row size="24"/>
</Rows>
<Band id="head">
<Cell style="background:#f7e4cfff;font:bold 10 Verdana;" text="No"/>
<Cell col="1" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="구분코드"/>
<Cell col="2" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="코드명"/>
<Cell col="3" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="수정여부"/>
</Band>
<Band id="body">
<Cell style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,10,bold;" expr="expr:currow+1"/>
<Cell col="1" displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,10,bold;" text="bind:distinction_code"/>
<Cell col="2" displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,10,bold;" text="bind:code_name"/>
<Cell col="3" displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,10,bold;" text="bind:code_use"/>
</Band>
</Format>
</Formats>
</Grid>
<Grid id="detailcodeGrid" taborder="7" binddataset="dsDetailCode" useinputpanel="false" autofittype="col" left="46.9%" top="116" right="1.55%" height="328" onenterdown="detailcodeGrid_onenterdown">
<Formats>
<Format id="default">
<Columns>
<Column size="50"/>
<Column size="90"/>
<Column size="100"/>
<Column size="50"/>
</Columns>
<Rows>
<Row size="24" band="head"/>
<Row size="24"/>
</Rows>
<Band id="head">
<Cell displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="구분코드"/>
<Cell col="1" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="상세코드"/>
<Cell col="2" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="상세코드명"/>
<Cell col="3" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="사용여부"/>
</Band>
<Band id="body">
<Cell displaytype="normal" edittype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,10,bold;" text="bind:distinction_code"/>
<Cell col="1" displaytype="normal" edittype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,10,bold;" text="bind:detail_code"/>
<Cell col="2" displaytype="normal" edittype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,10,bold;" text="bind:detail_codename"/>
<Cell col="3" displaytype="normal" edittype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,10,bold;" text="bind:detail_use"/>
</Band>
</Format>
</Formats>
</Grid>
<Static id="Static02" taborder="8" text="상세코드" left="47.07%" top="80" right="1.55%" height="24" style="background:#edaf78ff;align:center middle;font:bold antialias 10 Verdana;"/>
</Layout>
</Layouts>
<Script type="xscript5.0"><![CDATA[
// 코드 그리드 클릭 시
this.codeGrid_oncellclick = function(obj:Grid, e:nexacro.GridClickEventInfo)
{
var code=application.dsCode.getColumn(e.row,"distinction_code");
trace(" -------------- "+code);
application.dsDetailCode.filter("distinction_code=='"+code+"'");
}
// 추가 버튼
this.addBtn_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
application.dsDetailCode.addRow();
}
// 삭제 버튼
this.delBtn_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
if(confirm("선택한 코드정보를 삭제하시겠습니까?")){
application.dsDetailCode.deleteRow(application.dsDetailCode.rowposition);
}
}
// 저장 버튼
this.saveBtn_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
if(confirm("변경사항을 저장하시겠습니까?")){
this.transaction("batchCodeList","DataUrl::base/batchCodeList.do","dsDetailCode=dsDetailCode:U","dsDetailCode=dsDetailCode","","callback");
}
}
// 상세코드 그리드 엔터키 누르면
this.detailcodeGrid_onenterdown = function(obj:Grid, e:nexacro.GridEditEventInfo)
{
obj.moveToNextCell();
}
]]></Script>
</Form>
</FDL>

View File

@@ -0,0 +1,58 @@
<?xml version="1.0" encoding="utf-8"?>
<FDL version="1.5">
<TypeDefinition url="..\default_typedef.xml"/>
<Form id="codeInfo" classname="codeInfo" left="0" top="0" width="300" height="400" titletext="New Form" onload="codeInfo_onload">
<Layouts>
<Layout>
<Static id="Static00" taborder="0" text="코드조회" left="3.33%" top="13" right="3.67%" height="30" style="background:#edaf78ff;align:center middle;font:Verdana,14,bold;"/>
<Grid id="codeSearchGrid" taborder="1" binddataset="dsDetailCode" useinputpanel="false" autofittype="col" oncellclick="codeSearchGrid_oncellclick" left="3.33%" top="53" right="3.67%" height="334">
<Formats>
<Format id="default">
<Columns>
<Column size="70"/>
<Column size="120"/>
</Columns>
<Rows>
<Row size="24" band="head"/>
<Row size="24"/>
</Rows>
<Band id="head">
<Cell style="background:#f7e4cfff;font:bold 10 Verdana;" text="코드"/>
<Cell col="1" style="background:#f7e4cfff;font:bold 10 Verdana;" text="코드명"/>
</Band>
<Band id="body">
<Cell edittype="none" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;" text="bind:detail_code"/>
<Cell col="1" edittype="none" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;" text="bind:detail_codename"/>
</Band>
</Format>
</Formats>
</Grid>
</Layout>
</Layouts>
<Script type="xscript5.0"><![CDATA[
this.codeSearchGrid_oncellclick = function(obj:Grid, e:nexacro.GridClickEventInfo)
{
var code=application.dsDetailCode.getColumn(e.row,"detail_code");
var codeName=application.dsDetailCode.getColumn(e.row,"detail_codename");
if(application.dsDetailCode.getColumn(e.row, "distinction_code")=='DP'){
gvDeptName=codeName;
this.opener.setCodeInfo(code, codeName);
}else if(application.dsDetailCode.getColumn(e.row, "distinction_code")=='AM'){
this.opener.setCodeInfo(code, codeName);
}else if(application.dsDetailCode.getColumn(e.row, "distinction_code")=='PS'){
this.opener.setCodeInfo(code, codeName);
}else if(application.dsDetailCode.getColumn(e.row, "distinction_code")=='C002'){
this.opener.setManagementCodeInfo(codeName);
}else if(application.dsDetailCode.getColumn(e.row, "distinction_code")=='C024'){
this.opener.setManagementCodeInfo(codeName);
}else if(application.dsDetailCode.getColumn(e.row, "distinction_code")=='CT'){
this.opener.setManagementCodeInfo(code, codeName);
}
this.close();
}
]]></Script>
</Form>
</FDL>

54
nexacro/Base/empInfo.xfdl Normal file
View File

@@ -0,0 +1,54 @@
<?xml version="1.0" encoding="utf-8"?>
<FDL version="1.5">
<TypeDefinition url="..\default_typedef.xml"/>
<Form id="empInfo" classname="empInfo" left="0" top="0" width="300" height="400" titletext="New Form">
<Layouts>
<Layout>
<Static id="Static00" taborder="0" text="사원조회" left="3.33%" top="13" right="3.67%" height="30" style="background:#edaf78ff;align:center middle;font:Verdana,14,bold;"/>
<Grid id="empSearchGrid" taborder="1" binddataset="dsEmp" useinputpanel="false" autofittype="col" left="3.33%" top="53" right="3.67%" height="334" oncellclick="empSearchGrid_oncellclick">
<Formats>
<Format id="default">
<Columns>
<Column size="70"/>
<Column size="120"/>
</Columns>
<Rows>
<Row size="24" band="head"/>
<Row size="24"/>
</Rows>
<Band id="head">
<Cell style="background:#f7e4cfff;font:bold 10 Verdana;" text="사번"/>
<Cell col="1" style="background:#f7e4cfff;font:bold 10 Verdana;" text="사원명"/>
</Band>
<Band id="body">
<Cell style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;" text="bind:emp_no"/>
<Cell col="1" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;" text="bind:emp_name"/>
</Band>
</Format>
</Formats>
</Grid>
</Layout>
</Layouts>
<Script type="xscript5.0"><![CDATA[
this.empSearchGrid_oncellclick = function(obj:Grid, e:nexacro.GridClickEventInfo)
{
var empNo=application.dsEmp.getColumn(e.row,"emp_no");
var empName=application.dsEmp.getColumn(e.row,"emp_name");
var empPw=application.dsEmp.getColumn(e.row,"emp_pw");
//var empPs=dsPermission.GetColumn(e.row,"permission_code");
//글로벌변수지정
gvEmpNo=empNo;
gvEmpName=empName;
//gvEmpPs=empPs;
//trace("권한코드--------------------------"+gvEmpPs);
//로그인창에 셋팅한다.
this.opener.setEmpInfo(empNo, empName, empPw);
this.close();
}
]]></Script>
</Form>
</FDL>

142
nexacro/Base/loginForm.xfdl Normal file
View File

@@ -0,0 +1,142 @@
<?xml version="1.0" encoding="utf-8"?>
<FDL version="1.5">
<TypeDefinition url="..\default_typedef.xml"/>
<Form id="loginForm" classname="loginForm" left="0" top="0" width="300" height="300" onload="loginForm_onload" visible="true" onclose="loginForm_onclose">
<Layouts>
<Layout>
<Static id="Static00" taborder="0" text="부서코드" left="16%" top="40" height="32" style="background:#edaf78ff;align:center middle;font:bold 10 Verdana;" width="60"/>
<Edit id="deptNo" taborder="1" left="36%" top="40" height="32" width="110" enable="false" style=":disabled {font:bold 10 Verdana;}"/>
<Static id="Static01" taborder="2" text="부서명" left="16%" top="80" right="64%" height="32" style="background:#edaf78ff;align:center middle;font:bold 10 Verdana;"/>
<Edit id="deptName" taborder="3" left="36%" top="80" height="32" width="145" enable="false" style=":disabled {font:bold 10 Verdana;}"/>
<Static id="Static02" taborder="4" text="사번" left="16%" top="120" right="64%" height="32" style="background:#edaf78ff;align:center middle;font:bold 10 Verdana;"/>
<Edit id="empNo" taborder="5" left="36%" top="120" right="27.33%" height="32" enable="false" style=":disabled {font:bold 10 Verdana;}"/>
<Edit id="empName" taborder="6" left="36%" top="160" height="32" width="145" enable="false" style=":disabled {font:bold 10 Verdana;}"/>
<Static id="Static03" taborder="7" text="사원명" left="16%" top="160" right="64%" height="32" style="background:#edaf78ff;align:center middle;font:bold 10 Verdana;"/>
<Edit id="empPw" taborder="8" left="36%" top="200" height="32" width="145" onkeydown="empPw_onkeydown" style=":disabled {font:bold 10 Verdana;}" password="true"/>
<Static id="Static04" taborder="9" text="비밀번호" left="16%" top="200" right="64%" height="32" style="background:#edaf78ff;align:center middle;font:bold 10 Verdana;"/>
<Button id="loginBtn" taborder="10" text="로그인" left="36.33%" top="242" height="31" width="62" style="font:bold 10 Verdana;" onclick="loginBtn_onclick"/>
<Button id="cancelBtn" taborder="11" text="취소" left="60.33%" top="242" right="19%" height="31" style="font:bold 10 Verdana;" onclick="cancelBtn_onclick"/>
<Button id="Button00" taborder="12" left="73.67%" top="40" right="15.67%" height="32" onclick="Button00_onclick" style="image:URL('theme://search1.Bmp');"/>
<Button id="Button01" taborder="13" left="73.67%" top="120" right="15.67%" height="32" onclick="Button01_onclick" style="image:URL('theme://search1.Bmp');"/>
</Layout>
</Layouts>
<Script type="xscript5.0"><![CDATA[this.empPassword="";
// 콜백 함수
this.callback = function (strSvcID, nErrorCode, strErrorMsg){
if(strSvcID=="getCodeList" || strSvcID=="getEmpList" || strSvcID=="getPermission" || strSvcID=="getEmpPermission"){
if(nErrorCode<0){
alert("조회 실패"+strErrorMsg);
}else{
//alert("조회 성공"+errorMsg);
//trace(dsMenu.saveXML());
}
}else if(strSvcID=="getMenuList"){
if(nErrorCode<0){
alert("조회 실패"+strErrorMsg);
}
}
}
// 로그인 폼이 로드 되면
this.loginForm_onload = function(obj:Form, e:nexacro.LoadEventInfo)
{
//application.permission.clearData();
this.transaction("getCodeList","DataUrl::base/getCodeList.do","","dsCode=dsCode dsDetailCode=dsDetailCode","","callback");
this.transaction("getEmpList","DataUrl::emp/getEmpList.do","","dsEmp=dsEmp","","callback");
//transaction("getMenuList","DataUrl::base/getMenuList.do","","dsMenu=dsMenu","","callback");
this.transaction("getPermission","DataUrl::base/getPermission.do","","dsPermission=dsPermission","","callback");
this.transaction("getEmpPermission","DataUrl::base/getEmpPermission.do","","dsEmpPermission=dsEmpPermission","","callback");
this.transaction("getAccountList","DataUrl::account/getAccountList.do","","dsAccount=dsAccount dsAcountManagement=dsAcountManagement","","callback");
}
// 부서 검색 버튼
this.Button00_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
application.dsDetailCode.filter("distinction_code=='DP'");
application.open("부서리스트", "Base::codeInfo.xfdl", this.parent , {} , "showtitlebar=true showstatusbar=false" , "", "");
}
// 사번 검색 버튼
this.Button01_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
application.dsEmp.filter("dept_no=='"+this.deptNo.value+"'");
application.open("사원리스트", "Base::empInfo.xfdl", this.parent , "" , "showtitlebar=true showstatusbar=false" , 500, 250, 0, 0);
this.empPw.setFocus();
}
// 취소버튼
this.cancelBtn_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
this.close();
application.exit(); //전체 종료
}
// 로그인 버튼
this.loginBtn_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
if(this.deptNo.value==null || this.deptName.value==null){
alert("부서정보를 선택해주세요.");
}else if(this.empNo.value==null || this.empName.value==null){
alert("사원정보를 선택해주세요.");
}else if(this.empNo.value==gvEmpNo ){
if(this.empPw.value==this.empPassword){
alert(this.empName.value+"님 환영합니다.");
//application.mainframe.set_visible(true);
application.mainframe.VFrameSet0.HFrameSet0.ChildFrame0.set_formurl("Menu::treeView.xfdl");
application.mainframe.VFrameSet0.ChildFrame0.set_formurl("Menu::menuBar.xfdl");
this.close();
}else{
alert("사번과 비밀번호가 맞지 않습니다.");
}
}else{
alert("없는 사번입니다.");
}
}
// 팝업창에서 선택한 부서정보를 edit에 자동입력
this.setCodeInfo = function(deptNo, deptName)
{
this.deptNo.set_value(deptNo);
this.deptName.set_value(deptName);
}
// 팝업창에서 선택한 사원정보를 edit에 자동입력
this.setEmpInfo = function(empNo, empName, empPw)
{
this.empNo.set_value(empNo);
this.empName.set_value(empName);
this.empPassword=empPw;
}
this.empPw_onkeydown = function(obj:Edit, e:nexacro.KeyEventInfo)
{
if(e.keycode == 13){
this.loginBtn_onclick();
}
}
this.loginForm_onclose = function(obj:Form, e:nexacro.CloseEventInfo)
{
//alert("권한");
//alert(gvEmpNo);
//alert(application.dsEmpPermission.getRowCount());
this.transaction("getMenuList","DataUrl::base/getMenuList.do","","dsMenu=dsMenu","","callback");
application.dsEmpPermission.filter("emp_no=='"+gvEmpNo+"'");
//alert(application.dsEmpPermission.getRowCount());
for(var i=0; i < application.dsEmpPermission.getRowCount(); i++){
var permissionCode=application.dsEmpPermission.getColumn(i, "permission_code");
application.dsPermission.filter("permission_code=='"+permissionCode+"'");
application.permission.appendData(application.dsPermission,true);
}
//alert(application.permission.getRowCount());
//alert(application.dsPermission.getColumn(0,"menu_code"));
//alert(application.dsPermission.getColumn(1,"menu_code"));
alert("오늘 하루도 활기찬 하루 되세요 ~ ");
}
]]></Script>
</Form>
</FDL>

View File

@@ -0,0 +1,241 @@
<?xml version="1.0" encoding="utf-8"?>
<FDL version="1.5">
<TypeDefinition url="..\default_typedef.xml"/>
<Form id="permissionCode" classname="permissionCode" left="0" top="0" width="800" height="460" titletext="New Form" onload="permissionCode_onload">
<Layouts>
<Layout>
<Static id="Static00" taborder="0" text="권한관리" left="1.38%" top="8" right="1.03%" height="25" style="background:#edaf78ff;align:center middle;font:bold antialias 14 Verdana;"/>
<Button id="saveBtn" taborder="1" text="저장" onclick="saveBtn_onclick" left="78.1%" top="44" right="12.24%" height="24" style="color:gray;font:bold antialias 10 Verdana;"/>
<Button id="cancelBtn" taborder="2" text="취소" onclick="cancelBtn_onclick" left="89.14%" top="44" right="1.21%" height="24" style="color:gray;font:bold antialias 10 Verdana;"/>
<Static id="Static07" taborder="3" text="권한" left="1.55%" top="224" right="70%" height="24" style="background:#edaf78ff;align:center middle;font:bold antialias 10 Verdana;"/>
<Grid id="permissionGrid" taborder="4" binddataset="dsEmpPermission" useinputpanel="false" autofittype="col" oncellclick="permissionGrid_oncellclick" left="1.55%" top="260" right="70%" height="160">
<Formats>
<Format id="default">
<Columns>
<Column size="110"/>
<Column size="50"/>
</Columns>
<Rows>
<Row size="24" band="head"/>
<Row size="24"/>
</Rows>
<Band id="head">
<Cell displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="권한코드"/>
<Cell col="1" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="권한명"/>
</Band>
<Band id="body">
<Cell displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,10,bold;" text="bind:permission_code"/>
<Cell col="1" displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,10,bold;" text="bind:permission_name"/>
</Band>
</Format>
</Formats>
</Grid>
<Static id="Static01" taborder="5" text="접근가능메뉴" left="30.52%" top="224" right="39.66%" height="24" style="background:#edaf78ff;align:center middle;font:bold antialias 10 Verdana;"/>
<Grid id="permissionMenuGrid" taborder="6" binddataset="dsPermission" useinputpanel="false" autofittype="col" oncellclick="firstAccountGrid_oncellclick" left="30.52%" top="260" right="39.66%" height="192">
<Formats>
<Format id="default">
<Columns>
<Column size="25"/>
<Column size="60"/>
<Column size="80"/>
</Columns>
<Rows>
<Row size="24" band="head"/>
<Row size="24"/>
</Rows>
<Band id="head">
<Cell style="background:#f7e4cfff;font:bold 10 Verdana;" text="No"/>
<Cell col="1" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="메뉴코드"/>
<Cell col="2" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="메뉴명"/>
</Band>
<Band id="body">
<Cell style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,9,bold;" expr="currow+1"/>
<Cell col="1" displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,9,bold;" text="bind:menu_code"/>
<Cell col="2" displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,9,bold;" text="bind:menu_name"/>
</Band>
</Format>
</Formats>
</Grid>
<Static id="Static02" taborder="7" text="전체메뉴" left="65%" top="224" right="1.03%" height="24" style="background:#edaf78ff;align:center middle;font:bold antialias 10 Verdana;"/>
<Button id="permissionRemoveBtn" taborder="8" text="삭제" onclick="delBtn_onclick" left="16.03%" top="426" right="75.69%" height="24" style="color:gray;font:bold antialias 10 Verdana;"/>
<Button id="permissionAddBtn" taborder="9" text="추가" onclick="permissionAddBtn_onclick" left="6.38%" top="426" right="85.34%" height="24" style="color:gray;font:bold antialias 10 Verdana;"/>
<Grid id="empListGrid" taborder="10" binddataset="dsEmp" useinputpanel="false" autofittype="col" oncellclick="empListGrid_oncellclick" left="1.03%" top="80" right="1.03%" height="136" style="font:Verdana,10,bold antialias;">
<Formats>
<Format id="default">
<Columns>
<Column size="40"/>
<Column size="80"/>
<Column size="80"/>
<Column size="80"/>
<Column size="80"/>
</Columns>
<Rows>
<Row size="24" band="head"/>
<Row size="24"/>
</Rows>
<Band id="head">
<Cell style="background:#f7e4cfff;font:bold 10 Verdana;" text="No"/>
<Cell col="1" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="사번"/>
<Cell col="2" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="성명"/>
<Cell col="3" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="부서"/>
<Cell col="4" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="직급"/>
</Band>
<Band id="body">
<Cell style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" expr="expr:currow+1"/>
<Cell col="1" displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:emp_no"/>
<Cell col="2" displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:emp_name"/>
<Cell col="3" displaytype="combo" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:dept_no" combodataset="dsDetailCode" combocodecol="detail_code" combodatacol="detail_codename" combodisplay="edit"/>
<Cell col="4" displaytype="combo" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:emp_position" combodataset="dsDetailCode" combocodecol="detail_code" combodatacol="detail_codename" combodisplay="edit"/>
</Band>
</Format>
</Formats>
</Grid>
<Static id="Static03" taborder="11" text="성명" left="42.76%" top="43" right="49.31%" height="26" style="background:#edaf78ff;align:center middle;font:bold antialias 10 Verdana;"/>
<Edit id="empName" taborder="12" left="51.9%" top="43" right="32.93%" height="26" style="font:bold antialias 10 Verdana;"/>
<Button id="empSearchBtn" taborder="13" text="조회" onclick="empSearchBtn_onclick" left="67.76%" top="44" right="25.17%" height="24" style="color:gray;font:bold antialias 10 Verdana;"/>
<Button id="removeBtn" taborder="14" text="▶" onclick="removeBtn_onclick" left="60.69%" top="348" right="35.52%" height="24" style="color:gray;font:나눔바른고딕,9,bold antialias;"/>
<Button id="addBtn" taborder="15" text="◀" onclick="addBtn_onclick" left="60.69%" top="316" right="35.52%" height="24" style="color:gray;font:나눔바른고딕,9,bold antialias;"/>
<Grid id="menuGrid" taborder="16" binddataset="dsMenu" useinputpanel="false" autofittype="col" oncellclick="firstAccountGrid_oncellclick" left="65%" top="260" right="1.03%" height="192">
<Formats>
<Format id="default">
<Columns>
<Column size="25"/>
<Column size="60"/>
<Column size="80"/>
</Columns>
<Rows>
<Row size="24" band="head"/>
<Row size="24"/>
</Rows>
<Band id="head">
<Cell style="background:#f7e4cfff;font:bold 10 Verdana;" text="No"/>
<Cell col="1" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="메뉴코드"/>
<Cell col="2" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="메뉴명"/>
</Band>
<Band id="body">
<Cell style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,9,bold;" expr="currow+1"/>
<Cell col="1" displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,9,bold;" text="bind:menu_code"/>
<Cell col="2" displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,9,bold;" text="bind:menu_name"/>
</Band>
</Format>
</Formats>
</Grid>
</Layout>
</Layouts>
<Script type="xscript5.0"><![CDATA[var empNo, permission;
// 콜백 함수
this.callback = function(trid, errorCode, errorMsg){
if(trid=="getEmpPermission"){
if(errorCode != 0){
alert("조회 실패");
}
}else if(trid=="batchPermission"){
if(errorCode != 0){
alert("등록 실패");
}
}else if(trid=="getPermissionList"){
if(errorCode != 0){
alert("조회 실패");
}else{
application.dsEmpPermission.setColumn(application.dsEmpPermission.rowposition, "emp_no", empNo);
}
}
}
// 권한 관리 폼이 로드되면
this.permissionCode_onload = function(obj:Form, e:nexacro.LoadEventInfo)
{
application.dsEmp.filter("");
application.dsEmpPermission.clearData();
application.dsPermission.clearData();
this.transaction("getEmpPermission","DataUrl::base/getEmpPermission.do","","dsEmpPermission=dsEmpPermission","","callback");
}
// 사원정보 그리드를 클릭하면
this.empListGrid_oncellclick = function(obj:Grid, e:nexacro.GridClickEventInfo)
{
this.empNo = application.dsEmp.getColumn(e.row, "emp_no");
application.dsEmpPermission.filter("emp_no=='"+this.empNo+"'");
}
// 권한 그리드를 클릭하면
this.permissionGrid_oncellclick = function(obj:Grid, e:nexacro.GridClickEventInfo)
{
if(this.permissionGrid.getCellText(e.row, e.cell).length == 0){
application.dsDetailCode.filter("distinction_code=='PS'");
dialog("코드리스트", "Base::codeInfo.xfdl", this.parent, "" , "showtitlebar=true showstatusbar=false", "","");
}else{
this.permission = application.dsEmpPermission.getColumn(e.row,"permission_code");
this.sendData(this.permission);
}
}
// 모달창에서 받아오는 값
this.setCodeInfo = function(code, codeName){
application.dsEmpPermission.setColumn(application.dsEmpPermission.rowposition, "permission_code", code);
application.dsEmpPermission.setColumn(application.dsEmpPermission.rowposition, "permission_name", codeName);
}
// 권한메뉴 받아오기
this.sendData = function(permission)
{
this.transaction("getPermissionList","DataUrl::base/getPermissionList.do","","dsPermission=dsPermission","permission='"+permission+"'","callback");
}
// 권한 추가 버튼
this.permissionAddBtn_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
application.dsEmpPermission.addRow();
}
// 권한 삭제 버튼
this.delBtn_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
application.dsEmpPermission.deleteRow(application.dsEmpPermission.rowposition);
}
// add 버튼
this.addBtn_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
var addRow=application.dsPermission.addRow();
var menuCode = application.dsMenu.getColumn(application.dsMenu.rowposition,"menu_code");
var menuName = application.dsMenu.getColumn(application.dsMenu.rowposition,"menu_name");
application.dsPermission.setColumn(addRow,"menu_code",menuCode);
application.dsPermission.setColumn(addRow,"menu_name",menuName);
//trace("insert ------------------"+permission);
application.dsPermission.setColumn(addRow,"permission_code",this.permission);
}
// remove 버튼
this.removeBtn_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
application.dsPermission.deleteRow(application.dsPermission.rowposition);
}
// 사원 조회 버튼
this.empSearchBtn_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
this.name=this.empName.value;
if(this.name==""){
application.dsEmp.filter("");
}else{
application.dsEmp.filter("String(emp_name).indexOf('"+this.name+"')>=0");
}
}
// 저장 버튼
this.saveBtn_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
if(confirm("변경사항을 저장하시겠습니까?")){
this.transaction("batchPermission","DataUrl::base/batchPermission.do","dsEmpPermission=dsEmpPermission:U dsPermission=dsPermission:U","","","callback");
}
}
]]></Script>
</Form>
</FDL>

333
nexacro/Insa/emp.xfdl Normal file
View File

@@ -0,0 +1,333 @@
<?xml version="1.0" encoding="utf-8"?>
<FDL version="1.5">
<TypeDefinition url="..\default_typedef.xml"/>
<Form id="emp" classname="emp" left="0" top="0" width="800" height="460" titletext="New Form" onload="emp_onload">
<Layouts>
<Layout>
<Static id="Static00" taborder="0" text="사원관리" left="1.21%" top="8" right="0.69%" height="25" style="background:#edaf78ff;align:center middle;font:bold antialias 14 Verdana;"/>
<Combo id="empDept" taborder="1" innerdataset="dsDept" codecolumn="DETAIL_CODE" datacolumn="DETAIL_NAME" left="40.69%" top="272" right="37.93%" height="26" style="font:bold antialias 10 Verdana;"/>
<Static id="Static02" taborder="2" text="성명" left="26.55%" top="46" right="65.52%" height="26" style="background:#edaf78ff;align:center middle;font:bold antialias 10 Verdana;"/>
<Edit id="empName" taborder="3" left="35.69%" top="46" right="49.14%" height="26" style="font:bold antialias 10 Verdana;"/>
<Button id="addrBtn" taborder="4" onclick="addrBtn_onclick" left="95%" top="304" right="0.75%" height="27" style="image:URL('theme://images\StatusbarForm_01.png');background:@gradation URL('theme://search1.Bmp') stretch;font:bold antialias 9 나눔바른고딕;"/>
<Grid id="empListGrid" taborder="5" binddataset="dsEmp" useinputpanel="false" autofittype="col" left="1.21%" top="80" right="0.69%" height="152" style="font:Verdana,10,bold antialias;" oncellclick="empListGrid_oncellclick">
<Formats>
<Format id="default">
<Columns>
<Column size="40"/>
<Column size="80"/>
<Column size="80"/>
<Column size="80"/>
<Column size="80"/>
</Columns>
<Rows>
<Row size="24" band="head"/>
<Row size="24"/>
</Rows>
<Band id="head">
<Cell style="background:#f7e4cfff;" text="No"/>
<Cell col="1" displaytype="normal" style="background:#f7e4cfff;" text="사번"/>
<Cell col="2" displaytype="normal" style="background:#f7e4cfff;" text="성명"/>
<Cell col="3" displaytype="normal" style="background:#f7e4cfff;" text="부서"/>
<Cell col="4" displaytype="normal" style="background:#f7e4cfff;" text="직급"/>
</Band>
<Band id="body">
<Cell style="align:center middle;background:#f9f0d7ff;background2:transparent;selectfont:Verdana,10,bold;" expr="expr:currow+1"/>
<Cell col="1" displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,10,bold;selectfont:Verdana,10,bold;" text="bind:emp_no"/>
<Cell col="2" displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,10,bold;selectfont:Verdana,10,bold;" text="bind:emp_name"/>
<Cell col="3" displaytype="combo" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,10,bold;selectfont:Verdana,10,bold;" text="bind:dept_no" combodataset="dsDept" combocodecol="DETAIL_CODE" combodatacol="DETAIL_NAME" combodisplay="edit"/>
<Cell col="4" displaytype="combo" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:Verdana,10,bold;selectfont:Verdana,10,bold;" text="bind:emp_position" combodataset="dsPosition" combocodecol="detail_code" combodatacol="detail_name" combodisplay="edit"/>
</Band>
</Format>
</Formats>
</Grid>
<Button id="empSearchBtn" taborder="6" text="조회" onclick="empSearchBtn_onclick" left="51.55%" top="46" right="41.38%" height="24" style="color:gray;font:bold antialias 10 Verdana;"/>
<Button id="addBtn" taborder="7" text="추가" left="60.52%" top="46" right="29.83%" height="24" style="color:gray;font:bold antialias 10 Verdana;" onclick="addBtn_onclick"/>
<Button id="saveBtn" taborder="8" text="저장" left="70.17%" top="46" right="20.17%" height="24" style="color:gray;font:bold antialias 10 Verdana;" onclick="saveBtn_onclick"/>
<Button id="delBtn" taborder="9" text="삭제" left="79.83%" top="46" right="10.52%" height="24" style="color:gray;font:bold antialias 10 Verdana;" onclick="delBtn_onclick"/>
<Button id="resetBtn" taborder="10" text="취소" onclick="resetBtn_onclick" left="89.48%" top="46" right="0.86%" height="24" style="color:gray;font:bold antialias 10 Verdana;"/>
<Edit id="empAddress" taborder="11" left="40.75%" top="304" right="5.63%" height="26" style="font:bold antialias 10 Verdana;"/>
<Static id="Static04" taborder="12" text="주소" left="28.79%" top="304" right="60%" height="26" style="background:#edaf78ff;align:center middle;font:bold antialias 10 Verdana;"/>
<Static id="Static03" taborder="13" text="성명" left="28.79%" top="240" right="60%" height="26" style="background:#edaf78ff;align:center middle;font:bold antialias 10 Verdana;"/>
<Static id="Static05" taborder="14" text="사번" left="66.03%" top="240" right="22.76%" height="26" style="background:#edaf78ff;align:center middle;font:bold antialias 10 Verdana;"/>
<Edit id="empNo" taborder="15" left="77.93%" top="240" right="0.69%" height="26" style="font:bold antialias 10 Verdana;"/>
<Static id="Static06" taborder="16" text="직급" left="66.03%" top="272" right="22.76%" height="26" style="background:#edaf78ff;align:center middle;font:bold antialias 10 Verdana;"/>
<Static id="Static07" taborder="17" text="부서" left="28.79%" top="272" right="60%" height="26" style="background:#edaf78ff;align:center middle;font:bold antialias 10 Verdana;"/>
<Static id="Static08" taborder="18" text="e_mail" left="66.03%" top="336" right="22.76%" height="26" style="background:#edaf78ff;align:center middle;font:bold antialias 10 Verdana;"/>
<Edit id="empEmail" taborder="19" left="77.93%" top="336" right="0.69%" height="26" style="font:bold antialias 10 Verdana;"/>
<Edit id="empTel" taborder="20" left="40.69%" top="336" right="37.93%" height="26" style="font:bold antialias 10 Verdana;"/>
<Static id="Static09" taborder="21" text="전화번호" left="28.79%" top="336" right="60%" height="26" style="background:#edaf78ff;align:center middle;font:bold antialias 10 Verdana;"/>
<Combo id="empPosition" taborder="22" innerdataset="dsPosition" codecolumn="detail_code" datacolumn="detail_name" left="77.93%" top="272" right="0.69%" height="26" style="font:bold antialias 10 Verdana;"/>
<Static id="Static01" taborder="23" text="입사일" left="66.03%" top="368" right="22.76%" height="26" style="background:#edaf78ff;align:center middle;font:bold antialias 10 Verdana;"/>
<Edit id="empPw" taborder="24" password="true" left="40.69%" top="368" right="37.93%" height="26" style="font:bold antialias 10 Verdana;"/>
<Static id="Static10" taborder="25" text="비밀번호" left="28.79%" top="368" right="60%" height="26" style="background:#edaf78ff;align:center middle;font:bold antialias 10 Verdana;"/>
<Static id="Static12" taborder="26" text="비고" left="28.79%" top="400" right="60%" height="26" style="background:#edaf78ff;align:center middle;font:bold antialias 10 Verdana;"/>
<TextArea id="empMemo" taborder="27" left="40.69%" top="400" right="0.52%" height="47" style="font:bold antialias 10 Verdana;"/>
<Calendar id="empHiredate" taborder="28" dateformat="yyyy-MM-dd" left="77.93%" top="368" right="0.69%" height="25" style="font:bold antialias 10 Verdana;"/>
<ImageViewer id="empImg" taborder="29" left="1.55%" top="240" right="73.28%" height="176" style="font:나눔바른고딕,9,bold antialias;"/>
<Button id="seachImg" taborder="30" text="열기" left="3.28%" top="422" right="85.69%" height="28" style="color:gray;font:bold antialias 10 Verdana;" onclick="seachImg_onclick"/>
<Button id="saveImg" taborder="31" text="저장" onclick="saveImg_onclick" left="14.31%" top="422" right="74.66%" height="28" style="color:gray;font:bold antialias 10 Verdana;"/>
<Edit id="no00" taborder="32" left="40.69%" top="240" right="37.93%" height="26" style="font:bold antialias 10 Verdana;"/>
</Layout>
</Layouts>
<Bind>
<BindItem id="item3" compid="empDept" propid="value" datasetid="dsEmp" columnid="dept_no"/>
<BindItem id="item4" compid="empAddress" propid="value" datasetid="dsEmp" columnid="emp_address"/>
<BindItem id="item1" compid="empNo" propid="value" datasetid="dsEmp" columnid="emp_no"/>
<BindItem id="item8" compid="empEmail" propid="value" datasetid="dsEmp" columnid="emp_email"/>
<BindItem id="item5" compid="empTel" propid="value" datasetid="dsEmp" columnid="emp_tel"/>
<BindItem id="item2" compid="empPosition" propid="value" datasetid="dsEmp" columnid="emp_position"/>
<BindItem id="item6" compid="empPw" propid="value" datasetid="dsEmp" columnid="emp_pw"/>
<BindItem id="item9" compid="empMemo" propid="value" datasetid="dsEmp" columnid="memo"/>
<BindItem id="item7" compid="empHiredate" propid="value" datasetid="dsEmp" columnid="emp_hiredate"/>
<BindItem id="item0" compid="no00" propid="value" datasetid="dsEmp" columnid="emp_name"/>
</Bind>
<Objects>
<Dataset id="dsDept" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
<ColumnInfo>
<Column id="DETAIL_CODE" type="STRING" size="256"/>
<Column id="DETAIL_NAME" type="STRING" size="256"/>
</ColumnInfo>
<Rows>
<Row>
<Col id="DETAIL_CODE">DP001</Col>
<Col id="DETAIL_NAME">경영부</Col>
</Row>
<Row>
<Col id="DETAIL_NAME">관리부</Col>
<Col id="DETAIL_CODE">DP002</Col>
</Row>
<Row>
<Col id="DETAIL_NAME">재경부</Col>
<Col id="DETAIL_CODE">DP003</Col>
</Row>
<Row>
<Col id="DETAIL_NAME">생산부</Col>
<Col id="DETAIL_CODE">DP004</Col>
</Row>
<Row>
<Col id="DETAIL_NAME">구매부</Col>
<Col id="DETAIL_CODE">DP005</Col>
</Row>
<Row>
<Col id="DETAIL_NAME">영업부</Col>
<Col id="DETAIL_CODE">DP006</Col>
</Row>
<Row>
<Col id="DETAIL_NAME">개발부</Col>
<Col id="DETAIL_CODE">DP007</Col>
</Row>
<Row>
<Col id="DETAIL_NAME">품질부</Col>
<Col id="DETAIL_CODE">DP008</Col>
</Row>
</Rows>
</Dataset>
<Dataset id="dsImg" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
<ColumnInfo>
<Column id="emp_filename" type="STRING" size="256"/>
<Column id="img_file_data" type="BLOB" size="256"/>
</ColumnInfo>
</Dataset>
<FileDialog id="FileDialog" filter="All(*.*)|*.*|" filterindex="0" defaultextension="false" onclose="FileDialog_onclose"/>
<Dataset id="dsPosition" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
<ColumnInfo>
<Column id="detail_code" type="STRING" size="256"/>
<Column id="detail_name" type="STRING" size="256"/>
</ColumnInfo>
<Rows>
<Row>
<Col id="detail_code">PT001</Col>
<Col id="detail_name">대표이사</Col>
</Row>
<Row>
<Col id="detail_code">PT002</Col>
<Col id="detail_name">전무이사</Col>
</Row>
<Row>
<Col id="detail_code">PT003</Col>
<Col id="detail_name">상무이사</Col>
</Row>
<Row>
<Col id="detail_code">PT004</Col>
<Col id="detail_name">팀장</Col>
</Row>
<Row>
<Col id="detail_code">PT005</Col>
<Col id="detail_name">부장</Col>
</Row>
<Row>
<Col id="detail_code">PT006</Col>
<Col id="detail_name">차장</Col>
</Row>
<Row>
<Col id="detail_code">PT007</Col>
<Col id="detail_name">과장</Col>
</Row>
<Row>
<Col id="detail_code">PT008</Col>
<Col id="detail_name">대리</Col>
</Row>
<Row>
<Col id="detail_name">주임</Col>
<Col id="detail_code">PT009</Col>
</Row>
<Row>
<Col id="detail_name">사원</Col>
<Col id="detail_code">PT010</Col>
</Row>
<Row>
<Col id="detail_name">인턴</Col>
<Col id="detail_code">PT011</Col>
</Row>
<Row>
<Col id="detail_name">기타</Col>
<Col id="detail_code">PT012</Col>
</Row>
</Rows>
</Dataset>
<VirtualFile id="VirtualFile" onsuccess="VirtualFile_onsuccess"/>
</Objects>
<Script type="xscript5.0"><![CDATA[this.fileName="";
this.filePath="";
this.vFile="";
// 콜백 함수
this.callback = function(trid, errorCode, errorMsg){
if(trid=="saveEmpImg"){
if(errorCode==0){
alert("사진저장완료.");
}
}else if(trid=="batchEmpList"){
if(errorCode<0){
alert("수정 실패"+errorMsg);
}else{
//alert("수정 성공"+strErrorMsg);
//trace(dsMenu.saveXML());
}
}
}
// emp 폼이 로드 되면
this.emp_onload = function(obj:Form, e:nexacro.LoadEventInfo)
{
application.dsEmp.filter("");
var empImgName=application.dsEmp.getColumn(e.row,'emp_image');
trace(" ----------- "+empImgName);
if(empImgName!=null){
this.empImg.set_image("http://localhost/project6th/image/"+empImgName);
this.empImg.set_stretch("fit");
}else{
this.empImg.set_image("http://localhost/project6th/image/noimage.gif");
}
}
// 사원 조회 버튼
function empSearchBtn_onclick(obj:Button, e:ClickEventInfo)
{
var name=empName.text;
if(name==""){
dsEmp.filter("");
}else{
dsEmp.filter("String(emp_name).indexOf('"+name+"')>=0");
}
}
// 사원 추가 버튼
this.addBtn_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
application.dsEmp.addRow();
}
// 사원 삭제 버튼
this.delBtn_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
if(confirm("선택한 사원정보를 삭제하시겠습니까?")){
application.dsEmp.deleteRow(application.dsEmp.rowposition);
}
}
// 파일브라우져 열기
this.seachImg_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
this.FileDialog.open("FileOpen",FileDialog.LOAD);
//imgDialog=this.FileDialog.open("FileOpen",FileDialog.Load);
//imgName = this.imgDialog.filename;
//imgPath = this.imgDialog.path;
//img = imgPath+imgName;
//this.empImg.image=img;
//this.empImg.stretch="fit";
}
// 파일브라우저가 닫힐 때 이미지 셋팅
this.FileDialog_onclose = function(obj:FileDialog, e:nexacro.FileDialogEventInfo)
{
this.vFile=e.virtualfiles[0];
this.fileName=this.vFile.filename;
var realpath=system.convertRealPath(this.vFile.fullpath);
this.empImg.set_image("file://"+realpath);
this.empImg.set_stretch("fit");
this.VirtualFile.open(this.vFile.fullpath,VirtualFile.openBinary);
this.VirtualFile.read(this.vFile.getFileSize());
}
this.VirtualFile_onsuccess = function(obj:VirtualFile, e:nexacro.VirtualFileEventInfo)
{
this.dsImg.addRow();
this.dsImg.setColumn(0,"emp_filename",this.fileName);
this.dsImg.setColumn(0,"img_file_data",e.binarydata);
}
// 이미지 저장 버튼
this.saveImg_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
//imgDialog.open(VirtualFile.openRead | VirtualFile.openBinary);
//var img_binary=imgDialog.read(imgDialog.getFileSize());
this.transaction("saveEmpImg","DataUrl::emp/saveEmpImg.do","dsImg=dsImg:u","","","callback");
//this.transaction("saveEmpImg","javaSvc::/empInfo/saveEmpImg.do","ds_image=ds_image:u","","","callback");
//application.ds_emp_list.setColumn(e.row,"EMP_IMG",this.fileName);
}
// 사원 그리드 클릭 시
this.empListGrid_oncellclick = function(obj:Grid, e:nexacro.GridClickEventInfo)
{
var empImgName=application.dsEmp.getColumn(e.row,'emp_image');
trace(" ----------- "+empImgName);
if(empImgName!=null){
this.empImg.set_image("http://localhost/project5th/image/"+empImgName);
this.empImg.stretch="fit";
}else{
this.empImg.set_image("http://localhost/project5th/image/noimage.gif");
}
}
// 주소 검색 버튼
function addrBtn_onclick(obj:Button, e:ClickEventInfo)
{
dialog("modal", "Base::postInfo.xfdl", MainFrame, {a:'aaa', b:'bbb'}, "showtitlebar=true showstatusbar=false", 800, 150, 800, 600,this);
}
// 주소 받아오는 함수
function setPostInfo(zipCode, sidoValue, dong, detailAddr)
{
this.empAddress.value=zipCode+" "+sidoValue+dong+detailAddr;
}
// 사원 정보 등록&수정
this.saveBtn_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
var empFileName=this.dsImg.getColumn(e.row,'emp_filename')
application.dsEmp.setColumn(e.row,'emp_image',empFileName);
if(confirm("변경사항을 저장하시겠습니까?")){
this.transaction("batchEmpList","DataUrl::emp/batchEmpList.do","dsEmp=dsEmp:U","dsEmp=dsEmp","","callback");
}
}
]]></Script>
</Form>
</FDL>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<FDL version="1.5">
<TypeDefinition url="..\default_typedef.xml"/>
<Form id="mainForm" classname="mainForm" left="0" top="0" width="1024" height="768" titletext="New Form">
<Layouts>
<Layout/>
</Layouts>
</Form>
</FDL>

163
nexacro/Menu/menuBar.xfdl Normal file
View File

@@ -0,0 +1,163 @@
<?xml version="1.0" encoding="utf-8"?>
<FDL version="1.5">
<TypeDefinition url="..\default_typedef.xml"/>
<Form id="menuBar" classname="menuBar" left="0" top="0" width="1024" height="768" titletext="New Form">
<Layouts>
<Layout>
<Static id="Static00" taborder="0" left="0%" top="0" right="-0.1%" height="50" style="background:#ededed00 URL('theme://banner.gif') stretch;"/>
<Button id="logoutBtn" taborder="1" text="로그아웃" left="94.24%" top="50" right="-0.1%" height="25" style="font:bold 10 Verdana;" onclick="logoutBtn_onclick"/>
<Menu id="Menu00" taborder="2" left="0%" top="50" right="5.76%" height="25" innerdataset="@menu" levelcolumn="LEVEL" idcolumn="MENU_CODE" captioncolumn="MENU_NAME" style="popupbackground:#f2f2efff;popupitembackground:#f2f2efff;gradation:linear 0,0 #eec293ff 0,100 #eec293ff;" onmenuclick="Menu00_onmenuclick"/>
</Layout>
</Layouts>
<Objects>
<Dataset id="menu">
<ColumnInfo>
<Column id="LEVEL" type="STRING" size="256"/>
<Column id="MENU_CODE" type="STRING" size="256"/>
<Column id="MENU_NAME" type="STRING" size="256"/>
<Column id="MENU_URL" type="STRING" size="256"/>
<Column id="MENU_USE" type="STRING" size="256"/>
<Column id="PARENT_MENU_CODE" type="STRING" size="256"/>
</ColumnInfo>
<Rows>
<Row>
<Col id="LEVEL">0</Col>
<Col id="MENU_CODE">ME01</Col>
<Col id="MENU_NAME">전표관리</Col>
<Col id="MENU_USE">Y</Col>
<Col id="MENU_URL">[Undefined]</Col>
</Row>
<Row>
<Col id="LEVEL">1</Col>
<Col id="MENU_CODE">ME0101</Col>
<Col id="MENU_NAME">전표입력</Col>
<Col id="MENU_URL">Accounting::slipInput.xfdl</Col>
<Col id="MENU_USE">Y</Col>
<Col id="PARENT_MENU_CODE">ME01</Col>
</Row>
<Row>
<Col id="MENU_CODE">ME0102</Col>
<Col id="MENU_NAME">전표승인해제</Col>
<Col id="MENU_URL">Accounting::slipApprove.xfdl</Col>
<Col id="MENU_USE">Y</Col>
<Col id="PARENT_MENU_CODE">ME01</Col>
<Col id="LEVEL">1</Col>
</Row>
<Row>
<Col id="MENU_CODE">ME0103</Col>
<Col id="MENU_NAME">분개장</Col>
<Col id="MENU_URL">Accounting::journalList.xfdl</Col>
<Col id="MENU_USE">Y</Col>
<Col id="PARENT_MENU_CODE">ME01</Col>
<Col id="LEVEL">1</Col>
</Row>
<Row>
<Col id="LEVEL">0</Col>
<Col id="MENU_CODE">ME02</Col>
<Col id="MENU_NAME">결산/재무재표</Col>
<Col id="MENU_URL">[Undefined]</Col>
<Col id="MENU_USE">Y</Col>
<Col id="PARENT_MENU_CODE">[Undefined]</Col>
</Row>
<Row>
<Col id="LEVEL">1</Col>
<Col id="MENU_CODE">ME0201</Col>
<Col id="MENU_NAME">합계시산표</Col>
<Col id="MENU_URL">Settlement::totalTrialBalance.xfdl</Col>
<Col id="MENU_USE">Y</Col>
<Col id="PARENT_MENU_CODE">ME02</Col>
</Row>
<Row>
<Col id="LEVEL">1</Col>
<Col id="MENU_CODE">ME0202</Col>
<Col id="MENU_NAME">손익계산서</Col>
<Col id="MENU_URL">Settlement::incomeStatement.xfdl</Col>
<Col id="MENU_USE">Y</Col>
<Col id="PARENT_MENU_CODE">ME02</Col>
</Row>
<Row>
<Col id="LEVEL">1</Col>
<Col id="MENU_CODE">ME0203</Col>
<Col id="MENU_NAME">재무상태표</Col>
<Col id="MENU_USE">Y</Col>
<Col id="PARENT_MENU_CODE">ME02</Col>
<Col id="MENU_URL">Settlement::statementOfPosition.xfdl</Col>
</Row>
<Row>
<Col id="MENU_CODE">ME03</Col>
<Col id="LEVEL">0</Col>
<Col id="MENU_USE">Y</Col>
<Col id="MENU_NAME">인사관리</Col>
<Col id="MENU_URL">[Undefined]</Col>
</Row>
<Row>
<Col id="LEVEL">1</Col>
<Col id="MENU_USE">Y</Col>
<Col id="PARENT_MENU_CODE">ME03</Col>
<Col id="MENU_CODE">ME0301</Col>
<Col id="MENU_NAME">사원관리</Col>
<Col id="MENU_URL">Insa::emp.xfdl</Col>
</Row>
<Row>
<Col id="LEVEL">0</Col>
<Col id="MENU_CODE">ME04</Col>
<Col id="MENU_NAME">기초정보관리</Col>
<Col id="MENU_USE">Y</Col>
<Col id="MENU_URL">[Undefined]</Col>
</Row>
<Row>
<Col id="MENU_NAME">계정과목관리</Col>
<Col id="MENU_USE">Y</Col>
<Col id="PARENT_MENU_CODE">ME04</Col>
<Col id="LEVEL">1</Col>
<Col id="MENU_CODE">ME0401</Col>
<Col id="MENU_URL">Accounting::accountManagement.xfdl</Col>
</Row>
<Row>
<Col id="MENU_NAME">코드관리</Col>
<Col id="MENU_USE">Y</Col>
<Col id="PARENT_MENU_CODE">ME04</Col>
<Col id="LEVEL">1</Col>
<Col id="MENU_CODE">ME0402</Col>
<Col id="MENU_URL">Base::code.xfdl</Col>
</Row>
<Row>
<Col id="MENU_NAME">권한관리</Col>
<Col id="MENU_USE">Y</Col>
<Col id="PARENT_MENU_CODE">ME04</Col>
<Col id="LEVEL">1</Col>
<Col id="MENU_CODE">ME0403</Col>
<Col id="MENU_URL">Base::permissionCode.xfdl</Col>
</Row>
</Rows>
</Dataset>
</Objects>
<Script type="xscript5.0"><![CDATA[
// 로그아웃 버튼
this.logoutBtn_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
application.exit();
}
this.Menu00_onmenuclick = function(obj:Menu, e:nexacro.MenuClickEventInfo)
{
var sID=e.id;
//비교하고자 하는 컬럼, 두번째 인자를 비교한다, 내부적으로 위치가 나오면 떠내고 싶은 인자를 스트링 포맷으로 세번째에 쓴다.
var sURL=this.menu.lookup("MENU_CODE", e.id, "MENU_URL");
var sTitle=this.menu.lookup("MENU_CODE", e.id, "MENU_NAME");
var sLevel=this.menu.lookup("MENU_CODE", e.id, "LEVEL");
trace(sID);
if(sID.length!=0){
//alert(application.permission.getColumn(0,"menu_name"));
if(!(application.permission.findRow("menu_code", sID)==-1)){
application.gfn_open(sID, sURL, sTitle);
}else{
//alert("접근할 수 없는 화면입니다.");
return;
}
}
}
]]></Script>
</Form>
</FDL>

View File

@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="utf-8"?>
<FDL version="1.5">
<TypeDefinition url="..\default_typedef.xml"/>
<Form id="treeView" classname="treeView" left="0" top="0" width="200" height="768" titletext="New Form" onload="treeView_onload">
<Layouts>
<Layout>
<Static id="Static00" taborder="0" text="부서명" left="0%" top="0" right="65%" height="30" style="background:#f7e4cfff;align:center middle;font:Verdana,10,bold;"/>
<Static id="Static01" taborder="1" text="사 번" left="0%" top="30" right="65%" height="30" style="background:#f7e4cfff;align:center middle;font:Verdana,10,bold;"/>
<Static id="Static02" taborder="2" text="사원명" left="0%" top="60" right="65%" height="30" style="background:#f7e4cfff;align:center middle;font:Verdana,10,bold;"/>
<Static id="deptName" taborder="3" left="35%" top="0" right="2.5%" height="30" style="background:#f7e4cfff;align:center middle;font:10 Verdana;"/>
<Static id="empNo" taborder="4" left="35%" top="30" right="2.5%" height="30" style="background:#f7e4cfff;align:center middle;font:10 Verdana;"/>
<Static id="empName" taborder="5" left="35%" top="60" right="2.5%" height="30" style="background:#f7e4cfff;align:center middle;font:10 Verdana;"/>
<Grid id="treeViewGrid" taborder="6" binddataset="dsMenu" useinputpanel="false" autofittype="col" treeusecheckbox="false" treeinitstatus="expand,all" left="0%" top="90" right="2.5%" height="360" style="linetype:onlyvert;border:1px solid #808080ff ;font:Verdana,9,antialias;" oncelldblclick="treeViewGrid_oncelldblclick">
<Formats>
<Format id="default">
<Columns>
<Column size="100"/>
</Columns>
<Rows>
<Row size="24"/>
</Rows>
<Band id="body">
<Cell displaytype="tree" edittype="tree" style="background:transparent;background2:transparent;font:bold 10 Verdana;" text="bind:menu_name" treelevel="bind:level"/>
</Band>
</Format>
</Formats>
</Grid>
</Layout>
</Layouts>
<Script type="xscript5.0"><![CDATA[
this.treeView_onload = function(obj:Form, e:nexacro.LoadEventInfo)
{
this.deptName.set_text(gvDeptName);
this.empNo.set_text(gvEmpNo);
this.empName.set_text(gvEmpName);
}
this.treeViewGrid_oncelldblclick = function(obj:Grid, e:nexacro.GridClickEventInfo)
{
var check = false;
var sID=application.dsMenu.getColumn(e.row,"menu_code");
var sURL=application.dsMenu.getColumn(e.row,"menu_url");
var sTitle=application.dsMenu.getColumn(e.row,"menu_name");
var sLevel=application.dsMenu.getColumn(e.row,"level");
var result = application.permission.findRow("menu_code", sID);
//alert(result);
trace(sID+","+result);
// Dataset에서 지정한 Column ID의 Column 값과 입력된 Value의 값이 일치하는 첫번째 레코드 Index를 얻어온다.
if(!(result==-1)){
check = true;
}
if(sLevel=='1'){
return;
}
if(check == false){
alert("접근할 수 없는 화면입니다.");
return;
}
//화면이 갖고 있는 메서드
application.gfn_open(sID, sURL, sTitle);
}
]]></Script>
</Form>
</FDL>

View File

@@ -0,0 +1,222 @@
<?xml version="1.0" encoding="utf-8"?>
<FDL version="1.5">
<TypeDefinition url="..\default_typedef.xml"/>
<Form id="incomeStatement" classname="incomeStatement" left="0" top="0" width="800" height="460" titletext="New Form" onload="incomeStatement_onload">
<Layouts>
<Layout>
<Calendar id="sDate" taborder="0" readonly="true" dateformat="yyyy-MM-dd" left="30.86%" top="38" right="49.83%" height="26" style="align:center;font:bold 10 Verdana;"/>
<Static id="Static04" taborder="1" text="~" left="50.52%" top="38" right="47.07%" height="26" style="align:center middle;font:bold antialias 10 Verdana;"/>
<Calendar id="eDate" taborder="2" expr="expr:Date();" readonly="true" dateformat="yyyy-MM-dd" left="52.93%" top="38" right="27.76%" height="26" style="align:center;font:bold 10 Verdana;"/>
<Combo id="selYear" taborder="3" value="2016" text="2016" innerdataset="selectYear" datacolumn="preYear" index="0" left="17.93%" top="38" right="69.66%" height="26" style="font:bold 10 Verdana;" onitemchanged="selYear_onitemchanged"/>
<Static id="Static00" taborder="4" text="손익계산서" left="1.21%" top="8" right="0.69%" height="25" style="background:#edaf78ff;align:center middle;font:bold antialias 14 Verdana;"/>
<Button id="search" taborder="5" text="조회" left="72.93%" top="38" right="20.17%" height="24" style="color:gray;font:bold antialias 10 Verdana;" onclick="search_onclick"/>
<Button id="excelBtn" taborder="6" text="엑셀출력" onclick="excelBtn_onclick" left="89.48%" top="38" right="0.86%" height="24" style="color:gray;font:bold antialias 10 Verdana;"/>
<Button id="saveBtn" taborder="7" text="저장" onclick="saveBtn_onclick" left="81.21%" top="38" right="11.9%" height="24" style="color:gray;font:bold antialias 10 Verdana;"/>
<Grid id="incomeStatementGrid" taborder="8" binddataset="dsIncomeStatement" readonly="true" useinputpanel="false" autofittype="col" left="1.21%" top="72" right="0.69%" height="381" style="font:Verdana,10,bold antialias;">
<Formats>
<Format id="default">
<Columns>
<Column size="170"/>
<Column size="90"/>
<Column size="90"/>
<Column size="90"/>
<Column size="90"/>
</Columns>
<Rows>
<Row size="24" band="head"/>
<Row size="24" band="head"/>
<Row size="24"/>
<Row size="24" band="summ"/>
</Rows>
<Band id="head">
<Cell rowspan="2" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="과목"/>
<Cell col="1" colspan="2" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="당기"/>
<Cell col="3" colspan="2" style="background:#f7e4cfff;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="전기"/>
<Cell row="1" col="1" colspan="2" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="금액"/>
<Cell row="1" col="3" colspan="2" style="background:#f7e4cfff;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="금액"/>
</Band>
<Band id="body">
<Cell displaytype="normal" edittype="none" editfilter="none" style="align:center middle;background:EXPR(parent_account == 40 || parent_account == 50 ? '#EEC699' : '#FAEDDE');background2:EXPR(parent_account == 40 || parent_account == 50 ? '#EEC699' : 'transparent');font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:account_name" combodisplaynulltype="none" combodisplay="edit"/>
<Cell col="1" style="align:center middle;background:EXPR(parent_account == 40 || parent_account == 50 ? '#EEC699' : '#FAEDDE');background2:EXPR(parent_account == 40 || parent_account == 50 ? '#EEC699' : 'transparent');font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:amt"/>
<Cell col="2" displaytype="normal" style="align:center middle;background:EXPR(parent_account == 40 || parent_account == 50 ? '#EEC699' : '#FAEDDE');background2:EXPR(parent_account == 40 || parent_account == 50 ? '#EEC699' : 'transparent');font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:total_amt" combodisplay="edit"/>
<Cell col="3" displaytype="combo" edittype="combo" style="align:center middle;background:EXPR(parent_account == 40 || parent_account == 50 ? '#EEC699' : '#FAEDDE');background2:EXPR(parent_account == 40 || parent_account == 50 ? '#EEC699' : 'transparent');font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:account_code" combodataset="dsFormerIncome" combocodecol="account_code" combodatacol="amt" combodisplaynulltype="none"/>
<Cell col="4" displaytype="combo" edittype="combo" style="align:center middle;background:EXPR(parent_account == 40 || parent_account == 50 ? '#EEC699' : '#FAEDDE');background2:EXPR(parent_account == 40 || parent_account == 50 ? '#EEC699' : 'transparent');color: ;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:account_code" combodataset="dsFormerIncome" combocodecol="account_code" combodatacol="total_amt"/>
</Band>
<Band id="summary">
<Cell style="align:center middle;background:#f7e4cfff;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="순이익"/>
<Cell col="1" style="align:center middle;background:#f7e4cfff;font:bold 10 Verdana;selectfont:bold 10 Verdana;"/>
<Cell col="2" displaytype="number" style="align:center middle;background:#f7e4cfff;font:bold 10 Verdana;selectfont:bold 10 Verdana;"/>
<Cell col="3" style="align:center middle;background:#f7e4cfff;font:bold 10 Verdana;selectfont:bold 10 Verdana;"/>
<Cell col="4" displaytype="number" style="align:center middle;background:#f7e4cfff;font:bold 10 Verdana;selectfont:bold 10 Verdana;"/>
</Band>
</Format>
</Formats>
</Grid>
</Layout>
</Layouts>
<Objects>
<Dataset id="dsTotalIncome" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
<ColumnInfo>
<Column id="income_year" type="STRING" size="256"/>
<Column id="net_profit" type="STRING" size="256"/>
</ColumnInfo>
</Dataset>
<Dataset id="selectYear" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
<ColumnInfo>
<Column id="preYear" type="STRING" size="256"/>
</ColumnInfo>
<Rows>
<Row>
<Col id="preYear">2016</Col>
</Row>
<Row>
<Col id="preYear">2015</Col>
</Row>
<Row>
<Col id="preYear">2014</Col>
</Row>
<Row>
<Col id="preYear">2013</Col>
</Row>
<Row>
<Col id="preYear">2012</Col>
</Row>
<Row>
<Col id="preYear">2011</Col>
</Row>
<Row>
<Col id="preYear">2010</Col>
</Row>
</Rows>
</Dataset>
<Dataset id="dsIncomeStatement" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
<ColumnInfo>
<Column id="account_code" type="STRING" size="256"/>
<Column id="parent_account" type="STRING" size="256"/>
<Column id="account_name" type="STRING" size="256"/>
<Column id="amt" type="STRING" size="256"/>
<Column id="total_amt" type="STRING" size="256"/>
<Column id="income_year" type="STRING" size="256"/>
</ColumnInfo>
</Dataset>
<Dataset id="dsFormerIncome" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
<ColumnInfo>
<Column id="account_code" type="STRING" size="256"/>
<Column id="parent_account" type="STRING" size="256"/>
<Column id="account_name" type="STRING" size="256"/>
<Column id="amt" type="STRING" size="256"/>
<Column id="total_amt" type="STRING" size="256"/>
<Column id="income_year" type="STRING" size="256"/>
</ColumnInfo>
</Dataset>
</Objects>
<Script type="xscript5.0"><![CDATA[var strDate, year, total;
// 콜백 함수
this.callback = function(trid, errorCode, errorMsg){
if(trid=="getIncomeStatementList"){
if(this.dsIncomeStatement.getRowCount()==0 || this.dsFormerIncome.getRowCount()==0){
alert("조회된 데이터가 없습니다.");
}else{
this.incomeStatementGrid.redraw();
this.sum();
}
}else if(trid=="batchIncomeStatementList"){
if(errorCode != 0){
alert("해당 연도는 저장할 수 없습니다. 관리자에게 문의하세요 !!");
}else{
alert("저장 성공");
}
}
}
// 손익계산서 폼이 로드되면
this.incomeStatement_onload = function(obj:Form, e:nexacro.LoadEventInfo)
{
var objDate = new Date();
var pToday = objDate.getFullYear() + "";
var pMonth = objDate.getMonth()+1;
var pDate = objDate.getDate();
this.strDate = pToday+pMonth+pDate;
this.curYear = pToday;
this.sDate.set_value(pToday+'0101');
this.eDate.set_value(this.strDate);
}
// 연도 콤보가 바뀌면
this.selYear_onitemchanged = function(obj:Combo, e:nexacro.ItemChangeEventInfo)
{
this.year = this.selYear.value ;
if(this.year == this.curYear){
//var objDate = new Date();
//var pToday = objDate.getFullYear() + "";
//var pMonth = objDate.getMonth()+1;
//var pDate = objDate.getDate();
//var strDate = pToday+pMonth+pDate;
this.sDate.set_value(this.curYear+'0101');
this.eDate.set_value(this.strDate);
}else{
//alert("change");
this.sDate.set_value(parseInt(this.year)+'0101') ;
this.eDate.set_value(parseInt(this.year)+'1231') ;
}
}
// 조회 버튼
this.search_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
this.transaction("getIncomeStatementList","DataUrl::slip/getIncomeStatementList.do","","dsIncomeStatement=dsIncomeStatement dsFormerIncome=dsFormerIncome",
"sDate='"+this.sDate.value+"' eDate='"+this.eDate.value+"'","callback");
}
// 저장 버튼
this.saveBtn_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
this.dsTotalIncome.addRow();
this.dsTotalIncome.setColumn(this.dsTotalIncome.rowposition, "income_year", this.year);
this.dsTotalIncome.setColumn(this.dsTotalIncome.rowposition, "net_profit", this.total);
if(confirm("손익계산서를 저장하시겠습니까?")){
this.transaction("batchIncomeStatementList","DataUrl::slip/batchIncomeStatementList.do","dsTotalIncome=dsTotalIncome:A dsIncomeStatement=dsIncomeStatement:A",
"","","callback");
}
}
this.sum = function(){
var profitCheck=this.dsIncomeStatement.findRow("account_code","402");
//var costCheck=this.dsIncomeStatement.findRow("account_code","503");
//var profit=this.dsIncomeStatement.getSum("parseInt(total_amt)", 0, profitCheck);
var profit=this.dsIncomeStatement.getSum("parseInt(isFinite(total_amt)==false ? 0 :total_amt )", 0, profitCheck);
var cost=this.dsIncomeStatement.getSum("parseInt(isFinite(total_amt)==false ? 0 :total_amt )", profitCheck+1);
this.total=profit-cost;
this.incomeStatementGrid.setCellProperty("Summ",2,"text",this.total);
//var former_profit=this.dsFormerIncome.getSum("parseInt(total_amt)", 0, profitCheck);
var former_profit=this.dsFormerIncome.getSum("parseInt(isFinite(total_amt)==false ? 0 :total_amt )", 0, profitCheck);
var former_cost=this.dsFormerIncome.getSum("parseInt(isFinite(total_amt)==false ? 0 :total_amt )", profitCheck+1);
var former_total=former_profit-former_cost;
this.incomeStatementGrid.setCellProperty("Summ",4,"text",former_total);
}
// 엑셀 출력 버튼
this.excelBtn_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
if(confirm("손익계산서를 엑셀로 출력하시겠습니까?")){
objExport.exporttype = ExportTypes.EXCEL;
objExport.activepagename = "IncomeStatement";
objExport.addExportItem( ExportItemTypes.GRID, incomeStatementGrid, "A0" );
objExport.export();
}
}
]]></Script>
</Form>
</FDL>

View File

@@ -0,0 +1,241 @@
<?xml version="1.0" encoding="utf-8"?>
<FDL version="1.5">
<TypeDefinition url="..\default_typedef.xml"/>
<Form id="statementOfPosition" classname="statementOfPosition" left="0" top="0" width="800" height="460" titletext="New Form" onload="statementOfPosition_onload">
<Layouts>
<Layout>
<Calendar id="sDate" taborder="0" readonly="true" dateformat="yyyy-MM-dd" left="30.86%" top="38" right="49.83%" height="26" style="align:center;font:bold 10 Verdana;"/>
<Static id="Static04" taborder="1" text="~" left="50.52%" top="38" right="47.07%" height="26" style="align:center middle;font:bold antialias 10 Verdana;"/>
<Calendar id="eDate" taborder="2" expr="expr:Date();" readonly="true" dateformat="yyyy-MM-dd" left="52.93%" top="38" right="27.76%" height="26" style="align:center;font:bold 10 Verdana;"/>
<Combo id="selYear" taborder="3" value="2016" text="2016" innerdataset="selectYear" datacolumn="preYear" index="0" onitemchanged="selYear_onitemchanged" left="17.93%" top="38" right="69.66%" height="26" style="font:bold 10 Verdana;"/>
<Static id="Static00" taborder="4" text="재무상태표" left="1.21%" top="8" right="0.69%" height="25" style="background:#edaf78ff;align:center middle;font:bold antialias 14 Verdana;"/>
<Button id="search" taborder="5" text="조회" onclick="search_onclick" left="72.93%" top="38" right="20.17%" height="24" style="color:gray;font:bold antialias 10 Verdana;"/>
<Button id="excelBtn" taborder="6" text="엑셀출력" onclick="excelBtn_onclick" left="89.48%" top="38" right="0.86%" height="24" style="color:gray;font:bold antialias 10 Verdana;"/>
<Button id="saveBtn" taborder="7" text="저장" onclick="saveBtn_onclick" left="81.21%" top="38" right="11.9%" height="24" style="color:gray;font:bold antialias 10 Verdana;"/>
<Grid id="statementOfPositionGrid" taborder="8" binddataset="dsStatementPosition" useinputpanel="false" autofittype="col" left="1.21%" top="72" right="0.69%" height="381" style="font:Verdana,10,bold antialias;">
<Formats>
<Format id="default">
<Columns>
<Column size="170"/>
<Column size="90"/>
<Column size="90"/>
<Column size="90"/>
<Column size="90"/>
</Columns>
<Rows>
<Row size="24" band="head"/>
<Row size="24" band="head"/>
<Row size="24"/>
<Row size="24" band="summ"/>
<Row size="24" band="summ"/>
</Rows>
<Band id="head">
<Cell rowspan="2" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="과목"/>
<Cell col="1" colspan="2" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="당기"/>
<Cell col="3" colspan="2" style="background:#f7e4cfff;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="전기"/>
<Cell row="1" col="1" colspan="2" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="금액"/>
<Cell row="1" col="3" colspan="2" style="background:#f7e4cfff;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="금액"/>
</Band>
<Band id="body">
<Cell displaytype="normal" edittype="none" editfilter="none" style="align:center middle;background:EXPR(parent_account == 10 || parent_account == 20 || parent_account == 30 ? '#EEC699' : '#FAEDDE');background2:EXPR(parent_account == 10 || parent_account == 20 || parent_account == 30 ? '#EEC699' : 'transparent');font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:account_name" combodisplaynulltype="none" combodisplay="edit"/>
<Cell col="1" style="align:center middle;background:EXPR(parent_account == 10 || parent_account == 20 || parent_account == 30 ? '#EEC699' : '#FAEDDE');background2:EXPR(parent_account == 10 || parent_account == 20 || parent_account == 30 ? '#EEC699' : 'transparent');font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:amt"/>
<Cell col="2" displaytype="normal" style="align:center middle;background:EXPR(parent_account == 10 || parent_account == 20 || parent_account == 30 ? '#EEC699' : '#FAEDDE');background2:EXPR(parent_account == 10 || parent_account == 20 || parent_account == 30 ? '#EEC699' : 'transparent');font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:total_amt" combodisplay="edit"/>
<Cell col="3" displaytype="combo" edittype="combo" style="align:center middle;background:EXPR(parent_account == 10 || parent_account == 20 || parent_account == 30 ? '#EEC699' : '#FAEDDE');background2:EXPR(parent_account == 10 || parent_account == 20 || parent_account == 30 ? '#EEC699' : 'transparent');font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:account_code" combodataset="dsFormerStatementPosition" combocodecol="account_code" combodatacol="amt" combodisplaynulltype="none"/>
<Cell col="4" displaytype="combo" edittype="combo" style="align:center middle;background:EXPR(parent_account == 10 || parent_account == 20 || parent_account == 30 ? '#EEC699' : '#FAEDDE');background2:EXPR(parent_account == 10 || parent_account == 20 || parent_account == 30 ? '#EEC699' : 'transparent');font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="bind:account_code" combodataset="dsFormerStatementPosition" combocodecol="account_code" combodatacol="total_amt"/>
</Band>
<Band id="summary">
<Cell style="align:center middle;background:#f7e4cfff;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="자산총계"/>
<Cell col="1" style="align:center middle;background:#f7e4cfff;font:bold 10 Verdana;selectfont:bold 10 Verdana;"/>
<Cell col="2" displaytype="number" style="align:center middle;background:#f7e4cfff;font:bold 10 Verdana;selectfont:bold 10 Verdana;"/>
<Cell col="3" style="align:center middle;background:#f7e4cfff;font:bold 10 Verdana;selectfont:bold 10 Verdana;"/>
<Cell col="4" displaytype="number" style="align:center middle;background:#f7e4cfff;font:bold 10 Verdana;selectfont:bold 10 Verdana;"/>
<Cell row="1" style="align:center middle;background:#f7e4cfff;font:bold 10 Verdana;selectfont:bold 10 Verdana;" text="자본과 부채총계"/>
<Cell row="1" col="1" style="align:center middle;background:#f7e4cfff;font:bold 10 Verdana;selectfont:bold 10 Verdana;"/>
<Cell row="1" col="2" displaytype="number" style="align:center middle;background:#f7e4cfff;font:bold 10 Verdana;selectfont:bold 10 Verdana;"/>
<Cell row="1" col="3" style="align:center middle;background:#f7e4cfff;font:bold 10 Verdana;selectfont:bold 10 Verdana;"/>
<Cell row="1" col="4" displaytype="number" style="align:center middle;background:#f7e4cfff;font:bold 10 Verdana;selectfont:bold 10 Verdana;"/>
</Band>
</Format>
</Formats>
</Grid>
</Layout>
</Layouts>
<Objects>
<Dataset id="dsTotalStatement" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
<ColumnInfo>
<Column id="statement_year" type="STRING" size="256"/>
<Column id="asset_total" type="STRING" size="256"/>
<Column id="capital_total" type="STRING" size="256"/>
<Column id="debt_total" type="STRING" size="256"/>
</ColumnInfo>
</Dataset>
<Dataset id="selectYear" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
<ColumnInfo>
<Column id="preYear" type="STRING" size="256"/>
</ColumnInfo>
<Rows>
<Row>
<Col id="preYear">2016</Col>
</Row>
<Row>
<Col id="preYear">2015</Col>
</Row>
<Row>
<Col id="preYear">2014</Col>
</Row>
<Row>
<Col id="preYear">2013</Col>
</Row>
<Row>
<Col id="preYear">2012</Col>
</Row>
<Row>
<Col id="preYear">2011</Col>
</Row>
<Row>
<Col id="preYear">2010</Col>
</Row>
</Rows>
</Dataset>
<Dataset id="dsStatementPosition" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
<ColumnInfo>
<Column id="account_code" type="STRING" size="256"/>
<Column id="parent_account" type="STRING" size="256"/>
<Column id="account_name" type="STRING" size="256"/>
<Column id="amt" type="STRING" size="256"/>
<Column id="total_amt" type="STRING" size="256"/>
<Column id="statement_year" type="STRING" size="256"/>
</ColumnInfo>
</Dataset>
<Dataset id="dsFormerStatementPosition" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
<ColumnInfo>
<Column id="account_code" type="STRING" size="256"/>
<Column id="parent_account" type="STRING" size="256"/>
<Column id="account_name" type="STRING" size="256"/>
<Column id="amt" type="STRING" size="256"/>
<Column id="total_amt" type="STRING" size="256"/>
<Column id="statement_year" type="STRING" size="256"/>
</ColumnInfo>
</Dataset>
</Objects>
<Script type="xscript5.0"><![CDATA[var curYear, strDate, year;
// 콜백 함수
this.callback = function(trid, errorCode, errorMsg){
if(trid=="getStatementPositionList"){
if(this.dsStatementPosition.getRowCount()==0 || this.dsFormerStatementPosition.getRowCount()==0){
alert("조회된 데이터가 없습니다.");
}else{
this.statementOfPositionGrid.redraw();
this.sum();
}
}else if(trid=="batchStatementPositionList"){
if(errorCode != 0){
alert("해당 연도는 저장할 수 없습니다. 관리자에게 문의하세요 !!");
}else{
alert("저장 성공");
}
}
}
// 재무상태표 폼이 로드 되면
this.statementOfPosition_onload = function(obj:Form, e:nexacro.LoadEventInfo)
{
var objDate = new Date();
var pToday = objDate.getFullYear() + "";
var pMonth = objDate.getMonth()+1;
var pDate = objDate.getDate();
this.strDate = pToday+pMonth+pDate;
this.curYear = pToday;
this.sDate.set_value(pToday+'0101');
this.eDate.set_value(this.strDate);
}
// 연도 콤보가 바뀌면
this.selYear_onitemchanged = function(obj:Combo, e:nexacro.ItemChangeEventInfo)
{
this.year = this.selYear.value ;
if(this.year == this.curYear){
//var objDate = new Date();
//var pToday = objDate.getFullYear() + "";
//var pMonth = objDate.getMonth()+1;
//var pDate = objDate.getDate();
//var strDate = pToday+pMonth+pDate;
this.sDate.set_value(this.curYear+'0101');
this.eDate.set_value(this.strDate);
}else{
//alert("change");
this.sDate.set_value(parseInt(this.year)+'0101') ;
this.eDate.set_value(parseInt(this.year)+'1231') ;
}
}
// 조회 버튼
this.search_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
this.transaction("getStatementPositionList","DataUrl::slip/getStatementPositionList.do","","dsStatementPosition=dsStatementPosition dsFormerStatementPosition=dsFormerStatementPosition",
"sDate='"+this.sDate.value+"' eDate='"+this.eDate.value+"'","callback");
}
// 저장 버튼
this.saveBtn_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
this.dsTotalStatement.addRow();
this.dsTotalStatement.setColumn(this.dsTotalStatement.rowposition, "statement_year", this.year);
this.dsTotalStatement.setColumn(this.dsTotalStatement.rowposition, "asset_total", this.asset);
this.dsTotalStatement.setColumn(this.dsTotalStatement.rowposition, "capital_total", this.capital);
this.dsTotalStatement.setColumn(this.dsTotalStatement.rowposition, "debt_total", this.debt);
if(confirm("재무상태표를 저장하시겠습니까?")){
this.transaction("batchStatementPositionList","DataUrl::slip/batchStatementPositionList.do","dsStatementPosition=dsStatementPosition:A dsTotalStatement=dsTotalStatement:A",
"","","callback");
}
}
var asset, debt, capital, total;
this.sum = function(){
var assetCheck=this.dsStatementPosition.findRow("account_code","106");
var debtCheck=this.dsStatementPosition.findRow("account_code","202");
//alert(debtCheck);
//alert(this.dsStatementPosition.getColumn(50,"total_amt"));
//this.asset=this.dsStatementPosition.getSum("parseInt(total_amt)", 0, assetCheck);
this.asset=this.dsStatementPosition.getSum("parseInt(isFinite(total_amt)==false ? 0 :total_amt )", 0, assetCheck);
this.debt=this.dsStatementPosition.getSum("parseInt(isFinite(total_amt)==false ? 0 :total_amt )", assetCheck+1, debtCheck);
this.capital=this.dsStatementPosition.getSum("parseInt(isFinite(total_amt)==false ? 0 :total_amt )", debtCheck+1);
this.total=this.debt+this.capital;
this.statementOfPositionGrid.setCellProperty("Summ",2,"text",this.asset);
this.statementOfPositionGrid.setCellProperty("Summ",7,"text",this.total);
//var former_asset=this.dsFormerStatementPosition.getSum("parseInt(total_amt)", 0, assetCheck);
var former_asset=this.dsFormerStatementPosition.getSum("parseInt(isFinite(total_amt)==false ? 0 :total_amt )", 0, assetCheck);
var former_debt=this.dsFormerStatementPosition.getSum("parseInt(isNaN(total_amt)==true ? 0 :total_amt )", assetCheck+1, debtCheck);
var former_capital=this.dsFormerStatementPosition.getSum("parseInt(isNaN(total_amt)==true ? 0 :total_amt )", debtCheck+1);
var former_total=former_debt+former_capital;
//alert(former_asset);
//alert(former_total);
this.statementOfPositionGrid.setCellProperty("Summ",4,"text",former_asset);
this.statementOfPositionGrid.setCellProperty("Summ",9,"text",former_total);
}
// 엑셀 출력 버튼
function excelBtn_onclick(obj:Button, e:ClickEventInfo)
{
if(confirm("재무상태표를 엑셀로 출력하시겠습니까?")){
objExport.exporttype = ExportTypes.EXCEL;
objExport.activepagename = "StatementOfPosition";
objExport.addExportItem( ExportItemTypes.GRID, statementOfPositionGrid, "A0" );
objExport.export();
}
}
]]></Script>
</Form>
</FDL>

View File

@@ -0,0 +1,186 @@
<?xml version="1.0" encoding="utf-8"?>
<FDL version="1.5">
<TypeDefinition url="..\default_typedef.xml"/>
<Form id="totalTrialBalance" classname="totalTrialBalance" left="0" top="0" width="800" height="460" titletext="New Form" onload="totalTrialBalance_onload">
<Layouts>
<Layout>
<Calendar id="sDate" taborder="0" dateformat="yyyy-MM-dd" left="40.52%" top="38" right="40.17%" height="26" style="font:bold 10 Verdana;"/>
<Static id="Static04" taborder="1" text="~" left="60.17%" top="38" right="37.41%" height="26" style="align:center middle;font:bold antialias 10 Verdana;"/>
<Calendar id="eDate" taborder="2" dateformat="yyyy-MM-dd" left="62.59%" top="38" right="18.1%" height="26" style="font:bold 10 Verdana;"/>
<Combo id="selYear" taborder="3" value="2016" text="2016" innerdataset="selectYear" datacolumn="preYear" index="0" left="27.59%" top="38" right="60%" height="26" style="font:bold 10 Verdana;" onitemchanged="selYear_onitemchanged"/>
<Static id="Static00" taborder="4" text="합계 잔액 시산표" left="1.21%" top="8" right="0.69%" height="25" style="background:#edaf78ff;align:center middle;font:bold antialias 14 Verdana;"/>
<Button id="search" taborder="5" text="조회" left="82.59%" top="38" right="10.52%" height="24" style="color:gray;font:bold antialias 10 Verdana;" onclick="search_onclick"/>
<Button id="excelBtn" taborder="6" text="엑셀출력" left="89.48%" top="38" right="0.86%" height="24" style="color:gray;font:bold antialias 10 Verdana;" onclick="excelBtn_onclick"/>
<Grid id="totalTrialBalanceGrid" taborder="7" binddataset="dsTotalTrialBalance" useinputpanel="false" autofittype="col" left="1.21%" top="72" right="0.69%" height="381" style="font:Verdana,10,bold antialias;">
<Formats>
<Format id="default">
<Columns>
<Column size="70"/>
<Column size="70"/>
<Column size="60"/>
<Column size="120"/>
<Column size="70"/>
<Column size="70"/>
</Columns>
<Rows>
<Row size="24" band="head"/>
<Row size="24" band="head"/>
<Row size="24"/>
<Row size="24" band="summ"/>
</Rows>
<Band id="head">
<Cell colspan="2" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="차변"/>
<Cell col="2" rowspan="2" colspan="2" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="계정과목"/>
<Cell col="4" colspan="2" style="background:#f7e4cfff;font:bold 10 Verdana;" text="대변"/>
<Cell row="1" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="잔액"/>
<Cell row="1" col="1" displaytype="normal" style="background:#f7e4cfff;font:bold 10 Verdana;" text="합계"/>
<Cell row="1" col="4" style="background:#f7e4cfff;font:bold 10 Verdana;" text="합계"/>
<Cell row="1" col="5" style="background:#f7e4cfff;font:bold 10 Verdana;" text="잔액"/>
</Band>
<Band id="body">
<Cell displaytype="normal" edittype="none" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:9 Verdana;" text="expr:parseInt(dataset.getColumn(currow, &quot;amt&quot;))-parseInt(comp.parent.dsTotalCreditor.getColumn(currow, &quot;amt&quot;)) &gt; 0 ? parseInt(dataset.getColumn(currow, &quot;amt&quot;))-parseInt(comp.parent.dsTotalCreditor.getColumn(currow, &quot;amt&quot;)) : &quot;&quot;" combodisplay="edit"/>
<Cell col="1" displaytype="combo" edittype="combo" editfilter="none" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:9 Verdana;" text="bind:account_code" combodataset="dsTotalDebtor" combocodecol="account_code" combodatacol="amt" combodisplaynulltype="none" combodisplay="edit"/>
<Cell col="2" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;" text="bind:account_code"/>
<Cell col="3" displaytype="normal" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:9 Verdana;" text="bind:account_name" combodisplay="edit"/>
<Cell col="4" displaytype="combo" edittype="combo" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:9 Verdana;" text="bind:account_code" combodataset="dsTotalCreditor" combocodecol="account_code" combodatacol="amt" combodisplaynulltype="none"/>
<Cell col="5" style="align:center middle;background:#f9f0d7ff;background2:transparent;font:bold 10 Verdana;selectfont:9 Verdana;" text="expr:parseInt(comp.parent.dsTotalCreditor.getColumn(currow, &quot;amt&quot;))-parseInt(dataset.getColumn(currow, &quot;amt&quot;)) &gt; 0 ? parseInt(comp.parent.dsTotalCreditor.getColumn(currow, &quot;amt&quot;))-parseInt(dataset.getColumn(currow, &quot;amt&quot;)) : &quot;&quot;"/>
</Band>
<Band id="summary">
<Cell style="align:center middle;font:bold 10 Verdana;"/>
<Cell col="1" displaytype="number" style="align:center middle;font:bold 10 Verdana;" text="expr:dataset.getSum(&quot;parseInt(amt)&quot;)"/>
<Cell col="2" colspan="2" style="align:center middle;font:bold 10 Verdana;"/>
<Cell col="4" displaytype="number" style="align:center middle;font:bold 10 Verdana;" text="expr:dataset.getSum(&quot;parseInt(amt)&quot;)"/>
<Cell col="5" style="align:center middle;font:bold 10 Verdana;"/>
</Band>
</Format>
</Formats>
</Grid>
</Layout>
</Layouts>
<Objects>
<Dataset id="dsTotalTrialBalance" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
<ColumnInfo>
<Column id="account_code" type="STRING" size="256"/>
<Column id="account_name" type="STRING" size="256"/>
</ColumnInfo>
</Dataset>
<Dataset id="dsTotalCreditor" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
<ColumnInfo>
<Column id="account_code" type="STRING" size="256"/>
<Column id="amt" type="STRING" size="256"/>
<Column id="account_name" type="STRING" size="256"/>
<Column id="journal_type" type="STRING" size="256"/>
</ColumnInfo>
</Dataset>
<Dataset id="selectYear" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
<ColumnInfo>
<Column id="preYear" type="STRING" size="256"/>
</ColumnInfo>
<Rows>
<Row>
<Col id="preYear">2016</Col>
</Row>
<Row>
<Col id="preYear">2015</Col>
</Row>
<Row>
<Col id="preYear">2014</Col>
</Row>
<Row>
<Col id="preYear">2013</Col>
</Row>
<Row>
<Col id="preYear">2012</Col>
</Row>
<Row>
<Col id="preYear">2011</Col>
</Row>
<Row>
<Col id="preYear">2010</Col>
</Row>
</Rows>
</Dataset>
<Dataset id="dsTotalDebtor" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
<ColumnInfo>
<Column id="account_code" type="STRING" size="256"/>
<Column id="amt" type="STRING" size="256"/>
<Column id="account_name" type="STRING" size="256"/>
<Column id="journal_type" type="STRING" size="256"/>
</ColumnInfo>
</Dataset>
</Objects>
<Script type="xscript5.0"><![CDATA[var curYear, strDate, year;
// 콜백 함수
this.callback = function(trid, errorCode, errorMsg){
if(trid=="getTotalTrialBalanceList"){
if(this.dsTotalCreditor.getRowCount()==0 || this.dsTotalDebtor.getRowCount()==0){
alert("조회된 데이터가 없습니다.");
}else{
this.dsTotalTrialBalance.copyData(this.dsTotalDebtor);
}
}
}
// 합계 잔액 시산표 폼이 로드 되면
this.totalTrialBalance_onload = function(obj:Form, e:nexacro.LoadEventInfo)
{
var objDate = new Date();
var pToday = objDate.getFullYear() + "";
var pMonth = objDate.getMonth()+1;
var pDate = objDate.getDate();
this.strDate = pToday+pMonth+pDate;
this.curYear = pToday;
this.sDate.set_value(pToday+'0101');
this.eDate.set_value(this.strDate);
}
// 연도 콤보가 바뀌면
this.selYear_onitemchanged = function(obj:Combo, e:nexacro.ItemChangeEventInfo)
{
this.year = this.selYear.value ;
if(this.year == this.curYear){
//var objDate = new Date();
//var pToday = objDate.getFullYear() + "";
//var pMonth = objDate.getMonth()+1;
//var pDate = objDate.getDate();
//var strDate = pToday+pMonth+pDate;
this.sDate.set_value(this.curYear+'0101');
this.eDate.set_value(this.strDate);
}else{
//alert("change");
this.sDate.set_value(parseInt(this.year)+'0101') ;
this.eDate.set_value(parseInt(this.year)+'1231') ;
}
}
// 조회 버튼
this.search_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
this.transaction("getTotalTrialBalanceList","DataUrl::slip/getTotalTrialBalanceList.do","","dsTotalCreditor=dsTotalCreditor dsTotalDebtor=dsTotalDebtor",
"sDate='"+this.sDate.value+"' eDate='"+this.eDate.value+"'","callback");
}
// 엑셀 출력
this.excelBtn_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
/*
if(confirm("합계잔액시산표를 엑셀로 출력하시겠습니까?")){
objExport.exporttype = ExportTypes.EXCEL;
objExport.activepagename = "TotalTrialBalance";
objExport.addExportItem( ExportItemTypes.GRID, totalTrialBalanceGrid, "A0" );
objExport.export();
}
*/
}
]]></Script>
</Form>
</FDL>

61
nexacro/accounting.xadl Normal file
View File

@@ -0,0 +1,61 @@
<?xml version="1.0" encoding="utf-8"?>
<ADL version="1.2">
<TypeDefinition url="default_typedef.xml"/>
<GlobalVariables url="globalvars.xml"/>
<Application id="accounting" codepage="utf-8" language="Korean" loginformurl="" loginformstyle="" windowopeneffect="" windowcloseeffect="" version="" tracemode="" themeid="default.xtheme" onload="application_onload">
<Layout>
<MainFrame id="mainframe" title="maintitle" defaultfont="" resizable="false" showtitlebar="true" showstatusbar="true" left="0" top="0" width="1000" height="600" visible="true" titletext="JCorporation">
<VFrameSet id="VFrameSet0" separatesize="80,*">
<Frames>
<ChildFrame id="ChildFrame0" showtitlebar="false"/>
<HFrameSet id="HFrameSet0" separatesize="200,*">
<Frames>
<ChildFrame id="ChildFrame0" showtitlebar="false"/>
<ChildFrame id="ChildFrame1" showtitlebar="false"/>
</Frames>
</HFrameSet>
</Frames>
</VFrameSet>
</MainFrame>
</Layout>
<ScreenInfo/>
</Application>
<Script type="xscript5.0"><![CDATA[var oFS;
this.gfn_open = function gfn_open(sID, sURL, sTitle){
oFS=application.mainframe.VFrameSet0.HFrameSet0.ChildFrame1;
oFS.set_formurl(sURL);
oFS.show();
}
this.application_onload = function(obj:Application, e:nexacro.LoadEventInfo)
{
/*
var objNew = new ChildFrame();
objNew.showtitlebar = true;
objNew.init("Login", 500,250,0,0, "Base::loginForm.xfdl");
var view = objNew.showModal(oFS);
if (view == "open")
{
mainframe.visible = true;
}*/
application.mainframe.move(150,80);
var empLoginFrame = new ChildFrame();
//로컬변수앞에 this없어도 됨
empLoginFrame.init("Login", "absolute", 350, 150, 0, 0, null, null, "Base::loginForm.xfdl");
empLoginFrame.showtitlebar=true;
empLoginFrame.showstatusbar=false;
empLoginFrame.openalign = "center middle";
empLoginFrame.showModal("Login"); //showModal(null)하면 안됨.
}
]]></Script>
</ADL>

9
nexacro/accounting.xprj Normal file
View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<Project active_adl="accounting" version="1.3">
<TypeDefinition url="default_typedef.xml"/>
<GlobalVariables url="globalvars.xml"/>
<ADL id="accounting" url="accounting.xadl"/>
<ComponentInfoGroup>
<ComponentInfo name="ExportObject" defaultwidth="" defaultheight="" image="18"/>
</ComponentInfoGroup>
</Project>

View File

@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8"?>
<TypeDefinition version="1.1">
<Modules>
<Module url="CompBase.json"/>
<Module url="ComComp.json"/>
<Module url="Grid.json"/>
<Module url="DeviceAPI.json"/>
</Modules>
<Components>
<Component type="JavaScript" id="Div" classname="nexacro.Div"/>
<Component type="JavaScript" id="Button" classname="nexacro.Button"/>
<Component type="JavaScript" id="PopupDiv" classname="nexacro.PopupDiv"/>
<Component type="JavaScript" id="Combo" classname="nexacro.Combo"/>
<Component type="JavaScript" id="CheckBox" classname="nexacro.CheckBox"/>
<Component type="JavaScript" id="ListBox" classname="nexacro.ListBox"/>
<Component type="JavaScript" id="Edit" classname="nexacro.Edit"/>
<Component type="JavaScript" id="MaskEdit" classname="nexacro.MaskEdit"/>
<Component type="JavaScript" id="TextArea" classname="nexacro.TextArea"/>
<Component type="JavaScript" id="Menu" classname="nexacro.Menu"/>
<Component type="JavaScript" id="Tab" classname="nexacro.Tab"/>
<Component type="JavaScript" id="ImageViewer" classname="nexacro.ImageViewer"/>
<Component type="JavaScript" id="Radio" classname="nexacro.Radio"/>
<Component type="JavaScript" id="Calendar" classname="nexacro.Calendar"/>
<Component type="JavaScript" id="Static" classname="nexacro.Static"/>
<Component type="JavaScript" id="Grid" classname="nexacro.Grid"/>
<Component type="JavaScript" id="Spin" classname="nexacro.Spin"/>
<Component type="JavaScript" id="PopupMenu" classname="nexacro.PopupMenu"/>
<Component type="JavaScript" id="GroupBox" classname="nexacro.GroupBox"/>
<Component type="JavaScript" id="ProgressBar" classname="nexacro.ProgressBar"/>
<Component type="JavaScript" id="Plugin" classname="nexacro.Plugin"/>
<Component type="JavaScript" id="Dataset" classname="nexacro.NormalDataset"/>
<Component type="JavaScript" id="ExportObject" classname="nexacro.ExportObject"/>
<Component type="JavaScript" id="VirtualFile" classname="nexacro.VirtualFile"/>
</Components>
<Services>
<Service prefixid="Base" type="form" url="./Base/" version="0" communicationversion="0"/>
<Service prefixid="Accounting" type="form" url="./Accounting/" version="0" communicationversion="0"/>
<Service prefixid="Insa" type="form" url="./Insa/" version="0" communicationversion="0"/>
<Service prefixid="Settlement" type="form" url="./Settlement/" version="0" communicationversion="0"/>
<Service prefixid="Menu" type="form" url="./Menu/" version="0" communicationversion="0"/>
<Service prefixid="DataUrl" type="JSP" url="http://localhost/project6th/" version="0" communicationversion="0"/>
</Services>
<Update/>
</TypeDefinition>

175
nexacro/globalvars.xml Normal file
View File

@@ -0,0 +1,175 @@
<?xml version="1.0" encoding="utf-8"?>
<GlobalVariables>
<Variable id="gvDeptName"/>
<Variable id="gvDeptNo"/>
<Variable id="gvEmpNo"/>
<Variable id="gvEmpName"/>
<Variable id="gvEmpPs"/>
<Dataset id="dsEmp">
<ColumnInfo>
<Column id="emp_no" type="STRING" size="256"/>
<Column id="emp_name" type="STRING" size="256"/>
<Column id="emp_address" type="STRING" size="256"/>
<Column id="emp_email" type="STRING" size="256"/>
<Column id="emp_position" type="STRING" size="256"/>
<Column id="emp_tel" type="STRING" size="256"/>
<Column id="emp_hiredate" type="STRING" size="256"/>
<Column id="dept_no" type="STRING" size="256"/>
<Column id="emp_image" type="STRING" size="256"/>
<Column id="emp_pw" type="STRING" size="256"/>
<Column id="memo" type="STRING" size="256"/>
</ColumnInfo>
</Dataset>
<Dataset id="dsCode">
<ColumnInfo>
<Column id="distinction_code" type="STRING" size="256"/>
<Column id="code_name" type="STRING" size="256"/>
<Column id="code_use" type="STRING" size="256"/>
</ColumnInfo>
</Dataset>
<Dataset id="dsDetailCode">
<ColumnInfo>
<Column id="distinction_code" type="STRING" size="256"/>
<Column id="detail_code" type="STRING" size="256"/>
<Column id="detail_codename" type="STRING" size="256"/>
<Column id="detail_use" type="STRING" size="256"/>
<Column id="memo" type="STRING" size="256"/>
</ColumnInfo>
</Dataset>
<Dataset id="dsAccount">
<ColumnInfo>
<Column id="account_code" type="STRING" size="256"/>
<Column id="account_name" type="STRING" size="256"/>
<Column id="parent_account" type="STRING" size="256"/>
<Column id="account_balance" type="STRING" size="256"/>
<Column id="account_change" type="STRING" size="256"/>
<Column id="account_use" type="STRING" size="256"/>
<Column id="level" type="STRING" size="256"/>
</ColumnInfo>
</Dataset>
<Dataset id="dsAcountManagement">
<ColumnInfo>
<Column id="management_code" type="STRING" size="256"/>
<Column id="account_code" type="STRING" size="256"/>
<Column id="account_management_name" type="STRING" size="256"/>
<Column id="account_change" type="STRING" size="256"/>
<Column id="account_use" type="STRING" size="256"/>
<Column id="account_type" type="STRING" size="256"/>
</ColumnInfo>
</Dataset>
<Dataset id="dsDebtor">
<ColumnInfo>
<Column id="journal_no" type="STRING" size="256"/>
<Column id="account_code" type="STRING" size="256"/>
<Column id="customer_code" type="STRING" size="256"/>
<Column id="account_name" type="STRING" size="256"/>
<Column id="journal_receipt" type="STRING" size="256"/>
<Column id="customer_name" type="STRING" size="256"/>
<Column id="journal_type" type="STRING" size="256"/>
<Column id="journal_amt" type="STRING" size="256"/>
<Column id="summary_name" type="STRING" size="256"/>
</ColumnInfo>
</Dataset>
<Dataset id="dsCreditor">
<ColumnInfo>
<Column id="journal_no" type="STRING" size="256"/>
<Column id="account_code" type="STRING" size="256"/>
<Column id="customer_code" type="STRING" size="256"/>
<Column id="account_name" type="STRING" size="256"/>
<Column id="journal_receipt" type="STRING" size="256"/>
<Column id="customer_name" type="STRING" size="256"/>
<Column id="journal_type" type="STRING" size="256"/>
<Column id="journal_amt" type="STRING" size="256"/>
<Column id="summary_name" type="STRING" size="256"/>
</ColumnInfo>
</Dataset>
<Dataset id="dsJournalList">
<ColumnInfo>
<Column id="slip_date" type="STRING" size="256"/>
<Column id="journal_type" type="STRING" size="256"/>
<Column id="account_code" type="STRING" size="256"/>
<Column id="account_name" type="STRING" size="256"/>
<Column id="journal_amt" type="STRING" size="256"/>
<Column id="summary_name" type="STRING" size="256"/>
<Column id="customer_code" type="STRING" size="256"/>
<Column id="customer_name" type="STRING" size="256"/>
<Column id="debtor" type="STRING" size="256"/>
<Column id="creditor" type="STRING" size="256"/>
<Column id="slip_type" type="STRING" size="256"/>
<Column id="slip_status" type="STRING" size="256"/>
</ColumnInfo>
</Dataset>
<Dataset id="dsPermission">
<ColumnInfo>
<Column id="permission_code" type="STRING" size="256"/>
<Column id="menu_name" type="STRING" size="256"/>
<Column id="menu_code" type="STRING" size="256"/>
</ColumnInfo>
</Dataset>
<Dataset id="dsEmpPermission">
<ColumnInfo>
<Column id="emp_no" type="STRING" size="256"/>
<Column id="permission_code" type="STRING" size="256"/>
<Column id="permission_name" type="STRING" size="256"/>
</ColumnInfo>
</Dataset>
<Dataset id="dsMenu">
<ColumnInfo>
<Column id="level" type="STRING" size="256"/>
<Column id="menu_code" type="STRING" size="256"/>
<Column id="menu_name" type="STRING" size="256"/>
<Column id="menu_url" type="STRING" size="256"/>
<Column id="menu_use" type="STRING" size="256"/>
<Column id="parent_menu_code" type="STRING" size="256"/>
</ColumnInfo>
</Dataset>
<Dataset id="dsSlip">
<ColumnInfo>
<Column id="slip_no" type="STRING" size="256"/>
<Column id="emp_no" type="STRING" size="256"/>
<Column id="slip_ballot_no" type="STRING" size="256"/>
<Column id="slip_seq" type="STRING" size="256"/>
<Column id="slip_date" type="STRING" size="256"/>
<Column id="slip_content" type="STRING" size="256"/>
<Column id="slip_status" type="STRING" size="256"/>
<Column id="approver" type="STRING" size="256"/>
<Column id="approval_date" type="STRING" size="256"/>
<Column id="difference_amt" type="STRING" size="256"/>
<Column id="slip_worker" type="STRING" size="256"/>
<Column id="slip_type" type="STRING" size="256"/>
<Column id="slip_dept" type="STRING" size="256"/>
</ColumnInfo>
</Dataset>
<Dataset id="dsJournal">
<ColumnInfo>
<Column id="journal_no" type="STRING" size="256"/>
<Column id="slip_no" type="STRING" size="256"/>
<Column id="account_code" type="STRING" size="256"/>
<Column id="customer_code" type="STRING" size="256"/>
<Column id="account_name" type="STRING" size="256"/>
<Column id="customer_name" type="STRING" size="256"/>
<Column id="journal_type" type="STRING" size="256"/>
<Column id="journal_amt" type="STRING" size="256"/>
<Column id="summary_code" type="STRING" size="256"/>
<Column id="summary_name" type="STRING" size="256"/>
<Column id="journal_receipt" type="STRING" size="256"/>
</ColumnInfo>
</Dataset>
<Dataset id="dsJournalManagement">
<ColumnInfo>
<Column id="journal_no" type="STRING" size="256"/>
<Column id="slip_no" type="STRING" size="256"/>
<Column id="management_code" type="STRING" size="256"/>
<Column id="value" type="STRING" size="256"/>
<Column id="management_name" type="STRING" size="256"/>
<Column id="management_type" type="STRING" size="256"/>
</ColumnInfo>
</Dataset>
<Dataset id="permission">
<ColumnInfo>
<Column id="permission_code" type="STRING" size="256"/>
<Column id="menu_name" type="STRING" size="256"/>
<Column id="menu_code" type="STRING" size="256"/>
</ColumnInfo>
</Dataset>
</GlobalVariables>

150
pom.xml Normal file
View File

@@ -0,0 +1,150 @@
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com</groupId>
<artifactId>minhyuk</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>minhyuk</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>19</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-core</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.7</version>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.5.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- <dependency>-->
<!-- <groupId>org.mybatis</groupId>-->
<!-- <artifactId>mybatis</artifactId>-->
<!-- <version>3.2.2</version>-->
<!-- </dependency>-->
<!-- <dependency>-->
<!-- <groupId>org.apache.ibatis</groupId>-->
<!-- <artifactId>ibatis-core</artifactId>-->
<!-- <version>3.0</version>-->
<!-- </dependency>-->
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.9.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.11.0</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-email</artifactId>
<version>1.5</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.1.3</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.13</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.4.4</version>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@@ -0,0 +1,14 @@
package com.minhyuk.accounting.account.as;
import java.util.List;
import com.minhyuk.accounting.account.to.AccountBean;
import com.minhyuk.accounting.account.to.AccountManagementBean;
public interface AccountApplicationService {
public List<AccountBean> getAccountList();
public void batchAccountManagement(List<AccountManagementBean> accountManagementList);
public void batchAccount(List<AccountBean> accountList);
}

View File

@@ -0,0 +1,52 @@
package com.minhyuk.accounting.account.as;
import java.util.List;
import com.minhyuk.accounting.account.dao.AccountDAO;
import com.minhyuk.accounting.account.dao.AccountManagementDAO;
import com.minhyuk.accounting.account.to.AccountBean;
import com.minhyuk.accounting.account.to.AccountManagementBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class AccountApplicationServiceImpl implements AccountApplicationService {
@Autowired
AccountDAO accountDAO;
@Autowired
AccountManagementDAO accountManagementDAO;
@Override
public List<AccountBean> getAccountList() {
return accountDAO.selectAccountList();
}
@Override
public void batchAccountManagement(List<AccountManagementBean> accountManagementList) {
for (AccountManagementBean accountManagementBean : accountManagementList) {
if(accountManagementBean.getStatus().equals("inserted")){
accountManagementDAO.insertAccountManagement(accountManagementBean);
// }else if(accountManagementBean.getStatus().equals("updated")){
// accountManagementDAO.updateAccountManagement(accountManagementBean);
}else{
accountManagementDAO.deleteAccountManagement(accountManagementBean);
}
}
}
@Override
public void batchAccount(List<AccountBean> accountList) {
for (AccountBean accountBean : accountList) {
if(accountBean.getStatus().equals("inserted")){
accountDAO.insertAccount(accountBean);
}else if(accountBean.getStatus().equals("updated")){
accountDAO.updateAccount(accountBean);
}else{
accountDAO.deleteAccount(accountBean);
}
}
}
}

View File

@@ -0,0 +1,56 @@
package com.minhyuk.accounting.account.controller;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.minhyuk.common.mapper.DatasetBeanMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.nexacro.xapi.data.PlatformData;
import com.minhyuk.accounting.account.service.AccountServiceFacade;
import com.minhyuk.accounting.account.to.AccountBean;
import com.minhyuk.accounting.account.to.AccountManagementBean;
@Controller
public class AccountController{
@Autowired
private AccountServiceFacade accountServiceFacade;
@Autowired
private DatasetBeanMapper datasetBeanMapper;
@RequestMapping("account/getAccountList.do")
public void getAccountList(HttpServletRequest request,HttpServletResponse response) throws Exception {
PlatformData outData = (PlatformData)request.getAttribute("outData");
List<AccountBean> accountList=accountServiceFacade.getAccountList();
List<AccountManagementBean> accountManagementList=new ArrayList<AccountManagementBean>();
for(AccountBean accountBean : accountList){
List<AccountManagementBean> accountManagementBeanList=accountBean.getAccountManagementBeanList();
accountManagementList.addAll(accountManagementBeanList);
}
datasetBeanMapper.beansToDataset(outData, accountList, AccountBean.class);
datasetBeanMapper.beansToDataset(outData, accountManagementList, AccountManagementBean.class);
}
@RequestMapping("account/batchAccount.do")
public void batchAccount(HttpServletRequest request,HttpServletResponse response) throws Exception {
PlatformData inData = (PlatformData)request.getAttribute("inData");
List<AccountBean> accountList=datasetBeanMapper.datasetToBeans(inData, AccountBean.class);
accountServiceFacade.batchAccount(accountList);
}
}

View File

@@ -0,0 +1,34 @@
package com.minhyuk.accounting.account.controller;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.minhyuk.common.mapper.DatasetBeanMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.nexacro.xapi.data.PlatformData;
import com.minhyuk.accounting.account.service.AccountServiceFacade;
import com.minhyuk.accounting.account.to.AccountManagementBean;
@Controller
public class AccountManagementController{
@Autowired
private AccountServiceFacade accountServiceFacade;
@Autowired
private DatasetBeanMapper datasetBeanMapper;
@RequestMapping("accountManagement/batchAccountManagement.do")
public void batchAccountManagement(HttpServletRequest request,HttpServletResponse response) throws Exception {
PlatformData inData = (PlatformData)request.getAttribute("inData");
List<AccountManagementBean> accountManagementList=datasetBeanMapper.datasetToBeans(inData, AccountManagementBean.class);
accountServiceFacade.batchAccountManagement(accountManagementList);
}
}

View File

@@ -0,0 +1,13 @@
package com.minhyuk.accounting.account.dao;
import java.util.List;
import com.minhyuk.accounting.account.to.AccountBean;
public interface AccountDAO {
public List<AccountBean> selectAccountList();
public void insertAccount(AccountBean accountBean);
public void updateAccount(AccountBean accountBean);
public void deleteAccount(AccountBean accountBean);
}

View File

@@ -0,0 +1,13 @@
package com.minhyuk.accounting.account.dao;
import java.util.List;
import com.minhyuk.accounting.account.to.AccountManagementBean;
public interface AccountManagementDAO {
public List<AccountManagementBean> selectAccountManagementList();
void insertAccountManagement(AccountManagementBean accountManagementBean);
//void updateAccountManagement(AccountManagementBean accountManagementBean);
void deleteAccountManagement(AccountManagementBean accountManagementBean);
}

View File

@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.minhyuk.accounting.account.dao.AccountDAO">
<resultMap id="resultAccount" type="account">
<result property="accountCode" column="account_code" />
<result property="accountName" column="account_name" />
<result property="parentAccount" column="parent_account" />
<result property="accountBalance" column="account_balance" />
<result property="accountChange" column="account_change" />
<result property="accountUse" column="account_use" />
<result property="level" column="level" />
<collection property="accountManagementBeanList" select="com.minhyuk.accounting.account.dao.AccountManagementDAO.selectAccountManagementList"
column="account_code" javaType="list" />
</resultMap>
<select id="selectAccountList" resultMap="resultAccount">
SELECT LEVEL
, account_code
, parent_account
, account_name
, account_balance
, account_change
, account_use
FROM ACCOUNT START WITH parent_account IS NULL
CONNECT BY PRIOR account_code = parent_account
</select>
<insert id="insertAccount">
INSERT
INTO account
(
account_code,
parent_account,
account_name,
account_balance,
account_change,
account_use
)
VALUES
(
#{accountCode},
#{parentAccount},
#{accountName},
#{accountBalance},
#{accountChange},
#{accountUse}
)
</insert>
<update id="updateAccount">
UPDATE account
SET account_name=#{accountName},
account_balance=#{accountBalance},
account_change=#{accountChange},
account_use=#{accountUse}
WHERE account_code=#{accountCode}
</update>
<delete id="deleteAccount">
delete from account where account_code=#{accountCode}
</delete>
</mapper>

View File

@@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.minhyuk.accounting.account.dao.AccountManagementDAO">
<resultMap id="resultAccountManagement" type="accountManagement">
<result property="managementCode" column="management_code" />
<result property="accountCode" column="account_code" />
<result property="accountManagementName" column="account_management_name" />
<result property="managementType" column="management_type" />
<result property="accountChange" column="account_change" />
<result property="accountUse" column="account_use" />
</resultMap>
<select id="selectAccountManagementList" resultMap="resultAccountManagement" parameterType="String">
SELECT * FROM ACCOUNT_MANAGEMENT JOIN ACCOUNT_MANAGEMENT_LIST USING(management_code)
WHERE account_code=#{code}
</select>
<insert id="insertAccountManagement">
INSERT
INTO account_management
(
management_code,
account_code,
account_management_name,
account_change,
account_use
)
VALUES
(
#{managementCode},
#{accountCode},
#{accountManagementName},
#{accountChange},
#{accountUse}
)
</insert>
<!-- <update id="updateAccManagement">
UPDATE account_management
SET account_management_name,
account_type,
account_change,
account_use
WHERE account_code=#accountCode#
AND management_code=#managementCode#
</update> -->
<delete id="deleteAccountManagement">
delete from account_management where management_code=#{managementCode}
</delete>
</mapper>

View File

@@ -0,0 +1,14 @@
package com.minhyuk.accounting.account.service;
import java.util.List;
import com.minhyuk.accounting.account.to.AccountBean;
import com.minhyuk.accounting.account.to.AccountManagementBean;
public interface AccountServiceFacade {
public List<AccountBean> getAccountList();
public void batchAccountManagement(List<AccountManagementBean> accountManagementList);
public void batchAccount(List<AccountBean> accountList);
}

View File

@@ -0,0 +1,32 @@
package com.minhyuk.accounting.account.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.minhyuk.accounting.account.as.AccountApplicationService;
import com.minhyuk.accounting.account.to.AccountBean;
import com.minhyuk.accounting.account.to.AccountManagementBean;
@Service
public class AccountServiceFacadeImpl implements AccountServiceFacade {
@Autowired
AccountApplicationService accountApplicationService;
@Override
public List<AccountBean> getAccountList() {
return accountApplicationService.getAccountList();
}
@Override
public void batchAccountManagement(List<AccountManagementBean> accountManagementList) {
accountApplicationService.batchAccountManagement(accountManagementList);
}
@Override
public void batchAccount(List<AccountBean> accountList) {
accountApplicationService.batchAccount(accountList);
}
}

View File

@@ -0,0 +1,79 @@
package com.minhyuk.accounting.account.to;
import java.util.List;
import com.minhyuk.common.annotation.Dataset;
import com.minhyuk.common.annotation.Remove;
import com.minhyuk.common.to.BaseBean;
@Dataset(name="dsAccount")
public class AccountBean extends BaseBean {
private String level, accountCode, parentAccount, accountName, accountBalance, accountChange, accountUse;
private List<AccountManagementBean> accountManagementBeanList;
@Remove
public List<AccountManagementBean> getAccountManagementBeanList() {
return accountManagementBeanList;
}
@Remove
public void setAccountManagementBeanList(List<AccountManagementBean> accountManagementBeanList) {
this.accountManagementBeanList = accountManagementBeanList;
}
public String getParentAccount() {
return parentAccount;
}
public void setParentAccount(String parentAccount) {
this.parentAccount = parentAccount;
}
public String getLevel() {
return level;
}
public void setLevel(String level) {
this.level = level;
}
public String getAccountCode() {
return accountCode;
}
public void setAccountCode(String accountCode) {
this.accountCode = accountCode;
}
public String getAccountName() {
return accountName;
}
public void setAccountName(String accountName) {
this.accountName = accountName;
}
public String getAccountBalance() {
return accountBalance;
}
public void setAccountBalance(String accountBalance) {
this.accountBalance = accountBalance;
}
public String getAccountChange() {
return accountChange;
}
public void setAccountChange(String accountChange) {
this.accountChange = accountChange;
}
public String getAccountUse() {
return accountUse;
}
public void setAccountUse(String accountUse) {
this.accountUse = accountUse;
}
}

View File

@@ -0,0 +1,58 @@
package com.minhyuk.accounting.account.to;
import com.minhyuk.common.annotation.Dataset;
import com.minhyuk.common.to.BaseBean;
@Dataset(name="dsAcountManagement")
public class AccountManagementBean extends BaseBean {
private String managementCode, accountCode, accountManagementName, managementType, accountChange, accountUse;
public String getManagementType() {
return managementType;
}
public void setManagementType(String managementType) {
this.managementType = managementType;
}
public String getManagementCode() {
return managementCode;
}
public String getAccountChange() {
return accountChange;
}
public void setAccountChange(String accountChange) {
this.accountChange = accountChange;
}
public String getAccountManagementName() {
return accountManagementName;
}
public void setAccountManagementName(String accountManagementName) {
this.accountManagementName = accountManagementName;
}
public String getAccountUse() {
return accountUse;
}
public void setAccountUse(String accountUse) {
this.accountUse = accountUse;
}
public void setManagementCode(String managementCode) {
this.managementCode = managementCode;
}
public String getAccountCode() {
return accountCode;
}
public void setAccountCode(String accountCode) {
this.accountCode = accountCode;
}
}

View File

@@ -0,0 +1,34 @@
package com.minhyuk.accounting.slip.as;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.minhyuk.accounting.slip.to.CreditorBalanceBean;
import com.minhyuk.accounting.slip.to.DebtorBalanceBean;
import com.minhyuk.accounting.slip.to.FormerIncomeBean;
import com.minhyuk.accounting.slip.to.FormerStatementPositionBean;
import com.minhyuk.accounting.slip.to.IncomeStatementBean;
import com.minhyuk.accounting.slip.to.JournalListBean;
import com.minhyuk.accounting.slip.to.SlipBean;
import com.minhyuk.accounting.slip.to.StatementPositionBean;
public interface SlipApplicationService {
public List<SlipBean> getSlipList(HashMap<String, Object> slipmap);
public <T> void batchSlipList(Map<String, Object> batchSlipList);
public List<CreditorBalanceBean> getCreditorList(HashMap<String, Object> creditorMap);
public List<DebtorBalanceBean> getDebtorList(HashMap<String, Object> debtorMap);
public List<IncomeStatementBean> getIncomeList(HashMap<String, Object> incomeMap);
public List<FormerIncomeBean> getFormerIncomeList(String year);
public List<StatementPositionBean> getStatementList(HashMap<String, Object> statementMap);
public List<FormerStatementPositionBean> getFormerStatementList(String year);
public <T> void batchIncomeList(Map<String, Object> batchIncomeMap);
public <T> void batchStatementPositionList(Map<String, Object> batchStatementMap);
public List<JournalListBean> getJournalList(HashMap<String, Object> journalListMap);
}

View File

@@ -0,0 +1,151 @@
package com.minhyuk.accounting.slip.as;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.minhyuk.accounting.slip.dao.JournalDAO;
import com.minhyuk.accounting.slip.dao.JournalManagementDAO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.minhyuk.accounting.slip.dao.SettlementDAO;
import com.minhyuk.accounting.slip.dao.SlipDAO;
import com.minhyuk.accounting.slip.to.CreditorBalanceBean;
import com.minhyuk.accounting.slip.to.DebtorBalanceBean;
import com.minhyuk.accounting.slip.to.FormerIncomeBean;
import com.minhyuk.accounting.slip.to.FormerStatementPositionBean;
import com.minhyuk.accounting.slip.to.IncomeStatementBean;
import com.minhyuk.accounting.slip.to.JournalBean;
import com.minhyuk.accounting.slip.to.JournalListBean;
import com.minhyuk.accounting.slip.to.JournalManagementBean;
import com.minhyuk.accounting.slip.to.SlipBean;
import com.minhyuk.accounting.slip.to.StatementPositionBean;
import com.minhyuk.accounting.slip.to.TotalIncomeBean;
import com.minhyuk.accounting.slip.to.TotalStatementBean;
@Component
public class SlipApplicationServiceImpl implements SlipApplicationService {
@Autowired
SlipDAO slipDAO;
@Autowired
JournalDAO journalDAO;
@Autowired
JournalManagementDAO journalManagementDAO;
@Autowired
SettlementDAO settlementDAO;
@Override
public List<SlipBean> getSlipList(HashMap<String, Object> slipmap) {
return slipDAO.selectSlipList(slipmap);
}
@Override
public List<CreditorBalanceBean> getCreditorList(HashMap<String, Object> creditorMap) {
return settlementDAO.selectCreditorList(creditorMap);
}
@Override
public List<DebtorBalanceBean> getDebtorList(HashMap<String, Object> debtorMap) {
return settlementDAO.selectDebtorList(debtorMap);
}
@Override
public List<IncomeStatementBean> getIncomeList(HashMap<String, Object> incomeMap) {
return settlementDAO.selectIncomeList(incomeMap);
}
@Override
public List<FormerIncomeBean> getFormerIncomeList(String year) {
return settlementDAO.selectFormerIncomeList(year);
}
@Override
public List<StatementPositionBean> getStatementList(HashMap<String, Object> statementMap) {
return settlementDAO.selectStatementList(statementMap);
}
@Override
public List<FormerStatementPositionBean> getFormerStatementList(String year) {
return settlementDAO.selectFormerStatementList(year);
}
@SuppressWarnings("unchecked")
@Override
public <T> void batchSlipList(Map<String, Object> batchSlipList) {
List<SlipBean> slipList = (List<SlipBean>) batchSlipList.get("slipList");
List<JournalBean> journalList = (List<JournalBean>) batchSlipList.get("journalList");
List<JournalManagementBean> journalmanagementList = (List<JournalManagementBean>) batchSlipList.get("journalmanagementList");
for(SlipBean slipBean:slipList){
if(slipBean.getStatus().equals("inserted")){
slipDAO.insertSlip(slipBean);
}else if(slipBean.getStatus().equals("updated")){
slipDAO.updateSlip(slipBean);
}else{
slipDAO.deleteSlip(slipBean);
}
}
for(JournalBean journalBean:journalList){
if(journalBean.getStatus().equals("inserted")){
journalDAO.insertJournal(journalBean);
}else if(journalBean.getStatus().equals("updated")){
journalDAO.updateJournal(journalBean);
}else{
journalDAO.deleteJournal(journalBean);
}
}
for(JournalManagementBean journalManagementBean:journalmanagementList){
if(journalManagementBean.getStatus().equals("inserted")){
journalManagementDAO.insertJournalManagement(journalManagementBean);
}else if(journalManagementBean.getStatus().equals("updated")){
journalManagementDAO.updateJournalManagement(journalManagementBean);
}else{
journalManagementDAO.deleteJournalManagement(journalManagementBean);
}
}
}
@SuppressWarnings("unchecked")
public <T> void batchIncomeList(Map<String, Object> batchIncomeMap) {
List<IncomeStatementBean> incomeStateBeanList = (List<IncomeStatementBean>) batchIncomeMap.get("incomeStateBeanList");
List<TotalIncomeBean> totalIncomeBeanList = (List<TotalIncomeBean>) batchIncomeMap.get("totalIncomeBeanList");
for(TotalIncomeBean totalIncomeBean:totalIncomeBeanList){
switch(totalIncomeBean.getStatus()){
case "insert":settlementDAO.insertTotalIncome(totalIncomeBean);break;
}
}
for(IncomeStatementBean incomeStateBean:incomeStateBeanList){
switch(incomeStateBean.getStatus()){
case "normal":settlementDAO.insertIncomeStatement(incomeStateBean);break;
}
}
}
@SuppressWarnings("unchecked")
public <T> void batchStatementPositionList(Map<String, Object> batchStatementMap) {
List<StatementPositionBean> statementPositionBeanList = (List<StatementPositionBean>) batchStatementMap.get("statementPositionBeanList");
List<TotalStatementBean> totalStatementBeanList = (List<TotalStatementBean>) batchStatementMap.get("totalStatementBeanList");
for(TotalStatementBean totalStatementBean:totalStatementBeanList){
switch(totalStatementBean.getStatus()){
case "insert":settlementDAO.insertTotalStatement(totalStatementBean);break;
}
}
for(StatementPositionBean statementPositionBean:statementPositionBeanList){
switch(statementPositionBean.getStatus()){
case "normal":settlementDAO.insertStatementPosition(statementPositionBean);break;
}
}
}
@Override
public List<JournalListBean> getJournalList(HashMap<String, Object> journalListMap) {
return journalDAO.selectJournalList(journalListMap);
}
}

View File

@@ -0,0 +1,129 @@
package com.minhyuk.accounting.slip.controller;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.minhyuk.common.mapper.DatasetBeanMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.nexacro.xapi.data.PlatformData;
import com.minhyuk.accounting.slip.service.SlipServiceFacade;
import com.minhyuk.accounting.slip.to.CreditorBalanceBean;
import com.minhyuk.accounting.slip.to.DebtorBalanceBean;
import com.minhyuk.accounting.slip.to.FormerIncomeBean;
import com.minhyuk.accounting.slip.to.FormerStatementPositionBean;
import com.minhyuk.accounting.slip.to.IncomeStatementBean;
import com.minhyuk.accounting.slip.to.StatementPositionBean;
import com.minhyuk.accounting.slip.to.TotalIncomeBean;
import com.minhyuk.accounting.slip.to.TotalStatementBean;
@Controller
public class SettlementController{
@Autowired
private SlipServiceFacade slipServiceFacade;
@Autowired
private DatasetBeanMapper datasetBeanMapper;
@RequestMapping("slip/getTotalTrialBalanceList.do")
public void getTotalTrialBalanceList(HttpServletRequest request,HttpServletResponse response) throws Exception {
PlatformData inData = (PlatformData)request.getAttribute("inData");
PlatformData outData = (PlatformData)request.getAttribute("outData");
HashMap<String, Object> trialBalanceMap=new HashMap<>();
String sDate = inData.getVariable("sDate").getString();
String eDate = inData.getVariable("eDate").getString();
trialBalanceMap.put("sDate", sDate);
trialBalanceMap.put("eDate", eDate);
List<DebtorBalanceBean> debtorList = slipServiceFacade.getDebtorList(trialBalanceMap);
List<CreditorBalanceBean> creditorList = slipServiceFacade.getCreditorList(trialBalanceMap);
datasetBeanMapper.beansToDataset(outData, debtorList, DebtorBalanceBean.class);
datasetBeanMapper.beansToDataset(outData, creditorList, CreditorBalanceBean.class);
}
@SuppressWarnings("unchecked")
@RequestMapping("slip/getIncomeStatementList.do")
public void getIncomeStatementList(HttpServletRequest request,HttpServletResponse response) throws Exception {
PlatformData inData = (PlatformData)request.getAttribute("inData");
PlatformData outData = (PlatformData)request.getAttribute("outData");
HashMap<String, Object> incomeMap=new HashMap<>();
String sDate = inData.getVariable("sDate").getString();
String eDate = inData.getVariable("eDate").getString();
incomeMap.put("sDate", sDate);
incomeMap.put("eDate", eDate);
String strYear = sDate.substring(0,4);
String year = Integer.toString(Integer.parseInt(strYear)-1);
slipServiceFacade.getIncomeList(incomeMap);
List<IncomeStatementBean> incomeStatementList=(List<IncomeStatementBean>) incomeMap.get("result");
List<FormerIncomeBean> formerIncomeList = slipServiceFacade.getFormerIncomeList(year);
System.out.println(incomeStatementList);
datasetBeanMapper.beansToDataset(outData, incomeStatementList, IncomeStatementBean.class);
datasetBeanMapper.beansToDataset(outData, formerIncomeList, FormerIncomeBean.class);
}
@SuppressWarnings("unchecked")
@RequestMapping("slip/getStatementPositionList.do")
public void getStatementPositionList(HttpServletRequest request,HttpServletResponse response) throws Exception {
PlatformData inData = (PlatformData)request.getAttribute("inData");
PlatformData outData = (PlatformData)request.getAttribute("outData");
HashMap<String, Object> statementMap=new HashMap<>();
String sDate = inData.getVariable("sDate").getString();
String eDate = inData.getVariable("eDate").getString();
statementMap.put("sDate", sDate);
statementMap.put("eDate", eDate);
String strYear = sDate.substring(0,4);
String year = Integer.toString(Integer.parseInt(strYear)-1);
slipServiceFacade.getStatementList(statementMap);
List<StatementPositionBean> statementPositionList=(List<StatementPositionBean>) statementMap.get("result");
List<FormerStatementPositionBean> formerStatementList = slipServiceFacade.getFormerStatementList(year);
datasetBeanMapper.beansToDataset(outData, statementPositionList, StatementPositionBean.class);
datasetBeanMapper.beansToDataset(outData, formerStatementList, FormerStatementPositionBean.class);
}
@RequestMapping("slip/batchIncomeStatementList.do")
public void batchIncomeStatementList(HttpServletRequest request,HttpServletResponse response) throws Exception {
PlatformData inData = (PlatformData)request.getAttribute("inData");
List<IncomeStatementBean> incomeStateBeanList = datasetBeanMapper.datasetToBeans(inData, IncomeStatementBean.class);
List<TotalIncomeBean> totalIncomeBeanList = datasetBeanMapper.datasetToBeans(inData, TotalIncomeBean.class);
Map<String, Object> batchIncomeMap = new HashMap<>();
batchIncomeMap.put("incomeStateBeanList", incomeStateBeanList);
batchIncomeMap.put("totalIncomeBeanList", totalIncomeBeanList);
slipServiceFacade.batchIncomeList(batchIncomeMap);
}
@RequestMapping("slip/batchStatementPositionList.do")
public void batchStatementPositionList(HttpServletRequest request,HttpServletResponse response) throws Exception {
PlatformData inData = (PlatformData)request.getAttribute("inData");
List<StatementPositionBean> statementPositionBeanList = datasetBeanMapper.datasetToBeans(inData, StatementPositionBean.class);
List<TotalStatementBean> totalStatementBeanList = datasetBeanMapper.datasetToBeans(inData, TotalStatementBean.class);
Map<String, Object> batchStatementMap = new HashMap<>();
batchStatementMap.put("statementPositionBeanList", statementPositionBeanList);
batchStatementMap.put("totalStatementBeanList", totalStatementBeanList);
slipServiceFacade.batchStatementPositionList(batchStatementMap);
}
}

View File

@@ -0,0 +1,142 @@
package com.minhyuk.accounting.slip.controller;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.minhyuk.accounting.slip.to.JournalBean;
import com.minhyuk.accounting.slip.to.JournalListBean;
import com.minhyuk.accounting.slip.to.JournalManagementBean;
import com.minhyuk.accounting.slip.to.SlipBean;
import com.minhyuk.common.mapper.DatasetBeanMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.nexacro.xapi.data.PlatformData;
import com.minhyuk.accounting.slip.service.SlipServiceFacade;
@Controller
public class SlipController{
@Autowired
private SlipServiceFacade slipServiceFacade;
@Autowired
private DatasetBeanMapper datasetBeanMapper;
@RequestMapping("slip/getSlipList.do")
public void getSlipList(HttpServletRequest request,HttpServletResponse response) throws Exception {
PlatformData inData = (PlatformData)request.getAttribute("inData");
PlatformData outData = (PlatformData)request.getAttribute("outData");
HashMap<String, Object> slipmap=new HashMap<>();
String deptName = inData.getVariable("deptName").getString();
String sDate = inData.getVariable("sDate").getString();
String eDate = inData.getVariable("eDate").getString();
slipmap.put("deptName", deptName);
slipmap.put("sDate", sDate);
slipmap.put("eDate", eDate);
List<SlipBean> slipList = slipServiceFacade.getSlipList(slipmap);
List<JournalBean> journalBeanList = new ArrayList<>();
List<JournalManagementBean> journalManagementBeanList = new ArrayList<>();
for (SlipBean slipBean : slipList) {
List<JournalBean> journal = slipBean.getJournalBeanList();
for (JournalBean journalBean : journal) {
List<JournalManagementBean> journalManagement = journalBean.getJournalManagementBeanList();
journalManagementBeanList.addAll(journalManagement);
}
journalBeanList.addAll(journal);
}
datasetBeanMapper.beansToDataset(outData, slipList, SlipBean.class);
datasetBeanMapper.beansToDataset(outData, journalBeanList, JournalBean.class);
datasetBeanMapper.beansToDataset(outData, journalManagementBeanList, JournalManagementBean.class);
}
@RequestMapping("slip/getSlipApproveList.do")
public void getSlipApproveList(HttpServletRequest request,HttpServletResponse response) throws Exception {
PlatformData inData = (PlatformData)request.getAttribute("inData");
PlatformData outData = (PlatformData)request.getAttribute("outData");
HashMap<String, Object> slipmap=new HashMap<>();
String sDate = inData.getVariable("sDate").getString();
String eDate = inData.getVariable("eDate").getString();
String slipStatus = inData.getVariable("slipStatus").getString();
String slipType = inData.getVariable("slipType").getString();
String deptName = inData.getVariable("deptName").getString();
slipmap.put("sDate", sDate);
slipmap.put("eDate", eDate);
slipmap.put("slipStatus", slipStatus);
slipmap.put("slipType", slipType);
slipmap.put("deptName", deptName);
List<SlipBean> slipList = slipServiceFacade.getSlipList(slipmap);
List<JournalBean> journalBeanList = new ArrayList<>();
List<JournalManagementBean> journalManagementBeanList = new ArrayList<>();
for (SlipBean slipBean : slipList) {
List<JournalBean> journal = slipBean.getJournalBeanList();
for (JournalBean journalBean : journal) {
List<JournalManagementBean> journalManagement = journalBean.getJournalManagementBeanList();
journalManagementBeanList.addAll(journalManagement);
}
journalBeanList.addAll(journal);
}
datasetBeanMapper.beansToDataset(outData, slipList, SlipBean.class);
datasetBeanMapper.beansToDataset(outData, journalBeanList, JournalBean.class);
datasetBeanMapper.beansToDataset(outData, journalManagementBeanList, JournalManagementBean.class);
}
@RequestMapping("slip/batchSlipList.do")
public void batchSlipList(HttpServletRequest request,HttpServletResponse response) throws Exception {
PlatformData inData = (PlatformData)request.getAttribute("inData");
List<SlipBean> slipList = datasetBeanMapper.datasetToBeans(inData, SlipBean.class);
List<JournalBean> journalList = datasetBeanMapper.datasetToBeans(inData, JournalBean.class);
List<JournalManagementBean> journalmanagementList = datasetBeanMapper.datasetToBeans(inData,
JournalManagementBean.class);
System.out.println(inData.toString());
Map<String, Object> batchSlipList = new HashMap<>();
batchSlipList.put("slipList", slipList);
batchSlipList.put("journalList", journalList);
batchSlipList.put("journalmanagementList", journalmanagementList);
slipServiceFacade.batchSlipList(batchSlipList);
}
@RequestMapping("slip/getJournalList.do")
public void getJournalList(HttpServletRequest request,HttpServletResponse response) throws Exception {
PlatformData inData = (PlatformData)request.getAttribute("inData");
PlatformData outData = (PlatformData)request.getAttribute("outData");
HashMap<String, Object> journalListmap=new HashMap<>();
String sDate = inData.getVariable("sDate").getString();
String eDate = inData.getVariable("eDate").getString();
String slipType = inData.getVariable("slipType").getString();
String deptName = inData.getVariable("deptName").getString();
journalListmap.put("sDate", sDate);
journalListmap.put("eDate", eDate);
journalListmap.put("slipType", slipType);
journalListmap.put("deptName", deptName);
List<JournalListBean> journalListBean = slipServiceFacade.getJournalList(journalListmap);
datasetBeanMapper.beansToDataset(outData, journalListBean, JournalListBean.class);
}
}

View File

@@ -0,0 +1,19 @@
package com.minhyuk.accounting.slip.dao;
import java.util.HashMap;
import java.util.List;
import com.minhyuk.accounting.slip.to.JournalBean;
import com.minhyuk.accounting.slip.to.JournalListBean;
public interface JournalDAO {
//public List<JournalListBean> getJournalList(HashMap<String, Object> journalmap);
public void insertJournal(JournalBean journalBean);
public void updateJournal(JournalBean journalBean);
public void deleteJournal(JournalBean journalBean);
public List<JournalListBean> selectJournalList(HashMap<String, Object> journalListMap);
}

View File

@@ -0,0 +1,11 @@
package com.minhyuk.accounting.slip.dao;
import com.minhyuk.accounting.slip.to.JournalManagementBean;
public interface JournalManagementDAO {
public void insertJournalManagement(JournalManagementBean journalManagementBean);
public void updateJournalManagement(JournalManagementBean journalManagementBean);
public void deleteJournalManagement(JournalManagementBean journalManagementBean);
}

View File

@@ -0,0 +1,32 @@
package com.minhyuk.accounting.slip.dao;
import java.util.HashMap;
import java.util.List;
import com.minhyuk.accounting.slip.to.CreditorBalanceBean;
import com.minhyuk.accounting.slip.to.DebtorBalanceBean;
import com.minhyuk.accounting.slip.to.FormerIncomeBean;
import com.minhyuk.accounting.slip.to.FormerStatementPositionBean;
import com.minhyuk.accounting.slip.to.IncomeStatementBean;
import com.minhyuk.accounting.slip.to.StatementPositionBean;
import com.minhyuk.accounting.slip.to.TotalIncomeBean;
import com.minhyuk.accounting.slip.to.TotalStatementBean;
public interface SettlementDAO {
public List<CreditorBalanceBean> selectCreditorList(HashMap<String, Object> creditorMap);
public List<DebtorBalanceBean> selectDebtorList(HashMap<String, Object> debtorMap);
public List<IncomeStatementBean> selectIncomeList(HashMap<String, Object> incomeMap);
public List<FormerIncomeBean> selectFormerIncomeList(String year);
public List<StatementPositionBean> selectStatementList(HashMap<String, Object> statementMap);
public List<FormerStatementPositionBean> selectFormerStatementList(String year);
public void insertIncomeStatement(IncomeStatementBean incomeStatementBean);
public void insertTotalIncome(TotalIncomeBean totalIncomeBean);
public void insertStatementPosition(StatementPositionBean statementPositionBean);
public void insertTotalStatement(TotalStatementBean totalStatementBean);
}

View File

@@ -0,0 +1,16 @@
package com.minhyuk.accounting.slip.dao;
import java.util.HashMap;
import java.util.List;
import com.minhyuk.accounting.slip.to.SlipBean;
public interface SlipDAO {
public List<SlipBean> selectSlipList(HashMap<String, Object> slipmap);
public void insertSlip(SlipBean slipBean);
public void updateSlip(SlipBean slipBean);
public void deleteSlip(SlipBean slipBean);
}

View File

@@ -0,0 +1,125 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.minhyuk.accounting.slip.dao.JournalDAO">
<resultMap id="resultJournal" type="journal">
<result property="journalNo" column="journal_no" />
<result property="slipNo" column="slip_no" />
<result property="accountCode" column="account_code" />
<result property="journalType" column="journal_type" />
<result property="customerCode" column="customer_code" />
<result property="accountName" column="account_name" />
<result property="journalReceipt" column="journal_receipt" />
<result property="customerName" column="customer_name" />
<result property="journalAmt" column="journal_amt" />
<result property="summaryCode" column="summary_code" />
<result property="summaryName" column="summary_name" />
<collection property="journalManagementBeanList" select="com.minhyuk.accounting.slip.dao.JournalManagementDAO.selectJournalManagementList"
column="{slipNo=slip_no, journalNo=journal_no}" />
</resultMap>
<!-- 분개장 빈이다. -->
<!--
<typeAlias alias="JournalListBean" type="to.slip.accounting.com.minhyuk.JournalListBean" />
<resultMap id="JournalListResult" class="JournalListBean">
<result property="journalNo" column="journal_no" />
<result property="slipNo" column="slip_no" />
<result property="slipSeq" column="slip_seq" />
<result property="journalType" column="journal_type" />
<result property="slipType" column="slip_type" />
<result property="slipStatus" column="slip_status" />
<result property="customerCode" column="customer_code" />
<result property="customerName" column="customer_name" />
<result property="accountCode" column="account_code" />
<result property="accountName" column="account_name" />
<result property="journalAmt" column="journal_amt" />
<result property="summaryName" column="summary_name" />
<result property="slipBallotDate" column="slip_ballot_date" />
<result property="debtor" column="debtor" />
<result property="creditor" column="creditor" />
</resultMap>
-->
<select id="selectJourList" resultMap="resultJournal" parameterType="String">
SELECT *
FROM journal
WHERE slip_no=#{slipNo}
</select>
<insert id="insertJournal">
INSERT
INTO journal
(
slip_no ,
journal_no,
account_code,
journal_type,
customer_code,
account_name,
journal_receipt,
customer_name,
journal_amt,
summary_code,
summary_name
)
VALUES
(
#{slipNo},
#{journalNo},
#{accountCode},
#{journalType},
#{customerCode},
#{accountName},
#{journalReceipt},
#{customerName},
#{journalAmt},
#{summaryCode},
#{summaryName}
)
</insert>
<update id="updateJournal">
UPDATE journal
SET journal_no = #{journalNo},
account_code = #{accountCode},
journal_type = #{journalType},
customer_code = #{customerCode},
account_name = #{accountName},
journal_receipt = #{journalReceipt},
customer_name = #{customerName},
journal_amt = #{journalAmt},
summary_code = #{summaryCode},
summary_name = #{summaryName},
WHERE slip_no = #{slipNo}
</update>
<delete id="deleteJournal">
delete from journal where slip_no = #{slipNo}
</delete>
<!-- 분개장 -->
<select id="selectJournalList" resultType="journalList" parameterType="hashmap">
SELECT slip_date
, slip_type
, journal_type
, account_code
, account_name
, journal_amt
, summary_name
, customer_code
, customer_name
, slip_status
, DECODE(journal_type,'차변',journal_amt) AS debtor
, DECODE(journal_type,'대변',journal_amt) AS creditor
FROM SLIP
JOIN JOURNAL USING(slip_no)
WHERE slip_date BETWEEN #{sDate} AND #{eDate}
<if test="deptName != null and deptName != '전체'">
AND slip_dept=#{deptName}
</if>
<if test="slipType != null and slipType != '전체'">
AND slip_type=#{slipType}
</if>
ORDER BY slip_no, journal_no
</select>
</mapper>

View File

@@ -0,0 +1,52 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.minhyuk.accounting.slip.dao.JournalManagementDAO">
<resultMap id="resultJournalManagement" type="JournalManagement">
<result property="journalNo" column="journal_no" />
<result property="slipNo" column="slip_no" />
<result property="managementCode" column="management_code" />
<result property="managementName" column="management_name" />
<result property="managementType" column="management_type" />
<result property="value" column="value" />
</resultMap>
<select id="selectJournalManagementList" resultMap="resultJournalManagement" parameterType="hashmap">
SELECT *
FROM journal_management join account_management_list
USING(management_code)
WHERE slip_no=#{slipNo}
AND journal_no=#{journalNo}
</select>
<insert id="insertJournalManagement">
INSERT
INTO journal_management
(
journal_no,
slip_no ,
management_code,
value
)
VALUES
(
#{journalNo},
#{slipNo},
#{managementCode},
#{value}
)
</insert>
<update id="updateJournalManagement">
UPDATE journal_management
SET value = #{value}
WHERE slip_no = #{slipNo}
AND journal_no = #{journalNo}
AND management_code = #{managementCode}
</update>
<delete id="deleteJournalManagement">
delete from journal_management where slip_no = #{slipNo} AND journal_no = #{journalNo}
</delete>
</mapper>

View File

@@ -0,0 +1,166 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.minhyuk.accounting.slip.dao.SettlementDAO">
<resultMap id="resultIncomeMap" type="incomeStatement">
<result property="accountCode" column="ACCOUNT_CODE"/>
<result property="parentAccount" column="PARENT_ACCOUNT"/>
<result property="accountName" column="ACCOUNT_NAME"/>
<result property="amt" column="AMT"/>
<result property="totalAmt" column="TOTAL_AMT"/>
<result property="incomeYear" column="income_year"/>
</resultMap>
<resultMap id="resultStatementMap" type="statementPosition">
<result property="accountCode" column="ACCOUNT_CODE"/>
<result property="parentAccount" column="PARENT_ACCOUNT"/>
<result property="accountName" column="ACCOUNT_NAME"/>
<result property="amt" column="AMT"/>
<result property="totalAmt" column="TOTAL_AMT"/>
<result property="statementYear" column="statement_year"/>
</resultMap>
<parameterMap id="incomeParameter" type="map">
<parameter property="sDate" mode="IN" jdbcType="VARCHAR"
javaType="String" />
<parameter property="eDate" mode="IN" jdbcType="VARCHAR"
javaType="String" />
<parameter property="errCode" mode="OUT" jdbcType="VARCHAR"
javaType="String" />
<parameter property="errMsg" mode="OUT" jdbcType="VARCHAR"
javaType="String" />
<parameter property="result" mode="OUT" resultMap="resultIncomeMap"
jdbcType="CURSOR" javaType="ResultSet"/>
</parameterMap>
<parameterMap id="statementParameter" type="map">
<parameter property="sDate" mode="IN" jdbcType="VARCHAR"
javaType="String" />
<parameter property="eDate" mode="IN" jdbcType="VARCHAR"
javaType="String" />
<parameter property="errCode" mode="OUT" jdbcType="VARCHAR"
javaType="String" />
<parameter property="errMsg" mode="OUT" jdbcType="VARCHAR"
javaType="String" />
<parameter property="result" mode="OUT" resultMap="resultStatementMap"
jdbcType="CURSOR" javaType="ResultSet" />
</parameterMap>
<select id="selectCreditorList" resultType="creditorBalance" parameterType="map">
SELECT distinct journal_type as journalType
, NVL(amt,0) amt
, a.account_code as accountCode
, a.account_name as accountName
FROM
(SELECT journal_type
, approval_date
, sum(journal_amt) over (partition BY account_code) AS amt
, account_Code
, account_name
FROM journal j
JOIN slip s
ON j.slip_no = s.slip_no
WHERE approval_date BETWEEN #{sDate} AND #{eDate}
AND journal_type='대변'
) x
RIGHT JOIN ACCOUNT a
ON x.account_code = a.account_code
order by accountCode
</select>
<select id="selectDebtorList" resultType="debtorBalance" parameterType="map">
SELECT distinct journal_type as journalType
, NVL(amt,0) amt
, a.account_code as accountCode
, a.account_name as accountName
FROM
(SELECT journal_type
, approval_date
, sum(journal_amt) over (partition BY account_code) AS amt
, account_Code
, account_name
FROM journal j
JOIN slip s
ON j.slip_no = s.slip_no
WHERE approval_date BETWEEN #{sDate} AND #{eDate}
AND journal_type='차변'
) x
RIGHT JOIN ACCOUNT a
ON x.account_code = a.account_code
order by accountCode
</select>
<select id="selectIncomeList" statementType="CALLABLE" parameterMap="incomeParameter">
{ call P_INCOME_STATEMENT(?,?,?,?,?) }
</select>
<select id="selectFormerIncomeList" resultType="formerIncome" parameterType="String">
SELECT account_code AS accountCode
, parent_account AS parentAccount
, account_name AS accountName
, NVL(amt,0) AS amt
, NVL(total_amt,0) AS totalAmt
, income_year AS incomeYear
FROM income_statement
WHERE income_year=#{year}
ORDER BY account_code
</select>
<select id="selectStatementList" statementType="CALLABLE" parameterMap="statementParameter">
{call P_STATEMENT_POSITION(?,?,?,?,?)}
</select>
<select id="selectFormerStatementList" resultType="formerStatementPosition" parameterType="String">
SELECT account_code AS accountCode
, parent_account AS parentAccount
, account_name AS accountName
, NVL(amt,0) AS amt
, NVL(total_amt,0) AS totalAmt
, statement_year AS statementYear
FROM statement_position
WHERE statement_year=#{year}
ORDER BY account_code
</select>
<insert id="insertIncomeStatement">
insert into income_statement values(
#{accountCode},
#{parentAccount},
#{accountName},
#{amt},
#{totalAmt},
#{incomeYear}
)
</insert>
<insert id="insertTotalIncome">
insert into total_income values(
#{incomeYear},
#{netProfit}
)
</insert>
<insert id="insertStatementPosition">
insert into statement_position values(
#{accountCode},
#{parentAccount},
#{accountName},
#{amt},
#{totalAmt},
#{statementYear}
)
</insert>
<insert id="insertTotalStatement">
insert into total_statement values(
#{statementYear},
#{assetTotal},
#{capitalTotal},
#{debtTotal}
)
</insert>
</mapper>

View File

@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.minhyuk.accounting.slip.dao.SlipDAO">
<resultMap id="resultSlip" type="slip">
<result property="slipNo" column="slip_no" />
<result property="empNo" column="emp_no" />
<result property="slipBallotNo" column="slip_ballot_no" />
<result property="slipSeq" column="slip_seq" />
<result property="slipDate" column="slip_date" />
<result property="slipContent" column="slip_content" />
<result property="slipStatus" column="slip_status" />
<result property="approver" column="approver" />
<result property="approvalDate" column="approval_date" />
<result property="differenceAmt" column="difference_amt" />
<result property="slipWorker" column="slip_worker" />
<result property="slipType" column="slip_type" />
<result property="slipDept" column="slip_dept" />
<collection property="journalBeanList" select="com.minhyuk.accounting.slip.dao.JournalDAO.selectJourList"
column="slip_no" />
</resultMap>
<select id="selectSlipList" resultMap="resultSlip" parameterType="map">
SELECT slip_no,
emp_no,
slip_ballot_no,
slip_seq,
slip_date,
slip_content,
slip_status,
approver,
approval_date,
difference_amt,
slip_worker,
slip_type,
slip_dept
FROM slip
WHERE SUBSTR(slip_no,1,8) between #{sDate} AND #{eDate}
<if test="deptName != null and deptName != '전체'">
AND slip_dept=#{deptName}
</if>
<if test="slipType != null and slipType != '전체'">
AND slip_type=#{slipType}
</if>
<if test="slipStatus != null and slipStatus != '전체'">
AND slip_status=#{slipStatus}
</if>
</select>
<!-- 전표 출력하는 쿼리이다. -->
<!--
<select id="printSlip" resultMap="SlipResult" parameterClass="map">
SELECT *
FROM slip s, journal j
WHERE s.slip_no=j.slip_no
AND SUBSTR(slip_no,1,8) between #sDate# AND #eDate#
<isNotEmpty property="deptName" prepend="AND">
s.slip_dept=#deptName#
</isNotEmpty>
</select>
-->
<insert id="insertSlip">
INSERT
INTO slip
(
slip_no,
emp_no,
slip_ballot_no,
slip_seq,
slip_date,
slip_content,
slip_status,
approver,
approval_date,
difference_amt,
slip_worker,
slip_type,
slip_dept
)
VALUES
(
#{slipNo},
#{empNo},
#{slipBallotNo},
slip_sequ.nextval,
#{slipDate},
#{slipContent},
#{slipStatus},
#{approver},
#{approvalDate},
#{differenceAmt},
#{slipWorker},
#{slipType},
#{slipDept}
)
</insert>
<update id="updateSlip">
UPDATE slip
SET emp_no = #{empNo},
slip_ballot_no = #{slipBallotNo},
slip_seq = #{slipSeq},
slip_date = #{slipDate},
slip_content = #{slipContent},
slip_status = #{slipStatus},
approver = #{approver},
approval_date = #{approvalDate},
difference_amt = #{differenceAmt},
slip_worker = #{slipWorker},
slip_type = #{slipType},
slip_dept = #{slipDept}
WHERE slip_no = #{slipNo}
</update>
<delete id="deleteSlip">
delete from slip where slip_no = #{slipNo}
</delete>
</mapper>

View File

@@ -0,0 +1,34 @@
package com.minhyuk.accounting.slip.service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.minhyuk.accounting.slip.to.CreditorBalanceBean;
import com.minhyuk.accounting.slip.to.DebtorBalanceBean;
import com.minhyuk.accounting.slip.to.FormerIncomeBean;
import com.minhyuk.accounting.slip.to.FormerStatementPositionBean;
import com.minhyuk.accounting.slip.to.IncomeStatementBean;
import com.minhyuk.accounting.slip.to.JournalListBean;
import com.minhyuk.accounting.slip.to.SlipBean;
import com.minhyuk.accounting.slip.to.StatementPositionBean;
public interface SlipServiceFacade {
public List<SlipBean> getSlipList(HashMap<String, Object> slipMap);
public <T> void batchSlipList(Map<String, Object> batchSlipList);
public List<CreditorBalanceBean> getCreditorList(HashMap<String, Object> creditorMap);
public List<DebtorBalanceBean> getDebtorList(HashMap<String, Object> debtorMap);
public List<IncomeStatementBean> getIncomeList(HashMap<String, Object> incomeMap);
public List<FormerIncomeBean> getFormerIncomeList(String year);
public List<StatementPositionBean> getStatementList(HashMap<String, Object> statementMap);
public List<FormerStatementPositionBean> getFormerStatementList(String year);
public <T> void batchIncomeList(Map<String, Object> batchIncomeMap);
public <T> void batchStatementPositionList(Map<String, Object> batchStatementMap);
public List<JournalListBean> getJournalList(HashMap<String, Object> journalListMap);
}

View File

@@ -0,0 +1,80 @@
package com.minhyuk.accounting.slip.service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.minhyuk.accounting.slip.as.SlipApplicationService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.minhyuk.accounting.slip.to.CreditorBalanceBean;
import com.minhyuk.accounting.slip.to.DebtorBalanceBean;
import com.minhyuk.accounting.slip.to.FormerIncomeBean;
import com.minhyuk.accounting.slip.to.FormerStatementPositionBean;
import com.minhyuk.accounting.slip.to.IncomeStatementBean;
import com.minhyuk.accounting.slip.to.JournalListBean;
import com.minhyuk.accounting.slip.to.SlipBean;
import com.minhyuk.accounting.slip.to.StatementPositionBean;
@Service
public class SlipServiceFacadeImpl implements SlipServiceFacade {
@Autowired
SlipApplicationService slipApplicationService;
@Override
public List<SlipBean> getSlipList(HashMap<String, Object> slipMap) {
return slipApplicationService.getSlipList(slipMap);
}
@Override
public List<CreditorBalanceBean> getCreditorList(HashMap<String, Object> creditorMap) {
return slipApplicationService.getCreditorList(creditorMap);
}
@Override
public List<DebtorBalanceBean> getDebtorList(HashMap<String, Object> debtorMap) {
return slipApplicationService.getDebtorList(debtorMap);
}
@Override
public List<IncomeStatementBean> getIncomeList(HashMap<String, Object> incomeMap) {
return slipApplicationService.getIncomeList(incomeMap);
}
@Override
public List<FormerIncomeBean> getFormerIncomeList(String year) {
return slipApplicationService.getFormerIncomeList(year);
}
@Override
public List<StatementPositionBean> getStatementList(HashMap<String, Object> statementMap) {
return slipApplicationService.getStatementList(statementMap);
}
@Override
public List<FormerStatementPositionBean> getFormerStatementList(String year) {
return slipApplicationService.getFormerStatementList(year);
}
@Override
public <T> void batchSlipList(Map<String, Object> batchSlipList) {
slipApplicationService.batchSlipList(batchSlipList);
}
@Override
public <T> void batchIncomeList(Map<String, Object> batchIncomeMap) {
slipApplicationService.batchIncomeList(batchIncomeMap);
}
@Override
public <T> void batchStatementPositionList(Map<String, Object> batchStatementMap) {
slipApplicationService.batchStatementPositionList(batchStatementMap);
}
@Override
public List<JournalListBean> getJournalList(HashMap<String, Object> journalListMap) {
return slipApplicationService.getJournalList(journalListMap);
}
}

View File

@@ -0,0 +1,42 @@
package com.minhyuk.accounting.slip.to;
import com.minhyuk.common.annotation.Dataset;
import com.minhyuk.common.to.BaseBean;
@Dataset(name="dsTotalCreditor")
public class CreditorBalanceBean extends BaseBean{
private String accountCode, accountName, journalType, amt;
public String getAccountCode() {
return accountCode;
}
public void setAccountCode(String accountCode) {
this.accountCode = accountCode;
}
public String getAccountName() {
return accountName;
}
public void setAccountName(String accountName) {
this.accountName = accountName;
}
public String getJournalType() {
return journalType;
}
public void setJournalType(String journalType) {
this.journalType = journalType;
}
public String getAmt() {
return amt;
}
public void setAmt(String amt) {
this.amt = amt;
}
}

View File

@@ -0,0 +1,42 @@
package com.minhyuk.accounting.slip.to;
import com.minhyuk.common.annotation.Dataset;
import com.minhyuk.common.to.BaseBean;
@Dataset(name="dsTotalDebtor")
public class DebtorBalanceBean extends BaseBean{
private String accountCode, accountName, journalType, amt;
public String getAccountCode() {
return accountCode;
}
public void setAccountCode(String accountCode) {
this.accountCode = accountCode;
}
public String getAccountName() {
return accountName;
}
public void setAccountName(String accountName) {
this.accountName = accountName;
}
public String getJournalType() {
return journalType;
}
public void setJournalType(String journalType) {
this.journalType = journalType;
}
public String getAmt() {
return amt;
}
public void setAmt(String amt) {
this.amt = amt;
}
}

View File

@@ -0,0 +1,59 @@
package com.minhyuk.accounting.slip.to;
import com.minhyuk.common.annotation.Dataset;
import com.minhyuk.common.to.BaseBean;
@Dataset(name="dsFormerIncome")
public class FormerIncomeBean extends BaseBean{
private String accountCode, parentAccount, accountName, amt, totalAmt,
incomeYear;
public String getIncomeYear() {
return incomeYear;
}
public void setIncomeYear(String incomeYear) {
this.incomeYear = incomeYear;
}
public String getAccountCode() {
return accountCode;
}
public void setAccountCode(String accountCode) {
this.accountCode = accountCode;
}
public String getParentAccount() {
return parentAccount;
}
public void setParentAccount(String parentAccount) {
this.parentAccount = parentAccount;
}
public String getAccountName() {
return accountName;
}
public void setAccountName(String accountName) {
this.accountName = accountName;
}
public String getAmt() {
return amt;
}
public void setAmt(String amt) {
this.amt = amt;
}
public String getTotalAmt() {
return totalAmt;
}
public void setTotalAmt(String totalAmt) {
this.totalAmt = totalAmt;
}
}

View File

@@ -0,0 +1,60 @@
package com.minhyuk.accounting.slip.to;
import com.minhyuk.common.annotation.Dataset;
import com.minhyuk.common.to.BaseBean;
@Dataset(name="dsFormerStatementPosition")
public class FormerStatementPositionBean extends BaseBean{
private String accountCode, parentAccount, accountName, amt, totalAmt,
statementYear;
public String getStatementYear() {
return statementYear;
}
public void setStatementYear(String statementYear) {
this.statementYear = statementYear;
}
public String getAccountCode() {
return accountCode;
}
public void setAccountCode(String accountCode) {
this.accountCode = accountCode;
}
public String getParentAccount() {
return parentAccount;
}
public void setParentAccount(String parentAccount) {
this.parentAccount = parentAccount;
}
public String getAccountName() {
return accountName;
}
public void setAccountName(String accountName) {
this.accountName = accountName;
}
public String getAmt() {
return amt;
}
public void setAmt(String amt) {
this.amt = amt;
}
public String getTotalAmt() {
return totalAmt;
}
public void setTotalAmt(String totalAmt) {
this.totalAmt = totalAmt;
}
}

View File

@@ -0,0 +1,59 @@
package com.minhyuk.accounting.slip.to;
import com.minhyuk.common.annotation.Dataset;
import com.minhyuk.common.to.BaseBean;
@Dataset(name="dsIncomeStatement")
public class IncomeStatementBean extends BaseBean{
private String accountCode, parentAccount, accountName, amt, totalAmt,
incomeYear;
public String getIncomeYear() {
return incomeYear;
}
public void setIncomeYear(String incomeYear) {
this.incomeYear = incomeYear;
}
public String getAccountCode() {
return accountCode;
}
public void setAccountCode(String accountCode) {
this.accountCode = accountCode;
}
public String getParentAccount() {
return parentAccount;
}
public void setParentAccount(String parentAccount) {
this.parentAccount = parentAccount;
}
public String getAccountName() {
return accountName;
}
public void setAccountName(String accountName) {
this.accountName = accountName;
}
public String getAmt() {
return amt;
}
public void setAmt(String amt) {
this.amt = amt;
}
public String getTotalAmt() {
return totalAmt;
}
public void setTotalAmt(String totalAmt) {
this.totalAmt = totalAmt;
}
}

View File

@@ -0,0 +1,113 @@
package com.minhyuk.accounting.slip.to;
import java.util.List;
import com.minhyuk.common.annotation.Dataset;
import com.minhyuk.common.annotation.Remove;
import com.minhyuk.common.to.BaseBean;
@Dataset(name = "dsJournal")
public class JournalBean extends BaseBean {
private String journalNo, slipNo, accountCode, journalType, customerCode, accountName, journalReceipt,
customerName, journalAmt, summaryCode, summaryName;
private List<JournalManagementBean> journalManagementBeanList;
@Remove
public List<JournalManagementBean> getJournalManagementBeanList() {
return journalManagementBeanList;
}
@Remove
public void setJournalManagementBeanList(List<JournalManagementBean> journalManagementBeanList) {
this.journalManagementBeanList = journalManagementBeanList;
}
public String getJournalNo() {
return journalNo;
}
public void setJournalNo(String journalNo) {
this.journalNo = journalNo;
}
public String getSlipNo() {
return slipNo;
}
public void setSlipNo(String slipNo) {
this.slipNo = slipNo;
}
public String getAccountCode() {
return accountCode;
}
public void setAccountCode(String accountCode) {
this.accountCode = accountCode;
}
public String getJournalType() {
return journalType;
}
public void setJournalType(String journalType) {
this.journalType = journalType;
}
public String getCustomerCode() {
return customerCode;
}
public void setCustomerCode(String customerCode) {
this.customerCode = customerCode;
}
public String getAccountName() {
return accountName;
}
public void setAccountName(String accountName) {
this.accountName = accountName;
}
public String getJournalReceipt() {
return journalReceipt;
}
public void setJournalReceipt(String journalReceipt) {
this.journalReceipt = journalReceipt;
}
public String getCustomerName() {
return customerName;
}
public void setCustomerName(String customerName) {
this.customerName = customerName;
}
public String getJournalAmt() {
return journalAmt;
}
public void setJournalAmt(String journalAmt) {
this.journalAmt = journalAmt;
}
public String getSummaryCode() {
return summaryCode;
}
public void setSummaryCode(String summaryCode) {
this.summaryCode = summaryCode;
}
public String getSummaryName() {
return summaryName;
}
public void setSummaryName(String summaryName) {
this.summaryName = summaryName;
}
}

View File

@@ -0,0 +1,109 @@
package com.minhyuk.accounting.slip.to;
import com.minhyuk.common.annotation.Dataset;
import com.minhyuk.common.to.BaseBean;
@Dataset(name = "dsJournalList")
public class JournalListBean extends BaseBean {
private String slipDate, journalType, accountCode, accountName, journalAmt,
summaryName, customerCode, customerName, debtor, creditor, slipType, slipStatus;
public String getDebtor() {
return debtor;
}
public void setDebtor(String debtor) {
this.debtor = debtor;
}
public String getCreditor() {
return creditor;
}
public void setCreditor(String creditor) {
this.creditor = creditor;
}
public String getSlipDate() {
return slipDate;
}
public void setSlipDate(String slipDate) {
this.slipDate = slipDate;
}
public String getSlipType() {
return slipType;
}
public void setSlipType(String slipType) {
this.slipType = slipType;
}
public String getSlipStatus() {
return slipStatus;
}
public void setSlipStatus(String slipStatus) {
this.slipStatus = slipStatus;
}
public String getJournalType() {
return journalType;
}
public void setJournalType(String journalType) {
this.journalType = journalType;
}
public String getAccountCode() {
return accountCode;
}
public void setAccountCode(String accountCode) {
this.accountCode = accountCode;
}
public String getAccountName() {
return accountName;
}
public void setAccountName(String accountName) {
this.accountName = accountName;
}
public String getJournalAmt() {
return journalAmt;
}
public void setJournalAmt(String journalAmt) {
this.journalAmt = journalAmt;
}
public String getSummaryName() {
return summaryName;
}
public void setSummaryName(String summaryName) {
this.summaryName = summaryName;
}
public String getCustomerCode() {
return customerCode;
}
public void setCustomerCode(String customerCode) {
this.customerCode = customerCode;
}
public String getCustomerName() {
return customerName;
}
public void setCustomerName(String customerName) {
this.customerName = customerName;
}
}

View File

@@ -0,0 +1,58 @@
package com.minhyuk.accounting.slip.to;
import com.minhyuk.common.annotation.Dataset;
import com.minhyuk.common.to.BaseBean;
@Dataset(name = "dsJournalManagement")
public class JournalManagementBean extends BaseBean {
private String journalNo, slipNo, managementCode, value, managementName, managementType;
public String getManagementCode() {
return managementCode;
}
public void setManagementCode(String managementCode) {
this.managementCode = managementCode;
}
public String getManagementName() {
return managementName;
}
public void setManagementName(String managementName) {
this.managementName = managementName;
}
public String getManagementType() {
return managementType;
}
public void setManagementType(String managementType) {
this.managementType = managementType;
}
public String getJournalNo() {
return journalNo;
}
public void setJournalNo(String journalNo) {
this.journalNo = journalNo;
}
public String getSlipNo() {
return slipNo;
}
public void setSlipNo(String slipNo) {
this.slipNo = slipNo;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}

View File

@@ -0,0 +1,131 @@
package com.minhyuk.accounting.slip.to;
import java.util.List;
import com.minhyuk.common.annotation.Dataset;
import com.minhyuk.common.annotation.Remove;
import com.minhyuk.common.to.BaseBean;
@Dataset(name="dsSlip")
public class SlipBean extends BaseBean{
private String slipNo, empNo, slipBallotNo, slipSeq, slipDate, slipContent, slipStatus, approver,
approvalDate, differenceAmt, slipWorker, slipType, slipDept;
private List<JournalBean> journalBeanList;
@Remove
public List<JournalBean> getJournalBeanList() {
return journalBeanList;
}
@Remove
public void setJournalBeanList(List<JournalBean> journalBeanList) {
this.journalBeanList = journalBeanList;
}
public String getSlipNo() {
return slipNo;
}
public void setSlipNo(String slipNo) {
this.slipNo = slipNo;
}
public String getEmpNo() {
return empNo;
}
public void setEmpNo(String empNo) {
this.empNo = empNo;
}
public String getSlipBallotNo() {
return slipBallotNo;
}
public void setSlipBallotNo(String slipBallotNo) {
this.slipBallotNo = slipBallotNo;
}
//@Remove
public String getSlipSeq() {
return slipSeq;
}
//@Remove
public void setSlipSeq(String slipSeq) {
this.slipSeq = slipSeq;
}
public String getSlipDate() {
return slipDate;
}
public void setSlipDate(String slipDate) {
this.slipDate = slipDate;
}
public String getSlipContent() {
return slipContent;
}
public void setSlipContent(String slipContent) {
this.slipContent = slipContent;
}
public String getSlipStatus() {
return slipStatus;
}
public void setSlipStatus(String slipStatus) {
this.slipStatus = slipStatus;
}
public String getApprover() {
return approver;
}
public void setApprover(String approver) {
this.approver = approver;
}
public String getApprovalDate() {
return approvalDate;
}
public void setApprovalDate(String approvalDate) {
this.approvalDate = approvalDate;
}
public String getDifferenceAmt() {
return differenceAmt;
}
public void setDifferenceAmt(String differenceAmt) {
this.differenceAmt = differenceAmt;
}
public String getSlipWorker() {
return slipWorker;
}
public void setSlipWorker(String slipWorker) {
this.slipWorker = slipWorker;
}
public String getSlipType() {
return slipType;
}
public void setSlipType(String slipType) {
this.slipType = slipType;
}
public String getSlipDept() {
return slipDept;
}
public void setSlipDept(String slipDept) {
this.slipDept = slipDept;
}
}

View File

@@ -0,0 +1,60 @@
package com.minhyuk.accounting.slip.to;
import com.minhyuk.common.annotation.Dataset;
import com.minhyuk.common.to.BaseBean;
@Dataset(name="dsStatementPosition")
public class StatementPositionBean extends BaseBean{
private String accountCode, parentAccount, accountName, amt, totalAmt,
statementYear;
public String getStatementYear() {
return statementYear;
}
public void setStatementYear(String statementYear) {
this.statementYear = statementYear;
}
public String getAccountCode() {
return accountCode;
}
public void setAccountCode(String accountCode) {
this.accountCode = accountCode;
}
public String getParentAccount() {
return parentAccount;
}
public void setParentAccount(String parentAccount) {
this.parentAccount = parentAccount;
}
public String getAccountName() {
return accountName;
}
public void setAccountName(String accountName) {
this.accountName = accountName;
}
public String getAmt() {
return amt;
}
public void setAmt(String amt) {
this.amt = amt;
}
public String getTotalAmt() {
return totalAmt;
}
public void setTotalAmt(String totalAmt) {
this.totalAmt = totalAmt;
}
}

View File

@@ -0,0 +1,27 @@
package com.minhyuk.accounting.slip.to;
import com.minhyuk.common.annotation.Dataset;
import com.minhyuk.common.to.BaseBean;
@Dataset(name="dsTotalIncome")
public class TotalIncomeBean extends BaseBean{
private String incomeYear, netProfit;
public String getIncomeYear() {
return incomeYear;
}
public void setIncomeYear(String incomeYear) {
this.incomeYear = incomeYear;
}
public String getNetProfit() {
return netProfit;
}
public void setNetProfit(String netProfit) {
this.netProfit = netProfit;
}
}

View File

@@ -0,0 +1,43 @@
package com.minhyuk.accounting.slip.to;
import com.minhyuk.common.annotation.Dataset;
import com.minhyuk.common.to.BaseBean;
@Dataset(name="dsTotalStatement")
public class TotalStatementBean extends BaseBean{
private String statementYear, assetTotal, capitalTotal, debtTotal;
public String getStatementYear() {
return statementYear;
}
public void setStatementYear(String statementYear) {
this.statementYear = statementYear;
}
public String getAssetTotal() {
return assetTotal;
}
public void setAssetTotal(String assetTotal) {
this.assetTotal = assetTotal;
}
public String getCapitalTotal() {
return capitalTotal;
}
public void setCapitalTotal(String capitalTotal) {
this.capitalTotal = capitalTotal;
}
public String getDebtTotal() {
return debtTotal;
}
public void setDebtTotal(String debtTotal) {
this.debtTotal = debtTotal;
}
}

View File

@@ -0,0 +1,33 @@
package com.minhyuk.base.as;
import java.util.List;
import java.util.Map;
import com.minhyuk.base.to.AddressBean;
import com.minhyuk.base.to.CodeBean;
import com.minhyuk.base.to.DetailCodeBean;
import com.minhyuk.base.to.EmpPermissionBean;
import com.minhyuk.base.to.MenuBean;
import com.minhyuk.base.to.PermissionBean;
import com.minhyuk.base.to.SidoBean;
import com.minhyuk.base.to.SigunguBean;
public interface BaseApplicationService {
public List<MenuBean> getMenuList();
public List<CodeBean> getCodeList();
public List<PermissionBean> getPermission();
public List<EmpPermissionBean> getEmpPermission();
public List<SidoBean> getSido();
public List<SigunguBean> getSiGunGuList(String sido);
public List<AddressBean> getAddrList(Map<String, Object> addrList);
public void batchCodeList(List<DetailCodeBean> codeList);
public List<PermissionBean> getPermissionList(String permissionCode);
public void batchPermission(Map<String, Object> batchPerList);
}

View File

@@ -0,0 +1,111 @@
package com.minhyuk.base.as;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.minhyuk.base.dao.CodeDAO;
import com.minhyuk.base.dao.DetailCodeDAO;
import com.minhyuk.base.dao.MenuDAO;
import com.minhyuk.base.dao.PermissionDAO;
import com.minhyuk.base.dao.PostDAO;
import com.minhyuk.base.to.AddressBean;
import com.minhyuk.base.to.CodeBean;
import com.minhyuk.base.to.DetailCodeBean;
import com.minhyuk.base.to.EmpPermissionBean;
import com.minhyuk.base.to.MenuBean;
import com.minhyuk.base.to.PermissionBean;
import com.minhyuk.base.to.SidoBean;
import com.minhyuk.base.to.SigunguBean;
@Component
public class BaseApplicationServiceImpl implements BaseApplicationService {
@Autowired
MenuDAO menuDAO;
@Autowired
CodeDAO codeDAO;
@Autowired
DetailCodeDAO detailCodeDAO;
@Autowired
PermissionDAO permissionDAO;
@Autowired
PostDAO postDAO;
@Override
public List<MenuBean> getMenuList() {
return menuDAO.selectMenuList();
}
@Override
public List<CodeBean> getCodeList() {
return codeDAO.selectCodeList();
}
@Override
public List<PermissionBean> getPermission() {
return permissionDAO.selectPermission();
}
@Override
public List<EmpPermissionBean> getEmpPermission() {
return permissionDAO.selectEmpPermission();
}
@Override
public List<SidoBean> getSido() {
return postDAO.selectSido();
}
@Override
public List<SigunguBean> getSiGunGuList(String sido) {
return postDAO.selectSiGunGuList(sido);
}
@Override
public List<AddressBean> getAddrList(Map<String, Object> addrList) {
return postDAO.selectAddrList(addrList);
}
@Override
public void batchCodeList(List<DetailCodeBean> codeList) {
for (DetailCodeBean detailCodeBean : codeList) {
if(detailCodeBean.getStatus().equals("inserted")){
detailCodeDAO.insertDetailCode(detailCodeBean);
}else if(detailCodeBean.getStatus().equals("updated")){
detailCodeDAO.updateDetailCode(detailCodeBean);
}else{
detailCodeDAO.deleteDetailCode(detailCodeBean);
}
}
}
@Override
public List<PermissionBean> getPermissionList(String permissionCode) {
return permissionDAO.selectPermissionList(permissionCode);
}
@SuppressWarnings("unchecked")
@Override
public void batchPermission(Map<String, Object> batchPerList) {
List<PermissionBean> permissionList = (List<PermissionBean>) batchPerList.get("permissionList");
List<EmpPermissionBean> empPermissionList = (List<EmpPermissionBean>) batchPerList.get("empPermissionList");
for(PermissionBean permissionBean:permissionList){
if(permissionBean.getStatus().equals("inserted")){
permissionDAO.insertPermission(permissionBean);
}else{
permissionDAO.deletePermission(permissionBean);
}
}
for(EmpPermissionBean empPerBean:empPermissionList){
if(empPerBean.getStatus().equals("inserted")){
permissionDAO.insertEmpPermission(empPerBean);
}else{
permissionDAO.deleteEmpPermission(empPerBean);
}
}
}
}

View File

@@ -0,0 +1,52 @@
package com.minhyuk.base.controller;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.minhyuk.common.mapper.DatasetBeanMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.nexacro.xapi.data.PlatformData;
import com.minhyuk.base.service.BaseServiceFacade;
import com.minhyuk.base.to.CodeBean;
import com.minhyuk.base.to.DetailCodeBean;
@Controller
public class CodeController{
@Autowired
private BaseServiceFacade baseServiceFacade;
@Autowired
private DatasetBeanMapper datasetBeanMapper;
@RequestMapping("base/getCodeList.do")
public void getCodeList(HttpServletRequest request, HttpServletResponse response) throws Exception{
PlatformData outData = (PlatformData) request.getAttribute("outData");
List<CodeBean> codeList=baseServiceFacade.getCodeList();
List<DetailCodeBean> detailCodeList=new ArrayList<>();
for(CodeBean codeBean : codeList){
List<DetailCodeBean> detailCodeBeanList=codeBean.getDetailCodeBeanList();
detailCodeList.addAll(detailCodeBeanList);
}
datasetBeanMapper.beansToDataset(outData, codeList, CodeBean.class);
datasetBeanMapper.beansToDataset(outData, detailCodeList, DetailCodeBean.class);
}
@RequestMapping("base/batchCodeList.do")
public void batchCodeList(HttpServletRequest request, HttpServletResponse response) throws Exception{
PlatformData inData = (PlatformData) request.getAttribute("inData");
List<DetailCodeBean> codeList = datasetBeanMapper.datasetToBeans(inData, DetailCodeBean.class);
baseServiceFacade.batchCodeList(codeList);
}
}

View File

@@ -0,0 +1,33 @@
package com.minhyuk.base.controller;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.minhyuk.base.service.BaseServiceFacade;
import com.minhyuk.common.mapper.DatasetBeanMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.nexacro.xapi.data.PlatformData;
import com.minhyuk.base.to.MenuBean;
@Controller
public class MenuController{
@Autowired
private BaseServiceFacade baseServiceFacade;
@Autowired
private DatasetBeanMapper datasetBeanMapper;
@RequestMapping("base/getMenuList.do")
public void getMenuList(HttpServletRequest request, HttpServletResponse response) throws Exception{
PlatformData outData = (PlatformData) request.getAttribute("outData");
List<MenuBean> menuList=baseServiceFacade.getMenuList();
datasetBeanMapper.beansToDataset(outData, menuList, MenuBean.class);
}
}

View File

@@ -0,0 +1,80 @@
package com.minhyuk.base.controller;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.minhyuk.common.mapper.DatasetBeanMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.nexacro.xapi.data.PlatformData;
import com.minhyuk.base.service.BaseServiceFacade;
import com.minhyuk.base.to.EmpPermissionBean;
import com.minhyuk.base.to.PermissionBean;
@Controller
public class PermissionController{
@Autowired
private BaseServiceFacade baseServiceFacade;
@Autowired
private DatasetBeanMapper datasetBeanMapper;
@RequestMapping("base/getPermission.do")
public void getPermission(HttpServletRequest request,HttpServletResponse response) throws Exception{
PlatformData outData = (PlatformData)request.getAttribute("outData");
List<PermissionBean> permissionList=baseServiceFacade.getPermission();
datasetBeanMapper.beansToDataset(outData, permissionList, PermissionBean.class);
//System.out.println("permissionList: "+outData.toString());
}
@RequestMapping("base/getEmpPermission.do")
public void getEmpPermission(HttpServletRequest request,HttpServletResponse response) throws Exception{
PlatformData outData = (PlatformData)request.getAttribute("outData");
List<EmpPermissionBean> empPermission=baseServiceFacade.getEmpPermission();
datasetBeanMapper.beansToDataset(outData, empPermission, EmpPermissionBean.class);
}
@RequestMapping("base/getPermissionList.do")
public void getPermissionList(HttpServletRequest request,HttpServletResponse response) throws Exception{
PlatformData inData = (PlatformData)request.getAttribute("inData");
PlatformData outData = (PlatformData)request.getAttribute("outData");
String permissionCode = inData.getVariable("permission").getString();
List<PermissionBean> permissionList=baseServiceFacade.getPermissionList(permissionCode);
datasetBeanMapper.beansToDataset(outData, permissionList, PermissionBean.class);
//System.out.println("permissionList: "+outData.toString());
}
@RequestMapping("base/batchPermission.do")
public void batchPermission(HttpServletRequest request,HttpServletResponse response) throws Exception{
PlatformData inData = (PlatformData)request.getAttribute("inData");
List<PermissionBean> permissionList=datasetBeanMapper.datasetToBeans(inData, PermissionBean.class);
List<EmpPermissionBean> empPermissionList=datasetBeanMapper.datasetToBeans(inData, EmpPermissionBean.class);
System.out.println(" ----------------------- "+inData.toString());
Map<String, Object> batchPerList = new HashMap<>();
batchPerList.put("permissionList", permissionList);
batchPerList.put("empPermissionList", empPermissionList);
baseServiceFacade.batchPermission(batchPerList);
}
}

View File

@@ -0,0 +1,68 @@
package com.minhyuk.base.controller;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.minhyuk.base.service.BaseServiceFacade;
import com.minhyuk.common.mapper.DatasetBeanMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.nexacro.xapi.data.PlatformData;
import com.minhyuk.base.to.AddressBean;
import com.minhyuk.base.to.SidoBean;
import com.minhyuk.base.to.SigunguBean;
@Controller
public class PostController{
@Autowired
private BaseServiceFacade baseServiceFacade;
@Autowired
private DatasetBeanMapper datasetBeanMapper;
@RequestMapping("base/getSido.do")
public void getSido(HttpServletRequest request,HttpServletResponse response) throws Exception{
PlatformData outData = (PlatformData)request.getAttribute("outData");
List<SidoBean> sidoList=baseServiceFacade.getSido();
datasetBeanMapper.beansToDataset(outData, sidoList, SidoBean.class);
}
@RequestMapping("base/getSiGunGuList.do")
public void getSiGunGuList(HttpServletRequest request,HttpServletResponse response) throws Exception{
PlatformData inData = (PlatformData)request.getAttribute("inData");
PlatformData outData = (PlatformData)request.getAttribute("outData");
String sido = inData.getVariable("sido").getString();
List<SigunguBean> sigunguList=baseServiceFacade.getSiGunGuList(sido);
datasetBeanMapper.beansToDataset(outData, sigunguList, SigunguBean.class);
}
@RequestMapping("base/getAddrList.do")
public void getAddrList(HttpServletRequest request,HttpServletResponse response) throws Exception{
PlatformData inData = (PlatformData)request.getAttribute("inData");
PlatformData outData = (PlatformData)request.getAttribute("outData");
String sido = inData.getVariable("sido").getString();
String sigungu = inData.getVariable("sigungu").getString();
String roadName = inData.getVariable("roadName").getString();
Map<String, Object> addrList=new HashMap<>();
addrList.put("sido", sido);
addrList.put("sigungu", sigungu);
addrList.put("roadName", roadName);
List<AddressBean> addressList=baseServiceFacade.getAddrList(addrList);
datasetBeanMapper.beansToDataset(outData, addressList, AddressBean.class);
}
}

View File

@@ -0,0 +1,11 @@
package com.minhyuk.base.dao;
import java.util.List;
import com.minhyuk.base.to.CodeBean;
public interface CodeDAO {
public List<CodeBean> selectCodeList();
}

View File

@@ -0,0 +1,15 @@
package com.minhyuk.base.dao;
import java.util.List;
import com.minhyuk.base.to.DetailCodeBean;
public interface DetailCodeDAO {
public List<DetailCodeBean> selectDetailCodeList();
public void insertDetailCode(DetailCodeBean detailCodeBean);
public void updateDetailCode(DetailCodeBean detailCodeBean);
public void deleteDetailCode(DetailCodeBean detailCodeBean);
}

View File

@@ -0,0 +1,9 @@
package com.minhyuk.base.dao;
import java.util.List;
import com.minhyuk.base.to.MenuBean;
public interface MenuDAO {
List<MenuBean> selectMenuList();
}

View File

@@ -0,0 +1,22 @@
package com.minhyuk.base.dao;
import java.util.List;
import com.minhyuk.base.to.EmpPermissionBean;
import com.minhyuk.base.to.PermissionBean;
public interface PermissionDAO {
public List<PermissionBean> selectPermission();
public List<EmpPermissionBean> selectEmpPermission();
public List<PermissionBean> selectPermissionList(String permissionCode);
public void insertPermission(PermissionBean permissionBean);
public void deletePermission(PermissionBean permissionBean);
public void insertEmpPermission(EmpPermissionBean empPermissionBean);
public void deleteEmpPermission(EmpPermissionBean empPermissionBean);
}

View File

@@ -0,0 +1,16 @@
package com.minhyuk.base.dao;
import java.util.List;
import java.util.Map;
import com.minhyuk.base.to.AddressBean;
import com.minhyuk.base.to.SidoBean;
import com.minhyuk.base.to.SigunguBean;
public interface PostDAO {
public List<SidoBean> selectSido();
public List<SigunguBean> selectSiGunGuList(String sido);
public List<AddressBean> selectAddrList(Map<String, Object> addrList);
}

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.minhyuk.base.dao.CodeDAO">
<resultMap type="code" id="resultCode">
<result property="distinctionCode" column="distinction_code" />
<result property="codeName" column="code_name" />
<result property="codeUse" column="code_use" />
<collection property="detailCodeBeanList" select="com.minhyuk.base.dao.DetailCodeDAO.selectDetailCodeList"
column="distinction_code" javaType="list"/>
</resultMap>
<select id="selectCodeList" resultMap="resultCode">
select *
from code
</select>
</mapper>

Some files were not shown because too many files have changed in this diff Show More