我已经实验了一下,现在我知道如何在intraweb中调用activex了,下面我说一下范例
有这么一个程序,在ActiveXform上有一些报表控件,而在intraweb界面上有一个iwedit,希望通过对iwedit上输入sql语句,来实现报表的产生。
(1)产生一个ActiveXForm,上面有Query\DataSource还有几个报表控件,在Type Libary里增加一个SQL:widestring read Get_SQL的属性,这个是用来接收SQL语句的,在它的Get_SQL中写出调用ActiveForm.Query执行SQL的代码
(2)注册这个ActiveFormX,这个时候,启动FrontPage,建立一个新的页面,然后在这个页面中插入你新建的ActiveXForm
(3)在FrontPage里分析一下你的脚本看看,你有了全新的发现,在加入ActiveXForm的脚本是这么写的
<object classid:....classid....... width........ height......>
<param name="caption“ value="activeXform1">
................
<param name="SQL" value="">
</object>
这个说明了什么呢?说明了IntraWeb完全可以通过产生动态脚本的方式插入ActiveXForm的控件,而且可以通过指定<param name..........value.........>的方式控制ActiveXForm执行什么样的工作。
(4)那么我们回到Intraweb,加入一个iwbutton,再加一个iwedit,我们可以写iwbutton来动态产生插入ActiveXForm的脚本。
这里有个问题,那么由谁加载这个脚本呢?我觉得最好的就是IwText,那么再在Iwform上放一个IwText,这个时候写Iwbutton的OnClick的事件代码
IwText1.lines.clear;
IwText1.lines.add( '<object classid:....classid....... width........ height......>
<param name="caption“ value="activeXform1">
................');
IwText1.lines.add('<param name="SQL" value="'+IwEdit1.text+'">');
IwText1.lines.add('</object>');
(4)OK了,你执行一下,现在的ActivexForm就可以加载到Intraweb上,并且一出现,就执行了IwEdit里指定的SQL语句(5)两句话"
1.通过动态产生<object>...........</object>脚本的方式加载ActiveForm
2.通过动态产生<param name .... value>脚本的方式与ActiveForm传递参数
最后注意一下,刚才说的IwText的RowLine的属性必须为True,以免IwText自动换行或者加那些不该有的空格
有这么一个程序,在ActiveXform上有一些报表控件,而在intraweb界面上有一个iwedit,希望通过对iwedit上输入sql语句,来实现报表的产生。
(1)产生一个ActiveXForm,上面有Query\DataSource还有几个报表控件,在Type Libary里增加一个SQL:widestring read Get_SQL的属性,这个是用来接收SQL语句的,在它的Get_SQL中写出调用ActiveForm.Query执行SQL的代码
(2)注册这个ActiveFormX,这个时候,启动FrontPage,建立一个新的页面,然后在这个页面中插入你新建的ActiveXForm
(3)在FrontPage里分析一下你的脚本看看,你有了全新的发现,在加入ActiveXForm的脚本是这么写的
<object classid:....classid....... width........ height......>
<param name="caption“ value="activeXform1">
................
<param name="SQL" value="">
</object>
这个说明了什么呢?说明了IntraWeb完全可以通过产生动态脚本的方式插入ActiveXForm的控件,而且可以通过指定<param name..........value.........>的方式控制ActiveXForm执行什么样的工作。
(4)那么我们回到Intraweb,加入一个iwbutton,再加一个iwedit,我们可以写iwbutton来动态产生插入ActiveXForm的脚本。
这里有个问题,那么由谁加载这个脚本呢?我觉得最好的就是IwText,那么再在Iwform上放一个IwText,这个时候写Iwbutton的OnClick的事件代码
IwText1.lines.clear;
IwText1.lines.add( '<object classid:....classid....... width........ height......>
<param name="caption“ value="activeXform1">
................');
IwText1.lines.add('<param name="SQL" value="'+IwEdit1.text+'">');
IwText1.lines.add('</object>');
(4)OK了,你执行一下,现在的ActivexForm就可以加载到Intraweb上,并且一出现,就执行了IwEdit里指定的SQL语句(5)两句话"
1.通过动态产生<object>...........</object>脚本的方式加载ActiveForm
2.通过动态产生<param name .... value>脚本的方式与ActiveForm传递参数
最后注意一下,刚才说的IwText的RowLine的属性必须为True,以免IwText自动换行或者加那些不该有的空格
有一天也会用 InterWeb 编程的,老兄有什么经验还请多多告之,
[email protected]
我想这个问题可以借助一下ClientDataSet以及XML控件,首先在ActiveFormX里加入一个ClientDataSet,而在IntraWeb里加入产生XML文本的控件,那么问题简单了,只要在加载ActiveX前,把数据整理成为XML字符串在<param name="SQL" value="">里面加载,并且在ActiveX生成的时候令其自动的把这些XML字符串加载给ClientDataSet不就可以实现了吗?
虽然我提出了依靠IntraWeb上的ClientDataSet和ActiveXForm上的ClientDataSet交换XML字符串的方式,但是我有一个不明白,就是ClientDataSet的数据如何不使用ClientDataSet.SaveToFile和ClientDataSet.LoadFromFile的方式保存XML数据呢?