반응형

본 자료는

파워빌더 개발자 싸이트 PBDN( http://www.pbdn.net )에서
김태훈(guroom@hanmail.net) 님께서 올리신 자료 입니다


===================================================================

[ 파워빌더의 기초문법 ]

VC++(OOP개념)과 VB를 합쳐놓은것

   1) 코딩시 대소문자 구분이 없다 but 가독성을 높이기 위해 가능한 구분하자
     -> VB을 따왔음...가능한 단어의 첫글자는 대문자로 쓰자

   2) 주석 : 주석다는 습관!
     //             ->한 줄 주석
     /*  ......  */ ->여러줄 주석

   3) 명령문은 line단위로 이뤄진다
     한줄에 여러 개의 명령어를 입력하고 싶을 경우 ";"으로 구분한다
      ex) a=a+b ; b=b+10 ; c=c+7
     하나의 명령어를 여러 줄로 나눠 입력할 경우 " &"
        -> a=a+b+c
            a=a+ &
            b+ &
            c
   4) 변수
    ① Variable Types
      정수형 - integer(2byte) - 32768 ~ 32767
                - long형(4byte) - 20억 ~ 20억
      실수형 - real형(4byte)
                - double형(8byte)
      문자형 - char : 문자 한글자 저장 ex) char a='t'
                - string형 :문자열 저장 ex) string a="korea"
      논리형 - boolean ex) a,b=true
      시간형(data저장형식) - time a
                                       a=Gettime//PB의 내장함수
      날짜형 - date a
      시간날짜형 - DateTime a

    ② PB만이 갖고있는 변수형!!!
     - Blob형 : 아주 긴 문자열이나 image data저장
     - Any형  : 가변길이형 data
           +=========================================+
           :!!!  변수선언시 초기값을 주지 않을 경우      :
           :                                                               :
           :      default     숫자      = 0                          :
           :                    문자      = null                       :
           :                    boolean = false                     :
           +=========================================+

    ③ 변수의 규칙
      - 변수길이는 40자까지 가능
      - 모든 변수는 반드시 선언해줘야 한다:사용자가 만들어 쓸 경우
      - 대소문자 구분이 없다
      - 영문자, 숫자, -, _, #, %, $로 조합
        "-"는 반드시 창의 design/option에서 해제해줘라!!!

   5) 배열
          +=====================================+
          :   !!! tool마다의 배열                            :
          :    a(10):0번째~9  ->C                         :
          :    a(10):0번째~10 ->Visual Basic         : 
          :    a[10]:1번째~10 ->Power Builder       :
          +=====================================+
     ex) integer a[20]
         c[3]=20
         integer a[5]={1,5,3,16,4}
         integer a[10 to 20]=a[10]~a[20]

    ① 가변길이
     - 편리하지만 프로그램 속도를 떨어뜨린다
     - 1 차원배열에서만 가능

    ② 다차원배열
       integer a[행,열]
       ex) a[2,3]
       integer a[면,행,열]
       ex) a[2,3,3]

   6) PB의 내장함수
    ① 날짜함수                               ② 시간함수
      Now() "현재의 시스템의 날짜         hour()
      Year() "년도                                  minute()
      month()                                        second()
      day()
      이외에도 아주 많습니다.

   7) 용어
    ① This : 현재 사용중인 객체(object)를 의미
      ex) cb_1에 코딩할 경우: cb_1.text="종료"
                                    ->this.text="종료"


    ② Parent : 현재 사용중인 객체의 부모window
                    menu없는 창을 닫을 때 ->close(parent)
          +=============================================+
          :  참고!!                                                          :
          :       객체를 복사할 때 두가지 방법                  :
          :     -duplication :개체만 copy                           :
          :     -edit/copy후 paste :개체+코딩까지 copy      :
          :                                                                     :
          : 따라서...                                                       :
          :  close(parent)하는게 편하다                           :
          :          ->코딩을 일일이 고칠 필요가 없다         :
          +=============================================+

    ③ Parent Window : 메뉴가 있는 window를 말함
                      종료시 close(parent window)


    ④ 종료
      Halt : application 종료 but 메모리는 해제되지 않는다
      Halt Close : application의 close 이벤트를 발생시키면서 종료

   8) 제어문:프로그램의 흐름을 통제
      형식> 컨트롤이름.속성=값
    ① if문
       +=======================+
       :  if 조건식 then              :
       :     명령1                      :
       :  end if                         :
       :                                   :
       :         OR                      :
       :                                   :
       :  if 조건식 then 명령1     :
       +=======================+
       +=================================+
       :  if 조건 then                                :
       :     명령1                                     :
       :  else                                          :
       :     명령2                                     :
       :  end if                                        :
       :                                                  :
       :              OR                                :
       :                                                  :
       :  if 조건 then 명령1 else 명령2       :
       +=================================+

    ② choose case문
       +========================+
       :    choose case 변수       :
       :       case a1                   :
       :       case a2                   :
       :       case a3                   :
       :       case a4                   :
       :       case else                :
       :    end choose                :
       +========================+


   9) 연산자
      +, -, *, /, >, <, >=, <=, <>
      and, or, not

   10) 반복문
    ① for~ next문
       +=========================================================+
       :    for 변수명=초기값 to 최종값 step 증가(+)/감소(-)값         :
       :          .......                                                                      :
       :   .......                                                                             :
       :    next                                                                             :
       : -> 횟수가 정해져 있는 경우 :   계산                                   :
       :    무제한적으로 돌아갈 경우                                             :
       +=========================================================+

    ② do while
       +=======================================================+
       :    do while 조건                                                            :
       :        ....                                                                        :
       :    loop                                                                          :
       : ->조건식이 참인 동안 실행                                            :
       :   조건식이 맞지 않으면 실행을 시작하지 않을 수도 있다  :
       +=======================================================+
         
       +======================================================================+
       :   do                                                                                                   :
       :   ......                                                                                                 :
       :   loop while 조건                                                                                 :
       : ->조건식이 틀리더라도 한 번은 실행이 된다//조건식이 뒤에 있으므로    :
      +=======================================================================+

   ③ do until
        +=====================================================+
        :   do until 조건식                                                        :
        :     .......                                                                    :
        :     loop                                                                     :
        : ->조건식이 참이 될때까지 실행//조건이 거짓인 동안   :
        +=====================================================+
        +=====================+
        :   do                          :
        :     .......                    :
        :   loop until 조건         :
        +=====================+


   ④ 분기문(go to문)
        +========================+
        :     go to 문이름              :
        :        ........                     :
        :     문이름                      :
        +========================+
      ex)삼중 loop문...loop가 중첩된 경우

   ⑤ 기타문
        exit : 현재 수행중인 loop탈출
        continue :skip의 개념이 강하다
        +===========================+===========================+
        : ex1) for i=1 to 10                  :       ex2) for i=1 to 10           :
        :          .....                           :         .....                           :
        :       if i=5 then                      :       if i=5 then                    :
        :          exit                           :         continue                    :
        :       end if                           :       end if                          :
        :      sle_1.text=string(i)          :      sle_1.text=string(i)          :
        :      next                              :      next                             :
        :  print=> 1 2 3 4                    : print=>1 2 3 4 6 7 8 9 10        :
        +===========================+===========================+

   11) 추가 연산자
       a=a+1 -> a++  증가
                 --  감소
       a=a*b -> a*=b
                 +=
                 -=
                 /=

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

