Pb学生管理系统源代码

PowerBuilder的创始人  米歇尔克茨曼。

PowerBuilder奠基人 大卫李特瓦克。

1991年6月。Powersoft公司发布了其旗标式客户/服务器硬功开发工具。

1995年PowerBuilder1.0

1996年PowerBuilder5.0

2003年PowerBuilder9.0

PowerBuilder特点:

面向对象的编程和时间去懂的应用开发程序开发工具,

支持跨平台开发

可以轻松编写语句

人性化设计。

拥有独特的库文件画板和层次清晰的系统资源库。

提供了丰富多样不同风格的数据窗口

PowerBuilder9.0新特性。

支持快速开发的jsp编辑器。

支持xml、PBNI(PowerBuilder Native Interface)、EJB Client、PB9.0与Web Service 的关系,PB9.0与.NET、其他增强功能。

建立应用对象

建立Student的工作区和目标,然后建立一个名为student的对象在其Open事件中加入如下脚本:

//设置SQLCA的属性,利用名为pbexam的数据源连接数据库

SQLCA.DBMS="ODBC"

SQLCA.AutoCommit=False

SQLCA.DBParm="Connectistring='DSN=pbexam'"

CONNECT USING SQLCA;

//打开登录窗口

open(w_register)

在应用程序的Close事件中加入如下脚本:

//断开数据库连接

DISCONNECT USING SQLCA;

登录窗口

在用户名的单行编辑框的ue_enterkey事件中加入如下脚本:

//判断用户是否按下回车

If key = KeyEnter! Then 

      //把输入焦点转移到"密码"单行编辑框

      sle_2.SetFocus()

End If

在密码单行编辑框的ue_enterkey事件中加入如下脚本:

If key = KeyEnter! Then

      //触发登录按钮的Clicked事件

      cb_1.TriggerEvent(Clicked!)

End If

在登录按钮的Clicked事件的脚本中加入如下脚本:

String password,right

//用SQL语句根据用户名查找密码

//right为一全局变量,用来保存用户权限

SELECT mm,qx

INTO:password,right

FROM "yh"

WHERE "yh"."hm"=:sle_1.text;

//SQLCode等于100代替没有得到任何记录。

If SQLCA.SQLCode=100 Then

      MessageBox("提示消息","没有此用户")

      sle_1.text=""

      sle_1.SetFocus()

ElseIf password<>sle_2.text Then

      MessageBox("提示信息","密码错误!")

      sle_2.text=""

      sle_2.SetFocus()

Else

      //打开主窗口,关闭登录窗口

      Open(w_main)

      Close(Parent)

End If

在取消按钮的Clicked事件的中加入如下脚本:

Close(parent)//关闭登录窗口

菜单设计

在学生管理菜单项的Clicked事件中加入如下脚本:

//打开学生管理窗口

OpenSheet(w_student,w_main,4)

在页面设置菜单项的Clicked事件中加入如下脚本:

window actsheet

//取得当前活动窗口

actsheet=w_main.GetActiveSheet()

//触发活动窗口的ue_pageset事件

actsheet.TriggerEvent("ue_pageset")

在打印菜单项的Clicked事件中加入如下脚本:

window actsheet

actsheet=w_main.GetActiveSheet()

actsheet.TriggerEvent("ue_print")

在退出菜单项的Clicked事件中加入如下脚本:

Close(ParentWindow)

在窗口级联菜单项的Clicked事件中加入如下脚本:

//修改菜单的选中标志

m_jilian.checked=True

m_chongdie.checked=False

m_shuiping.checked=False

m_chuizhi.checked=False

//改变工作表的排列方式

ParentWindow.ArrangeSheets(cascade!)

在窗口重叠菜单项的Clicked事件中加入如下脚本:

m_jilian.checked=False

m_chongdie.checked=True

m_shuiping.checked=False

m_chuizhi.checked=False

ParentWindow.ArrangeSheets(Layer!)

在窗口水平菜单项的Clicked事件中加入如下脚本:

m_jilian.checked=False

m_chongdie.checked=False

m_shuiping.checked=True

m_chuizhi.checked=False

ParentWindow.ArrangeSheets(Tile!)

在窗口垂直菜单项的Clicked事件中加入如下脚本:

m_jilian.checked=False

m_chongdie.checked=False

m_shuiping.checked=False

m_chuizhi.checked=True

ParentWindow.ArrangeSheets(TileHorizontal!)

在个人成绩统计菜单项的Clicked事件中加入如下脚本:

//打开专业选择窗口,并把统计的类型作为参数传递给专业选择窗口

OpenWithParm(w_selectzy,"person",w_main)

 

MDI主窗口

在主窗口的Open事件中加入如下脚本:

//如果不是系统管理员则屏蔽用户管理菜单项

If right<>1 then m_main.m_file.m_id.visible=False

//因为打开主窗口后还没有打开任何工作表,所以把和工作表相关的功能菜单的Enabled属性设为false

m_main.m_file.m_pageset.enabled=False

m_main.m_file.m_preview.enabled=False

m_main.m_file.m_previewcancle.enabled=False

m_main.m_file.m_print.enabled=False

m_main.m_edit.m_insert.enabled=False

m_main.m_edit.m_del.enabled=False

m_main.m_edit.m_save.enabled=False

m_main.m_edit.m_append.enabled=False

m_main.m_edit.m_retrieve.enabled=False

m_main.m_edit.m_prior.enabled=False

m_main.m_edit.m_next.enabled=False

m_main.m_edit.m_first.enabled=False

m_main.m_edit.m_last.enabled=False

m_main.m_caozuo.m_select.enabled=False

m_main.m_caozuo.m_find.enabled=False

m_main.m_caozuo.m_sortasc.enabled=False

m_main.m_caozuo.m_sortdesc.enabled=False

m_main.m_window.m_jilian.enabled=False

m_main.m_window.m_chongdie.enabled=False

m_main.m_window.m_shuiping.enabled=False

m_main.m_window.m_chuizhi.enabled=False

学生管理窗口

在学生管理窗口的Open事件中加入如下脚本:

//为数据窗口分配事务对象,并检索数据

dw_stu.SetTransObject(SQLCA)

dw_stu.Retrieve)_

//用静态文本显示当前日期

st_1.text=string(today(),"yyyy/mm/dd")

 

在查询按钮的Clicked事件中加入如下脚本:

If sle_1.text="" Then

      //如果没有输入查询关键字提示输入

      MessageBox("提示","请输入您要查询的关键字")

      sle_1.SetFocus()

Else

      //按输入的姓名查询,并用like事件模糊查询

      dw_stu.setFilter("xm like '%"+sle_1.text+"%'")

      dw_stu.filter()

      dw_stu.SetFocus()

End If

在学生管理窗口的Activate事件中加入如下脚本:

//此事件在当前窗口获得焦点时触发

//如果当前用户不是系统管理员和数据管理员则屏蔽和数据修改有关的菜单项

If right>2 Then

      m_main.m_edit.m_insert.enabled=False

      m_main.m_edit.m_del.enabled=False

      m_main.m_edit.m_save.enabled=False

      m_main.m_edit.m_append.enabled=False

Else

      m_main.m_edit.m_insert.enabled=True

      m_main.m_edit.m_del.enabled=True

      m_main.m_edit.m_save.enabled=True

      m_main.m_edit.m_append.enabled=True

End If

//在当前窗口得到焦点后设置菜单项的enabled属性为True

//在窗口得到焦点时使用菜单项即可

m_main.m_file.m_pageset.enabled=True

m_main.m_file.m_preview.enabled=True

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值