《《PB的7次作业及答案》》由会员分享,可在线阅读,更多相关《《PB的7次作业及答案》(8页珍藏版)》请在金锄头文库上搜索。
1、作业 1:1、首次进入 PowerBuilder 环境,应当首先创建_工作空间 _。2、什么是画板,列举三个画板,并说明其作用。答: 画板是:完成一定功能的工具窗口。 比如,窗口画板:用于定义窗口对象 用户对象画板:用于定义用户对象 数据窗口画板:创建数据窗口对象,定义数据窗口对象 库画板:创建和管理 P 的应用库,完成应用库的增、删、改等。 函数画板:创建全局函数,提高代码可重用性。3、PowerBuilder 区别于其他开发工具,也是 SYBASE 公司的专利技术是什么?答: 数据窗口技术(数据窗口对象+数据窗口控件)4、Messagebox 函数前两个参数各表示什么?答: Messsag
2、e(title,text,icon,button,default) title:String 类型,指定消息对话框的标题 text: 指定消息对话框中显示的消息,该参数可以是数值数据类型、字符串或 boolean值 icon: 枚举类型, 可选项, 指定要在该对话框左侧显示的图标。 值为 : Information!(默认值) ,StopSign!,Exclamation!,Question!,None!。 button:枚举类型,可选项,指定显示在该对话框底部的按钮。值为 : OK!(默认值) ,OkCancel!,YesNo!,YesNoCancel!,RetryCancel!,Abort
3、RetryIgnroe!.default:数值型,可选项,指定作为默认按钮的按钮编号。按钮编号自左向右一次计数,默认值为 1。如果指定的编号超过了显示的按钮个数,函数将使用默认值返回。默认按钮是指获得焦点的按钮。函数执行成功时返回用户指定的编号,发生错误时返回-1,如果任何参数的值为 NULL,则函数返回 NULL。作业 2:1、PB 单行注释和多行注释分别为_ / _、_/* */ _。2、按照作用域划分的变量类型有几种,简述前三种的作用。答: Global:实例变量, 作用域为整个应用程序 Local:局部变量, 作用范围仅在所在的事件和函数内 Instance:全局变量, 不仅在所在对象
4、的全部事件及函数,而且包括该对象的所有控件的事件及函数起作用。Shared:共享变量。3、代词有哪几个,简述前三个的含义。答: This、Parent、Parentwindow、Super This:代表窗口、用户对象、选单、应用对象或控件本身,即代表正在为之编写事件处理程序的对象。 Parent:控件所在窗口。 Parentwindow:指菜单所在窗口。4、写程序,按下按钮 cb_1 时,按钮文字依次为“你好” 、 “我好” 、 “大家好”答: 新建窗体 aa,在 aa 中添加按钮 cb_1,在 cb_1 的 clicked 事件中编写如下代码: if cb_1.text=你好 then c
5、b_1.text=我好 else if cb_1.text=我好 then cb_1.text=大家好 else cb_1.text=你好 end if end if作业 3:1、以下控件的缺省前缀为:静态文本_st-_、命令按钮_cb-_,单行编辑框_sle-_、 数据窗口控件_dw-_、 下拉列表框_ddlb-_。2、必须为_应用程序_对象的 open 事件中编写脚本,因为这是整个应用程序的入口。3、分别说明 Text、Visible、Enabled 属性的作用答: Text:文本标题,用于向用户提示控件的功能。 Visible:决定该控件的可视性。选中时,运行时窗口可见。 Enabled
6、:决定该控件的有效性。选中时,窗口有效,即可以接受和传送信息,不影响窗口的可视性。4、为命令按钮 cb_close 的 clicked 事件编程,关闭该命令按钮所在的窗口。答: close(parent)5 为命令按钮 cb_1 编程, 功能是 : 当按下该按钮时, 将该按钮变为不可用 (变灰) 。1) 、代码为:cb_1.enabled=false cb_1.visible=false2)上述代码将写在 cb_1 的_ clicked _事件中。作业 4:1、PowerBuilder 的窗口一共有_6_种,其中_MDI!(多文档窗口)_及_ MDIHelp!(带微帮助的多文档窗口)_类型的窗
7、口必须带有菜单。2、计算 1+2+3+100,并将结果放入单行编辑框 sle_sum 中。答:创建工作空间和应用程序,然后 PowerBuilder 应用程序的命令按钮 Clicked 事件脚本编辑区编写“计算”按钮的脚本如下:Integer nInt in=0FOR i=1 TO 100 STEP 1n=n+iNEXTsle_sum.text=String(n)3、 简述 DB Profile 及 SQLCA 的作用。答: DB Profile 指明了使用的是哪一个数据源。 SQLCA 分配事物对象4、 什么是主键?答: 主键就是表中唯一标识一个记录的列或列的组合,即表示任意两行的主键值都不
8、能相同。主键所在列,其 NULL 值必须为 No。5、什么是视图?答: 视图是原始数据库数据的一种变换,是查看表中数据的另外一种方式。作业 5:1、写语句:为数据窗口控件 DW_1 分配事务对象 SQLCA。答: DW_1.SetTransObject(SQLCA)2、为命令按钮 cb_insert 的 clicked 事件编程,在数据窗口控件 dw_st 的最后增加一行。答: dw_st.InsertRow(0)3、为命令按钮 cb_delete 的 clicked 事件编程, 删除数据窗口 dw_st 的当前行。答: dw_1.DeleteRow(0)4、保存数据窗口控件 dw_st 的内
9、容。如果保存成功,则永久提交;如果保存失败,给出提示并回滚(回退)。答: if dw_st.update( )=1 then commit; messagebox(提示信息,保存成功) else rollback; Messagebox(提示信息,保存失败) end if5、求数据窗口 dw_1 中行数,并写入单行编辑框 sle_count 中答: sle_count.text=string(dw_1.RowCount( )作业 6:1、已知表名为“学生”的表结构如下:字段名 类型是否允许空值学号 Char(10)否姓名 Char(8)否性别 Char(2)是年龄 integer 是专业 Ch
10、ar(10)是总学分 decimal(5,1) 是写嵌入式 SQL 语句,向表中插入学号为“01” ,姓名为“张三” ,性别为“男” ,年龄为 18 的记录。答: insert into 学生 values(01,张三,男,18,null,null);2、已知数据窗口控件 dw_st 为学生数据(数据窗口对应的表结构如上,用fornext 循环结构及数据窗口有关函数写程序实现 : 将专业为 “信息技术”的学生总学分加 1,并永久保存数据窗口修改后的内容。如果保存失败则回退,并用 messagebox 函数显示“保存失败”的错误信息。clicked 事件: long ifor i=1 to dw
11、_st.rowcount( ) if dw_st.getitemstring(i,专业名)=信息技术 then dw_st.setitem(i,总学分,dw_st.getitemnumber(i,总学分)+1) end ifnextif sqlca.sqlcode=-1 then rollback; messagebox(提示信息,保存失败)else commit; end ifcb_1.triggererent(clocked!)作业 7:已知表名 “专业”的表结构如下:字段名 类型是否允许空值专业代码 Char(2)否专业名称 Char(20)否1、通过游标实现将专业名称添加到下拉列表框
12、ddlb_1 中。答: string ls_专业名称 declare Cl cursor for select 专业名称 from 专业; open Cl; fetch Cl into:ls_专业名称; do while sqlca.sqlcode=0 ddlb_1.additem(ls_专业名称) fetch Cl into:ls_专业名称; loop close Cl;2、假设专业表数据已经在数据窗口 dw_1 中,用数据窗口有关函数实现,将专业名称添加到下拉列表框 ddlb_1 中。答: dw-1.settrasobject(sqlca) dw-1.Retriere() int i for i=1 to dw-1 row count() ddlb-1.additem(dw-1.getitem string(i,1) ) next