오랜만에 교육생 입장에서 강의 받아보니 정말 학생 된 기분이다. ^^
아무 의심 하지 않고 그대로 정리 한다.
프로그램을 설치 하면 자신의 유저 경로 밑에 application data 에 깔린다.
경로 바꾸지 말라
Vista의 Rule
PID실행 -> 위젯 변경하는 거 보여줌
개발 예제 시작
1. 프로젝트 있어야 한다. - a
1.1 application group 이 있다. - b
1.1.1. 화면, xml 만든다. - c화면
Tools>project manager > new Project
프로젝트 를 만들었으면 프로젝트 위에서 더블클릭 > application group 이 만들어짐
<두번째 시간 >
c.xml 을 열어 보면
<?xml version="1.0" encoding="utf-8"?>
<Window>
<Form Height="600" Id="c" Left="8" PidAttrib="7" Title="New Form" Top="8" Ver="1.0" Width="800" WorkArea="true">
<Edit Height="86" Id="Edit0" Left="39" TabOrder="1" Text="Edit0" Top="16" Width="137"></Edit>
<Button Height="87" Id="Button0" Left="196" OnClick="Button0_OnClick" TabOrder="2" Text="Button0" Top="16" Width="178"></Button>
</Form>
<Script></Script>
</Window>
라고 작성 되어 있음
a_ci_main_Win32 의 startXml 이 저장되어 있다.
<AppGroups>
<AppGroup CodePage="utf-8" Language="0" Prefix="b" Type="Form" Version="1.0">
<script Baseurl="C:\a\b\" CacheLevel="none" Ext="xml"/>
</AppGroup>
</AppGroups>
의 정보가 있다.
c.xml 을 복사해서 새로 붙여 넣기 하면 새로운 화면을 인식하게 된다. ( 새로고침 했을 때 )
그러나 app group 를 복사해서 붙여 넣어도 startXml 에 app group 로 지정되어있지 않으므로 인식되지 않는다.
<AppGroups>
<AppGroup CodePage="utf-8" Language="0" Prefix="b" Type="Form" Version="1.0">
<script Baseurl="C:\a\b\" CacheLevel="none" Ext="xml"/>
</AppGroup>
<AppGroup CodePage="utf-8" Language="0" Prefix="d" Type="Form" Version="1.0">
<script Baseurl="C:\a\d\" CacheLevel="none" Ext="xml"/>
</AppGroup>
</AppGroups>
이렇게 수정하고 project 를 file>close project 하고 open project 하면 새롭게 인식되는 것을 볼 수 있다.
삭제시에는 close project 를 먼저 하고 툴에서 project manager 에서 지워준다. 그러나 리스트에서만 삭제가 되고 소스는 삭제가 되지 않는다.
소스도 지우고 싶다면 운영체제에서 폴더를 지운다.
생성 삭제 해 봤으니 추가를 해 보겠다.
C:\Documents and Settings\TOBE_EDU19\바탕 화면\MiPlatform V3.2 기본과정 교육자료\Education 의 폴더를 C밑으로 복사하라
여기 밑에 보면 Education_ci_main_Win32 가 있다. 이 놈이 startXml
Add exist 에서 Education_ci_main_Win32 을 선택해서 열기 하면 프로젝트 관리자에 추가 되었다.
Add 했을 때는 저절로 추가 되지 않고 직접 열어 줘야 한다. ( 프로젝트를 )
Open Project
<오후>
dataset 에서 프로퍼티 명 에 보면 (e) 표시는 expr 를 줄 수 있는 것들
입사일자에 따른 사원이름의 BGColor 수정 : iif( ipsa_date>='20070101','red' )
일정 포맷에 따른 데이타 포맷 변경하기 : AA-### (Mask 속성 )
select b.value
from da_sawon a, ds_dept b
where a.dept = b.code
연결을 하기 위해서 Display 속성을 combo 로 바꾸고 Combo 로 시작되는 속성들을 변경하여 값을 가져옴
Edit 가능한 그리드를 그리고 싶다면 그리드의 성격을 Editable 을 true 로
그리고 각각의 컬럼의 입력 가능한 데이타 형태를 설정
한번 클릭에 수정 가능하도록 하려면 AutoEnter = True 로 준다
짝수번째 로우의 성격을 수정하려면 BkColor2 를 설정하면 된다.
Radio Button 의 Column Count 가 출력할 개수를 정해줌
Base Url 은 StartXml 이 있는 경로가 기본 경로가 되므로 그 경로를 기준으로 상대 경로를 표시하여 지정할 수 있다.
이미지를 버튼처럼 쓰고 싶으면 이미지의 static 속성을 False 로 둔다
alert > trace > line debug ( 디버깅 툴 사용 ) - 세번째 pdf Chapter3. 기본 화면개발 마지막 부분 참고
DataGroup 을 정해서 jsp를 호출
MiPlatform 은 Async 방식 그래서 callback 함수가 필요하다
<저장>
Transaction("save",
"SvcJsp::base_sawon_tr.jsp?in_var1=1",
"input=ds_sawon:u",
"out_ds=output",
"in_var2=2",
"callback");
하고 싶은 일은 바뀐 값들을 서버에 보내서 일련의 작업을 하고 싶은 것이다.
나 -> 서버 ( 택배를 보낸다고 하면 )
직접 가는 것이 아니라 JSP 라는 중간 매개체를 호출
물건을 준다. ( DataSet 으로 ) -> 상자에 담아서 - input
JSP 가 물건을 상자에 담아서 보낸다. 서버에
서버에서 물건을 나에게 물건을 보낸다. 박스에 담아서
받을 물건이 있으면 박스에 담겨져 있는 물건을 빼는 작업은 output 이다.
in_var2 - 변수 이다. ( 메모 )
callback 은 택배에서 물건이 오면 그냥 놔두면 되는 것이 아니라 물건을 받았다는 것을 표현한다.
그렇다면 ds_sawon:u 은 뭔가?
input=ds_sawon:u 이라는 것은? 서버에서 사용하는 dataset 과 내가 보내고자 하는 dataset 이 연결이 되어야 하는데 서버에서는 input 이지만 내 입장에서는 ds_sawon 이다.
input(서버에게) = ds_sawon:u(나로부터)
" ~ 에게 = ~ 로부터 "
output 일때는 반대로 서버가 나에게 보내는 거지
"out_us ( 나에게 ) = output ( 서버로부터 )
:u 는? 변경된 값만 넘어간다는 플래그
InArgument 의 Dataset에 ':U', ':A', ':N' 의 옵션이 붙을 수 있습니다.
':U' 는 갱신된 내용만을 InDataset으로 보내며, ':A' 는 모든 정보를 보냅니다. ':N' 은 현재 Delete를 제외한 Data를 Normal 상태로 보냅니다. 지정하지 않는 Dataset은 Normal로 동작합니다.
/** List 획득 및 Dataset, 변수 획득 **/
in_vl = pReq.getVariableList();
in_dl = pReq.getDatasetList();
Dataset ds = in_dl.getDataset("input");
String in_var1 = request.getParameter("in_var1");
String in_var2 = in_vl.getValueAsString("in_var2");
'Tools > 개발툴' 카테고리의 다른 글
Http Debugging (0) | 2008.08.25 |
---|---|
Software Test 관련 도구 사이트 (2) | 2008.08.25 |