实验三窗口与常用控件编程.docx

上传人:b****6 文档编号:4179819 上传时间:2022-11-28 格式:DOCX 页数:12 大小:98.60KB
下载 相关 举报
实验三窗口与常用控件编程.docx_第1页
第1页 / 共12页
实验三窗口与常用控件编程.docx_第2页
第2页 / 共12页
实验三窗口与常用控件编程.docx_第3页
第3页 / 共12页
实验三窗口与常用控件编程.docx_第4页
第4页 / 共12页
实验三窗口与常用控件编程.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

实验三窗口与常用控件编程.docx

《实验三窗口与常用控件编程.docx》由会员分享,可在线阅读,更多相关《实验三窗口与常用控件编程.docx(12页珍藏版)》请在冰豆网上搜索。

实验三窗口与常用控件编程.docx

实验三窗口与常用控件编程

实验三窗口与常用控件编程

一、目的和要求

1.掌握主窗口(main窗口)的创建和窗口属性的调整方法

2.加深对窗口类型、各种类型窗口的特点以及应用范围的认识

3.掌握静态文本控件(StaticText)、单行编辑器控件(SingleLineEdit)、编辑掩码控件(EditMask)、单选控件(RadioButton)、成组框(GroupBox)、命令按钮(CommandButton)的使用方法。

4.掌握数据库的动态连接方法

二、实验准备

1.复习有关窗口、控件的知识

2.启动PowerBuilder9.0

3.建立目录(如:

D:

\PB),按照实验一中描述的方法,建立工作空间(Student

.pbw),目标文件(Student.pbt),应用文件(Student.pbl)。

4.按照实验二的方法,用ODBC连接数据库(student.pb)

三、实验内容

1.数据准备

向数据库中插入部门和专业信息

(1)按照实验2的方法,通过ODBC连接已经建好的数据库Student.db。

(2)单击工具栏的数据库(database)图标

,进入数据库画板。

(3)选择菜单“View”下的子菜单“InteractiveSQL”,进入“ISQLSession”窗口,输入SQL语句:

//插入部门数据

Insertintodepartmentvalues(‘0001’,’计算机系’,’计算机软硬件’);

Insertintodepartmentvalues(‘0002’,’通信工程系’,’通信工程’);

Insertintodepartmentvalues(‘0003’,’信息科学系’,’信号处理’);

Insertintodepartmentvalues(‘0004’,’数学系’,’应用数学’);

Insertintodepartmentvalues(‘0005’,’指挥管理系’,’’);

Insertintodepartmentvalues(‘0008’,’地方生系’,’’);

Insertintodepartmentvalues(‘0009’,’联办生系’,’’);

//插入专业数据

Insertintomajorvalues(‘000101’,’计算机硬件’,’0001’,’’);

Insertintomajorvalues(‘000102’,’计算机应用’,’0001’,’’);

Insertintomajorvalues(‘000201’,’通信工程’,’0002’,’’);

Insertintomajorvalues(‘000202’,’自动化’,’0002’,’’);

Insertintomajorvalues(‘000203’,’侦测工程’,’0002’,’’);

Insertintomajorvalues(‘000301’,’信号处理’,’0003’,’’);

Insertintomajorvalues(‘000401’,’应用数学’,’0004’,’’);

输入SQL语句后,单击图标

,执行SQL语句。

2.创建窗口对象

创建新窗口对象的步骤如下。

(1)单击工具栏上的New图标

,弹出”New”对话框,选择“Pbobject”,

如下图。

(2)选中“Window”图标,单击“OK”,出现窗口画板。

(3)单击“File”菜单下“SaveAs”,出现“SaveWindow”窗口,如下图

(4)输入窗口名称W_student,单击“OK”保存。

注意:

窗口名称最好以W_开头,以示与其他对象的区别。

,在上面窗口的注释栏(Comments)可以填写针对该窗口的注释。

(5)在窗口画板右边的“Properties”中选择“General”,在“Title”属性中输入窗口标题,如“学生信息录入”,在“WindowsType”属性中选择“main!

”。

3.向窗口中填加控件

向窗口中添加下列控件:

(1)静态文本(statictext)

控件名称

文本信息(text)

用途

St_1

学生录入

用于信息录入的提示

St_2

学号

St_3

姓名

St_4

民族

St_5

出生日期

St_6

专业

St_7

入学时间

St_8

籍贯

St_9

地址

(2)单行编辑器(SingleLineEdit)

控件名称

用途

Sle_id

输入学号

Sle_name

输入姓名

Sle_native

输入籍贯

Sle_address

输入地址

(3)编辑掩码控件(editmask)

控件名称

用途

mask属性

maskdatatype

mask

em_birthday

输入出生日期

Datamask!

Yyyy/mm/dd

em_grade

输入入学时间

Datamask!

yyyy

(4)下拉列表框(dropdownlistbox)

控件名称

用途

ddlb_nation

选择民族

Ddlb_major

选择专业

(5)成组框(groupbox)

控件名称

文本信息(text)

用途

Gb_1

性别

性别成组

Gb_2

政治面貌

政治面貌成组

(6)单选按钮(radiobutton)

控件名称

