El enlace de la descarga es:
http://www.oracle.com/technetwork/middl ... 97435.html
en el apartado que pone: Viewer Technology 8.3.5
Sección: Windows ActiveX (x86-32)
Code: Select all
PROCEDURE VisorDocumentos( nNumDoc )
LOCAL oWnd, oOcx
LOCAL cFileTemp, cExtension
LOCAL cSql, oRow
LOCAL nShellRet
LOCAL lCont := FALSE
WaitOn( "Recuperando archivo para visualizarlo..." )
cSql := "SELECT TOP 1 NOMBRE, ARCHIVO FROM DOCUMENTOS WHERE NUM_DOCU=%1"
oRow := KQueryROW( cSql, { nNumDoc } )
IF HB_IsNil( oRow )
WaitOff()
MsgAlert( KErrorText(), "Alerta" )
ELSE
cFileTemp := GetFolderMyTemp() + "\" + RTrim( oRow:NOMBRE )
cExtension := Upper( cFileExt( cFileTemp ) )
IF !( StrFile( HB_HexToStr( oRow:ARCHIVO ), cFileTemp ) > 0 )
WaitOff()
MsgAlert( "No se pudo extraer documento para visualizarlo.", "Alerta" )
ELSE
lCont := TRUE
ENDIF
ENDIF
oRow := NIL
WaitOff()
IF !lCont .or. !File( cFileTemp )
RETURN
ENDIF
IF !Empty( cExtension ) .and. cExtension $ "PDF_XLS_DOC_PPT_XLSX_DOCX_PPTX_JPG_PNG_BMP_TXT_RTF"
nShellRet := ShellExecute( 0, "open", cFileTemp,,, 1 )
IF nShellRet==31
MsgAlert( "No existe programa asociado para visualizar el documento.", "Alerta" )
ENDIF
ELSE
IF !IsActiveX( "oixctrl.oixctrl.2" )
MsgAlert( "Visor no esta registrado en este equipo." + FINL + "Contacte con el administrador.", "Alerta" )
RETURN
ENDIF
DEFINE WINDOW oWnd TITLE "Visor de documentos" ICON GetIcon()
DEFINE BUTTONBAR OF oWnd 3D SIZE 60, 60 2010
DEFINE BUTTON NAME "TB_EXIT" OF oWnd:oBar ACTION oWnd:END() PROMPT "&Salir"
oOcx := TActiveX():new( oWnd, "oixctrl.oixctrl.2" )
oWnd:oClient := oOcx
oWnd:SetSize( 800, 600 )
oOcx:ViewFile( FALSE, cFileTemp )
ACTIVATE WINDOW oWnd ON INIT oWnd:MAXIMIZE() VALID ( oOcx:Close(), oOcx := NIL, FileDelete( cFileTemp ), TRUE )
ENDIF
RETURN