parameter , selection screen, tap strips 을 이용하면 그럴 듯한 프로그램을 만들 수 있다.
paramater와 selection screen 이 있는데 세가지 형태가 있음
1. begin of screen 화면을 더 만들 수 있는 것.
스크린프로그램에서는 create를 하면 여러번 만들 수 있지만
begin of screen을 하면 한번에 원하는 만큼의 수를 만들 수 있음.
begin of block 한번의 덩어리를 만드는 것
begin of line
tab screen
report 프로그램이라는 단점 active버전의 프로그램이 아니라는 점.
탭스트립안에 우리가 알고 있는 셀렉트 옵션스나 파라미터를 놓을 수 있다.
또 다른 말로 sub screen 이라는 말이 나온다
goto - attributes
flights and books라는 뭔가 있는.
activate
각각의 selection screen을 가지고 있음을 알 수 있음.
*&---------------------------------------------------------------------*
*& Report ZBC405_01_E5
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zbc405_01_e5.
NODES : spfli, sflight, sbook.
SELECTION-SCREEN BEGIN OF BLOCK add WITH FRAME TITLE TEXT-001.
PARAMETERS : pa_add AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN END OF BLOCK add.
SELECTION-SCREEN BEGIN OF SCREEN 1100.
SELECTION-SCREEN BEGIN OF BLOCK detail WITH FRAME TITLE TEXT-001.
PARAMETERS : pa_cus as CHECKBOX,
pa_agy as CHECKBOX.
SELECTION-SCREEN END OF BLOCK detail.
SELECTION-SCREEN END OF SCREEN 1100.
*1000이 화면을 다 잡고 있어서 보이지 않음 1100이 보이게 하려면
INITIALIZATION.
우리가 만든 스크린은 제일 마지막에 들어가 있음.
AT SELECTION-SCREEN ON pa_add.
IF pa_add ='X'.
CALL SELECTION-SCREEN 1100
STARTING AT 5 5 ENDING AT 50 10.
ENDIF.
노드제외 (너무 길어져서 )
실행 시
1000 보다 작음 - > 101, 102, 103 그래서 서브 스크린 .selection screen 과 다름. sub screen같은 경우는 1000보다 작은 번호를 쓸 수 있음 .
begin of block -> 우리가 아는 selection screen의 정의와 비슷
begin of tabbed block 변수명 for 5 lines
빠질때는 end of block 임을 주의 해야함
5lines 는 탭의 높이를 말함. 탭을 몇개 쌓을지 정하는 것. 여기서 10개를 쌓으면 안보이거나 안쌓일 수 있음
selection screen에서 input check 을 할 수 있다.
selection screen -> flow logic이 아닌 report기 때문
initialization(파라미터나 셀렉트 옵션스나 혹은 데이터 오브젝트를 디폴트 값을 가지는 것을 over write하는 과정 . 무브 초기화) 을 한 뒤 stage는 at selection screen에서 사용자의 입력 (파라미터와 셀렉션 스크린)을 체크
그 다음 start of selection
스크린 프로그램에서는 2개가 있지만 레포트에서도 사용자가 체크
타입첵은 프로그램 자체 내에서 해주는데 ( char인데 numeric으로 넣는 등의 )
그런데 사용자가 ( 체크는 타입쳌이 아닌 엣셀렉션 스크린을 받아서 데이터오브 셀렉션을 가야하는데 사용자가 엉뚱한 값을 넣으면 데이터를 받으러 못가기 때문에 사용자에게 반복적으로 묻는 것 )
시간에 커서를 두고 누를 것
variants.
selection screen 에서 초기값을 저장할 수 있음.
선택, start 프로그램 실행 시 셋팅된( 초기화된) 값이 이미 들어가서 자동으로 뽑아낼 수 있다.
screen 을 만들고 element를 두는 것... runtime 할 동안 element가 사라졌다가 나타나게 하는 것 등과 관련
하나의 화면에서 여러가지 일을 처리할 수 있음.
사용자의 권한기반으로 만들고 조회, 수정 가능
user dialog를 지원하기 위한 sap의 screen programming의 개념
410 screen programming
405 report
430 Dictionary
414 database update
sapmzbc410_dialog_01
type 이 module pool로 바뀐걸 볼 수 있음
프로그램 만들면 아래 자동으로 생긴 주석을 빼고
더블클릭해서 탑으로 들어가면 현재 모듈풀을 저장하겠냐고 뜨면 저장하고 back
전부 다 저장하고 빠져나오기 반복
프리티 프린터로 누르고 모듈풀 프로그램은 반드시 폴더를 더블클릭하면 탑으로 올라가기 때문에 엑티브는 탑으로 올라와서 우클릭 active해야함
그러면 여러분이 가지고 있는 프로그램 + 모듈풀 프로그램이 엑티브 됨
내부에서 싱글 트랜잭션 (왼쪽에 15개 정도의 폴더가 있어서 고치고 나와서 액티브가 안되면 덤프 떨어지면 못찾음. 모듈풀은 덤프 떨어지면 못찾음. 그래서 모듈풀은 조금 고치면 항상 액티브해서 찾아낼 것 .)
지울 때 반드시 인클루드를 포함하고 지우면 디팬던시가 있다고 가르쳐줌 .
모듈풀이 연결된 것들을 모두 보여주는데 싹 지운다고 하고 다시 프로그램을 만들어 볼 것
PAI가 제대로 안하면 화면 스트럭쳐에 싣는 일을 안하고 계속 돌면 initailization은 한번이지만 메세지 처리는 계속 돌기때문에 데이터느 눈에 보이지 않음 (PBO PAI) 문제는 디버거로 잡을 수도 없음 그러니까 프로세스에 대해 내부 핵심을 알아야 함 .. 아밥 프로그램에서 만든 데이터를 pbo에서 실었는가 pai에서 처리한걸 아밥프로그램으로 던졌는지를 확인해야 플로우 로직을 알 수 있음. 아밥코딩이 아닌 flow 로직을 알아야함. 데이터를 던져서 exit처리 했는지를 확인하는 것 logic으로 들어가서 찍으려면 이 개념이 머리속에 있어야함. 대부분은 screen 만들자고 하고 화면에 보이면 끝인 줄 알지만 화면은 실행 프로그램 폴더에 쌓인지만 모듈풀은 중간에 에러가 생기면 그 누구도 잡을 수 없음이 문제... 잡아줄 사람이 없음. 프로그램이 너무 엉켜있어서. 그래서 구조화를 잘 잡아야 함.. 이 로직을 이해하려면 그냥 아이콘을 움직여서 보면 됨.
항상 top include 내에 입력하기
sdyn_conn double click .
header line이 있는 work area와 비슷
tables라고 쓰면 화면용 structure라고 생각하면 됨
data 는 아밥 ( 워크아리아) 아래는 화면 스트럭처
top에 항상 정의 해야함 위아래로 서로 던져줌 .
항상 top에 해야함.
왜냐면 top은 글로벌 변수로 만들어져 있기때문
data exchange할 때 두개가 번갈아가면서 사용됨
스크린만드는 로직
1. 스크린 에트리뷰트를 만든다. ( 기본적으로 적어야하는 로직이 있음 ) p.353
2. 스크린 레이아웃(화면)을 만든다.
3. 엘레멘트 어트리뷰트 넣기
4. 그것에 맞는 플로우 로직을 만든다
스크린 만들기 끝
자기걸 계속 자기로 돌아오게 만드는 것
activation 한 후 transcation 만들기
여기서 실행하지 말고 보통 창을 하나 더 띄우고 실행
** Screen painter 에서 activate하지말기
여기서 하다가 두개 프로그램이 돌아가는거라 컴퓨터가 버거워해서 hang걸려서 복잡해질 수 있음. 저장하고 back 해서 sap gui에서 activation 하기
data elements
get from dictionary.
젤 왼쪽 상단에 붙일 것 . 꾸욱 누르면 다시 움직일 수 있음. 오른쪽 위쪽에 작게 공간이 들어갈 만큼 넣어주기
저장 후 back
airline 더블 클릭시
attribute창이 뜸
버그라 움직여서 보이게 하기
입력 3 보이는 것도 3
elements의 그룹을 4개까지 선택할 수 있음.
핵심인 펑션코드
어트리뷰트의 포맷, search help
거의 잘 안보임. 그리고 화면에서 강제적으로 셋팅하면 풀 수 없음. 프로그램에서 다이나믹하게 고칠 수 있음. 프로그램에서는 세가지 필드 input 3가지를 on.on.on으로 켜져 있고
required로 바꾸면 물음표로 바뀌는걸 볼 수 있음.
스크린 더브를릭
pai는 i에 넣을 것
o module에 넣기