1) 변수
   - 전역변수 :A pp.내에 전반적으로 사용이 가능
     => \declare\global variable에서...
   - 지역변수 : 해당 스크립트문장내에서만 사용가능
    (instance variable) 해당window에서만 사용할 수 있는 변수
                               window가 닫히면 자동소멸!
                               window가 열리면 생성,
     cf) 다른 win에서 참조할 경우->win이름.변수명
        if 다른win이 닫히면 참조한 창도 에러 떨어짐
        why? instance 변수는 창이 없어지면 같이 소멸한다
   - 공용변수 shared variable :해당win에서 사용가능
                              해당win이 open하면 생성,
                              해당win이 close해도 소멸되지 않는다.
2) 함수
   함수명(인수1,인수2,인수3,...)
   - 지역 :\declare\function in window
   - 전역 :아이콘


   ① 사용자함수의 종류
    - 리턴값이 있는 경우 :실행된 결과값을 보여준다 ex)계산
      형식> 함수명(인수1, 인수2, ...) 인수 :함수가 처리해야 하는 값
    - 리턴값이 없는 경우 :반복적인 처리를 많이 하는 경우


   ② 자체함수 : PB함수
     +==============================================+
     : 참고!!! tool bar의 함수 : 전역함수                      :
     :         Declare\Windows Function : 지역함수      :
     :         Declare\Windows Structure : 구조체         :
     +==============================================+

3) 배열
   같은 data형의 변수를 잡아 줄때 모든 변수를 하나의 변수로 잡아준다고 생각
   즉 하나의 보따리에 각각의 보따리를 넣는다고 생각하면...?
   랜덤하게 섞이는것을 막을 수 있다
   ex)학생성적표 관리:여러과목(문자)과 그에 따른 각각의 점수(정수)

4) 구조체
   서로 다른 data형의 변수를 하나의 커다란 변수로 잡는다
   ex)회사의 사원관리
   하나의 사원에 해당하는 것들 (사원이름 주소 성별 나이)->각각의 성질이 다르다

5) Pointer
   - 번지에 있는 값을 전달한다. -> call by value
   - 번지값을 전달해준다 -> call by reference

+ Recent posts