728x90
반응형
아는게 힘이긴하다. 그런데 자주 까먹는다. 까먹는 부분에 대해서
정리를 하기도 힘들다...그냥 블로그에 올리자....그게 답이다.
 
DataWindow presentation styles구분설명
Composite 다른 기본 데이터윈도우들을 포함할 수 있는 데이터윈도우 오브젝트 형태이다.
저자주)
이 형태는 출력물로만 가능하며, 갑지/을지가 존재할 경우에 두 개의 데이터윈도우를 페이지를 이어서 붙일 수 있다.
하지만, 사용시에 데이터 및 텍스트에 대한 수정이 용이하지 않고, 순서대로 조회가 되므로, 인사기록카드와 같은 한사람씩 여러정보를 출력하는 형태의 컴포지트에서는 동시에 여러명을 조회해서 출력할 수가 없게 된다.
Crosstab 그리드 같은 스프레드시트에 데이터별 집계등을 표현할 수 있는 데이터윈도우 오브젝트 형태이다.
Freeform 데이터 컬럼이 페이지 아래로 배열되고, 해당 라벨이 그 옆에 표시되도록 하는 데이터윈도우 오브젝트 형태이다.
저자주)
가장 자주 쓰는 형태중의 하나로, Detail 밴드만을 주로 사용하는 형태를 일컫는다. 개발자가 말 그대로 자유롭게 양식을 그리고, 컬럼 위치를 잡아서 사용할 수 있다.
Graph 그래프로 데이터를 표현하는 데이터윈도우 오브젝트 형태이다.
Grid 행과 열로 분리된 그리드 라인에 데이터를 표현하는 데이터윈도우 오브젝트 형태이다.
저자주)
가장 자주 쓰는 형태중의 하나로, 엑셀을 생각하면 된다. 컬럼 너비를 사용자가 임의로 조절 할 수 있으며, 위치를 이동시킬 수 있다. 허나, 두개의 컬럼이 같은 위치에 존재하지 못하는 등의 제약은 있다.
Group 그룹으로 분리된 row 에 데이터를 표현하는 데이터윈도우 오브젝트 형태이다.
Label 라벨처럼 데이터를 표현하는 데이터윈도우 오브젝트 형태이다.
저자주)
주소룰 출력하여, 라벨을 붙이는 것을 생각하면 되겠다.
N-Up 둘이상의 row 데이터를 각각 옆에 표현하는 데이터윈도우 오브젝트 형태이다.
저자주)
여러 row의 데이터를 하나의 Detail 밴드에 표현할 수 있으며, 그 형태가 N자형으로 되었다고 해서 N-Up이라 불리운다. 허나, 이를 잘 활용하면, 탭헤더 대용으로도 사용할 수 있다.(다만, row갯수가 고정이여야 한다는 제약이 있다.)
OLE 2.0 하나의 OLE 오브젝트이다.
RichText 여러가지 양식이 있는 DB의 데이터를 표현해 줄 수 있는 데이터윈도우 오브젝트 형태이다.
Tabular 한 페이지에 데이터를 표현할 수도 있고, 헤더에 컬럼을 표현할 수 있도록 하는 데이터윈도우 오브젝트 형태이다.
저자주)
가장 자주 쓰는 형태중의 하나로, 쉽게 생각하면, Freeform에서 header, footer 밴드를 사용한다고 생각하면 되겠다.
그렇게 함으로써, Grid의 header 반복효과를 같이 누릴 수 있으며, 다른 컬럼간의 동일한 위치 배열도 할 수 있다.
허나, 기본적으로 컬럼 너비는 조절할 수가 없게 되어있다. 최근에는 이러한 문제를 해결한 dw 조상 오브젝트가 유행이다.
TreeView 트리뷰내의 row에 그룹화된 데이터를 표현할 수 있으며, 트리뷰처럼 펼치거나 접을 수 있도록 한 데이터윈도우 오브젝트이다.
 

뒤에 데이터윈도우 만들기 강좌에서 다루겠지만, 파워빌더를 실행해서,

