Tools/개발툴

MiPlatform 교육 첫날

짱가 2ed 2008. 8. 21. 16:28

오랜만에 교육생 입장에서 강의 받아보니 정말 학생 된 기분이다. ^^
아무 의심 하지 않고 그대로 정리 한다.

프로그램을 설치 하면 자신의 유저 경로 밑에 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&#32;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