【PB案例学习笔记】-50使用DataStore共享数据

写在前面

这是PB案例学习笔记系列文章的第50篇,该系列文章适合具有一定PB基础的读者。

通过一个个由浅入深的编程实战案例学习,提高编程技巧,以保证小伙伴们能应付公司的各种开发需求。

文章中设计到的源码,小凡都上传到了gitee代码仓库https://gitee.com/xiezhr/pb-project-example.git

gitee代码仓库

需要源代码的小伙伴们可以自行下载查看,后续文章涉及到的案例代码也都会提交到这个仓库【pb-project-example

如果对小伙伴有所帮助,希望能给一个小星星⭐支持一下小凡。

一、小目标

通过本案例,我们实现通过DataStore共享数据。通过点击界面上的“共享数据”按钮,将一个数据窗口
中的数据共享给另一个数据窗口。
最终实现效果如下:
通过datastore共享数据

二、创作思路

在PB中,数据存储对象DataStore实际上就是去掉可视特征的数据窗口控件。
除了可视特征外,DataStoreDataWindow的功能用法完全相同。

数据存储对象DataStore属性很简单,其说明如下

属性说明
DataObjectString类型,指定数据存储对象相关联的数据窗口对象名称或报表对象名
ObjectDWObject类型,用于代码中直接操作数据窗口对象中的对象,包括设置对象的属性,得到数据窗口中的数据

三、创建程序基本框架

有了基本思路之后,我们就动起来开始写程序了

① 新建examplework 工作区

② 新建exampleapp应用

③ 新建w_main窗口,并将其Title设置为“使用DataStore共享数据”

由于文章篇幅的原因,以上步骤就不再赘述,如果忘记的小伙伴可以翻一翻该系列第一篇文章复习一下

四、界面布局

① 建立Grid风格数据窗口对象
连接数据库,以emp表为数据源,建立数据窗口对象d_emp
② 建立窗口控件
w_main窗口中添加2个DataWindow控件和2个CommandButton控件
依次命名为dw_1dw_2cb_1cb_2
③ 设置窗口控件属性

  • dw_1控件的DataObject设置为d_emp,并勾选HScrollBarVScrollBar复选框
  • cb_1按钮的Text设置为“共享数据”
  • cb_2按钮的Text设置为“退出”
    界面布局

五、编写代码

① 在w_main窗口的Open事件中添加如下代码

dw_1.settransobject(sqlca)
dw_1.retrieve()

② 在cb_1Clicked事件中添加如下代码

datastore ds_emp
ds_emp = create datastore
ds_emp.dataobject = "d_emp"
ds_emp.settransobject(sqlca)
ds_emp.retrieve()
dw_2.dataobject = ds_emp.dataobject
ds_emp.sharedata(dw_2)

③ 在cb_2Clicked事件中添加如下代码

close(w_main)

④ 在开发界面左边的System Tree窗口中双击exampleapp应用对象,并在其Open事件中添加如下代码

SQLCA.DBMS = "O90 Oracle9i (9.0.1)"
SQLCA.LogPass = "tiger"
SQLCA.ServerName = "127.0.0.1:1521/orcl"
SQLCA.LogId = "scott"
SQLCA.AutoCommit = False
SQLCA.DBParm = "PBCatalogOwner='scott'"

connect;
open(w_main)

⑤ 在开发界面左边的System Tree窗口中双击exampleapp应用对象,并在其close事件中添加如下代码

disconnect;

六、运行程序

运行程序看看效果

通过datastore共享数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员晓凡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值