메뉴의 file>new를 선택한 다음, DataWindow 탭을 선택하면, 위에 설명한 타입의 데이터윈도우들이 나열되어 있다.

각 아이콘은 해당 데이터윈도우의 특징을 잘 보여준다고 할 수 있다.

 

하지만, 위에 열거된 형태의 타입은 기본적으로 제공하는 템플릿일 뿐이고, 데이터윈도우 오브젝트의 속성을 잘 파악하면 훨씬 자유롭게 표현하고자 하는 것을 표현할 수 있다.

 

728x90
반응형

[PB, PowerBuilder]

파워빌더(PowerBuilder)는 SAP 소유의 통합 개발 환경이다.
원래 사이베이스 제품이었으나 2010년 SAP가 사이베이스를 인수하면서 SAP 소유가 되었다. 1991년 이후로 사용되었고, 1998년에는 100,000명의 사용자가 사용할만큼 최고조에 이를 만큼 꽤나 괜찮은 TooL이다.
우연히 보게 되는 내용을 정리하여 올려보았다.

1. 설정
1.SAP GUI 설치 한다

파워빌더 코딩 : sap 연결

OLEObject
Sap_OLE

OLEObject SapConn
Sap_OLE = CREATE OLEObject // OLE 생성
li_ret = Sap_OLE.ConnectToNewObject("Sap.Functions.Unicode") //A SAP 컴포넌트와 연계
if li_Ret <> 0 then
   Messagebox("확인", "SAP연결실패..")
   return false
end if
//Production server (PRD)
SapConn = Sap_OLE.connection // SAP CONNECTION OLE 사용

/*
운영서버 */

SapConn.ApplicationServer = "192.168.1.1" // SERVER IP ->
SapConn.SystemNumber = 00 // 디폴트 0
SapConn.user = "king" // SAP 사용자명 (실제 sap id)
SapConn.Password = "k1234" // SAP 페스워드 (실제 password)
SapConn.Client = "100" // CLIENT 번호
SapConn.Language = "KO" // LANGUAGE "KO"
If SapConn.logon(1, TRUE) <> True Then // LOGON
   messagebox("SAP : ApplicationServer 로그인 에러 "," SAP ApplicationServer 로그인 에러입니다.")
   setpointer(ARROW!)
   lb_Return = false
else
   lb_Return = true
End if
Return lb_Return

  



2. 조회
Oleobject SAP_Rfc /* SAP Main 역활 */
Oleobject SAP_Table  /* 데이터를 받을 때 사용됨 */
SAP_Rfc = Sap_OLE.Add( "여기에 RFC 이름" ) /* RFC 이름 셋팅 */

/* 조회조건 셋팅 */

ll_args = UpperBound( args_cols[] )
for i  = 1 to ll_args
  //SAP_Rfc.exports("IV_AUFNR", "20000269")
  SAP_Rfc.exports(args_cols[i], args_datas[i])
next
/* 조회하기. */
Boolean lb_SAP_Rfc_CALL = false
lb_SAP_Rfc_CALL = SAP_Rfc.CALL  /* SEND */
if lb_SAP_Rfc_CALL = true then

/* 아래 두가지는 상호 합의된 조회 결과에 대한 리턴값 */
  ls_ev_type = SAP_Rfc.imports("EV_TYPE").VALUE
  ls_ev_msg  = SAP_Rfc.imports("EV_MSG").VALUE
  if ls_ev_type <> 'S' then
  Messagebox("SAP :: EV_TYPE :: " + ls_ev_type, ls_ev_msg)
  Return false
  else
/* 테이블에 데이터 가져오기 */
  SAP_Table = SAP_Rfc.TABLES.Item( "여기에 테이블 이름")
  ll_Rcnt = SAP_Table.Rowcount
  for i = 1 to ll_Rcnt
  ls_data = SAP_Table.cell(i, "SAP의 컬럼이름")
  ls_data = SAP_Table.cell(i, "SAP의 컬럼이름")
  ls_data = SAP_Table.cell(i, "SAP의 컬럼이름")
  ls_data = SAP_Table.cell(i, "SAP의 컬럼이름")
  ls_data = SAP_Table.cell(i, "SAP의 컬럼이름")
  next
  end if
