Pb学生管理系统源代码.docx

上传人:sk****8 文档编号:4070036 上传时间:2019-09-23 格式:DOCX 页数:24 大小:31.88KB
下载 相关 举报
Pb学生管理系统源代码.docx_第1页
第1页 / 共24页
Pb学生管理系统源代码.docx_第2页
第2页 / 共24页
Pb学生管理系统源代码.docx_第3页
第3页 / 共24页
Pb学生管理系统源代码.docx_第4页
第4页 / 共24页
Pb学生管理系统源代码.docx_第5页
第5页 / 共24页
点击查看更多>>
资源描述

1、PowerBuilder 的创始人 米歇尔克茨曼。PowerBuilder 奠基人 大卫李特瓦克。1991 年 6 月。Powersoft 公司发布了其旗标式客户/服务器硬功开发工具。1995 年 PowerBuilder1.01996 年 PowerBuilder5.02003 年 PowerBuilder9.0PowerBuilder 特点:面向对象的编程和时间去懂的应用开发程序开发工具,支持跨平台开发可以轻松编写语句人性化设计。拥有独特的库文件画板和层次清晰的系统资源库。提供了丰富多样不同风格的数据窗口PowerBuilder9.0 新特性。支持快速开发的 jsp 编辑器。支持 xml、

