三、登录例子后期实践
1、 创建应用对象
(1)选择file\new,或者快捷键Ctrl+N,新建Workspace工作空间,如下图,点击OK,然后命名为testSpace.
(2)同以上方法一样, 新建Traget\Application应用程序库,点击Ok
得到下图后,填写库名testapplication和相应的路径,然后点击Finish完成。
2、 创建第一个窗口(登录窗口)
(1)选择file\new,或者快捷键Ctrl+N,新建PB Object\Window窗体,然后点击ok.即创建好窗体,然后添加控件
(2)按下图操作摆放相应控件
设置好之后,保存,输入窗体的名称frm_log,最终得到登录窗体的样子
3、 创建数据窗口对象(该步可跳过
(1)选择file\new,或者快捷键Ctrl+N,新建DataWindow\Grid项
(2)得到下图后,选择Sql select 数据源类型
(3)然后得到下图,选择已经创建的表,然后点击open
(4)然后按下图选中后,右击选择Select All
(5)最后选择保存,命名为testdw.完成
4、创建一个数据窗口控件(该步可跳过
(1)选择file\new,或者快捷键Ctrl+N,新建DataWindow\Grid项【同第3步的(1)】 (2)这次选择Quick Select项
(3)如下图,选择user_info,然后单击AddAll,然后单击OK
(3)得到后边的窗体之后,直接点Next,然后Finish。完成后保存,命名为testdatawindow.
5、 建立应用程序
(1)编写open事件代码,如下图,在建好的项目中双击testapplication
得到下图,后选择open事件,编写代码
(2)寻找需要编写的代码。选择菜单栏中的Tools\DataBasePainter,或者直接单击下图中的DataBase按钮
得到下图后,选择ODBC\Testdatabase,然后右击,选择Properties
得到下图,选择Preview选择框,单击Copy,然后Ok
最后再次打开open事件,将拷贝的代码粘贴到上面,并补充一些代码,最后代码如下
// Profile TestdatabaseSQLCA.DBMS = "ODBC"SQLCA.AutoCommit = FalseSQLCA.DBParm = "Connectstring='DSN=testDataBase'"//添加以下代码,注意分号是英文状态,否则报错connect;open(frm_log)
(2)编写登录代码。在窗体上双击登录按钮,或直接选择下图中的itemchanged(此项在窗体最下方)
然后选择登录按钮的单击事件
(3)编写登录按钮的代码,如下
//登录string userName,userPwd //声明用户名和密码变量userName=trim(sle_name.text) //得到用户名userPwd=trim(sle_pwd.text) //得到密码if userName ="" then //判断用户名是否为空 messagebox("提示","用户名不能为空")else //判断该用户是否存在 //sql语句进行查询 SELECT name into :userName from "User_Info" where "User_Info"."name"=:userName; //SQLCode=100证明没有找到记录,此用户不存在 if SQLCA.SQLCode=100 then messagebox("提示","用户不存在") else //该用户存在查询密码是否正确 SELECT name into :userName from "User_Info" where "User_Info"."name"=:userName and "User_Info"."password"=:userPwd; if SQLCA.SQLCode=100 then messagebox("提示","密码不正确") else messagebox("提示","登录成功") end if end ifend if(4)编写退出按钮的代码,如下
//关闭该窗体close(parent)
6、运行应用程序
保存所有操作,然后按快捷键Ctrl+R。这里就不给大家展示效果图了,由于我们在数据表中存储的用户名和密码都是“1”,所以只有用户名和密码都为“1”才会会成功。
小编寄语:
我们的这个简单的登录功能终于写完了,由于第一次使用PB,对其功能不太了解,所以操作步骤写的比较详细,但是本程序有一个缺点就是在第三步和第四步中,创建了数据窗口对象,到最后却没有用到(实际上这块儿也用不到),感觉有点多余,本来想去掉那部分,可是不知道数据窗口对象有没有发挥作用,所以就留下来了,希望在之后的学习过程中会对这部分有更深入的理解。
相关阅读:PowerBuilder完全实例
powerbuilder初试——揭开那层薄纱