VDNCore 组件
uo_vdncore 组件集成了浏览器运行、消息服务、HttpClient、文件上传下载、加解密、服务端插件调用等一系列功能。
示例代码位置: Example\PB 演示示例\VDNDemo.pbw
导入组件
目录: Example\\导入组件\\PB\*\\ 包含两个文件
- uo_vdncore.sru VDN 组件
- d_online_user.srd 用户在线列表 DataWindow
右键项目主 PBL,点击 import,导入 uo_vdncore.sru。
如果自定义一些功能需要修改 vdncoure 组件,建议继承该组件,然后在继承后的组件上进行修改,便于升级。
组件实例化
在 PB 程序中使用该组件,可以直接在窗体拖一个 uo_vdncore 组件,(建议定义一个全局变量指向该组件,整个程序都可以使用,例如:guo_vdn=uo_vdn)
通过代码实例化
uo_vdncore luo_vdn
luo_vdn=create uo_vdncore
luo_vdn.ini() //初始化
//当要与服务器进行一些交互,比如获取帐套、升级等,需要对如下属性进行初始化
luo_vdn.sn="序列号"
luo_vdn.desKey="Topany" //与服务端的DesKey对应
luo_vdn.url="http://www.xxx.com:8088 //域名或服务器IP
//......
destroy luo_vdn //使用完成释放- 如果 PB 插件或者 Web 后台使用只需要定义 uo_vdncore guo_vdn 全局变量,不需要实例化,服务端会自动实例化该变量
文件上传
通过 uo_vdncore.upfile 可以实现文件的上传、下载、异步上传、异步下载,这个是专门针对 VDN 服务端的文件操作,具体参见的示例代码中的 w_vdn_upfile

智能升级
通过 uo_vdncore 可以实现智能升级,在程序或登录窗体 open 最开始的位置调用 update 方法,来检测是否需要升级。
提示
通过浏览器运行时 Web 组件会自动处理升级,就不需要手动写代码了
当单独运行则需要调用 Update 函数来升级,相对于 Web 组件的自动升级这种调用函数的升级方式称为手动升级
PB 开发状态下不会执行升级
update(url,project,{onlyValid})
update(project,{onlyValid})| 参数 | 类型 | 必须 | 默认值 | 说明 |
|---|---|---|---|---|
| url | string | 必须 | - | 服务器的 URL 地址; 如果对组件的 URL 属性进行了初始化,则不需要该参数 |
| project | string | 必须 | - | 项目名称(必须) 与【项目发布--项目信息】里设置的项目名称一致 |
| onlyValid | boolean | 可选 | False | True: 仅验证,不执行升级 False: 如果需要升级则直接升级 |
返回值:
True 项目需要升级
False 项目不需要升级
示例:
//方式一、先验证,带用户确认再决定是否升级
If uo_vdn.WebRun = False Then //非浏览器运行
If uo_vdn.Update("PB演示示例",True) Then //项目名称
If MessageBox("提示","系统已经更新,是否升级?",Question!,yesno!,1) = 1 Then
uo_vdn.Update("PB演示示例") //升级
End If
else
//判断错误
if uo_vdn.LastError<>"" then
messagebox("升级错误",uo_vdn.LastError)
end if
End If
End If
return
//方式二、直接升级 这里前提是已经对url属性初始化了
uo_vdn.Update("项目名称")
//或者
uo_vdn.Update("http://....","项目名称")等待窗体
弹出异步(多线程)的等待窗体,在数据加载或者处理时显示,不会因为主进程的无响应而受影响。
- 打开等待窗体
uo_vdn.ShowWait({inf},{autoClose})| 参数 | 类型 | 必须 | 默认值 | 说明 |
|---|---|---|---|---|
| inf | string | 可选 | - | 等待窗体显示的信息 |
| autoClose | boolean | 必须 | False | True: 当事务执行完成或者调用 Yield 函数就自动关闭 |
- 相关的属性
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| waitWidth | integer | 1800 | 指定等待窗体的宽度 |
| waitHeight | integer | 500 | 指定等待窗体的高度 |
| waitStyle | integer | 0 | 0/1 切换窗体的两种不同的 UI |
| waitPos | Alignment | 0 | 等待位置 left! 左下 center! 居中 right! 右下 |
| waitContentAlign | Alignment | 0 | 内容位置 0 center 1 top |
| waitwintype | string | window | 指定一个窗体类型用来显示等待窗体 |
- 关闭等待窗体
uo_vdn.CloseWait() //关闭等待窗体其他功能
组件还包括消息服务、HttpClient、加解密等常用的功能,具体详见示例代码
示例位置:Example\PB演示示例\VDNDemo.pbw