else
  Messagebox("SAP_Rfc.CALL 오류", "RFC 실행 오류 :: " + String(SAP_Rfc.Exception) )
end if
Destroy SAP_Table
Destroy SAP_Rfc



3 저장
이건 다시 한번 봐야 할듯~~
Oleobject
SAP_Rfc /* SAP Main 역활 */

Oleobject SAP_Table  /* 데이터를 받을 때 사용됨 */
SAP_Rfc = Sap_OLE.Add( "여기에 RFC 이름" ) /* RFC 이름 셋팅 */
/* 조회조건 셋팅 */
ll_args = UpperBound( args_cols[] )
for i  = 1 to ll_args
  //SAP_Rfc.exports("IV_AUFNR", "20000269")
  SAP_Rfc.exports(args_cols[i], args_datas[i])
next
/* 조회하기. */
Boolean lb_SAP_Rfc_CALL = false
lb_SAP_Rfc_CALL = SAP_Rfc.CALL  /* SEND */
if lb_SAP_Rfc_CALL = true then
  /* 아래 두가지는 상호 합의된 조회 결과에 대한 리턴값 */
  ls_ev_type = SAP_Rfc.imports("EV_TYPE").VALUE
  ls_ev_msg  = SAP_Rfc.imports("EV_MSG").VALUE
  if ls_ev_type = 'S' then
  성공
  else
  실패
  end if
else
  Messagebox("SAP_Rfc.CALL 오류", "RFC 실행 오류 :: " + String(SAP_Rfc.Exception) )
end if
Destroy SAP_Table
Destroy SAP_Rfc



 

 

'5. SAP' 카테고리의 다른 글

[PowerBuilder] - P.B 와 SAP 연결  (0) 2022.12.14
[1th] SAP 공부 해보자 - 1일차  (0) 2022.02.23
SAP R3 ABAP 프로그램 정리.  (0) 2020.10.08
SAP HANA 장점  (0) 2020.10.01
SAP 중복 로그인 방지 Source  (0) 2020.10.01
728x90
반응형

[PB, PowerBuilder]

파워빌더(PowerBuilder)는 SAP 소유의 통합 개발 환경이다.
원래 사이베이스 제품이었으나 2010년 SAP가 사이베이스를 인수하면서 SAP 소유가 되었다. 1991년 이후로 사용되었고, 1998년에는 100,000명의 사용자가 사용할만큼 최고조에 이를 만큼 꽤나 괜찮은 TooL이다.
우연히 보게 되는 내용을 정리하여 올려보았다.

1. 설정
1.SAP GUI 설치 한다

파워빌더 코딩 : sap 연결

OLEObject
Sap_OLE

OLEObject SapConn
Sap_OLE = CREATE OLEObject // OLE 생성
li_ret = Sap_OLE.ConnectToNewObject("Sap.Functions.Unicode") //A SAP 컴포넌트와 연계
if li_Ret <> 0 then
   Messagebox("확인", "SAP연결실패..")
   return false
end if
//Production server (PRD)
SapConn = Sap_OLE.connection // SAP CONNECTION OLE 사용

/*
운영서버 */

SapConn.ApplicationServer = "192.168.1.1" // SERVER IP ->
SapConn.SystemNumber = 00 // 디폴트 0
SapConn.user = "king" // SAP 사용자명 (실제 sap id)
SapConn.Password = "k1234" // SAP 페스워드 (실제 password)
SapConn.Client = "100" // CLIENT 번호
SapConn.Language = "KO" // LANGUAGE "KO"
If SapConn.logon(1, TRUE) <> True Then // LOGON
   messagebox("SAP : ApplicationServer 로그인 에러 "," SAP ApplicationServer 로그인 에러입니다.")
   setpointer(ARROW!)
   lb_Return = false