2、PBNI(PowerBuilder Native Interface)、EJB Client、PB9.0 与 Web Service 的关系,PB9.0 与.NET 、其他增强功能。建立应用对象建立 Student 的工作区和目标,然后建立一个名为 student 的对象在其 Open 事件中加入如下脚本:/设置 SQLCA 的属性,利用名为 pbexam 的数据源连接数据库SQLCA.DBMS=“ODBC“SQLCA.AutoCommit=FalseSQLCA.DBParm=“Connectistring=DSN=pbexam“CONNECT USING SQLCA;/打开登录窗口open(

3、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

4、 事件的脚本中加入如下脚本:String password,right/用 SQL 语句根据用户名查找密码/right 为一全局变量,用来保存用户权限SELECT mm,qxINTO:password,rightFROM “yh“WHERE “yh“.“hm“=:sle_1.text;/SQLCode 等于 100 代替没有得到任何记录。If SQLCA.SQLCode=100 ThenMessageBox(“提示消息“,“没有此用户“)sle_1.text=“sle_1.SetFocus()ElseIf password1 then m_main.m_file.m_id.visible=Fa

5、lse/因为打开主窗口后还没有打开任何工作表,所以把和工作表相关的功能菜单的Enabled 属性设为 falsem_main.m_file.m_pageset.enabled=Falsem_main.m_file.m_preview.enabled=Falsem_main.m_file.m_previewcancle.enabled=Falsem_main.m_file.m_print.enabled=Falsem_main.m_edit.m_insert.enabled=Falsem_main.m_edit.m_del.enabled=Falsem_main.m_edit.m_save.en

6、abled=Falsem_main.m_edit.m_append.enabled=Falsem_main.m_edit.m_retrieve.enabled=Falsem_main.m_edit.m_prior.enabled=Falsem_main.m_edit.m_next.enabled=Falsem_main.m_edit.m_first.enabled=Falsem_main.m_edit.m_last.enabled=Falsem_main.m_caozuo.m_select.enabled=Falsem_main.m_caozuo.m_find.enabled=Falsem_m

7、ain.m_caozuo.m_sortasc.enabled=Falsem_main.m_caozuo.m_sortdesc.enabled=Falsem_main.m_window.m_jilian.enabled=Falsem_main.m_window.m_chongdie.enabled=Falsem_main.m_window.m_shuiping.enabled=Falsem_main.m_window.m_chuizhi.enabled=False学生管理窗口在学生管理窗口的 Open 事件中加入如下脚本:/为数据窗口分配事务对象,并检索数据dw_stu.SetTransObje

8、ct(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在学生管理窗

9、口的 Activate 事件中加入如下脚本:/此事件在当前窗口获得焦点时触发/如果当前用户不是系统管理员和数据管理员则屏蔽和数据修改有关的菜单项If right2 Thenm_main.m_edit.m_insert.enabled=Falsem_main.m_edit.m_del.enabled=Falsem_main.m_edit.m_save.enabled=Falsem_main.m_edit.m_append.enabled=FalseElsem_main.m_edit.m_insert.enabled=Truem_main.m_edit.m_del.enabled=Truem_ma

10、in.m_edit.m_save.enabled=Truem_main.m_edit.m_append.enabled=TrueEnd If/在当前窗口得到焦点后设置菜单项的 enabled 属性为 True/在窗口得到焦点时使用菜单项即可m_main.m_file.m_pageset.enabled=Truem_main.m_file.m_preview.enabled=Truem_main.m_file.m_previewcancle.enabled=Truem_main.m_file.m_print.enabled=Truem_main.m_edit.m_retrieve.enable=

11、Turem_main.m_edit.m_prior.enable=Turem_main.m_edit.m_next.enable=Turem_main.m_edit.m_first.enable=Turem_main.m_edit.m_last.enable=Turem_main.m_caozuo.m_select.enabled=Truem_main.m_caozuo.m_find.enabled=Truem_main.m_caozuo.m_sortasc.enabled=Truem_main.m_caozuo.m_sortdesc.enabled=Truem_main.m_window.m

12、_jilian.enabled=Truem_main.m_window.m_chongdie.enabled=Truem_main.m_window.m_shuiping.enabled=Truem_main.m_window.m_chuizhi.enabled=True在学生管理窗口的 CloseQuery 事件中加入如下脚本:Integer i/判断是否有数据的修改If dw_stu.ModifiedCount()+dw_stu.DeletedCount()o Theni=MessageBox(“提示“,“是否保存对数据的修改?“,Exclamation!,YesNoCancel!)Cho

13、ose case icase 1/保存数据If dw_stu.UpDate() = 1 Then /如果保存成功则提交COMMIT;ElseROLLBACK;MessageBox(“错误“,“数据库内容更新失败 “)End Ifcase 2/不保存数据Return 0case 3/阻止窗口的关闭Return 1End ChooseEnd If在学生管理窗口的 Resize 事件中加入如下脚本 :/此事件在窗口改变大小时触发/修改数据窗口的控件的位置及大小,使其随窗口的大小的改变而改变dw_stu.x=10dw_stu.y=150/newwidth 和 newheight 为该事件传递的参数,代

14、表窗口的新宽度和高度dw_stu.width=newwidth-20dw_stu.height=newheight-160在学生管理窗口的 ue_append 事件中加入如下脚本:/事件追加功能Long therow/在数据窗口最后一行插入therow=dw_stu.insertrow(0)/滚动到新加入的行dw_stu.ScrollToRow(therow)dw_stu.SetFocus()在学生管理窗口的 ue_del 事件中加入如下脚本:/实现删除功能Integer i,mm=0Long therowi=MessageBox(“提示信息“,“确认要删除行?“,exclamation!,Y

15、esNoCancel!)If i=1 Then/如果当前数据窗口中选择了多行则用循环语句删除多行Do/因为如果删除了第 3 行,那么原来第四行就变成了现在的第三行/所以要把搜索的行号减 1therow=dw_stu.GetSelectedRow(therow-1)If therow0/如果没有选中多行则删除当前行If m=0 Then dw_stu.DeleteRow(0)End IfEnd Ifdw_stu.SetFocus()在学生管理窗口的 ue_filter 事件中加入如下脚本:/实现查询功能,打开查询窗口,并把数据窗口 dw_stu 作为参数传递过去,/可以使用多个窗口功用一个查询窗

16、口OpenWithParm(w_filter,dw_stu,w_student)在学生管理窗口的 ue_find 事件中加入如下脚本:/实现查询功能,打开查询窗口,并把数据窗口 dw_stu 作为参数传递过去,/可以使用多个窗口功用一个查询窗口OpenWithParm(w_filter,dw_stu,w_student)在学上管理窗口的 ue_first 事件中加入如下脚本:/滚动到第一行,实现最前一个的功能dw_stu.ScrollToRow(1)dw_stu.SetFocus()在学上管理窗口的 ue_insert 事件中加入如下脚本:/实现插入功能Long therow,therow1/

17、得到当前数据窗口当前行,并在当前行前面插入therow=dw_stu.GetRow()therow1=dw_stu.InsertRow(therow)dw_stu.SetRow(therow1)dw_stu.SetFocus()在学上管理窗口的 ue_last 事件中加入如下脚本:/滚动到最后一行,实现最后一个的功能Long therowtherow=dw_stu.RowCount()dw_stu.ScrollToTow(therow)dw_stu.SetFocus()在学上管理窗口的 ue_next 事件中加入如下脚本:/滚动到下一行,实现下一个功能dw_stu.ScrollPriorRow

18、()dw_stu.SetFocus()在学上管理窗口的 ue_prior 事件中加入如下脚本:/滚动到上一行,实现上一个的功能dw_stu.ScrollPriorRow()dw_stu.SetFocus()在学上管理窗口的 ue_pageset 事件中加入如下脚本:/实现页面设置功能, 打开页面设置窗口,并把数据窗口 dw_stu 作为参数传递过去,/可以使多个窗口共用一个页面设置窗口OpenWithParm(w_pageset,dw_stu,w_student)在学上管理窗口的 ue_preview 事件中加入如下脚本:/实现打印预览功能,打开打印预览窗口,并把数据窗口 dw_stu 作为参

19、数传递过去/可以使多个窗口功用一个打印预览窗口OpenWithParm(w_preview,dw_stu,w_student)在学生管理窗口的 ue_previewcancle 事件中加入如下脚本 :/取消数据窗口的预览模式dw_stu.modify(“datawindwo.print.preview=No“)dw_stu.SetFocus()在学生管理窗口的 ue_print 事件中加入如下脚本:/实现打印预览功能,打开打印预览窗口,并把数据窗口 dw_stu 作为参数传递过去,/可以使多个窗口功用一个打印预览窗口OpenWithParm(w_pageset,dw_stu,w_student

20、)在学生管理窗口的 ue_retrieve 事件中加入如下脚本:/实现检索功能,把过滤条件设置为空,并重新检索数据dw_stu.setFilter(“)dw_stu.SetSort(“)dw_stu.SetTransObject(SQLCA)dw_stu.Retrieve()dw_stu.SetFocus()在学生管理窗口的 ue_save 事件中加入如下脚本:/实现保存功能If dw_stu.UpDate()=1 Then COMMIT;ElseROLLBACK;MessageBox(“错误“,“数据库内容更新失败“)End If在学生管理窗口的 ue_sortasc 事件中加入如下脚本:/

21、实现升序的功能String ls_ColumnName/得到数据窗口中当前列的列名Is_ColumnName=dw_stu.GetCOlumnName()If Is_ColumnName“ Then dw_stu.SetSort(Is_ColumnName+“D“)dw_stu.Sort()ElseMessageBox(“提示“,“请您点击数据窗口中的某一列,将此列按升序排列 “)End If在数据窗口控件 dw_stu 的 Clicked 事件中加入如下脚本:/通过单击可以选择一行或多行Long therow,startrow,endrowIf KeyDown(KeyControl!) Th

22、en /如果按着 Ctrl 键则使点击的行被选择If row0 Then /row 是系统传递到 Clicked 事件的参数,代表当前鼠标点击的行/事件的参数可以在脚本编辑器的“Paste Argument”下拉列表框中查看this.SelectRow(row,True)ElseReturnEnd IfElseIf keyDown(keyShift!)Then/如果按着 shift 键则选择一定范围内的行startrow=this.GetRow()endrow=rowIf startrowendrow ThenFor therow=startrow To endRow Step-1this.S

23、electRow(therow,True)NextElseFor therow=startrow To endrowthis.SelectRow(therow,True)NextEnd IfElse/如果没有按 Ctrl 和 Shift 键,则取消选中状态this.SelectRow(0,False)End If在数据窗口控件 dw_stu 的 DBError 事件中加入如下脚本:/用自己的错误提示来屏蔽某些系统的错误提示Choose case SQLDBCode/SQL Anywhere8.0 主码重复的错误脚本为-193/可以特意发生错误从而得到数据库管理系统的特定的错误脚本case -1

24、93MessageBox(“提示信息“,“第“+string(row)+&“行学生编号重复“,Exclamation!,OK!)ScrollToRow(row)Return 1End ChooseReturn 0在数据窗口控件 dw_stu 的 DoubleClicked 事件中加入如下脚本 :/双击打开成绩管理窗口,显示该学生的成绩String Expression/得到当前行的学号, 并拼出成绩的窗口的数据的过滤条件Expression=“xk_xh=“+this.object.xhrow+“OpenSheetWithParm(w_score,Expression,w_main,4)在数据

25、窗口控件 dw_stu 的 RetrieveEnd 事件中加入如下脚本:/此事件在数据检索完成后处罚Integer ColIndex,ColNumIf right2 Then/如果不是系统管理员和数据管理员则通过把列对象的 Order/设为 0 来阻止对数据的修改ColNum=integer(this.describe(“datawindow.column.count“)For ColIndex=1 To ColNumthis.SetTabOrder(ColIndex,0)NextEnd If在数据窗口控件 dw_stu 的 ue_enterkey 事件中加入如下脚本 :Long therowIf this.AcceptText()0 ThenReturn 1End If

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 自然科学

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。