公司最近计划搞一个报表服务器,用FineReport作为后台Web Server,浏览器作为客户端。
公司的ERP是使用PowerBuilder 9.0开发的,为了实现在ERP中集成FineReport,想到了在PowerBuilder中嵌入IE控件的处理方式。
在网上搜到下面代码:
Integer result
oleobject objExplorer
objExplorer = CREATE oleobject
result = objExplorer.ConnectToNewObject( "InternetExplorer.Application")
IF result = 0 THEN
objExplorer.Navigate("about:blank")
objExplorer.ToolBar = 0
objExplorer.StatusBar = 0
objExplorer.Width = 300
objExplorer.Height = 150
objExplorer.Left = 0
objExplorer.Top = 0
objExplorer.Visible = 1
END IF
上面的代码可以实现在PB里面打开一个浏览器窗口,不过这个窗口是另外开的,没有嵌入到PB中。
修改一下:
1. 插入一个OLE对象Microsoft Web Browser,命名为ole_1。
2. 写一段代码:ole_1.object.Navigate("http://www.baidu.com")。
3. 运行程序,成功。
如何在PB中调用浏览器的JavaScript?
1. 在网页中写入要调用的脚本:
<SCRIPT language=JavaScript> function showmessage(img_name) { alert(img_name); } </SCRIPT>
2. 在PB中调用:
ole_1.object.document.parentWindow.showmessage("吞硬币的小猪");