분류 전체보기 (122)
공지사항 (3)
주저리 주저리 (26)
Ubuntu (3)
개발관련 (37)
개발이야기 (6)
Language (20)
Framework (5)
Pattern (2)
DataBase (4)
Server (4)
Book (9)
스터디 (0)
ubuntu netbook remix  mylyn  HFSD  STRUTS2  Head First Software Development  oracle  다짐  db connection  자바  Eclipse 
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
+ dazzi님 블로그
+ 온 오프 믹스! (모임,세미…
+ kenu blog
+ OKJSP: 사는 얘기
+ 정호님 블로그
+ 존경하는회수형님
+ 자바지기님 블로그
+ 루비나라 출입구
+ 은정이누나 블롯
+ Total :
+ Today :
+ Yesterday :
  

 

 

 

10월 5일
+   [Language/ABAP]   |  2009. 10. 12. 16:40  
SubScreen

SubScreen Area

400번에서 복사해서 ... 600번을 만들어 봅시다.~

1. screen 만들기

Test해보고 다 만들어졌으면 600번안에 subScreen을 만들어 봅니다.

Subscreen 에는 OK_code가 필요가 없다. & 넣을 수도 없다.



tab에 대해서

se11 -> type_group -> cxtab

Scroolling in the Application Server

-> function code를 ... 주고  OK_CODE를 가지고 판단...

Server의 ...

Scrolling in SAPGUI

-> Client 가 인식하도록 fctType 을 P로 주어야 한다.(요건 시험 문제에 나옴)

그러면 자기 클라이언트가 처리한 내용을 알 수 있다.


subScreen은 여러개인데 SubScreen Area는 여러개이다.

Tab을 누를 때마다 화면이 변하는건 subScreen을 변경해주었기 때문이다.



pbo call subscreen sub1
  including sy-prog 0610 <- 일반적으로 0610을 변수로 만들어서 사용한다.
 
Scrooling in SAPGui 방식으로 하면 각각 call을 다 해주어야 한다.(좋은 방식은 아니지만... 시험에 나온다.)


600 -> 701 로 복사해서

복사시 SubScreen은 OK_CODE를 사용할 수 없으므로... SubScreen 의 OK_CODE를 삭제하여 준다.

Attributes Tab에서는 Screen type 을 Nomal에서 Subscreen으로 변경하여 준다.


table control

- sflight

703번 screen에서

init 부분에 보면 쿼리가 보이죠?


my_control을 .. 주석 처리 했기 때문에 Scrolling 이 되지 않는 문제는

김셈의 703번 화면을 참고하여.. 확인 해보시면 됩니다.



단원이 바뀌심...

3주차..

infoSet Query != InfoSets

머 이렇다는데.. 시험 한개도 안 나옴...


write at : 이라는 명령을 사용 해야만 가변적인 데이터가 인식합니다.


Nodes: selecttion-screen + Tables 효과(Work Area)효과

LDB는 Report Program 에 only 1개 attach 됨

프로그램이 DB처럼 사용됨.

Nodes: 에 대한 효과있음.

Event : Get | <노드名> 관리해야함..     ┌  S-O-S (START-OF-SELECTION)
                                                       │ {사이에 ... }
                                                       └ (E-O-S (END- OF-SELECTION)

<노드名> 이 느낌상 SQL 문장을 대신하는 듯이 보인다.

se80에서 프로그램을 보자면...(Z08_KDN_20091005_2)


get spfli <-  이것은 Event~ 라고 한다.


abap runtime system이

Event 순서를 알고 있는넘이당.


check : event Block 에서만 나옴~!

stop : end of selection 실행 O

exit : end of selection 실행 X


class 는 ref 로 선언한다.



my_control_area              : 막

cl_gui_custom_container : 빔(my_container)

cl_gui_alv_grid                 : 소스( my_alv_grid)

선언한다.

ㅋㅋ

TOP 에 선언 구문 추가

0800 에 INIT_CONTROL_PROCESSING 추가


1. CREATE OBJECT

 CREATE OBJECT my_container
      EXPORTING
        container_name  = 'MY_CONTROL_AREA '.

2. CREATE OBJECT

CREATE OBJECT my_alv_grid
      EXPORTING
        i_parent          = my_container.


3. CALL METHOD.

CALL METHOD my_alv_grid->set_table_for_first_display
    EXPORTING
      i_structure_name = 'SFLIGHT'
    CHANGING
      it_outtab        = it_sflight.
      
4.  등등등



저장도 할 수 있어요

variant 를 사용해서 하면 된답니다.

lay out - 내일 하도록 해요~!














 
 
        

 

ABAP 13일차.
+   [Language/ABAP]   |  2009. 10. 8. 16:44  
10월8일 - 4주차 -1번

Function 도 Encapsulation 이 된다.

Program 1개가  1의 Internal Table 을 사용한다.

Function Group 영역의 Global Data 는

Function Group 안의 Function Module이 호출되었을때 공유하게 된다.

~ 호출이 되는 순간에 Function Group 의 Data가 메모리에 올라오게 된다.

바로 메모리에 올라가게 된다.


Example of a Function Group : FG

G : Speed.
FM1 : Inc-Speed.
FM2 : Des-Speed.
FM3 : get-Speed.


Instantiate.

The Object-Oriented Programming Model of ABAP Object.


작명 규칙

Super Class (부모)/              A: Class           zcl*(se24) 나중에
                                                   △             lcl* (se38) 현재
                                     ┌-------┼ -------┐
Sub Class (자식) /  A'Class      A"Class     A^Class  '



polymorphism:

상속을 받은 Class들에 똑같은 행위를 요청하여도 그들이 하는 행위의 형태는 다르다.

OOP의 SPEC 에 관하여... 그리고 설계 하는 방법.!

UML 사용...

Unified Modeling Language

Class 에서

Define 은  Method & Attribute

Implement 는 Method  로 만들어 진다 하네요.

국내의 대부분의 프로젝트는 CBD개발 방법론으로 만들어 지고 있는 듯 하다.

하지만 처음 설계되로 만들어 지는 곳은 본적도 들은 적도..  별로 없는 듯 하다.

아밥에서 객체에 대한 이야기를 듣는것도 참으로 아이러니 한 일이지만 아무튼...

잘 만들어진 UML은 시스템을 이해하는데 아주 많은 도움을 주기도 했다. 개발이 끝날때까지의 변경에 대한 적용을

문서에 잘 해 나갔으면 말이다.



composition : 부분이 값으로 전체를 구성하거나 전체에 포함되면 composition.

aggregation  : 부분이 참조로 전체를 구성하거나 전체에 포함되면 aggregation.



혹시 해서 단어 사전의 뜻을..

association [əsòusiéi∫ən, -∫i-]
1. 협회 (society) , 조합, 단체, 사단 (社團) , 회사, 결사 (結士)
2. U 연합, 합동, 공동;관련 《with》 ; 《완곡》 기업 연합, 담합 《with》
3. U 교제, 제휴, 연락 《with》 ; 《완곡》 혼외 정사, 불륜 《with》
4. U,C 【심리】 연상, 관념 연합;함축, 암시적 의미; 【수학】 조합; 【화학】 (분자의) 회합
5. =ASSOCIATION FOOTBALL
6. 【생태】 (생물) 군집

aggregation [æ̀grigéi∫ən]
1. U 집합, 집성 (集成) , 집적 (集積)
2. 집합체, 집단; 【야구】 팀~·al a.

composition [kɑ̀mpəzí∫ən] [kɔm-]
1. U 구성, 조립, 합성, 혼성
2. U,C 【인쇄】 식자, 조판
3. 구성물;합성물, 혼합물;모조품 《흔히 생략해서 compo라 함》 ; (합성) 성분
4. 한 편의 작문, 문장;악곡
5. U,C 배합, 배치 (arrangement) ; 【미술】 구도
6. U 작문 (법) , 작시 (법) ;문체; 【음악】 작곡 (법)
7. U (물질의) 구조, 조성 《of》
8. U 기질, 성질, 자질
9. 【법】 조정, 타협, 화해 《with》 ;화해금
10. U 【문법】 (단어의) 복합 (법) , 합성

recursive [rikəˊːrsiv]
1. 【수학】 순환의
2. 되풀이되는, 재귀하는
3. 【컴퓨터】 순환적인, 반복적인, 회귀적인~·ly ad. ~·ness n.



포인팅 하는 법.

REPORT  z08_kdn_oop_1.

INCLUDE z08_kdn_oop_1top.
DATA: r_veh  TYPE REF TO lcl_vehicle.

DATA: r_tab TYPE TABLE OF REF TO lcl_vehicle.

START-OF-SELECTION.

  DO 3 TIMES.
    CREATE OBJECT r_veh.
    IF sy-index EQ 3.
      r_veh->carrid = 'AA'.
    ENDIF.
    APPEND r_veh TO r_tab.
  ENDDO.

  LOOP AT r_tab INTO r_veh.
    WRITE: / r_veh->carrid.
  ENDLOOP.

 
 
 
  이게 자바로는 이쯤 되려나?
 
class lcl_vehicle{
  public scarr-carrid carrid = "LH";
}

import lcl_vehicle
class  z08_kdn_oop_1{
   lcl_vehicle r_veh;
   ArrayList<lcl_vehicle> r_tab = new ArrayList<lcl_vehicle>;
  public static void main(){
      for(i=0;i<3;i++){
        r_veh = new lcl_vehicle();
        if(i == 3){
            r_veh.carrid = "AA";
        }
        r_tab.append(r_veh);
      }
      foreach(lcl_vehicle lv:r_tab ){
         System.out.println(lv.carrid);
      }
  }
}


* 금기시 되는 선언 ...

1. Header Line 을 가진 Internal Table
2. Tables 도 안됨
3. Data 선언을 할 때  like Spfli  는 안 됨.




* 자 그럼 하나  해보자!

*&---------------------------------------------------------------------*
*& Report  Z08_KDN_OOP_1
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  z08_kdn_oop_1.

INCLUDE z08_kdn_oop_1top.

DATA: r_tab TYPE TABLE OF REF TO lcl_vehicle.
DATA: r_veh TYPE REF TO lcl_vehicle.

START-OF-SELECTION.

  PERFORM select_vehicle USING 'AA'.
  PERFORM select_vehicle USING 'LH'.

  LOOP AT r_tab INTO r_veh.
    LOOP AT r_veh->it1 INTO r_veh->wa1.
      WRITE: / r_veh->wa1-carrid , r_veh->wa1-connid,
               r_veh->wa1-cityfrom , r_veh->wa1-cityto.
    ENDLOOP.
  ENDLOOP.



*&---------------------------------------------------------------------*
*&      Form  select_spfli
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_0080   text
*      -->P_R_TAB  text
*----------------------------------------------------------------------*
FORM select_vehicle  USING  f_carr TYPE spfli-carrid.
  CREATE OBJECT r_veh.
  SELECT *
    FROM spfli
    INTO TABLE r_veh->it1
   WHERE carrid EQ f_carr.
  APPEND r_veh TO r_tab.
ENDFORM.                    " select_vehicle


36 Page

* readonly는 변경할 수 없지만 ... method 가 실행되면 값을 변경하는게 가능하다.

Attribute(Data) 나 Method(Function) 을 참조하는 방식

1. ClassName => xxx

2. instanceName->xxx

이렇게 가능하다.


method 에 대해서 배워보자.

REPORT  z08_kdn_oop_3.
INCLUDE z08_kdn_oop_top3.

DATA: r_veh TYPE REF TO lcl_vehicle.

START-OF-SELECTION.
  CREATE OBJECT r_veh.

  r_veh->get_count( ).

  CALL METHOD r_veh->get_count.

 
*&---------------------------------------------------------------------*
*&  Include           Z08_KDN_OOP_TOP3
*&---------------------------------------------------------------------*
CLASS lcl_vehicle DEFINITION.
  PUBLIC SECTION.
    METHODS: get_count.

  PRIVATE SECTION.
    CONSTANTS: count TYPE i VALUE 10.
ENDCLASS.                    "lcl_vehicle DEFINITION
*----------------------------------------------------------------------*
*       CLASS lcl_vehicle IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_vehicle IMPLEMENTATION.
  METHOD get_count.
    WRITE: / count.
  ENDMETHOD.                    "get_count
ENDCLASS.                    "lcl_vehicle IMPLEMENTATION


** static method 는 class 명 => sm( )
                            Instance명 -> sm( )

** Static Attribute는?

Static 은 memory 상의 한 영역에만 존재한다.









 
 
        

 

ABAP 5일차
+   [Language/ABAP]   |  2009. 10. 7. 21:54  

menu - program - code Inspector                           
                             
st21: bug log

sm21 : system log

sci : code inspector

OBJECT SELECTION 에서 CTS넘버 별로 검증

REQUEST/TASK
 
se30 : Runtime 시의 performance를 측정할 수 있다.

tips and trick


* Module pool 프로그램 생성법

1. SE80상에  SAPMZ~~~ 으로 생성함.

SAPMZ08_KDN_1 입력 -> ENTER -> ENTER -> 어쩌구

-> object Name 을 확인해서 활성화 시켜주기 (마우스 오른쪽 버튼 )

2. INCLUDE ~~~TOP 을 활용함.

3. MODULE POOL PROGRAM 이 생성되고 있음을 확인.

4. MAIN PROGRAM명은 SAPMT~~~ 임을 명심

5. Include ~~~top 내에 program(main program)이 있음을 확인
6.
Include ~~~Top . - Global Data 처리부
Include ~~~O01 . - PBO 처리부
Include ~~~I01 .   - PAI 처리부
Include ~~~F01 .  - subrutine 처리부
Include ~~~E01 .  - Event 처리부

7. 기본적 Screen 생성 (Ex: 100번)

8. T-Code 를 생성함 (Dialogue Transaction) 위 7번의 screen으로

(별표) Module pool 프로그램 작업하는 곳과 Test 하는 곳의 Session 은 따로 따로관리할 것.





* Screen 처리법

Screen Type 3가지 :    Nomal (Full) : 100번 단위
                                    Subscreen  : 10번 단위
                                    Modal Dialog : 1번 단위
                              
ok_code는   Main 화면 (Nomal ,Full)에 꼭 넣어주어야 함.

                              
                              
Bar - Code ex: back button 의 코드
                 -> function Code 라고 함.

                


                
너무 중요해요...
 * Screen 상에 define 한 field등의 component들은 abap상에서도 정의 하여야 한다.
                      design                 element            include xxxxTop


* 4개의 BAR

1. Title Bar
문형(set titlebar '대문자' with &1~&9)
 
2. PF-STATUS BAR
문형( SET PF-STATUS '대문자' EXCLUDING

menu bar , Standard bar , application tool bar



Title 넣기!

 1. SET TITLEBAR 'TITLE_NNNN' WITH sy-dynnr.
 
소스를 입력 하세요.

2. 'TITLE_NNNN'를 더블 클릭

3. title 에 Screen (&1)...  를 입력

4. all Title 을 클릭

5. 활성화 버튼

6. 완료



PF-STATUS 넣기 (MENU)

(그림 넣을 자리)

  CASE ok_code.
    WHEN 'BACK'.
      LEAVE TO SCREEN 0.
    WHEN 'EXIT'.
      LEAVE PROGRAM.
    WHEN 'CANCEL'.
      LEAVE TO SCREEN 0.
  ENDCASE.

 
  PAI 에 값을 입력 합니다.

 
  화면 조작 하기
 
1.   LAYOUT 버튼을 누르면 Visual Basic 에서 component 를 넣는 식의 화면이 나온다.
 
2.   왼쪽 메뉴에서 TEXT FIELD 를 고르시고... 이름과 값을 입력해 줍니다.
 
3.   TEXT1 과  TEXT2 라는 이름을 만들어 줬을때.
 
4.  SCREEN 에서  MODULE 인 MODIFY_SCREEN 을 골라서 수정해줍니다.
 
 
   LOOP AT SCREEN.
    IF screen-name = 'TEXT1'.
      screen-invisible = 1.
    ENDIF.
    MODIFY SCREEN.
  ENDLOOP.

 
  이렇게 되면... 원래 페이지에는 나와야 하는  헿헿헿

   
 
  SET SCREEN NNNNN
  LEAVE SCREEN  
 
  합치면 -> LEAVE TO SCREEN 주절 주절
 
  스크린에서 아이콘은 잘 사용하지 않아요
 

 
 

 
 
        
<<이전 | 1 | ··· | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ··· | 41 | 다음>>

별책부록's Blog is powered by Daum