Do where sqlca .sqlcode = 0
Frtch namecur into :outname ; I=tv_1 .insertitemlast ( ) ,outname,2) L00p while sqlca .sqlcode = 0 Tv_1 :deleteitem (i) End if
Close namecur ;
3、 ddlb_1为下拉列表框,st_1,st_2为静态文本框。该窗口打开时,ddlb_1从数据库中的院系表中读出了所有系名,当选择了某系时st_1,st_2分别显示该系系领导和系办电话。 (1) 在w_1的open事件下编程。 String outname
Declare namecur cursor for Select distinct department From 院系
Where department = :ddlb_1.text Open namecur ;
If sqlca.sqlcode = -1 then
Messagebox ( “sql error “, sqlca ,sqlerrtext ) Else
Fetch namecur into :outname ; Do where sqlca .sqlcode = 0 Ddlb_1.additem (outname)
Fetch namecur into :outname ; L00p End if
Close namecur ;
(2) 在ddlb_1的selectionchanged事件下编程。 Select 系领导,系办电话 From 院系
Where 系名= :ddlb_1.text :st_1.text = 系领导 :st_2.text = 系办电话
4、w_query上有控件ddlb_1和dw_1,在ddlb_1中选择系名后dw_1中显示该系的学生。 (1) 如果通过带参数的数据窗口对象来完成,请问dw_1中的数据窗口对象的数据源为
quick select 还是sql select。
答:sql select。
(2) 为ddlb_1的selectionchanged事件编程。 Dw_1.settransobject (sqlca) Dw_1.retricve (ddlb_1.text)
5、当选择了某单选框并输入选择条件,按回车后,dw_1中显示满足条件的记录。请对以
第 11 页 共 17 页
下控件编程。
(1) rb_1
sle_1.enabled= true
(2) sle_1
dw-1.setfilter (“姓名= ?”+ sle_1.text +” ?”) dw_1.filter ( ) cb_1.visible = true
(3)cb_1
rb_1.checked = false rb_2.checked = false rb_3.checked = false rb_4.checked = false sle_1.text = “” sle_2.text = “” sle_3.text = “” sle_4.text = “”
sle_1.enable = false sle_2.enable = false sle_3.enable = false sle_4.enable = false
6、lv_1为列表视图,报表风格,当w_list打开时lv_list中显示数据库中学生表的所有学生的信息。请为w_1的open事件编程。 Integer I, j , outage
String outname , outsex , soutage Lv_1.addcolumn (“姓名”,left! , 800) Lv_1.addcolumn (“性别”,left! , 500) Lv_1.addcolumn (“年龄”,left! , 200) Declare namecur cursor for Select 姓名,性别,年龄 From 学生; Open namecur ;
If sqlca.sqlcode = 1 then
Messagebox (“sql.error” , sqlca.sqlerrtext ) Else I=1 Do
Fetch namecur into :outname, :outsex, :outage ; J=I
Lv_1.setitem(I, 2, outname ) Lv_1.setitem(I, 2, outsex ) Soutage = string (outage)
第 12 页 共 17 页
Lv_1.setitem (I, 3, soutage) I++
Loop while sqlca.sqlcode=0 Lv_1.deleteitem ( j) End if
Close namecur ; 7、
(1) 写出菜单项“注册新用户”的clicked事件的代码。 Open (w_new)
(2) 写出菜单“退出”的clicked事件中的代码。 Close (parentwindow)
(3) 在sle_1中输入新用户名,如果此用户名已存在则出现消息框,提示“此用户名已
存在,请另输入用户名”。
Select username From user
If username = sle_1.text then msgbox(“提示”,” 此用户名已存在,请另输入用户名”)
(4) 写出cb_1的clicked事件中的代码。 Insert into user
Values (:sle_1.text , :sle_2.text , :ddlb_1.text );
8、窗口完成统计功能。按学号分组显示学生平均成绩,并显示总评成绩。
(1) 如果计算域平均成绩名为compute_1,写出语句使平均成绩不及格者的平均成绩红
色显示。
Dw_1.object.compute_1.color = “0~t if (compute_1<60, 255, 0)”
(2) 在数据窗口对象的画板上计算域总评成绩和页码分别放在哪个区域。 答:分别放在summart区域和footer区域。
9、窗口打开时,树开视图显示数据库中所有学生的姓名,当你选择一个姓名时,在右侧的单行文本编辑框中显示学生的详细信息。 (1) 为该窗口的open事件编程 tv_1.insertitemfirst (0, “学生”, 1) tv_1.insertitemfirst (1, “张明”, 2) tv_1.insertitemfirst (1, “王红”, 2) tv_1.insertitemfirst (1, “周萧萧”, 2)
(2) 为tv_1的selectionchanged事件编程 int I
treeviewitem l_lv
I=tv_1.finditem(currentTreeItem ! , 0) Tv_1.getitem (I, l_lv)
第 13 页 共 17 页
Select 姓名,性别,年龄
Into :sle_1.text, :sle_2.text, :sle_3.text From 学生
Where 姓名= :l_lv.lable1;
四、 数据库设计
1、 某工厂欲建立一个物质管理系统,该系统包含零件,产品,仓库,职工的信息,其
中仓库用于存入零件。 要求:
(1) 画出E—R图
零件数Q1 产品编号 零件编号 产品名称 产品型号 零件名称 m n 产 品 构成 零件 天 数 m 零件型号 m 1 参加 负责 存放量Q2 1 n 职工 职工编号 工 龄 姓 名 性 别 职称
(2) 将其转化为关系模式
产品(产品编号# ,产品名称,产品型号) 职工(职工编号# ,姓名,性别,工龄,职称) 参加(职工编号# ,产品编号# ,天数)
存放 n 仓库 仓库负责人 第 14 页 共 17 页
零件(零件编号# ,零件名称,零件型号) 构成(产品编号# ,零件编号# ,零件数Q1) 仓库(仓库编号# ,仓库负责人)
存放(仓库编号# ,零件编号# ,存放量Q2)
2、 某工厂欲建立一个人事管理系统,该系统包含部门信息,职工信息,产品信息。
(1) 画出E—R图 部门编号 部门名称 部门电话 部门负责人 部 门 1 月产量 产品编号 1 领导 属于 产品名称 1 n 参加 m n 产品职工 1 1 职工编号 负责 产品型号 姓名 性别 职称 工龄
(2)将其转化为关系模式
部门(部门编号# ,部门名称,部门电话,部门负责人) 职工(职工编号 # ,姓名,性别,工龄,职称,部门编号#) 产品(产品编号# ,产品名称,产品型号) 参加(职工编号# ,产品编号# ,月产量)
第 15 页 共 17 页