WINAP를 사용하여 Excel, PDF 등의 파일을 파워빌더에서 열 경우 윈도우에 설치된 연결된 프로그램으로 오픈하는 방법에 대해서 포스팅 하고자 합니다. 부연 설명하자면 Excel 은 Office의 excel프로그램에서, PDF는 아크로벳리더에서 오픈 될 수 있게 코딩하고자 합니다.
Global External Functions 에 사용할 WINAPI를 아래와 같이 선언합니다.
FUNCTION long ShellExecuteA( long hWnd, REF String ls_Operation, REF String ls_File, REF String ls_Parameters, REF String ls_Directory, INT nShowCmd ) library "shell32.dll" alias for "ShellExecuteA;Ansi"
아래 소스는 DataWindow 의 File_Nm 이란 필더를 클릭 할 경우 해당 연결 파일의 프로그램이 오픈 될 경우의 코딩입니다.
if dwo.name = 'file_nm' then // 파일명을 클릭하면 파일 열기
String ls_file_path, ls_ftp_file_nm, ls_File_nm
This.AcceptText()
ls_File_nm = This.GetItemString(row, 'file_nm')
ls_file_path = This.GetItemString(row, 'file_path')
if isnull(ls_File_nm) or ls_File_nm = '' then
return 0
end if
uf_doc_view(ls_file_path, ls_File_nm)
end if
//uf_doc_view 함수 스크립트
uf_doc_view(string ls_file_path, string ls_File_Nm)
Integer li_rtn
if isnull(ls_file_path) or ls_file_path = '' then
ls_file_path = '.\' + ls_File_Nm
else
ls_file_path = ls_file_path + ls_File_Nm
end if
Ulong lul_handle
string f1, f2, f3, f4
f1 = "Open"
f2 = ls_file_path
f3 = " "
f4 = " "
lul_handle = Handle(This)
ShellExecuteA(lul_handle, f1, f2, f3, f4, 1)
return li_rtn
2022년 연말정산간소화 pdf xml 파싱 (0) | 2022.12.26 |
---|---|
PowerBuilder 마이그레이션시 체크 할 부분 (0) | 2022.09.16 |
파워빌더 DataWindow 틀고정 방법 (0) | 2020.11.17 |
파워빌더 HTTP 파일 다운로드 방법(urlmon.dll) (2) | 2020.01.28 |
파워빌더에서 Post로 전송하는 방법2가지 (0) | 2019.11.08 |
Blog is powered by kakao / Designed by 미스터짱