데이타윈도우(이하 dw) 관련 함수는 dw control 함수와 dw expression 함수로 구분됩니다. 여기서는 dw expression 함수를 다뤄보도록 하겠습니다.
파워빌더에서는 다음과 같이 DataWindow expression function을 정의합니다.
참고로 읽어보세요.
In the DataWindow painter, you can use DataWindow expression functions in expressions for computed fields, filters, validation rules, and graphed data, with some exceptions. The dialog boxes in which you define expressions include a list box that lists the available functions and their arguments. The dialog boxes make it easy to insert a function into the expression.
DataWindow expression function은 보통 dw의 computed filed, filter에서 많이 사용합니다.
Computed field를 생성할 때 나타나는 dialog box입니다.
왼쪽 하단에 Functions 리스트가 보이는데 이것이 DataWindow expression function 목록입니다.
abs
설명
숫자 타입 값의 절대값을 반환
문법
abs ( n )
n : 절대값을 얻기를 원하는 숫자타입 변수
반환값
아규먼트 n과 동일한 타입
n의 절대값
acos
설명
아크코사인값을 반환
문법
acos ( n )
n : 삼각함수의 결과값으로 -1에서 1까지 범위.
반환값
Double 타입
n의 아크코사인값(라디안)
이 값을 각도로 얻고 싶다면 180/π 를 곱함
asc
설명
문자열의 첫번째 문자에 해당하는 유니코드 숫자 값을 변환
문법
asc ( string )
반환값
Unsigned integer 타입, 문자열 첫번째 문자의 유니코드값
예시
asc('ABC')
'A'의 유니코드 숫자값에 해당하는 65(16진수 41)를 반환
ascA
설명
문자열의 첫번째 문자에 해당하는 ASCII 숫자 값을 변환
문법
ascA ( string )
반환값
Integer 타입
문자열 첫번째 문자의 ASCII 값
예시
ascA('ABC')
'A'의 ASCII 숫자값에 해당하는 65(16진수 41)를 반환
asin
설명
아크사인값을 반환
문법
asin ( n )
n : 삼각함수의 결과값으로 -1에서 1까지 범위
반환값
Double 타입
n의 아크사인값(라디안)
이 값을 각도로 얻고 싶다면 180/π 를 곱함
atan
설명
아크탄젠트값을 반환
문법
atan ( n )
n : 삼각함수의 결과값
반환값
Double 타입, n의 아크탄젠트값(라디안)
이 값을 각도로 얻고 싶다면 180/π 를 곱함
avg
설명
칼럼의 평균값을 계산
문법
avg ( column { for range { distinct { expres1 {, expres2 {, ... } } } } } )
column : 칼럼명 또는 #칼럼번호, 숫자타입
range :
all - 칼럼의 모든 값에 대한 평균
group n - n 그룹에 대한 평균
page - 페이지당 칼럼값에 대한 평균
crosstab - crosstab 데이타윈도우에서 칼럼값에 대한 평균
graph - graph 데이타윈도우에서 사용
object - OLE 데이타윈도우에서 사용
distinct : 칼럼값 중 중복된 값을 무시하고 평균값을 계산
expresn : distinct를 적용할 칼럼명, 함수, 표현식
반환값
평균을 계산하는 칼럼의 데이타 타입(숫자타입)
칼럼의 일정 범위내의 로우 평균값
예시
avg(salary)
salary 칼럼의 평균값
avg(salary for group 1)
salary 칼럼의 group 1의 평균값
avg(#5 for page)
현재 페이지의 5번 칼럼의 평균값
avg(sale_price for graph)
그래프 데이타윈도우에서 sale_price 칼럼의 평균값
avg(order_amt for all distinct order_nbr)
order_nbr 칼럼의 중복된 값은 무시하고 계산된 order_amt 칼럼의 평균값
bitmap
설명
이미지 파일의 이미지를 보여줌
오직 computed field 에서만 사용할 수 있음
문법
bitmap (string)
string : 이미지 파일(bmp, gif, jpeg, rle, wmf)의 이름, string 타입
예시
bitmap ('all.bmp')
'all.bmp' 파일의 이미지를 보여줌
bitmap (emplyees)
emplyees 칼럼값이 이미지 파일명일 때 그 이미지를 보여줌
bitmap (#3)
3번째 칼럼값이 이미지 파일명일 때 그 이미지를 보여줌
bitmap( If(password = 'y', 'yes.bmp', 'no.bmp') )
password 칼럼값이 'y' 이면 'yes.bmp' 파일 아니면 'no.bmp' 파일의 이미지를 보여줌
case
설명
칼럼값이나 expression값을 비교하여 정해놓은 결과값을 반환
문법
case ( column when value1 then result1 { when value2 then result2 { ... } } { else resultelse } )
column 이 value1 에 해당하면 result1을 vaue2에 해당하면 result2을... 해당이 없으면
resultelse을 반환
valuen
단일값
콤마(,)로 구분되는 리스트 - 예) 1, 2, 3, 4
TO 절 - 예) 1 TO 20
IS + 관계 연산자 + 비교값 - 예) IS > 5
콤마(,)로 구분된 위 조건들의 조합 - 예) 1, 3, 5, 7, 9, 27 TO 33, IS > 42
반환값
resultn의 데이타 타입
예시
case(salary when IS > 70000 then rgb(255,0,0)
when IS > 50000 then rgb(0,255,0)
else rgb(0,0,255))
salary가 70000 을 초과하면 rgb(255,0,0)을
50000을 초과하고 70000이하면 rgb(0,255,0)을
해당이 없으면 rgb(0,0,255)을 반환한다.
case(code when1, 2, 3 then 'A'
when 4 to 10 then 'B'
when 11 to 20, 25, 30, IS > 40 then 'C'
else 'D')
code가 1 또는 2 또는 3 이면 'A'
4~10 이면 'B'
11~20 또는 25 또는 30 또는 40을 초과하면 'C'
해당이 없으면 'D'를 반환한다.
ceiling
설명
어떤 실수와 같거나 큰 정수 중 최소의 정수를 반환
문법
ceiling ( n )
n : 실수
반환값
아규먼트 n의 데이터 타입
n 과 같거나 큰 정수 중 최소의 정수
예시
ceiling(2.3) -> 3
ceiling(-2.3) -> -2
char
설명
integer 타입 숫자를 유니코드 문자로 변환
문법
char ( n )
n : integer 타입 숫자
반환값
string 타입
n에 해당하는 유니코드 문자
예시
char(27) -> escape 문자를 반환
chara
설명
integer 타입 숫자를 ASCII 문자로 변환
문법
chara ( n )
n : integer 타입 숫자
반환값
string 타입
n에 해당하는 ASCII 문자
예시
chara(27) -> escape 문자를 반환
cos
설명
어떤 각도의 코사인값을 반환
문법
cos ( n )
n : 라디안값
반환값
double 타입
n의 코사인값
count
설명
칼럼의 로우 개수를 계산 (null 값은 제외)
문법
count ( column { for range { distinct { expres1 {, expres2 {, ... } } } } } )
column : 칼럼명 또는 #칼럼번호, 숫자타입
range :
all - 칼럼의 모든 로우 개수
group n - n 그룹에 대한 로우 개수
page - 페이지당 칼럼의 로우 개수
crosstab - crosstab 데이타윈도우에서 칼럼의 로우 개수
graph - graph 데이타윈도우에서 사용
object - OLE 데이타윈도우에서 사용
distinct : 칼럼값 중 중복된 값을 무시하고 로우 개수 계산
expresn : distinct를 적용할 칼럼명
예시
count(emp_id)
emp_id 칼럼의 로우 개수 (null 값은 제외)
count(emp_id for group 1)
emp_id 칼럼에서 group 1의 로우 개수 (null 값은 제외)
count(dept_id for all distinct)
dept_id 칼럼에서 중복된 값은 무시한 로우 개수 (null 값은 제외)
count(#5 for page)
현재 페이지의 5번 칼럼의 로우 개수 (null 값은 제외)
count(region_id for all distinct lower(product_id))
소문자로 변환된 product_id 칼럼값의 중복된 값은 무시한 region_id 칼럼의 로우 개수
crosstabAvg
설명
crosstab values 목록에서 expression 값의 평균을 계산
두 개 이상의 칼럼을 정의했을 때 칼럼 그룹의 expression 값의 평균을 계산
문법
crosstabAvg ( n {, column, groupvalue } )
n : values 목록의 expression 순번
column : columns 목록에 있는 칼럼 순번
groupvalue : 계산하고자 하는 그룹값, 칼럼명 앞에 '@'을 붙임
반환값
double 타입
예시
처음 두 예제는 다음 crosstab expression을 사용
count(emp_id for crosstab)
sum(salary for crosstab)
crosstabAvg(1)
1번째 expression에 해당하는 count(emp_id for crosstab)의 평균을 계산
crosstabAvg(2)
2번째 expression에 해당하는 sum(salary for crosstab)의 평균을 계산
crosstabAvg(1, 2, "@region")
crosstab이 region, city의 두 칼럼과 avg(sales for crosstab)의 expression으로 정의되었다고
가정하면 region별로 모든 city의 평균 sales값을 계산한다.
detail band의 computed field의 exression
crosstabAvgDec
설명
crosstab values 목록에서 expression 값의 평균을 계산
두개 이상의 칼럼을 정의했을 때 칼럼 그룹의 expression 값의 평균을 계산
문법
crosstabAvgDec ( n {, column, groupvalue } )
n : values 목록의 expression 순번
column : columns 목록에 있는 칼럼 순번
groupvalue : 계산하고자 하는 그룹값, 칼럼명 앞에 '@'을 붙임
반환값
decimal 타입
예시
crosstabAvg 참고
crosstabCount
설명
crosstab values 목록에서 expression 값의 개수를 계산
두개 이상의 칼럼을 정의했을 때 칼럼 그룹의 expression 값의 개수를 계산
문법
crosstabCount ( n {, column, groupvalue } )
n : values 목록의 expression 순번
column : columns 목록에 있는 칼럼 순번
groupvalue : 계산하고자 하는 그룹값, 칼럼명 앞에 '@'을 붙임
반환값
long 타입
예시
crosstabAvg 참고
crosstabMax
설명
crosstab values 목록에서 expression 값의 최댓값을 계산
두개 이상의 칼럼을 정의했을 때 칼럼 그룹의 expression 값의 최댓값을 계산
문법
crosstabMax ( n {, column, groupvalue } )
n : values 목록의 expression 순번
column : columns 목록에 있는 칼럼 순번
groupvalue : 계산하고자 하는 그룹값, 칼럼명 앞에 '@'을 붙임
반환값
double 타입
예시
crosstabAvg 참고
crosstabMaxDec
설명
crosstab values 목록에서 expression 값의 최댓값을 계산
두개 이상의 칼럼을 정의했을 때 칼럼 그룹의 expression 값의 최댓값을 계산
문법
crosstabMaxDec ( n {, column, groupvalue } )
n : values 목록의 expression 순번
column : columns 목록에 있는 칼럼 순번
groupvalue : 계산하고자 하는 그룹값, 칼럼명 앞에 '@'을 붙임
반환값
decimal 타입
예시
crosstabAvg 참고
crosstabMin
설명
crosstab values 목록에서 expression 값의 최솟값을 계산
두개 이상의 칼럼을 정의했을 때 칼럼 그룹의 expression 값의 최솟값을 계산
문법
crosstabMin ( n {, column, groupvalue } )
n : values 목록의 expression 순번
column : columns 목록에 있는 칼럼 순번
groupvalue : 계산하고자 하는 그룹값, 칼럼명 앞에 '@'을 붙임
반환값
double 타입
예시
crosstabAvg 참고
crosstabMinDec
설명
crosstab values 목록에서 expression 값의 최솟값을 계산
두개 이상의 칼럼을 정의했을 때 칼럼 그룹의 expression 값의 최솟값을 계산
문법
crosstabMinDec ( n {, column, groupvalue } )
n : values 목록의 expression 순번
column : columns 목록에 있는 칼럼 순번
groupvalue : 계산하고자 하는 그룹값, 칼럼명 앞에 '@'을 붙임
반환값
decimal 타입
예시
crosstabAvg 참고
crosstabSum
설명
crosstab values 목록에서 expression 값의 합계를 계산
두개 이상의 칼럼을 정의했을 때 칼럼 그룹의 expression 값의 합계를 계산
문법
crosstabSum ( n {, column, groupvalue } )
n : values 목록의 expression 순번
column : columns 목록에 있는 칼럼 순번
groupvalue : 계산하고자 하는 그룹값, 칼럼명 앞에 '@'을 붙임
반환값
double 타입
예시
crosstabAvg 참고
crosstabSumDec
설명
crosstab values 목록에서 expression 값의 합계를 계산
두개 이상의 칼럼을 정의했을 때 칼럼 그룹의 expression 값의 합계를 계산
문법
crosstabSumDec ( n {, column, groupvalue } )
n : values 목록의 expression 순번
column : columns 목록에 있는 칼럼 순번
groupvalue : 계산하고자 하는 그룹값, 칼럼명 앞에 '@'을 붙임
반환값
decimal 타입
예시
crosstabAvg 참고
cumulativePercent
설명
지정된 칼럼에서 지정된 범위내의 총합과 차례대로 현재 로우를 포함하여 더한 값과의 백분율을
계산 (누적 백분율)
문법
cumulativePercent ( column { FOR range } )
column : 칼럼명 또는 #칼럼번호, 숫자타입
range :
all - 칼럼의 모든 로우의 누적 백분율
group n - n 그룹에 대한 로우의 누적 백분율
page - 페이지당 칼럼의 로우의 누적 백분율
crosstab - crosstab 데이타윈도우에서 칼럼의 로우의 누적 백분율
graph - graph 데이타윈도우에서 사용
object - OLE 데이타윈도우에서 사용
반환값
long 타입
예시
cumulativePercent(salary)
salary 칼럼값의 누적 백분율 (null 제외)
cumulativePercent(salary for group 1)
group 1에서 salary 칼럼값의 누적 백분율 (null 제외)
cumulativeSum
설명
지정된 칼럼에서 지정된 범위내에서 차례대로 현재 로우를 포함하여 더한 값을 계산 (누적 합계)
문법
cumulativeSum ( column { FOR range } )
column : 칼럼명 또는 #칼럼번호, 숫자타입
range :
all - 칼럼의 모든 로우의 누적 합계
group n - n 그룹에 대한 로우의 누적 합계
page - 페이지당 칼럼의 로우의 누적 합계
crosstab - crosstab 데이타윈도우에서 칼럼의 로우의 누적 합계
graph - graph 데이타윈도우에서 사용
object - OLE 데이타윈도우에서 사용
반환값
적절한 숫자 타입
예시
cumulativeSum(salary)
salary 칼럼값의 누적 합계 (null 제외)
cumulativeSum(salary for group 1)
group 1에서 salary 칼럼값의 누적 합계 (null 제외)
currentRow
설명
현재로우(포커스가 있는 로우) 넘버를 반환한다.
문법
currentRow ( )
반환값
long 타입, 현재 로우 넘버를 반환, 로우가 없다면 0을 반환
예시
if ( currentRow() = getRow(), 1, 0)
현재로우(포커스가 있는 로우) 넘버와 각 로우의 넘버가 같으면 1을 다르면 0을 반환
date
설명
유효한 날짜 형식의 문자열을 date 타입으로 변환
문법
date ( string )
string : 유효한 날짜 형식의 문자열 예) '2020-03-03', '2020/03/03'
반환값
date 타입
유효한 날짜 형식이 아니면 null을 반환
dateTime
설명
date 타입값과 time 타입값을 결합하여 dateTime 타입값으로 만듬
문법
dateTime ( date {, time } )
date : date 타입값
time : time 타입값
반환값
dateTime 타입
day
설명
date 타입값에서 월의 일을 얻음
문법
day ( date )
date : date 타입값
반환값
integer 타입, 1~31의 값
dayName
설명
date 타입값에서 요일명을 얻음
문법
dayName ( date )
date : date 타입값
반환값
string 타입
요일명 : Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday
dayNumber
설명
date 타입값에서 요일 번호를 반환한다.
문법
dayNumber ( date )
date : date 타입값
반환값
integer 타입
요일 번호 : 1(Sunday), 2(Monday), 3(Tuesday), 4(Wednesday), 5(Thursday), 6(Friday), 7(Saturday)
daysAfter
설명
날짜와 날짜 사이의 일수를 반환
문법
daysAfter ( date1, date2 )
date1 : 시작 날짜
date1 : 정료 날짜
반환값
long 타입
예시
daysAfter(2005-12-20, 2005-12-24)
4를 반환
daysAfter(2005-12-24, 2005-12-20)
-4를 반환
dec
설명
string 타입의 값을 decimal 타입으로 변환
문법
dec ( string )
반환값
decimal 타입
describe
설명
데이터윈도우의 오브젝트와 컨트롤의 속성값을 반환
문법
describe ( propertylist )
propertylist : 속성이나 함수의 리스트 문자열
(자세한 내용은 파빌 help의 "Controls in a DataWindow and their properties" 참고)
반환값
string 타입
예시
describe("DataWindow.Table.Select")
데이터윈도우의 select 문을 반환
exp
설명
자연상수 e의 거듭제곱값을 반환
문법
exp ( n )
n : 자연상수 e의 지수
반환값
double 타입
예시
exp(2)
e의 제곱값 7.38905609893065 를 반환
fact
설명
어떤 수의 팩토리얼(factorial)값을 반환
문법
fact ( n )
n : 팩토리얼값을 얻고자하는 수
반환값
double 타입
예시
fact(4)
1*2*3*4 = 24 를 반환한다.
fill
설명
어떤 문자열을 어떤 길이가 될 때까지 반복하여 연결한 문자열을 반환
문법
fill ( chars, n )
chars : 반복하고자 하는 문자열
n : 반환되는 문자열의 길이
반환값
string 타입
예시
fill(“*”, 11)
문자열 *********** 을 반환
fill("-+", 7)
문자열 -+-+-+- 을 반환
fillA
설명
어떤 문자열을 어떤 바이트(byte) 길이가 될 때까지 반복하여 연결한 문자열을 반환
문법
fillA ( chars, n )
chars : 반복하고자 하는 문자열
n : 반환되는 문자열의 바이트(byte) 길이
반환값
string 타입
예시
fillA(“*”, 11)
문자열 *********** 을 반환
fillA("우A", 5)
우A우 를 반환
cf)
fill("우A", 5)
우A우A우 를 반환
first
설명
어떤 칼럼의 첫번째 로우값을 반환
문법
First ( column { FOR range { DISTINCT { expresn {, expres2 {, ... } } } } } )
column : 칼럼명 또는 #칼럼번호
FOR range : 첫번째 로우 값을 찾을 로우의 범위
DISTINCT : 첫번째 값을 결정할 때 오직 칼럼의 distinct 값만 고려
expresn : distinct 로우를 결정할 표현식. (칼럼명, 함수, 표현식)
반환값
칼럼의 데이터타입
예시
first(#3 for page)
현재 페이지의 3번째 칼럼의 첫번째 로우값을 반환
first(dept_id for group 2 DISTINCT)
group 2의 dept_id 칼럼의 첫번째 distinct 로우값을 반환
getRow
설명
데이터윈도우의 어떤 band 상에서 로우 넘버를 반환
문법
getRow ()
반환값
long 타입
사용
데이터윈도우의 컨트롤이 속한 band 반환값
Header 페이지의 첫번째 로우넘버
Group header 그룹의 첫번째 로우넘버
Detail 표현식이 구현되는 로우넘버
Group trailer 그룹의 마지막 로우넘버
Summary 데이터윈도우의 마지막 로우넘버
Footer 페이지의 마지막 로우넘버
getText
설명
어떤 칼럼에서 사용자의 마우스 커서가 위치한 텍스트를 반환
문법
getText ()
반환값
string 타입
hour
설명
타입 데이터에서 24시 기준 시간을 반환
문법
hour()
반환값
integer 타입
예시
hour(19:01:31)
19 를 반환
hour(now())
현재 시각에서 시를 반환
if
설명
조건을 판단하여 조건에 해당하는 값을 반환
문법
if ( boolean, truevalue, falsevalue )
boolean : 조건 판단의 결과값
truevalue : boolean 표현이 true일 경우 반환하는 값
falsevalue : boolean 표현이 false일 경우 반환하는 값
반환값
truevalue 또는 falsevalue 의 데이터 타입
예시
if ( salary > 100000, "Boss", "Employee" )
salary 칼럼값이 100000를 초과하면 Boss를 그렇지 않으면 Employee를 반환
int
설명
어떤 숫자와 같거나 작은 정수 중 가장 큰 정수를 반환
문법
int (n)
n : 숫자 데이터
반환값
n 의 데이터 타입
예시
int(3.2)
3을 반환
Int(-3.2)
-4를 반환
integer
설명
string 타입값을 integer 타입값으로 변환
문법
integer (string)
반환값
integer 타입, string이 숫자형식이 아니면 0을 반환
예시
integer(“24”)
24를 반환
integer(“2ABC”)
0을 반환
isDate
설명
string 값이 유효한 date 형식인지 판단
문법
isDate (datevalue)
datevalue : date 형식의 string 값
반환값
boolean 타입
예시
isDate(“2020-09-25”)
true 를 반환한다.
isDate(“2020-09-32”)
false 를 반환한다.
isExpanded
설명
TreeView 데이터윈도우에서 어떤 level 의 group 이 확장(expanded)되어 있는지 그리고
그 group 이 어떤 row 를 포함하는지 여부를 판단
문법
Boolean dw_control.IsExpanded(long row, long groupLevel)
반환값
boolean 타입
예시
boolean lb_expanded
lb_expanded = dw_treeview.IsExpanded(3,2)
level 2에서 row 3을 포함하는 group이 확장되어 있는지 판단
isNull
설명
칼럼이나 표현식의 값이 null 인지 여부를 판단
문법
isNull (any)
반환값
boolean 타입
isNumber
설명
string 값이 유효한 숫자 형식인지 판단
문법
isNumber (string)
string : 숫자 형식의 string 값
반환값
boolean 타입
예시
isNumber("32.65")
true 를 반환한다.
isNumber("A16")
false 를 반환한다.
isRowModified
설명
row 의 칼럼값이 수정되었는지 판단
문법
isRowModified()
반환값
boolean 타입
isRowNew
설명
row 가 새롭게 추가 되었는지 판단한
문법
isRowNew()
반환값
boolean 타입
row 가 insertRow() 함수에 의해 새로 추가 되었다면 true
retrieve() 함수에 의해 조회된 것이라면 false 를 반환
isSelected
설명
row 가 select 되었는지 판단
문법
isSelected()
반환값
boolean 타입
row 가 selectRow() 함수에 의해 select (highlight 반전) 되었다면 true,
그렇지 않다면 false 를 반환
isTime
설명
string 값이 유효한 time 형식인지 판단
문법
isTime (timevalue)
timevalue : time 형식의 string 값
반환값
boolean 타입
예시
isTime("8:00:00 am")
true 반환
isTime("25:00")
false 반환
large
설명
어떤 칼럼에서 제시된 순위(ranking)에 해당하는 큰 값을 찾아 결과에 해당하는
다른 칼럼값이나 표현식을 반환
문법
large ( returnexp, column, ntop { FOR range { DISTINCT { expres1 {, expres2 {, ... } } } } } )
returnexp : 순위에 해당하는 칼럼값이나 표현식
column : 칼럼명 또는 #칼럼번호, 숫자타입
ntop : 순위(ranking)
For range :
all - 칼럼의 모든 값에 대한 순위
group n - n 그룹에 대한 순위
page - 페이지당 칼럼값에 대한 순위
crosstab - crosstab 데이타윈도우에서 칼럼값에 대한 순위
graph - graph 데이타윈도우에서 사용
object - OLE 데이타윈도우에서 사용
distinct : 칼럼값 중 중복된 값을 무시하고 순위를 계산
expresn : distinct를 적용할 칼럼명, 함수, 표현식
반환값
returnexp 의 데이터 타입, 에러시 -1 을 반환
예시
large(name, sum_sales, 1 for group 2)
group2 에서 sum_sales 값 중 가장 큰 값에 해당하는 name 값을 반환
last
설명
칼럼의 마지막 row 값을 반환
문법
last ( column { for range { distinct { expres1 {, expres2 {, ... } } } } } )
column : 칼럼명 또는 #칼럼번호
range :
all - 칼럼의 모든 값에 대한 마지막 row 값
group n - n 그룹에 대한 마지막 row 값
page - 페이지당 칼럼값에 대한 마지막 row 값
crosstab - crosstab 데이타윈도우에서 칼럼값에 대한 마지막 row 값
graph - graph 데이타윈도우에서 사용
object - OLE 데이타윈도우에서 사용
distinct : 칼럼값 중 중복된 값을 무시한 마지막 row 값
expresn : distinct를 적용할 칼럼명, 함수, 표현식
반환값
column 의 데이터 타입
예시
last(dept_id for group 2 distinct)
group 2에서 dept_id 칼럼의 distinct 된 마지막 row 값
lastPos
설명
어떤 문자열에서 특정 문자열의 마지막 위치를 찾음
문법
lastPos ( string1, string2 , searchlength )
string1 : 특정 문자열을 찾고자하는 문자열
string2 : 특정 문자열
searchlength : string1 에서 맨 왼쪽부터 시작하는 검색 제한 크기
반환값
long 타입
예시
lastPos("BABE RUTH", "RU")
6을 반환
lastPos("BABE RUTH", "B")
3을 반환
lastPos("BABE RUTH", "be")
0을 반환 (대소문자를 구분함)
lastPos("BABE RUTH", "RU", 2)
0을 반환 (“BA” 을 검색함 )
left
설명
어떤 문자열 맨 왼쪽부터 자른 문자열을 반환
문법
left ( string, n )
n : 자르려고 하는 문자열 크기, long 타입
반환값
string 타입
leftA
설명
어떤 문자열 맨 왼쪽 부터 byte 단위로 자른 문자열을 반환
문법
left ( string, n )
n : 자르려고 하는 문자열의 byte 크기, long 타입
반환값
string 타입
leftTrim
설명
문자열의 맨 왼쪽부터 space 를 제거
문법
leftTrim ( string )
반환값
string 타입, 맨 왼쪽부터 space 가 제거된 문자열
len
설명
문자열의 길이를 반환
문법
len ( string )
반환값
long 타입
lenA
설명
문자열의 길이를 byte 단위로 반환
문법
len ( string )
반환값
long 타입
log
설명
어떤 숫자의 자연로그값을 반환
문법
log ( n)
n : 0 보다 큰 숫자
반환값
double 타입
logTen
설명
어떤 숫자의 상용로그값을 반환
문법
logTen ( n)
n : 0 이상 숫자
반환값
double 타입
long
설명
string 타입값을 long 타입값으로 변환
문법
long (string)
string : 숫자형식의 문자열
반환값
long 타입
lookUpDisplay
설명
어떤 칼럼에서 data 값에 해당하는 코드 테이블의 display 값을 얻음
문법
lookUpDisplay ( column )
반환값
string 타입
예시
string ls_display
ls_display = dw_1.describe("evaluate('lookUpDisplay(state_code) ', 1)")
dw_1에서 DropDownDW Edit 속성을 가지고 있는 state_code 칼럼의 1번 로우의
display 값을 얻음
lower
설명
문자열을 소문자로 변환
문법
lower (string)
반환값
string 타입
match
설명
문자열에 특수한 문자 패턴이 포함되었는지 판단
문법
match ( string, textpattern )
textpattern : 메타문자(^, $, \, [], *, +, ?)를 포함하는 문자 패턴
반환값
boolean 타입
사용법
어떤 문자열에 특정 문자열이 포함되었는지 여부를 판단하려면 pos 함수를 사용,
match 는 정해진 의미를 가지고 있는 메타문자를 사용하여 반복되는 문자 패턴이
어떤 문자열에 포함되어 있는지 판단할 때 사용,
자세한 사용법은 파워빌더 help 참조
예시
textpattern 매치되는 문자열
AB AB 를 포함하는 어떠한 문자열 (ABA, DEABC 등)
B* B 가 없거나 반복된 B를 포함하는 문자열 (AC, B, BB, BBB, ABBBC 등)
^AB AB 로 시작되는 문자열
… ...
max
설명
칼럼의 최댓값을 계산
문법
max ( column { for range { distinct { expres1 {, expres2 {, ... } } } } } )
column : 칼럼명 또는 #칼럼번호, 숫자타입
range :
all - 칼럼의 모든 값에 대한 최댓값
group n - n 그룹에 대한 최댓값
page - 페이지당 칼럼값에 대한 최댓값
crosstab - crosstab 데이타윈도우에서 칼럼값에 대한 최댓값
graph - graph 데이타윈도우에서 사용
object - OLE 데이타윈도우에서 사용
distinct : 칼럼값 중 중복된 값을 무시하고 최댓값을 계산
expresn : distinct를 적용할 칼럼명, 함수, 표현식
반환값
최댓값을 계산하는 칼럼의 데이타 타입(숫자타입)
칼럼의 일정 범위내의 로우 최댓값
median
설명
칼럼의 중간값을 계산
문법
avg ( column { for range { distinct { expres1 {, expres2 {, ... } } } } } )
column : 칼럼명 또는 #칼럼번호, 숫자타입
range :
all - 칼럼의 모든 값에 대한 중간값
group n - n 그룹에 대한 중간값
page - 페이지당 칼럼값에 대한 중간값
crosstab - crosstab 데이타윈도우에서 칼럼값에 대한 중간값
graph - graph 데이타윈도우에서 사용
object - OLE 데이타윈도우에서 사용
distinct : 칼럼값 중 중복된 값을 무시하고 중간값을 계산
expresn : distinct를 적용할 칼럼명, 함수, 표현식
반환값
중간값을 계산하는 칼럼의 데이타 타입(숫자타입)
칼럼의 일정 범위내의 로우 중간값
mid
설명
문자열에서 제시된 위치부터 제시된 길이에 해당하는 문자들을 반환
문법
mid ( string, start {, length } )
start :시작 위치
length : 반환할 문자의 길이
반환값
string 타입
midA
설명
문자열에서 제시된 위치부터 제시된 byte 단위 길이에 해당하는 문자들을 반환
문법
midA ( string, start {, length } )
start :시작 위치
length : 반환할 문자의 byte 단위 길이
반환값
string 타입
min
설명
칼럼의 최솟값을 계산한
문법
min ( column { for range { distinct { expres1 {, expres2 {, ... } } } } } )
column : 칼럼명 또는 #칼럼번호, 숫자타입
range :
all - 칼럼의 모든 값에 대한 최솟값
group n - n 그룹에 대한 최솟값
page - 페이지당 칼럼값에 대한 최솟값
crosstab - crosstab 데이타윈도우에서 칼럼값에 대한 최솟값
graph - graph 데이타윈도우에서 사용
object - OLE 데이타윈도우에서 사용
distinct : 칼럼값 중 중복된 값을 무시하고 최솟값을 계산
expresn : distinct를 적용할 칼럼명, 함수, 표현식
반환값
최솟값을 계산하는 칼럼의 데이타 타입(숫자타입)
칼럼의 일정 범위내의 로우 최솟값
minute
설명
time 값에서 분을 숫자로 반환
문법
minute ( time )
반환값
integer 타입, 0~59
예시
Minute(19:01:31)
1을 반환
mod
설명
나눗셈에서 나머지를 반환
문법
mod ( x, y )
x를 y로 나누었을 때의 나머지
반환값
x, y 중 정밀도가 높은 것의 데이터 타입
예시
mod(25.5, 4)
1.5를 반환
mod(25, 4.5)
2.5를 반환
mod
설명
칼럼의 최빈값을 반환, 최빈값이란 가장 자주 발생하는 값
문법
mode ( column { for range { distinct { expres1 {, expres2 {, ... } } } } } )
column : 칼럼명 또는 #칼럼번호, 숫자타입
range :
all - 칼럼의 모든 값에 대한 최빈값
group n - n 그룹에 대한 최빈값
page - 페이지당 칼럼값에 대한 최빈값
crosstab - crosstab 데이타윈도우에서 칼럼값에 대한 최빈값
graph - graph 데이타윈도우에서 사용
object - OLE 데이타윈도우에서 사용
distinct : 칼럼값 중 중복된 값을 무시하고 최빈값을 계산
expresn : distinct를 적용할 칼럼명, 함수, 표현식
반환값
최빈값을 계산하는 칼럼의 데이타 타입(숫자타입)
칼럼의 일정 범위내의 로우 최빈값
month
설명
date 타입값에서 월을 얻음
문법
month ( date )
date : date 타입값
반환값
integer 타입
1~12의 값
예시
month(2005-01-31)
1을 반환
now
설명
클라이언트 PC의 시스템 시각에서 현재 시를 가져옴
문법
now ()
반환값
time 타입
number
설명
string 타입 데이터를 number 타입으로 변환
문법
number (string)
반환값
숫자 타입, string 타입 데이터가 유효한 숫자형식이 아니면 0 반환
page
설명
현재 페이지 넘버를 가져온다.
문법
page ()
반환값
long 타입
pageAbs
설명
현재 페이지의 절대 넘버를 가져옴
문법
pageAbs ()
반환값
long 타입
사용법
그룹이 설정되어 있는 데이터윈도우에서 그룹의 Reset Page Count 속성이 체크되면 그룹 데이터가
달라질 때마다 페이지 넘버가 리셋되어 카운트 되는데, 이 때 pageAbs 는 리셋되기 전의 절대적인
페이지 넘버를 가져옴
pageAcross
설명
현재 수평 페이지 넘버를 가져온다. 예를 들어 데이터윈도우의 Print Preview 속성이 활성화
되었을 때 데이터윈도우의 너비가 Print Preview 윈도우 너비의 2배이고 수평 스크롤이 생성되어
있다면 두번째 수평 페이지에서 pageAcross 는 2를 반환
문법
pageAcross ()
반환값
long 타입
pageCount
설명
데이터윈도우가 Print Preview 에서 보여질 때 전체 페이지 수를 가져온다.
데이터윈도우가 Preview 윈도우 보다 더 넓지 않다면 출력 페이지수와 같다.
데이터윈도우가 Preview 윈도우 보다 더 넓다면 출력 페이지의 수보다 작다.
문법
pageCount ()
반환값
long 타입
pageCountAcross
설명
데이터윈도우가 Print Preview 에서 보여지고 Print Preview 윈도우보다 더 넓다면
수평 페이지의 전체 수를 가져옴
문법
pageCountAcross ()
반환값
long 타입
percent
설명
어떤 칼럼에서 합계에 대한 현재 값의 백분율을 가져옴
문법
percent ( column { for range { distinct { expres1 {, expres2 {, ... } } } } } )
column : 칼럼명 또는 #칼럼번호, 숫자타입
range :
all - 칼럼의 모든 값에 대한 백분율
group n - n 그룹에 대한 백분율
page - 페이지당 칼럼값에 대한 백분율
crosstab - crosstab 데이타윈도우에서 칼럼값에 대한 백분율
graph - graph 데이타윈도우에서 사용
object - OLE 데이타윈도우에서 사용
distinct : 칼럼값 중 중복된 값을 무시하고 백분율을 계산
expresn : distinct를 적용할 칼럼명, 함수, 표현식
반환값
백분율을 계산하는 칼럼의 데이타 타입(숫자타입)
pi
설명
파이(π)의 n 제곱
문법
pi (n)
반환값
double 타입
pos
설명
어떤 문자열에서 특정 문자열을 찾아 위치를 반환, 대소문자 구분
문법
pos ( string1, string2 {, start } )
string1 : string2 를 찾고자 하는 어떤 문자열
string2 : string1 에서 찾으려는 특정 문자열
start : 시작점, 기본값 1
반환값
long 타입
posA
설명
어떤 문자열에서 특정 문자열을 찾아 바이트 위치를 반환
대소문자를 구분한다.
문법
pos ( string1, string2 {, start } )
string1 : string2 를 찾고자 하는 어떤 문자열
string2 : string1 에서 찾으려는 특정 문자열
start : 시작점, 기본값 1
반환값
long 타입
profileInt
설명
제시된 profile 파일에 작성된 integer 값을 가져옴
문법
profileInt ( filename, section, key, default )
filename : 파일 경로를 포함한 파일명
section : 파일에서 연관된 값들의 그룹명. 중괄호([ ]) 안의 문자열
key : section 내에 있는 값의 명칭. 값이 등호(=)에 이어 작성됨
default : 값을 찾지 못했을 때 반환하는 integer 값
반환값
integer 타입
profileString
설명
제시된 profile 파일에 작성된 문자열 값을 가져옴
문법
profileString ( filename, section, key, default )
filename : 파일 경로를 포함한 파일명
section : 파일에서 연관된 값들의 그룹명. 중괄호([ ]) 안의 문자열
key : section 내에 있는 값의 명칭. 값이 등호(=)에 이어 작성됨
default : 값을 찾지 못했을 때 반환하는 문자열 값
반환값
string 타입
rand
설명
1부터 제시된 상한값으로부터 정수인 난수를 가져옴
문법
rand (n), n : 최대 32767인 상한값, 최솟값 1
반환값
n의 데이터타입
real
설명
문자열을 real 타입으로 변환
문법
real (string)
반환값
real 타입
relativeDate
설명
어떤 날짜(date)에서 몇일 전후의 날짜를 구함
문법
relativeDate ( date, n )
n : integer 타입의 일수
반환값
date 타입
예시
relativeDate(2005-01-31, 10)
2005-02-10 를 반환
relativeTime
설명
어떤 시간(time)에서 몇초 전후의 시간을 구함
문법
relativeTime ( time, n )
n : long 타입의 초
반환값
time 타입
예시
RelativeTime(19:01:31, 10)
19:01:41 를 반환
replace
설명
어떤 문자열의 특정 부분을 다른 문자열로 바꿈
문법
replace ( string1, start, n, string2 )
string1 : 어떤 문자열
start : 특정 부분의 시작 위치
n : 특정 부분의 자릿수
string2 : 다른 문자열
반환값
string 타입, 변환된 문자열
예시
replace("YOUR HOUSE", 1, 4, "MY")
MY HOUSE 를 반환
replaceA
설명
어떤 문자열의 특정 부분을 다른 문자열로 바꾼다. (byte 단위)
문법
replaceA ( string1, start, n, string2 )
string1 : 어떤 문자열
start : 특정 부분의 시작 위치 (byte 단위)
n : 특정 부분의 자릿수 (byte 단위)
string2 : 다른 문자열
반환값
string 타입
변환된 문자열
rgb
설명
red, green, blue 의 숫자값으로 색깔을 나타내는 long 타입값을 반환
문법
rgb ( red, green, blue )
red, green, blue : 0~255
반환값
long 타입
right
설명
어떤 문자열의 오른쪽 끝에서 제시된 자릿수 만큼 문자열을 가져옴
문법
right ( string, n )
반환값
string 타입
rightA
설명
어떤 문자열의 오른쪽 끝에서 제시된 자릿수 만큼 문자열을 가져옴 (byte 단위)
문법
right ( string, n )
반환값
string 타입
rightTrim
설명
어떤 문자열의 오른쪽 끝부분의 모든 공백(space)을 제거
문법
rightTrim ( string )
반환값
string 타입
round
설명
어떤 숫자를 지정된 소수 자릿수로 반올림
문법
round ( x, n )
x : 어떤 숫자
n : 소수 자릿수
반환값
decimal 타입
예시
round(9.624, 2)
9.62 를 반환
rowCount
설명
dataWindow 컨트롤 이나 dataStore 에서 전체 로우의 갯수를 반환
문법
long dwcontrol.rowCount ( )
반환값
전체 로우의 갯수
rowHeight
설명
dataWindow 에서 detail band 의 높이(height)를 반환
문법
rowHeight ( )
반환값
long 타입
second
설명
time 타입 값에서 초 부분만 가져옴
문법
second ( time )
반환값
integer 타입
예시
second(19:01:31)
31을 반환한다.
secondsAfter
설명
2개의 time 타입 값의 시간차를 초로 가져옴
문법
secondsAfter ( time1, time2 )
time1 : 시작 타임
time2 : 종료 타임
반환값
long 타입
예시
secondsAfter(21:15:30, 21:15:45)
15를 반환
sign
설명
어떤 숫자의 양수, 0, 음수를 판별
문법
sign( n )
n : 양수, 0, 음수를 판별하고자 하는 숫자
반환값
integer 타입
1:양수, 0:0, -1:음수
sin
설명
어떤 각도의 사인값을 반환
문법
sin ( n )
n : 라디안값
반환값
double 타입
n의 사인값
small
설명
어떤 칼럼에서 제시된 순위(ranking)에 해당하는 작은 값을 찾아 결과에 해당하는
다른 칼럼값이나 표현식을 반환
문법
small ( returnexp, column, ntop { FOR range { DISTINCT { expres1 {, expres2 {, ... } } } } } )
returnexp : 순위에 해당하는 칼럼값이나 표현식
column : 칼럼명 또는 #칼럼번호, 숫자타입
ntop : 순위(ranking)
For range :
all - 칼럼의 모든 값에 대한 순위
group n - n 그룹에 대한 순위
page - 페이지당 칼럼값에 대한 순위
crosstab - crosstab 데이타윈도우에서 칼럼값에 대한 순위
graph - graph 데이타윈도우에서 사용
object - OLE 데이타윈도우에서 사용
distinct : 칼럼값 중 중복된 값을 무시하고 순위를 계산한다.
expresn : distinct를 적용할 칼럼명, 함수, 표현식
반환값
returnexp 의 데이터 타입, 에러시 -1 을 반환
예시
small(name, sum_sales, 3 for all DISTINCT sum_sales)
3번째로 작은 판매량을 기록한 사원명을 반환
space
설명
제시된 길이만큼 공백값을 만듬
문법
space ( n )
반환값
string 타입
sqrt
설명
어떤 숫자의 제곱근을 구함
문법
sqrt ( n )
반환값
double 타입
stDev
설명
지정된 칼럼에 대한 표준편차 추정치를 계산
문법
stDev ( column { for range { distinct { expres1 {, expres2 {, ... } } } } } )
column : 칼럼명 또는 #칼럼번호, 숫자타입
range :
all - 칼럼의 모든 값에 대한 표준편차 추정치
group n - n 그룹에 대한 표준편차 추정치
page - 페이지당 칼럼값에 대한 표준편차 추정치
crosstab - crosstab 데이타윈도우에서 칼럼값에 대한 표준편차 추정치
graph - graph 데이타윈도우에서 사용
object - OLE 데이타윈도우에서 사용
distinct : 칼럼값 중 중복된 값을 무시하고 표준편차 추정치를 계산
expresn : distinct를 적용할 칼럼명, 함수, 표현식
반환값
double 타입
stDevP
설명
지정된 칼럼에 대한 표준편차를 계산
문법
stDevP ( column { for range { distinct { expres1 {, expres2 {, ... } } } } } )
column : 칼럼명 또는 #칼럼번호, 숫자타입
range :
all - 칼럼의 모든 값에 대한 표준편차
group n - n 그룹에 대한 표준편차
page - 페이지당 칼럼값에 대한 표준편차
crosstab - crosstab 데이타윈도우에서 칼럼값에 대한 표준편차
graph - graph 데이타윈도우에서 사용
object - OLE 데이타윈도우에서 사용
distinct : 칼럼값 중 중복된 값을 무시하고 표준편차를 계산
expresn : distinct를 적용할 칼럼명, 함수, 표현식
반환값
double 타입
string
설명
date, dateTime, numeric, time 데이터를 지정된 포맷의 문자열로 변환
문법
string ( data {, format } )
반환값
string 타입
예시
string(2005-01-31, "mmm dd, yyyy")
Jan 31, 2005 반환
string(2005-01-31 06:08:00, 'mmm dd, yyyy, h "hrs and" m "min"')
Jan 31, 2005 6 hrs and 8 min 반환
string(nbr, "0000;(000);****;empty")
nbr이 123면 0123 반환
nbr이 -123면 (123) 반환
nbr이 0면 **** 반환
nbr이 null이면 empty 반환
string("ABC", "@-@-@")
A-B-C 반환
string("ABC", "@*@")
A*B 반환
string("ABC", " ")
공백 반환
sum
설명
칼럼의 합계를 계산
문법
sum ( column { for range { distinct { expres1 {, expres2 {, ... } } } } } )
column : 칼럼명 또는 #칼럼번호, 숫자타입
range :
all - 칼럼의 모든 값에 대한 합계
group n - n 그룹에 대한 합계
page - 페이지당 칼럼값에 대한 합계
crosstab - crosstab 데이타윈도우에서 칼럼값에 대한 합계
graph - graph 데이타윈도우에서 사용
object - OLE 데이타윈도우에서 사용
distinct : 칼럼값 중 중복된 값을 무시하고 평균값을 계산
expresn : distinct를 적용할 칼럼명, 함수, 표현식
반환값
적절할 숫자 타입
예시
sum(salary for group 1)
group 1 내에서 salary 칼럼값의 합계
tan
설명
탄젠트값을 반환
문법
tan ( n )
n : 삼각함수의 결과값
반환값
double 타입, n의 탄젠트값(라디안)
이 값을 각도로 얻고 싶다면 180/π 를 곱함
time
설명
유효한 시간 형식의 문자열을 time 타입으로 변환
문법
time ( string )
string : 유효한 시간 형식의 문자열 예) '10:25'
반환값
time 타입
유효한 시간 형식이 아니면 null을 반환
truncate
설명
어떤 숫자를 지정된 소수 자릿수로 절삭
문법
truncate ( x, n )
x : 어떤 숫자
n : 소수 자릿수
반환값
decimal 타입
예시
truncate(9.28, 1)
9.2 를 반환
upper
설명
문자열을 대문자로 변환
문법
upper (string)
반환값
string 타입
var
설명
지정된 칼럼에 대한 분산 추정치를 계산한다. 분산은 표준편차의 제곱
문법
var ( column { for range { distinct { expres1 {, expres2 {, ... } } } } } )
column : 칼럼명 또는 #칼럼번호, 숫자타입
range :
all - 칼럼의 모든 값에 대한 분산 추정치
group n - n 그룹에 대한 분산 추정치
page - 페이지당 칼럼값에 대한 분산 추정치
crosstab - crosstab 데이타윈도우에서 칼럼값에 대한 분산 추정치
graph - graph 데이타윈도우에서 사용
object - OLE 데이타윈도우에서 사용
distinct : 칼럼값 중 중복된 값을 무시하고 분산 추정치를 계산
expresn : distinct를 적용할 칼럼명, 함수, 표현식
반환값
double 타입
varP
설명
지정된 칼럼에 대한 분산를 계산, 분산은 표준편차의 제곱
문법
varP ( column { for range { distinct { expres1 {, expres2 {, ... } } } } } )
column : 칼럼명 또는 #칼럼번호, 숫자타입
range :
all - 칼럼의 모든 값에 대한 분산
group n - n 그룹에 대한 분산
page - 페이지당 칼럼값에 대한 분산
crosstab - crosstab 데이타윈도우에서 칼럼값에 대한 분산
graph - graph 데이타윈도우에서 사용
object - OLE 데이타윈도우에서 사용
distinct : 칼럼값 중 중복된 값을 무시하고 분산를 계산
expresn : distinct를 적용할 칼럼명, 함수, 표현식
반환값
double 타입
wordCap
설명
문자열에서 각 단어의 첫글자는 대문자로 나머지는 소문자로 변환
문법
wordCap (string)
반환값
string 타입
예시
wordCap("boston, MASSACHUSETTS")
Boston, Massachusetts 를 반환
year
설명
date 타입값에서 연을 얻음
문법
year ( date )
date : date 타입값
반환값
integer 타입
예시
month(2005-01-31)
2005를 반환
'파워빌더 기초강의2' 카테고리의 다른 글
파워빌더(PowerBuilder) 강의2 - 10.Serial 통신 (바코드 스캐너) (0) | 2021.11.25 |
---|---|
파워빌더(PowerBuilder) 강의2 - 9.Describe, Evaluate, LookUpDisplay (0) | 2021.11.16 |
파워빌더(PowerBuilder) 강의2 - 7.로그인(LogIn) 화면 만들기 (1) | 2019.12.31 |
파워빌더(PowerBuilder) 강의2 - 6.User Object : Custom Class (소스첨부) (3) | 2017.07.28 |
파워빌더(PowerBuilder) 강의2 - 5.User Object : Standard Class (1) | 2017.07.27 |