文本信息(text)

用途

对应成组框

rb_1

选择性别信息

Gb_1

rb_2

Gb_1

Rb_3

党员

选择政治面貌信息

Gb_2

Rb_4

团员

Gb_2

Rb_5

其他

Gb_2

(7)命令按钮(commandbutton)

控件名称

文本信息(text)

用途

Cb_add

新增

增加一条记录

Cb_save

保存

保存信息

添加控件后的窗口如下图:

4.对象属性设置

(1)选中ddlb_nation控件,单击鼠标右键,选择“properties”,在属性窗口中选中“items”,在item中输入“汉族、回族、壮族、蒙古族、维吾尔族、白族、土家族”,如图

(2)选中ddlb_major控件,item中输入“计算机硬件、计算机应用、通信工程、自动化、侦测工程、信号处理、应用数学”,如下图

(3)选中em_birthday控件,编辑其掩码(mask),如下图:

(4)选中em_grade控件,编辑其掩码(mask),如下图:

保存窗口。

5.编写脚本

1)对student应用的Open事件进行编程

在系统树窗口中选择student.pbl,双击student应用,弹出应用画板,选择open事件,写入以(下程序:

//数据库连接

//事务对象进行属性赋值

SQLCA.DBMS="ODBC"

SQLCA.AutoCommit=False

SQLCA.DBParm="Connectstring='DSN=grade'"

//连接

connectusingsqlca;

//数据库是否正确连接的判断

ifsqlca.sqlcode=-1then

messagebox("提示","数据库连接错误!

")

return

endif

//打开窗口w_student

open(w_student)

(2)对窗口w_student的Open事件编程

在窗口w_student的编程窗口中选择open事件,输入以下程序:

setnull(sle_id)

setnull(sle_name)

setnull(sle_native)

setnull(sle_address)

rb_1.checked=true

rb_3.checked=true

(3)对按钮cb_add的clicked事件编程

setnull(sle_id)

setnull(sle_name)

setnull(sle_native)

setnull(sle_address)

em_birthday.text=""

em_grade.text=""

ddlb_major.SelectItem

(1)

ddlb_nation.SelectItem

(1)

rb_1.checked=true

rb_3.checked=true

sle_id.setfocus()

(4)对按钮cb_save的clicked事件编程

//对表中不能为空的字段进行判断,给出提示

ifsle_id.text=""then

messagebox("提示","学号不能为空!

")

sle_id.setfocus()

return

endif

ifsle_name.text=""then

messagebox("提示","姓名不能为空!

")

sle_name.setfocus()

return

endif

ifddlb_nation.text=""then

messagebox("提示","民族不能为空!

")

ddlb_nation.setfocus()

return

endif

ifem_birthday.text=""then

messagebox("提示","出生日期不能为空!

")

em_birthday.setfocus()

return

endif

ifddlb_major.text=""then

messagebox("提示","专业不能为空!

")

ddlb_major.setfocus()

return

endif

ifem_grade.text="0000"then

messagebox("提示","入学时间不能为空!

")

em_grade.setfocus()

return

endif

//定义变量,用于从各个控件中获取输入值

stringls_id//学号变量

stringls_name//姓名变量

stringls_sex//性别

stringls_nation//民族

stringls_major1//专业名称

stringls_major2//专业代码

stringls_native//籍贯

stringls_address//地址

stringls_background//政治背景

stringls_grade//入学时间

dateld_birthday//生日

//变量赋值

ls_id=sle_id.text//获取ID号

ls_name=sle_name.text//取姓名

//取性别

ifrb_1.checked=truethen

ls_sex='1'

else

ls_sex='2'

endif

//取民族

ls_nation=ddlb_nation.text

//获取专业名称

ls_major1=ddlb_major.text

//通过SQL语句获取专业代码

selectmajor_idinto:

ls_major2frommajorwherename=:

ls_major1;

ls_native=sle_native.text//取籍贯

ls_address=sle_address.text//取地址

//获取政治面貌

ifrb_3.checked=truethen

ls_background="党员"

elseifrb_4.checked=truethen

ls_background="团员"

else

ls_background="其他"

endif

//获取生日,需要进行数据类型转换

ld_birthday=date(em_birthday.text)

ls_grade=em_grade.text//获取入学时间

//主键判断,避免数据库中主键不唯一,数据库报错

intli_count

selectcount(*)into:

li_countfromstudentwherestudent_id=:

ls_idusingsqlca;

ifli_count>0then

messagebox("提示","该学号的学生已存在,请更改学号!

")

sle_id.setfocus()

return

endif

//应用嵌入式SQL语句向数据库中插入记录

insertintostudent

values(:

ls_id,:

ls_name,:

ls_sex,:

ld_birthday,:

ls_grade,:

ls_nation,:

ls_background,:

ls_major2,:

ls_native,:

ls_address)

usingsqlca;

//判断插入是否成功

ifsqlca.sqlcode=0then

commit;

messagebox("提示","保存完毕!

")

return

else

rollback;

messagebox("提示",SQLCA.SQLErrText)

return

endif

在以上步骤都完成以后,可以运行程序,输入数据进行测试。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 政史地

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1