




已阅读5页,还剩62页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业论文用PlayCASE建模工具开发教务处学籍管理系统目录一. 课题介绍“教务处学籍管理系统”是电子信息职业技术学院(宝山道院区)教务处针对当前学籍管理工作的需要开发研制的一个应用型软件,是列入我院院级科研立项的项目之一。它的使用对促进我院教务管理特别是学籍管理的科学化、规范化和信息的网络化将起到积极的作用。研制“教务处学籍管理系统”是为了寻找一种较为规范的解决方案旨在减轻教务管理人员繁重的工作负担,规范教学计划、课程名称、教师编号等的制定使用,简化教学任务检索、成绩查询、考勤管理等工作的劳动强度和复杂程度,解决了教务处学生信息管理工作中的现代化手段问题,进而进一步提高我院教务处计算机管理水平。“教务处学籍管理系统”应用范围从新生的信息录入开始到毕业离校,贯穿整个学生在校期间的管理工作。根据这一全过程的工作特点,可以全面地利用计算机作为辅助管理手段进行学生学籍管理的工作,能有效地防止目前全国大学生管理系统“平台式”的软件在开发上的大众性,更适合于我院学籍管理要求,强化了查询统计功能同时友好的用户界面将更方便于教务管理人员的日常使用。二. 系统设计分析1. 开发工具使用“教务处学籍管理系统”,使用PlayCASE建模工具作为前端(上游)的系统分析、设计模型。系统模型通过划分,生成相对独立的功能模块。生成的功能模块转为后端(下游)的开发原型,使用PowerBuilder 8.0作为开发工具,用以实现实际的功能。目前,国内大部分的MIS系统开发仍旧停留在原始的手工开发模式上,这不仅无法提高工程质量,而且由于没有统一的开发标准(或未形成总体的开发风格),不利于MIS系统生存周期的延长。传统的开发模式,同时极大的限制了MIS系统软件在用户实际使用过程中的完善。(因为传统的开发模式在开发工程中只强调整个开发过程的其中一部分或几部分,不能贯穿开发的全程。在出现开发预期没有考虑的问题时,由于没有全面的系统开发模型往往对出现的问题无法修补。)在国外,已经普遍采用系统模型开发工具,并且已经基本形成统一的标准。依据标准的系统模型开发工具已经有很多,有很多软件开发工具都有自己的前端(上游)模型开发工具。如Sybase公司为PowerBuilder定制的前端(上游)模型开发工具PowerDesigner。在这次毕业设计中,我们使用了国产的系统模型开发工具PlayCASE。我们希望能够找出一些使用系统模型开发工具比使用传统的开发模式的优势。试着通过使用PlayCASE并结合现代软件工程的思想,能够快速建立系统模型,合理划分各个功能模块。PlayCASE创造性地把业务调查、需求定义、总体设计、详细设计及程序生成等软件开发过程结合为一体,适合生命周期法、原型法及其混合形式,极大地提高了软件系统开发的效率和质量,满足了个方面的需要。PlayCASE的集成理念体现在软件生命周期的纵横两个方面,通过三位一体建模实现统一的形式支持生命周期。使用PlayCASE开发应用软件,可以最大限度的减少软件开发完成后出现功能不全的问题,更不会出现闭门造车的情况,造成软件给谁用、有什么用都说不清楚的问题,这种问题在开发软件产品时是十分容易出现的。PlayCASE的最主要的作用是提供了从需求建模向软件建模平滑过渡,并且可以良好的支持后端开发工具的。PlayCASE为程序员提供了功能强大的可视化数据库建模工具和程序设计工具,十分便于数据库系统的概念设计、逻辑设计、物理设计和行为设计。我在小组中的分工是,依据前端(上游)分析划分的各个主功能模块,使用现代软件工程的分析和细化方法,将主功能模块再次划分成实现功能独立的节点模块,并通过开发工具(PB 8.0)实现。2. 开发使用环境开发平台:Windows 2000 Advanced Server (Service Pack 3)数据库平台:Microsoft SQL Server 2000 企业版开发工具:PowerBuilder 8.0.1 Build 8004Microsoft Development Environment 2003 (Visual Studio .NET 2003)(仅作为最终程序发布使用)3. 功能模块图4. 设计分析根据我在小组内的分工,我主要负责:分解上游开发生成的功能模块,将其细化成为可以使用开发工具实现的终端模块;分析功能模块提出的功能,划分逻辑,并依据上游提供的数据库结构模型设计出实现功能的算法;设计交互界面,完成代码设计,进行初步测试;合并应用程序,完成系统测试、用户确认测试。三. 系统设计实现1. 设计总量(1) 信息输入模块(窗口)制定教学计划(w_plan):制定各专业教学计划。教学任务窗口(w_assignment): 由教学计划自动生成教学大纲的主要内容。教学大纲输入(w_jxoutline): 制定教学大纲。标识编辑窗口(w_edit_f_t_s_j):设计整个系统使用的各种标识。代码编辑窗口(w_edit_d_s_c):制定系、专业、班级、课程、教师情况以及各对应的代码信息。学生基本信息输入(w_student_input):输入在校学生的基本信息、家庭情况和学习情况。学生正考成绩录入(w_student_score):输入学生的考试成绩。学生补考录入(w_student_score_makeup):输入学生的补考成绩。(2) 信息修改模块(窗口)教学计划修改(w_plan_edit):完成对现有教学计划的修改、补充。教学任务修改(w_assignment_edit):完成对现有教学任务的修改(以教学计划为基础)。学生成绩修改(w_student_score_edit):完成对现有学生成绩的修改,以全部考试成绩和补考成绩两种方式查询修改。学生基本信息校对(w_z_student_snumedit):校对学生基本信息的输入情况,包含修改功能。(3) 信息查询模块(窗口)学生成绩查询(w_score_query):用于查询指定学生的各个学期的单科或全部成绩学生统计信息查询(w_query):整合在学学生人数的全部功能查询,完整显示详细的统计信息内容和总数统计。不及格情况查询(w_makeup_query):以指定条件查询在学学生的不及格人数、人次和详细内容。不及格情况明细(w_nopass_list):显示全院不及格学生的详细情况。(4) 统计显示模块(窗口)成绩图形显示(w_score_count):以图形方式显示成绩统计正态分布图(5) 打印模块(模块)教学计划打印(w_plan_print):打印教学计划。教学任务打印(w_assignment_print):打印教学任务。学生成绩打印(w_score_print):打印各学期的各班学生成绩。成绩检索打印(w_query_print):打印学生成绩汇总信息,排名情况。学籍卡打印(w_student_score_table_1):打印学生的学籍卡(包括学生基本信息和学生在学成绩)。(6) 用户管理模块(窗口)用户权限管理(w_user_login):管理准许登陆系统的用户权限(此窗口的权限最高)。2. 典型模块(窗口)介绍主窗口(w_main)窗口要求:以框架方式构建主窗口,由主窗口打开的窗口作为框架下的窗口,同时在窗口菜单下添加打开窗口的选项。自动记录快捷菜单栏的位置。窗口界面和结果生成示例:主要控件脚本:主窗口(w_main).打开事件(open)/*傲宇软件工作室*/*-窗口名称:主窗口 -*/*-窗口作用:主窗口 -*/*-脚本作用:初始化窗口 -*/*-作者姓名:王琮 -*/*-设计日期:2003-06-15 -*/*-修改人姓名: -*/*-修改日期: -*/*-修改原因: -*/*/integer li_dockrow/工具栏行号integer li_offset/工具栏位置/设置工具栏位置li_dockrow = integer(ProfileString(Eie.ini,ToolBarPropertie,ToolBar1_DockRow,1)li_offset = integer(ProfileString(Eie.ini,ToolBarPropertie,ToolBar1_Offset,1)This.SetToolBarPos(1,li_dockrow,li_offset,False)/设置工具栏1li_dockrow = integer(ProfileString(Eie.ini,ToolBarPropertie,ToolBar2_DockRow,2)li_offset = integer(ProfileString(Eie.ini,ToolBarPropertie,ToolBar2_Offset,1)This.SetToolBarPos(2,li_dockrow,li_offset,False)/设置工具栏2li_dockrow = integer(ProfileString(Eie.ini,ToolBarPropertie,ToolBar3_DockRow,3)li_offset = integer(ProfileString(Eie.ini,ToolBarPropertie,ToolBar3_Offset,1)This.SetToolBarPos(3,li_dockrow,li_offset,False)/设置工具栏3li_dockrow = integer(ProfileString(Eie.ini,ToolBarPropertie,ToolBar4_DockRow,4)li_offset = integer(ProfileString(Eie.ini,ToolBarPropertie,ToolBar4_Offset,1)This.SetToolBarPos(4,li_dockrow,li_offset,False)/设置工具栏主窗口(w_main).关闭事件(close)/*傲宇软件工作室*/*-脚本作用:保存设置 -*/*-作者姓名:王琮 -*/*-设计日期:2003-06-15 -*/*-修改人姓名: -*/*-修改日期: -*/*-修改原因: -*/*/integer li_dockrow/工具栏行号integer li_offset/工具栏位置/保存设置This.GetToolBarPos(1,li_dockrow,li_offset)/获取工具条1的位置属性SetProfileString(Eie.ini,ToolBarPropertie,ToolBar1_DockRow,string(li_dockrow)SetProfileString(Eie.ini,ToolBarPropertie,ToolBar1_Offset,string(li_offset)This.GetToolBarPos(2,li_dockrow,li_offset)/获取工具条2的位置属性SetProfileString(Eie.ini,ToolBarPropertie,ToolBar2_DockRow,string(li_dockrow)SetProfileString(Eie.ini,ToolBarPropertie,ToolBar2_Offset,string(li_offset)This.GetToolBarPos(3,li_dockrow,li_offset)/获取工具条3的位置属性SetProfileString(Eie.ini,ToolBarPropertie,ToolBar3_DockRow,string(li_dockrow)SetProfileString(Eie.ini,ToolBarPropertie,ToolBar3_Offset,string(li_offset)This.GetToolBarPos(4,li_dockrow,li_offset)/获取工具条1的位置属性SetProfileString(Eie.ini,ToolBarPropertie,ToolBar4_DockRow,string(li_dockrow)SetProfileString(Eie.ini,ToolBarPropertie,ToolBar4_Offset,string(li_offset)生成教学任务窗口(w_assignment)窗口要求:要求以学期和专业为条件,自动生成教学计划所包含的所有年级和所有班级的教学任务。在重复生成教学任务时,以最后一次的生成结果为准,仅保留最近一次生成结果(即允许刷新已有的教学任务)。以保证在更新教学计划后可以同步更新现有的教学任务。窗口界面和结果生成示例:主要窗口控件:1. 教学任务统计信息显示窗口(d_view):用于显示教学任务统计信息。2. 学期显示窗口(d_term):使用数据窗口数据列链接方式显示当前数据库中所有有效学期内容。3. 专业显示窗口(d_spec):同样使用数据窗口数据列链接方式显示当前数据库中所有有效专业内容。4. 检索按钮(cb_retireve):生成教学任务。5. 保存按钮(cb_save):保存已生成的教学任务。6. 清除按钮(cb_clear):清除教学任务统计显示窗口内容。窗口功能实现分析:此窗口要求以学期和专业为条件,自动生成教学任务。但生成过程的问题是:教学计划是以专业为单位进行编制的,而教学任务是以班为单位、依据教学计划的指定内容生成的。在生成教学任务之前,需要转换教学任务中所需要的班级信息,而班级信息又需要通过一个包含专业和班级等信息的关系对照表生成该专业所对应的全部班级。所以在生成最终的教学任务之前需要准备好关系表所需的专业信息,幸好窗口已经提供了。好,条件基本具备,下面来介绍整个教学任务的生成过程。首先,获取窗口提供的学期和专业信息。确认信息有效后构造检索所需的3个游标。(1)用于检索年级的游标(游标1)。以学期和专业为条件,从教学计划中检索出所有涉及到的年级信息。(2)用于转换班级的游标。使用刚取得的年级和窗口提供的专业为条件,从前面提到的关系对照表中转换出所对应的全部班级信息。(3)用于生成最终教学任务的游标。使用当前取得的全部条件(学期、专业、年级和班级),从教学计划中完整的生成教学任务。其次,由于教学计划中的信息可能是一对多的关系,所以在检索过程中需要使用游标的嵌套方式(游标1(游标2(游标3)。由游标1首先开始检索,验证检索值正确后;游标2使用游标1检索的结果继续检索,同样验证检索值正确后;游标3开始检索生成教学任务所需的全部内容,检索值验证完成后,开始向教学任务统计显示窗口添加检索信息。重复以上操作,直到所需信息检索完成。实现窗口功能使用的特殊技术:在生成教学任务时使用了多重游标的嵌套检索。教学计划中的信息可能是一对多的关系,使用普通的检索语句(Select语句)无法完全的检索出生成教学任务所需的信息。因为在PB中,Select语句无法对数据行进行定位,它只能检索出第一条符合条件的记录,所以它不适合检索一对多的数据。而游标可以对数据行进行定位,可以轻松地检索出符合条件的所有记录。所以采用了游标来检索数据。使用嵌套检索是因为数据关系不能在一个数据表中完整体现,所以需要使用游标在多个表中进行往复检索。主要控件脚本:检索按钮(cb_retireve).单击事件(clicked):/*傲宇软件工作室*/*-脚本作用:检索记录 -*/*-作者姓名:王琮 -*/*-设计日期:2003-04-20 -*/*-修改人姓名: -*/*-修改日期: -*/*-修改原因: -*/*/boolean lb_ksh,lb_kch,lb_qzhboolean lb_continue = Falseinteger li_termidinteger li_jid,li_specidinteger li_classidinteger li_jidsave5/保留5届的编号integer li_coursetime,li_tctime,li_shy,li_shxu,li_keshiinteger li_personcount,li_cidlong ll_nowrowlong ll_testrowstring ls_examination = for ll_testrow = 1 to 5 step 1/清空届li_jidsavell_testrow = 0nextli_termid = integer(d_2.Object.termnamed_2.GetRow()/取出学期li_specid = integer(d_3.Object.specialityd_3.GetRow()/取出专业if (ii_termid = 0)and(ii_specid = 0) then/检测学期专业是否重复ii_termid = li_termidii_specid = li_specidelseif (ii_termid = li_termid)and(ii_specid = li_specid) thenif messagebox(提示,您当前选择的数据信息与之前的选择相同,请确认是否继续,Question!,YesNo!,2) 1 thenreturnend ifelseii_termid = li_termidii_specid = li_specidend ifend ifd_1.Reset()/清除当前数据窗口This.Enabled = FalseDeclare c_view_termid Cursor For/说明游标SELECT plan1.jidFROM plan1Where plan1.termid = :li_termid AND plan1.specid = :li_specid;Declare c_view_dsc Cursor For/说明游标SELECT d_s_c.classidFROM d_s_cWHERE d_s_c.jid=:li_jid and d_s_c.specid=:li_specid;Declare c_view_insert Cursor For/说明游标SELECTplan1.coursetime,plan1.tctime,plan1.shy,plan1.shxu,plan1.keshi,class.personcount,plan1.ksh,plan1.kch,plan1.qzh,plan1.cid FROM plan1,classWHERE plan1.termid = :li_termid AND plan1.specid = :li_specid AND plan1.jid = :li_jid AND class.classid = :li_classid;Open c_view_termid;/打开游标Fetch c_view_termid InTo :li_jid;/读取检索结果do while SQLCA.SQLcode = 0/读取成功/检查jid是否重复for ll_testrow = 1 to 5 step 1if li_jidsavell_testrow 0 thenif li_jid = li_jidsavell_testrow then/查找到相同的届编号lb_continue = True/重新检索数据elselb_continue = Falseend ifelseExitend ifnextif lb_continue then/重新检索数据Fetch c_view_termid InTo :li_jid;/读取检索结果Continue/重新检测读取结果end ifli_jidsavell_testrow = li_jid/保存届编号/对应班级Open c_view_dsc;/打开游标Fetch c_view_dsc InTo :li_classid;do while SQLCA.SQLcode = 0/读取成功is_classid+=Space(4-Len(string(li_classid)+string(li_classid) /保留班级编号ls_examination = Open c_view_insert;/打开游标Fetch c_view_insert InTo :li_coursetime,:li_tctime,:li_shy,:li_shxu,:li_keshi,:li_personcount,:lb_ksh,:lb_kch,:lb_qzh,:li_cid; /读取检索结果do while SQLCA.SQLcode = 0/读取成功ls_examination = ll_nowrow = d_1.InsertRow(0)if ll_nowrow = -1 then/插入失败if Messagebox(提示,无法插入检索信息行,是 / 否 继续?n提示:如果继续可能丢失部分信息。,Exclamation!,YesNo!,2) = 2 thenReturn/退出end ifend if/填入检索信息d_1.Object.termidll_nowrow = li_termidd_1.Object.classidll_nowrow = li_classidd_1.Object.cidll_nowrow = li_cidd_1.Object.periodll_nowrow = li_coursetimed_1.Object.teachll_nowrow = li_tctimed_1.Object.experimentll_nowrow = li_shyd_1.Object.trainll_nowrow = li_shxuif li_keshi = 10 thend_1.Object.lessonhll_nowrow = li_keshi * 17elsed_1.Object.lessonhll_nowrow = li_keshiend ifd_1.Object.personcll_nowrow = li_personcountif lb_ksh thenls_examination += 考试end ifif lb_kch thenif ls_examination thenls_examination += ,end ifls_examination += 考查end ifif lb_qzh thenif ls_examination thenls_examination += ,end ifls_examination += 取证end ifd_1.Object.examinationll_nowrow = ls_examinationd_1.Object.tabledll_nowrow = DateTime(Today()Fetch c_view_insert InTo :li_coursetime,:li_tctime,:li_shy,:li_shxu,:li_keshi,:li_personcount,:lb_ksh,:lb_kch,:lb_qzh,:li_cid;/读取检索结果loopClose c_view_insert;/关闭游标Fetch c_view_dsc InTo :li_classid;loopClose c_view_dsc;/关闭游标Fetch c_view_termid InTo :li_jid;/读取检索结果loopClose c_view_termid;/关闭游标Commit;This.Enabled = Trued_1.SetFocus()保存按钮(cb_save).单击事件(clicked):/*傲宇软件工作室*/*-脚本作用:保存记录 -*/*-作者姓名:王琮 -*/*-设计日期:2003-04-20 -*/*-修改人姓名: -*/*-修改日期: -*/*-修改原因: -*/*/integer li_flaginteger li_classiddo while Len(is_classid) 0li_classid = integer(Trim(Left(is_classid,4)/取出班级号is_classid = Right(is_classid,(Len(is_classid) - 4)/刷新班级保存DELETE FROM assignment WHERE(assignment.termid = :ii_termid) AND (assignment.classid = :li_classid);if SQLCA.SQLcode 0 thenRollback;Messagebox(提示,数据库更新失败,无法保存当前信息!,Exclamation!,OK!,1)Returnend ifloopli_flag = f_savedw(d_1,w_assignment)/保存数据窗口数据if li_flag = 1 then/保存成功Messagebox(提示,信息保存成功!请按“添加”按钮继续添加新信息。,Information!,OK!,1)end ifd_1.SetFocus()不及格情况查询窗口(w_makeup_query)窗口要求:提供一个比较开放的查询结构,利用现有数据库的数据信息以较宽松的方式查询在学学生的不及格人数和人次。需要统计信息反馈和详细信息反馈。统计信息为指定条件的不及格人数的总和以及不及格人次的总和。详细信息反馈包括不及格学生的学号、姓名、课程、考试课成绩、考查课成绩和不及格原因。查询条件为:学期、专业、班级、课程。提供检索条件的自动限制功能。如:选择专业后,班级选项中仅显示该专业所包括的班级,过滤掉其它的班级项目。在选择检索条件后,自动刷新该条件所对应的条件选项。窗口界面和结果生成示例:(1) 仅以学期为检索条件(2) 以学期和专业为条件(3) 以学期、专业和班级进一步限制条件(4) 使用全部条件限制主要窗口控件:1. 检索信息显示窗口(d_view):显示在学不及格学生的详细情况。2. 学期下拉显示框(ddlb_term):显示所有学期信息。3. 专业下拉显示框(ddlb_speciality):显示所有专业信息。4. 班级下拉显示框(ddlb_class):以专业为条件显示班级项目信息。5. 科目下拉显示框(ddlb_subject):以学期和专业为条件显示科目项目信息。6. 检索按钮(cb_query):根据条件检索。窗口功能实现分析:此窗口要求实现两个主要功能:第一,实现检索条件的自动限制功能,就是在选择条件选项后按照现有所选条件自动刷新与其相关的条件选项。第二,实现一个较为通用的检索结构,在最简单的条件查询下提供较宽范围的检索过程。这是设计窗口时的两个重点。在实现第一个功能时,主要问题是窗口要求的四个条件选项之间的相互关系和动态刷新。首先来分析四个条件选项之间的相互关系,学期和专业是较高层的条件不需要令两个条件的限制,可以直接通过下拉选项框表示。实现这两个条件选项的动态添加是通过窗口函数(uf_add_speciality和uf_add_term)来完成的。这两个函数可以自动添加现有数据库中所有有效的专业和学期选项(函数内容见控件脚本)。班级选项则需要专业作为条件,来显示指定专业所涉及的班级情况并且在更改专业选项后要自动刷新班级选项。通过窗口函数(uf_add_class)来完成对班级选项的添加和刷新(函数内容见控件脚本)。科目选项的限制条件为学期和班级,因为不同学期和班级的课程是不相同的,所以在修改学期和班级的同时需要刷新科目选项。科目的添加和刷新是通过窗口函数(uf_add_subject)来完成的(函数内容见控件脚本)。为了更大限度的提高查询的通用性,当某个选项选择为“空”时,以上的四个函数会向查询功能模块提供所对应选项的全部条件情况。要实现第二个功能,最大的障碍是如何构造一个适合任何情况的查询结构。如果使用普通的查询方法(如Select或者普通游标)实现功能,是比较困难的。普通的查询方法只能使用于一个固定的查询特征,不可以在程序运行过程中根据用户的条件,动态的变化查询特征。并且要以统计信息和详细信息两种方式显示。扫除障碍需要分为两个步骤,首先显示要求的详细信息部分,再显示统计信息。详细信息部分使用的是数据窗口的显示形式,可以采用设置动态数据窗口的方法。因为PB中的数据窗口只是一个图形化的SQL检索语句,所以通过动态设置数据窗口检索语法可以轻松完成的要求。实现动态修改,首先是获取数据窗口的预制SQL语法,去掉动态条件语句部分;然后根据前面用户选择的条件构造出符合当前检索特征的条件语句;最后将过滤过的预制SQL语法和构造出的条件语句合并。得到动态SQL后,只需将新的动态SQL植入到数据窗口,检索就可以了。显示统计信息部分使用的是“第三类动态SQL语句”的游标方式来完成。原理和之前类似,同样是依据用户选择的条件来构造条件语句进行检索。不同的是之前利用了数据窗口的原始SQL语法和数据窗口自身的检索功能,而现在没有数据窗口,所以采用“第三类动态SQL语句”来代替数据窗口。利用“第三类动态SQL语句”允许动态修改检索语法的特征,构造出动态SQL语法,使用“第三类动态SQL语句”的游标方式来完成检索工作。实现窗口功能使用的特殊技术:当前窗口使用了两种特殊技术。一种是数据窗口语法的动态设置方式,它可以设置数据窗口的部分检索条件,以适应不同情况(后面还有一种随意修改数据窗口语法的方式,可以适应更复杂的情况)。另一种是“第三类动态SQL语句”的游标方式,它可以灵活定义SQL语法来完成检索。主要控件脚本:窗口实例变量:integer ii_specid_now = 0/专业代码当前项integer ii_termid_now = 0/学期代码当前项integer ii_classid_now = 0/班级代码当前项integer ii_cid_now = 0/课程编号当前项string is_specid_save = /保存专业代码string is_termid_save = /保存学期代码string is_classid_save = /保存班级代码string is_cid_save = /保存课程代码窗口函数:uf_add_term(dropdownlistbox a_ddlb) returns boolean/*傲宇软件工作室*/*-函数名称:uf_add_term -*/*-脚本作用:无条件向下拉列表框填入学期项目 -*/*-输入参数:a_ddlb -*/*-输入参数数据类型:dropdownlistbox -*/*-返回参数:成功返回True;失败返回False -*/*-返回参数数据类型:boolean -*/*-作者姓名:王琮 -*/*-设计日期:2003-05-31 -*/*-修改人姓名: -*/*-修改日期: -*/*-修改原因: -*/*/integer li_termid/学期代码integer li_termnum = 0/学期代码计数器integer li_flag/返回标志string ls_termname/学期名称is_termid_save = /清空学期代码缓冲a_ddlb.Reset()/清空下拉列表/填入空白选项li_flag = a_ddlb.InsertItem( ,li_termnum)/向下拉列表添加空项目if li_flag = -1 then/添加失败Return False/失败返回end ifis_termid_save += Space(6 - Len(string(-1) + string(-1)/累计空项目标记li_termnum +ii_termid_now = 1/填入当前位置a_ddlb.Text = /填入默认选项/填入实际选项DECLARE c_search_term CURSOR FOR/构造游标,用于检索学期代码和名称SELECT term.termid,term.termname FROM term;Open c_search_term;/打开游标Fetch c_search_term InTo :li_termid,:ls_termname;/检索游标do while SQLCA.SQLcode = 0/读取成功is_termid_save += Space(6 - Len(string(li_termid) +string(li_termid)/累计系编号li_termnum +/累计学期代码数量li_flag = a_ddlb.InsertItem(ls_termname,li_termnum)/向下拉列表添加项目if li_flag = -1 then/添加失败Commit;/提交Return False/失败返回end ifFetch c_search_term InTo :li_termid,:ls_termname;/检索游标loopClose c_search_term;/关闭游标Commit;/提交Return True/成功返回/获得当前学期编号:integer(Trim(Right(Left(is_termid_save,(ii_termid_now * 6),6)窗口函数:uf_add_speciality(dropdownlistbox a_ddlb) returns boolean/*傲宇软件工作室*/*-函数名称:uf_add_speciality -*/*-脚本作用:无条件向下拉列表框填入专业项目 -*/*-输入参数:a_ddlb -*/*-输入参数数据类型:dropdownlistbox -*/*-返回参数:成功返回True;失败返回False -*/*-返回参数数据类型:boolean -*/*-作者姓名:王琮 -*/*-设计日期:2003-05-31 -*/*-修改人姓名: -*/*-修改日期: -*/*-修改原因: -*/*/integer li_specid/专业代码integer li_specnum = 0/专业代码计数器integer li_flag/返
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 酒楼行政总厨聘用协议5篇
- 商场复工复产安全培训课件
- 国家事业单位招聘2025中国人民大学书院建设与管理中心招聘1人笔试历年参考题库附带答案详解
- 南部县2025上半年四川南充市南部县事业单位考调10人笔试历年参考题库附带答案详解
- 北海市2025广西互联网舆情中心招(实名编制)8人(截止5月27日)笔试历年参考题库附带答案详解
- 包河区2025年合肥包河区事业单位招聘劳务派遣人员29名笔试历年参考题库附带答案详解
- 云南省2025云南省教育后勤协会招聘1人笔试历年参考题库附带答案详解
- 上海市2025上海申康医疗卫生建设工程公共服务中心工作人员招聘1人笔试历年参考题库附带答案详解
- 2025重庆紫光国际化工有限责任公司招聘16人笔试参考题库附带答案详解
- 2025贵州茅台酒股份有限公司招聘158人笔试参考题库附带答案详解
- 灭火器维修与报废规程
- 脑干神经解剖定位
- 土木工程生产实习日记50篇
- GB/T 5993-2003电子设备用固定电容器第4部分:分规范固体和非固体电解质铝电容器
- FZ/T 52059-2021抗菌粘胶短纤维
- 医学课件-护理评估课件
- 幼儿园大班安全教育:《暴力玩具不能玩》 课件
- 26个英文字母大小写描红
- 养老院预算及成本管理制度
- 研学旅行基地评估认定评分表
- DL∕T 1867-2018 电力需求响应信息交换规范
评论
0/150
提交评论