当前位置: 首页 > news >正文

【PB案例学习笔记】-46在数据窗口中编辑数据

大家好,我是晓凡

写在前面

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

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

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

gitee代码仓库

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

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

一、小目标

通过本案例我们将实现在数据窗口中对数据进行增删改查操作。
程序最终效果如下:
在数据窗口中编辑数据

二、实现思路

PB中,我们可以通过RowCountInsertRowDeleteRowScrollToRowupdate函数来对数据进行增删改查操作。

2.1 InsertRow函数

在数据窗口控件指定行前面插入一行
语法:

dwcontrol.InsertRow(row)

参数说明:

参数说明
dwcontrol需要操作的数据窗口空间名
rowLong类型,指定在哪一行前面插入新行。当row=0时,表示在最后一行后面插入一行
2.2 RowCount函数

返回数据窗口控件当前可用的行数

语法:

dwcontrol.RowCount()
2.3 ScrollToRow函数

滚动数据窗口控件的显示到指定行,行数改变当前行,但不改变当前列

语法:

dwcontrol.ScrollToRow(row)
2.4 Update函数

把数据窗口控件中所有数据修改(增、删、改)传送到数据库,从而更新数据库中数据
注:在使用Update函数之前需要先调用AcceptText函数将“漂浮”在当前行/列上的编辑框中的内容放入到数据窗口的缓冲区中

语法:

dwcontrol.Update({accept{,resetflag}})

参数说明:

参数参数说明
dwcontrol数据窗口空间名
accept可选项,Boolean类型。指定数据窗口控件在更新数据库之前是否自动执行AcceptText的功能呢
resetflag可选项,Boolean类型,指定更新数据库后是否自动恢复更新标志

三、创建程序基本框架

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

① 新建examplework 工作区

② 新建exampleapp应用

③ 新建w_main窗口,并将其Title设置为"窗口中编辑数据"

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

四、界面布局

① 建立数据窗口对象
连接数据库,选择emp表,建立Grid风格的数据窗口,选中需要的字段,并保存为d_emp
d_emp
② 建立窗口控件
w_main窗口中添加1个DataWindow控件和4个CommandButton控件,依次命名为dw_1cb_1~cb_4
③ 设置窗口控件

  • dw_1DataObject属性设置为d_emp
  • cb_1Text属性设置为"添加"
  • cb_2Text属性设置为"删除"
  • cb_3Text属性设置为"保存"
  • cb_4Text属性设置为"退出"
    界面布局

五、编写代码

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

dw_1.settransobject(sqlca)
dw_1.retrieve()

② 在w_main窗口的cb_1按钮的Clicked事件中添加如下代码

int li_row
//在数据窗口的最后一行后面插入一行
li_row = dw_1.insertRow(0)
// 滚动到li_row行
dw_1.scrollToRow(li_row)
//设置焦点
dw_1.setfocus()

③ 在w_main窗口的cb_2按钮的Clicked事件中添加如下代码

int li_row
//获取当前行
li_row = dw_1.getRow()
//删除li_row行
dw_1.deleteRow(li_row)
//将数据更新到数据库
dw_1.update()
//提交事务
commit;
//查询数据赋值给dw_1
dw_1.retrieve()

④ 在w_main窗口的cb_3按钮的Clicked事件中添加如下代码

//将数据更新到数据库
dw_1.update()
//提交事务
commit;
//查询数据赋值给dw_1
dw_1.retrieve()

⑤ 在w_main窗口的cb_4按钮的Clicked事件中添加如下代码

close(parent)

⑥ 在开发界面左边的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;

六、运行程序

运行程序,看看是否达到预期效果

在数据窗口中编辑数据

http://www.dtcms.com/a/523825.html

相关文章:

  • tomcat问题
  • 爱电影网站个人养老金制度将落地
  • 自己做游戏网站电子商务营销是什么意思
  • 基于深度学习的短视频内容理解与推荐系统_hadoop+flask+spider
  • unbuntu系统配置IPV6的三种模式
  • ZVD振动抑制方法原理介绍
  • Java微服务无损发布生产案例
  • Kivy 乒乓游戏教程 基于Minconda或Anconda 运行
  • 摄影的网站设计特点同城发广告的平台有哪些
  • 【Python高级编程】类和实例化
  • 徐州市建设局交易网站网站设计的公司运营接单
  • 虹科亮相2025嵌入式会议 | 解读CAN XL与TSN如何驱动下一代E/E架构创新
  • VxWorks系统下龙芯平台的PCI驱动与硬件配置
  • 【2026计算机毕业设计】基于Django的新闻资讯平台的设计与实现
  • Linux小课堂: 基于 SSH 的安全文件传输与增量同步机制深度解析之从 wget 到 rsync 的全流程实战
  • 使用ffmpeg裁剪视频
  • 凡科建站网站西安全网推广公司
  • 免费网站建设程序下载建站用什么工具
  • 香港科技大学工学院2026/2027年度研究生课程招生宣讲会-重庆大学专场
  • Qualcomm SNPE(Neural Processing SDK)集成到 OpenWRT + QCS6490 的完整配置指南
  • LangGraph 官方教程:聊天机器人之一
  • Git与Gitee使用中的几个问题
  • 关于淘宝店网站建设的可行性报告网站建设的公司
  • Flink DatastreamAPI详解(四)
  • 线性代数直觉(四):找到特征向量
  • iis网站服务器 建立出现问题微信小程序制作费用是多少
  • 亚马逊云代理商:2025 AWS 服务器配置趋势走向怎么样?
  • 建设银行网站修改手机号湖南省和城乡住房建设厅网站
  • 云电脑与云手机的关系
  • 加性高斯白噪声和码间串扰的信道中Ungerboeck和Forney接收机的区别