建立一个excel工作表,以mxz.xls为文件名保存。
然后编写脚本如下并执行:
long handle_1
handle_1=openchannel(″excel″,″mxz.xls″) //建立与excel的通道
setremote(″r2c1″,″序号″,″excel″,″mxz.xls″)
setremote(″r2c2″,″摘要″,″excel″,″mxz.xls″)
setremote(″r2c3″,″收入″,″excel″,″mxz.xls″)
setremote(″r2c4″,″支出″,″excel″,″mxz.xls″)
setremote(″r2c5″,″余额″,″excel″,″mxz.xls″)
setremote(″r2c6″,″日期″,″excel″,″mxz.xls″)
execremote(″[save()]″,″excel″,″xmk.xls″)
上述脚本执行后,再打开mxz.xls,它变成了如图2的模样:
其实,这段脚本用到了三个dde客户函数:openchannel()、setremote()和execremote(),其实,掌握了这三个dde函数,就可以随心所欲地写出打印功能十分强大的powerbuilder数据库程序来。
1、openchannel()
它的功能是打开连接dde服务器的通道。
语法: openchannel ( applname, topicname {, windowhandle } )
参数:
applname:string类型,指定dde服务器应用的dde名称。
topicname:string类型,指定命令中要使用的dde应用的数据或实例。
windowhandle:long类型,可选项,指明用作dde客户的powerbuilder窗口的窗口句柄。省略该参数时,当前应用中的活动窗口用作dde客户。
返回值:long类型。函数执行成功时返回一个正数作为已打开通道的句柄,发生错误时返回下述值之一:
-1 打开失败。
-9 句柄为null。
示例: 下面的代码建立到excel的dde通道,之后请求三个单元格的数据,并把这些数据保存在数组s_regiondata中。dde会话的客户端窗口为w_ddewin:
long handle
string s_regiondata[3]
handle = openchannel(″excel″, ″region.xls″, handle(w_ddewin))
getremote(″r1c2″, s_regiondata[1], handle, handle(w_ddewin))
getremote(″r1c3″, s_regiondata[2], handle, handle(w_ddewin))
getremote(″r1c4″, s_regiondata[3], handle, handle(w_ddewin))
closechannel(handle, handle(w_ddewin))