软件开发工具 实践考试 (脚本)
一、创建数据库(employee)、创建表(emp)、关键字emp_id 、填入数据、建立连接、创建登录窗口 字段:emp_id,emp_name,dept_id,nplace,sex,birthday(日期型),post,salary(数字型),resume
1.创建应用(pbtutor)open(w_welcome)disconnect using sqlca;
2.创建登录窗口(w_welcome)三个静态文本,两个单行编辑,两个命令按钮脚本
静态文本:(st_welcome,st_userid,st_passwd),单行编辑(sle_userid,sle_passwd),按钮(cb_ok,cb_cancel)
(1)cb_ok按钮if parent.wf_dbconnect(sle_userid.text,sle_passwd.text)=-1 then messagebox("database connect error","unable to connect."+sqlca.sqlerrtext) haltelse close(parent)end ifopen(w_main)
(2)cb_cancel按钮halt close
3.在w_welcome中建立窗体函数wf_dbconnect (userid string,passwd string)script
string ls_userid,ls_passwd,ls_dbparmls_userid=trim(userid)ls_passwd=trim(passwd)ls_dbparm="connectstring='DSN=employee;"sqlca.dbms='odbc'sqlca.dbparm=ls_dbparm+"uid="+ls_userid+";pwd="+ls_passwd+""connect;return sqlca.sqlcode
二、创建菜单(m_main)系统功能(m_function)---(数据录入m_input 脚本:open(w_emp))----(数据查询m_query)----按姓名查询(m_namequery 脚本:open(w_namequery))
退出(m_exit 脚本:halt close)
三、创建数据窗口对象1.(d_empmaster)其中quick select (grid)选择emp中前三个字段和post (emp_id 中选择ascending项)
2.(d_empdetail)其中SQL select (freeform)选择emp中全部字段,选择design菜单下retrieval auguments项,输入(emp_id string) 定义where,标签中选择 "emp"."emp_id" = :emp_id
3.(d_namequery)其中SQL select(grid)选择emp中除resume外的所有,where("emp"."emp_name"like:emp_name)
四.创建数据窗口
1.新建w_emp(类型main),在w_emp中选择控件data window,其中左边(dw_master--d_empmaster),右边(dw_detail--d_empdetail) 选择5个命令按钮(cb_insert插入记录 cb_delete删除记录 cb_commit确认 cb_cancel取消 cb_quit退出)>>>w_emp脚本: dw_master.settransobject(sqlca) dw_detail.settransobject(sqlca)if dw_master.retrieve() <> -1 then dw_master.setfocus() dw_master.setrowfocusindicator(hand!)end if
>>>dw_master脚本:string sl_empid sl_empid=this.object.dataif dw_detail.retrieve(sl_empid)=-1 thenmessagebox("检索","检索雇员详细信息出错")end if
>>>5个命令按钮脚本cb_insert脚本:
dw_detail.reset()dw_detail.insertrow(0)dw_detail.setfocus()
cb_delete脚本:dw_detail.deleterow(0)
cb_commit脚本:if dw_detail.update()=1 then commit using sqlca; messagebox("保存","保存成功!")else rollback using sqlca;end if dw_master.retrieve() dw_detail.setfocus()
cb_cancel脚本:dw_master.retrieve()dw_detail.setfocus()
cb_quit脚本:close(parent)
2.新建w_namequery(类型main),1个静态文本(输入雇员姓名)、1个单行编辑(sle_empname),1个(dw_namequery--d_empnamequery) 3个命令按钮(cb_query查询 cb_reset清除 cb_quit退出)
w_namequery脚本:dw_namequery.settransobject(sqlca)
3个命令按钮脚本:(1)cb_query脚本:
if sle_empname.text="" then messagebox("提示","请输入要查询的雇员名!")else dw_namequery.retrieve(sle_empname.text)end if
(2)cb_reset脚本:
sle_empname.text=""dw_namequery.reset()
(3)cb_quit脚本:
close(parent)