hur.cn - 华软网

 热门搜索

asp嵌套pb窗口的问题,看看错在何处??

  作者:未知    来源:网络    更新时间:2018/10/12

<%
dim autodown,lurl,ls_tmp,lpos,pbdurl
lurl=request.ServerVariables("URL")
lpos=instr(lurl,"/")
do while lpos>0
   ls_tmp=ls_tmp&mid(lurl,1,lpos )
   lurl=mid(lurl,lpos+1,len(lurl))
   lpos=instr(lurl,"/")
loop
autodown="http://"&request.ServerVariables("HTTP_HOST")&ls_tmp&"pbrx90.cab"
pbdurl="http://"&request.ServerVariables("HTTP_HOST")&ls_tmp&"abc.pbd;"
response.write(autodown)

%>

<HTML>
<HEAD>
    <TITLE></TITLE>

<META http-equiv="Content-Type" content="text/html; charset=gb2312">
<SCRIPT LANGUAGE=javascript>
<!--
function window_onresize() {
var lWidth = document.body.offsetWidth;
if( lWidth <= 0) lWidth = 1;
OBJECT1.style.width = lWidth;

var lHeight = document.body.offsetHeight - parseInt(OBJECT1.style.top);
if( lHeight <= 0 ) lHeight = 1;
OBJECT1.style.height = lHeight;
}

function window_onload() {
var aw = screen.availWidth; 
var ah = screen.availHeight;
self.moveTo(0,0);
self.resizeTo(aw, ah);

OBJECT1.border = 0;
OBJECT1.style.left = 0;

OBJECT1.style.top = 0;
var lWidth = document.body.offsetWidth;
if( lWidth <= 0) lWidth = 1;
OBJECT1.style.width = lWidth - 10;

var lHeight = document.body.offsetHeight - parseInt(OBJECT1.style.top);
if( lHeight <= 0 ) lHeight = 1;
OBJECT1.style.height = lHeight - 10;

OBJECT1.style.display="none";
tip.style.display="none";

}

//-->
-->
</SCRIPT>

</HEAD>
<BODY leftmargin="0" topmargin="0" onload="window_onload()" >
<div  id="tip" style="LEFT: 0px; POSITION: relative">正在装载报表插件模块......</div>
<%
response.Write("abc")
%>
<object id="OBJECT1" height="480" width="640" classid="CLSID:99991304-9999-1000-8000-080009AC61A9" style="DISPLAY: none; POSITION: relative z-index:1;" border="0" codebase="<%=autodown%>#version=9,0,0,5507">
  <param name="_Version" value="65536">
  <param name="_ExtentX" value="16933">
  <param name="_ExtentY" value="12700">
  <param name="MachineCode" value="0">
  <param name="DisplayRuntimeMessages" value="0">
  <param name="PBWindow" value="w_abc">
  <param name="LibList" value="<%=pbdurl%>">
  <param name="PBApplication" value="abc">
  <param name="PBVersion" value="90">

</object>

</BODY>
</HTML>


没法显示pb窗口,不知道是代码问题照旧其余的,请高手指点
------华软网友回答------
是下面这类方法吗?ie6不支持的
---------------------------------------------------------

大家好,这里有段PB7在windows plugin中实现嵌套,是的asp程序在客户端能够在客户端运用PBD程序:
(1)创建、调试和编译PB7应用程序,生成PBD资料
在为PB7窗口Plug-In设计应用程序时基本和一般的应用程序开发一样,但在开发进程中必需一直注意以下几个方面的问题:①内嵌的窗口必需是子窗口(Child),且不能拥有菜单;②不能从初始窗口中打开另一个子窗口;③剧本中不能运用"this"、"parent"等,而必需写上它们所代表的详细组件名;④不能在窗口中创建transaction对象或连接数据库(例如:connect using sqlca;),否则不能正常连接数据库。解决方法:创建一个"afteropen"用户事件,在该事件中编写数据库连接程序,然后在"open"事件中触发该事件:post event afteropen()。注意这是与PB6不同的地方。 

(2)创建一个内嵌应用程序窗口的HTML网页
在要显示内嵌窗口的位置加上HTML文本。例如:
<EMBED SRC = testplugin.pbd WIDTH = 370 HEIGHT = 320 WINDOW = w_test LIBRARY = http://localhost/plugin/plugindw.pbd COMMANDPARM = "TEST" APPLICATION = plugin>
下表为各变量所代表的含义(代"[]"的为可选项):
参 数 含 义
SRC 指定要下载组件
WIDTH、HEIGHT 指定显示窗口的宽度与高度(单位:pixel)
WINDOW 在PBD资料中要显示的窗口名
[LIBRARY] 应用所需的附加的PBD资料,必需给出绝对路径,能够指定多个PBD资料。在应用的所有对象在多个PBD资料中时运用
[COMMANDPARM] 要传送给窗口的参数(String类型)
[APPLICATION] PBD中应用对象的名字。指定后,应用对象的Open事件与Close事件便自动执行,没法省略,而且能够访问全局变量。

(3)服务器端配置
该步骤主要是让服务器知道如何措置惩罚这些PB动态库资料,而且,这个信息将会传送给响应的浏览器。对于规范PB窗口Plug-In与平安PB窗口Plug-In分别注册MIME的类型为:"application/vnd.Powerbuilder7"、"application/vnd.Powerbuilder7-s"。然后将PB库资料和HTML资料拷贝到服务器正确的目录上。例如:如果你把"C:\WEBSITE\HTDOCS"作为服务器的资料根目录,而你的PBD资料(plugindw.pbd)寄存留C:\WEBSITE\HTDOCS\PLUGIN\目录下,则该资料的完全路径为"http:/localhost/plugin/plugindw.pbd"。

(4)浏览器端配置
要浏览包括PB窗口Plug-In的网页,客户端必需知足以下要求与配置:
①建立Internet或Intranet连接
②装置支持Plug-In技术的浏览器
③装置PB应用必需的散发动态连接库(pbvm70.dll、libjcc.dll、pbdwe70.dll),在根据连接数据库的不同,增加响应的dll,例如:如果是ODBC数据源,必需包括pbodb70.dll,sybase数据库必需包括pbsyc70.dll等。并在注册表中,将其路径增加到浏览器的应用路径中。方法以下:如果PB的散发动态连接库资料寄存留C:\PB\Shared目录下,在HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\IEXPLORE.EXE目录下,增加字符串值"Path"="C:\PB\Shared"。或在C盘根目录下的autoexec.bat中增加该目录的path。
④将PB窗口Plug-In应用所需的动态连接库资料(规范型:nppba70.dll、平安型:nppbs70.dll)复制到浏览器的plug-in目录下
⑤在注册表中增加以下注册项目:
REGEDIT4

[HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Plugins]
@=""

[HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Plugins\Extension]
@=""

[HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Plugins\Extension\.pbd]
"Content Type"="application/vnd.powerbuilder7"
"Version"="7.0.00.5031"
@="PowerBuilder Window Plug-in"
"Location"="C:\\PROGRA~1\\INTERN~1\\PLUGINS\\nppba70.dll"

[HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Plugins\MIME]
@=""

[HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Plugins\MIME\application/vnd.powerbuilder7]
"Extension"=".pbd


可是通过我的尝试,按照以上方案只有win98的客户端能很好地嵌套PBD资料,即当它在win2000的系统下该PBD插件在客户端就显示不出来,也没有所有报错,只是显示一个框框,类似一张图没法被浏览器显示一样,有哪位能共同探讨出这问题的原因在哪?谢谢。

------华软网友回复------
多谢,给分      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。