else
   lb_Return = true
End if
Return lb_Return

  



2. 조회
Oleobject SAP_Rfc /* SAP Main 역활 */
Oleobject SAP_Table  /* 데이터를 받을 때 사용됨 */
SAP_Rfc = Sap_OLE.Add( "여기에 RFC 이름" ) /* RFC 이름 셋팅 */

/* 조회조건 셋팅 */

ll_args = UpperBound( args_cols[] )
for i  = 1 to ll_args
  //SAP_Rfc.exports("IV_AUFNR", "20000269")
  SAP_Rfc.exports(args_cols[i], args_datas[i])
next
/* 조회하기. */
Boolean lb_SAP_Rfc_CALL = false
lb_SAP_Rfc_CALL = SAP_Rfc.CALL  /* SEND */
if lb_SAP_Rfc_CALL = true then

/* 아래 두가지는 상호 합의된 조회 결과에 대한 리턴값 */
  ls_ev_type = SAP_Rfc.imports("EV_TYPE").VALUE
  ls_ev_msg  = SAP_Rfc.imports("EV_MSG").VALUE
  if ls_ev_type <> 'S' then
  Messagebox("SAP :: EV_TYPE :: " + ls_ev_type, ls_ev_msg)
  Return false
  else
/* 테이블에 데이터 가져오기 */
  SAP_Table = SAP_Rfc.TABLES.Item( "여기에 테이블 이름")
  ll_Rcnt = SAP_Table.Rowcount
  for i = 1 to ll_Rcnt
  ls_data = SAP_Table.cell(i, "SAP의 컬럼이름")
  ls_data = SAP_Table.cell(i, "SAP의 컬럼이름")
  ls_data = SAP_Table.cell(i, "SAP의 컬럼이름")
  ls_data = SAP_Table.cell(i, "SAP의 컬럼이름")
  ls_data = SAP_Table.cell(i, "SAP의 컬럼이름")
  next
  end if
else
  Messagebox("SAP_Rfc.CALL 오류", "RFC 실행 오류 :: " + String(SAP_Rfc.Exception) )
end if
Destroy SAP_Table
Destroy SAP_Rfc



3 저장
이건 다시 한번 봐야 할듯~~
Oleobject
SAP_Rfc /* SAP Main 역활 */

Oleobject SAP_Table  /* 데이터를 받을 때 사용됨 */
SAP_Rfc = Sap_OLE.Add( "여기에 RFC 이름" ) /* RFC 이름 셋팅 */
/* 조회조건 셋팅 */
ll_args = UpperBound( args_cols[] )
for i  = 1 to ll_args
  //SAP_Rfc.exports("IV_AUFNR", "20000269")
  SAP_Rfc.exports(args_cols[i], args_datas[i])
next
/* 조회하기. */
Boolean lb_SAP_Rfc_CALL = false
lb_SAP_Rfc_CALL = SAP_Rfc.CALL  /* SEND */
if lb_SAP_Rfc_CALL = true then
  /* 아래 두가지는 상호 합의된 조회 결과에 대한 리턴값 */
  ls_ev_type = SAP_Rfc.imports("EV_TYPE").VALUE
  ls_ev_msg  = SAP_Rfc.imports("EV_MSG").VALUE
  if ls_ev_type = 'S' then
  성공
  else
  실패
  end if
else
  Messagebox("SAP_Rfc.CALL 오류", "RFC 실행 오류 :: " + String(SAP_Rfc.Exception) )
end if
Destroy SAP_Table
Destroy SAP_Rfc



 

 

'5. SAP' 카테고리의 다른 글

[PowerBuilder] - P.B 와 SAP 연결  (0) 2023.01.05
[1th] SAP 공부 해보자 - 1일차  (0) 2022.02.23
SAP R3 ABAP 프로그램 정리.  (0) 2020.10.08
SAP HANA 장점  (0) 2020.10.01
SAP 중복 로그인 방지 Source  (0) 2020.10.01

+ Recent posts