제목과 같은 기능 구현 요청이 현업에서 있었습니다.
처음에는 key 입력 이벤트에서 + 키 체크하면 쉽게 구현이 가능 할 줄 알았습니다.
//ue_key event에 아래 소스 선언
if key = KeyAdd! then
	String 	ls_ColumnName, ls_ColumnType
	Long 	 	li_Row
	Decimal 	lc_Amt
	ls_ColumnName 	= This.GetColumnName()
	ls_ColumnType  = This.uf_GetColType(ls_ColumnName)
	
	IF ls_ColumnType = 'number' Then
		This.AcceptText()
	   li_Row = This.GetRow()
		lc_Amt = This.GetitemNumber( li_Row, ls_ColumnName)
		lc_Amt = lc_Amt*1000
		
		This.SetItem(li_Row, ls_ColumnName, lc_Amt)
		
		  
   End IF
End IF
// uf_getcoltype(string as_column) returns string  함수 소스
String ls_Type
ls_Type = This.Describe(as_Column + ".ColType")
Choose Case ls_Type
	Case 'date', 'datetime', 'time', 'timestamp'
		Return ls_Type
		
	Case 'int', 'long', 'number', 'real', 'ulong'
		Return 'number'
		
	Case else
		
		IF MID(ls_Type, 1, 4) = 'char' Then
			Return 'string'
		End IF
		IF MID(ls_Type, 1, 7) = 'decimal'  Then
			Return 'number'
		End IF
End Choose
Return ''
참고) uf_getcoltype 함수는 해당 컬럼이 숫자인 경우 number를 리턴합니다.
아래는 위소스로 1 입력 후 + 키 입력 한 경우입니다.
1 X 1000 후 + 키가 입력이 됩니다. ㅡㅡ;

// Global External Functions 에 아래 소스 선언 
SUBROUTINE keybd_event( int bVk, int bScan, int dwFlags, int dwExtraInfo) LIBRARY "user32.dll" 
// ue_key 이벤트에 아래 소스추가 
if key = KeyAdd! then
	String 	ls_ColumnName, ls_ColumnType
	Long 	 	li_Row
	Decimal 	lc_Amt
	ls_ColumnName 	= This.GetColumnName()
	ls_ColumnType  = This.uf_GetColType(ls_ColumnName)
	
	IF ls_ColumnType = 'number' Then
		This.AcceptText()
	   li_Row = This.GetRow()
		lc_Amt = This.GetitemNumber( li_Row, ls_ColumnName)
		lc_Amt = lc_Amt*1000
		
		This.SetItem(li_Row, ls_ColumnName, lc_Amt)
		
      keybd_event(8, 1, 0, 0)    // 백스페이스키 강제 입력으로 제일 앞에 있는 + 지움
      keybd_event(35, 1, 0, 0)   // End 강제 입력으로 커서를 제일 끝으로 이동	
		  
   End IF
End IF
1차 소스에서 + 키입력 시 곱하기 1000 후 백스페이스 키와 End키를 강제로 발생시킵니다.
| Powerbuilder Stored Procedure(SP) Output 파라미터 관련 (0) | 2021.06.14 | 
|---|---|
| Gmail 메일 발송시 스팸메일로 처리되어 발송이 안되는 경우 해결 방법 (0) | 2021.05.27 | 
| MSSQL 웹(Get/Post)통신 : SQL_APIConsumer 활용 (0) | 2020.08.21 | 
| MSSQL 웹(Get/Post)통신 : SQL_APIConsumer (2) | 2020.08.20 | 
| 네이버 SmartEditor 기본글꼴 변경하기 (0) | 2020.04.09 | 
Blog is powered by kakao / Designed by 미스터짱