第3章程序设计

上传人:痛*** 文档编号:172655278 上传时间:2022-12-05 格式:PPT 页数:28 大小:340.02KB
返回 下载 相关 举报
第3章程序设计_第1页
第1页 / 共28页
第3章程序设计_第2页
第2页 / 共28页
第3章程序设计_第3页
第3页 / 共28页
点击查看更多>>
资源描述
上一次课讲到VFP中的数据查询命令,SQL查询语句,在表单中定位记录,过滤记录以及数据统计。请同学们回顾这样两个问题:1.记录过滤命令格式及功能是什么?2.VFP提供了哪4个常用统计命令?命令格式:SET FILTER TO 表达式 IN 区号|别名功能:指定访问当前表中记录时必须满足的条件。VFP提供了常用的4个统计命令:Count、Sum、Average、Total。上一次课主要学习的内容本章主要介绍在Visual FoxPro 中设计用户登录界面以及为用户密码加密。第第3 3章章.登录处理登录处理用户认证界面是需要进行用户认证系统必备界面。下图是金蝶K/3ERP登录界面(部分)。3.13.1用户登录界面用户登录界面用户登录界面可以包括程序名称、用户名和密码输入的文本框、确定和退出按钮。如下图:向该表单添加如下控件:图标:People.ico背景图片:login.jpg2个文本框(用户名、密码)2个标签(用户名、密码提示)2个按钮(确定、取消)3.1.13.1.1创建表单界面创建表单界面表单常用属性说明表单常用属性说明:BorderStyle-用于设置窗口是否允许拖动边框改变大小。Closable-指定能否通过双击窗口菜单图标来关闭表单MaxButton、MinButton、ControlBox-设置是否可用最大化、最小化、关闭按钮ShowTips-鼠标指针悬停在控件区域时,是否显示ToolTipText的值。ShowWindow-设置表单类型1.1.表单属性说明表单属性说明常用标签属性常用标签属性:AutoSize-根据内容自动调整控件区域大小BackStyle-背景是否透明Caption-标签内容Font*-字体设置,FontBold粗体,FontItalic斜体,FontName字体名称,FontSize字体大小,FontStrikethru删除线,FontUnderLine下划线ForeColor-标签标题文字颜色WordWrap-标题文字是否自动折行显示2.2.标签属性说明标签属性说明常用文本框控件属性常用文本框控件属性:ControlSource-文本框的数据源,一般为字段,运行时显示该字段的值,所作修改自动保存Height-文本框高度(点)Width-文本框宽度(点)IMEMode-得到焦点时输入法状态PassWordChar-加密显示字符SelectOnEntry-得以焦点时是否选中文本内容3.3.文本框属性说明文本框属性说明常用按钮控件属性:Caption-按钮标题Cancel-设置为.T.时,按键盘ESC键等于单击该钮。Default-设置为.T.时,按键盘Enter键等于单击该钮。一个表单上只能有一个按钮的Cancel或Default为.T.4.4.按钮控件属性说明按钮控件属性说明Name=Logon&表单名称AutoCenter=.T.&自动居中BorderStyle=2&固定边框Caption=系统登录&表单标题Closable=.F.&双击窗口菜单图标无效Icon=Imageprople.ico&表单图标MDIForm=.F.&不是MDI窗口MaxButton=.F.&没有最大化钮MinButton=.F.&没有最小化钮ShowTips=.T.&显示工具提示ShowWindow=2&作为顶层表单WindowState=0&普通方式显示窗口WindowType=1&模式表单5.5.表单属性设置表单属性设置标签.autosize=.t.backstyle=0&透明 FontName=宋体 FontSize=16 WordWrap=.F.txt密码.PassWordChar=*cmdok.Caption=确定cmdok.Default=.T.cmdok.ToolTipText=登录系统cmdexit.cancel=.F.cmdexit.Caption=取消cmdexit.ToolTipText=取消登录6.6.控件属性设置控件属性设置步骤步骤:菜单:显示-Tab键次序依次单击蓝色矩形框,设置完成后单击表单确认。7.7.设置设置TabTab次序次序在VFP中,可将用户信息保存到文本文件、二进制文件或者数据库中。将信息存储在数据库中对数据的存取、查询更方便。1.建立新的数据库打开项目管理器-数据选项卡-数据库-新建-新建数据库-文件名:Hrmdata,位置:个人文件夹-保存2.新建表users在项目管理器中打开新建的数据库-表-新建-文件名:users,位置:个人文件夹-保存-编辑表结构。3.1.23.1.2用户信息存储方式用户信息存储方式字段名字段名 类型类型 宽度宽度 可否为空可否为空 默认值默认值 说明说明用户名 字符 20 否 主索引密码 字符 20 否说明说明:建立表结构后,需要将表添加到表单的数据环境中,以方便操作。步骤:激活表单,菜单:显示/数据环境/右击菜单中选择“添加”/选择数据库:Hrmdata,选择表:users/添加/关闭.用户信息表结构用户信息表结构二个按钮对象的二个按钮对象的MouseMoveMouseMove事件过程事件过程:This.MousePointer=99&使用自定义的鼠标指针This.MouseIcon=h_point.cur&鼠标指针文件新建表单属性新建表单属性:为了计数的需要,新建一个表单属性:trytime,修改默认值为0,操作:激活表单/菜单:表单/新建属性/属性名:trytime,添加/在属性窗口修改其值为03.1.33.1.3添加代码添加代码设计说明设计说明:单击确定按钮时,首先检测是否输入用户名,密码,若输入则核对与表中事先保存的是否一致,如果一致则调系统主表单,否则检测出错次数,如果达到3次,退出系统,否则清空用户名和密码,等待重新输入。.cmdokcmdok.click.click过程说明过程说明*精确比较SET EXACT ON*尝试登录词数+1THISFORM.trytime=THISFORM.trytime+1*判断是否输入了用户名IF ALLTRIM(THISFORM.txt用户名.VALUE)=MESSAGEBOX(请输入用户名,48,人力资源管理系统)THISFORM.txt用户名.SetFocusReturnENDIF*获取输入的信息USER_N=ALLTRIM(THISFORM.txt用户名.VALUE)USER_P=ALLTRIM(THISFORM.txt密码.VALUE)*定义逻辑变量is_user,用于判断是否为合法用户.cmdokcmdok.click.click代码代码-1/4-1/4LOCAL Is_UserIs_User=.F.*遍历用户表中中所有的记录*判断输入的用户名称和用户密码是否存在SELECT usersGO TOPDO WHILE.NOT.EOF()*寻找与输入的用户名和密码匹配的记录Is_User=(USER_N=users.用户名).AND.(USER_P=users.密码)*如果找到IF IS_USEREXITELSESKIPENDIFENDDO.cmdokcmdok.click.click代码代码-2/4-2/4*如果正确IF IS_USER*保存登录用户*cCurUser=ALLTRIM(THISFORM.txt用户名.Value)*调用主界面*DO FORM MainForm*退出当前表单THISFORM.RELEASE*如果登录不正确ELSE*如果尝试次数达到3次IF THISFORM.trytime=3MESSAGEBOX(已经连续错误,请重启程序!,0+16,人力资源管理系统).cmdokcmdok.click.click代码代码-3/4-3/4THISFORM.RELEASECLEAR EVENTSQUITENDIF*如果还没有到3次MESSAGEBOX(用户名或用户密码不正确!,0+16,人力资源管理系统)THISFORM.txt用户名.Value=THISFORM.txt密码.Value=THISFORM.txt用户名.SetFocusENDIF*模糊比较SET EXACT OFF.cmdokcmdok.click.click代码代码-4/4-4/4用户单击时弹出确认对话框,如果用户确认则。退出系统。代码:*确认对话框YN=MESSAGEBOX(确定退出,4+32,人力资源管理系统)IF YN=6*退出登录表单THISFORM.RELEASE*清除事件循环Clear EVENTS*退出Visual FoxProQUITENDIF.退出按钮设计说明退出按钮设计说明users表中存放的用户名和密码都是非加密的。进行必要的加密处理后才能保证系统安全。加密操作中可以使用Bitxor函数,该函数的格式如下:BITXOR(n1,n2)功能:返回n1,n2两个数值型数值按位进行异或运算的结果。如果 n1 和 n2 不是整数,那么它们在位操作之前,将转换成整数。函数比较 n1 和 n2 的每个对应位。如果一个数的某一位为 0,并且另一个数相应位为 1,那么操作结果的对应位等于 1;否则等于 0。通过建立含有Bitxor自定义函数encode.prg,实现对用户名和密码的加密处理。3.23.2密码处理密码处理 函数格式函数格式:encode(nStr,nCode)nStr-待加密的字符串nCode-加密的密钥返回值:nCode对nStr每一字符位异或运算后结果。建立步骤建立步骤:项目/代码/程序/新建/编辑代码,保存,文件名:encode.prg,位置:个人文件夹使用方法使用方法:密钥是一个255以内的整数加密:加密串=Encode(源串,密钥)解密:源串=Encode(加密串,密钥).加密函数说明加密函数说明FUNCTION Encode(sStr,nCode)*声明需要使用的本地变量LOCAL sTmpStr,cTempChr,i*sTempStr:用来保存昨时的编码或者解码后的字符串*cTempChr:用来保存编码或者解码后的字符*i:循环计数*对变量赋初值sTempStr=cTempChr=*如果未指定密钥.加密函数代码加密函数代码-1/2-1/2IF nCode=0nCode=184ENDIF*对字符串的每个字符进行编码FOR i=1 TO LEN(ALLTRIM(sStr)cTempChr=BITXOR(ASC(SUBSTR(sStr,i,1),nCode)sTempStr=sTempStr+CHR(cTempChr)ENDFOR*返回编码后的结果RETURN sTempStrENDFUNC.加密函数代码加密函数代码-2/2-2/2主要介绍了在Visual FoxPro 6.0中设计用户登录界面以及为用户密码加密的方法。第第3章小结章小结1.创建新项目操作步骤?2.文档界面类型有哪些?3.列出表单常用属性及作用?4.列出常用标签属性?5.列出常用文本框控件属性?6.如何设置Tab次序?7.Bitxor函数的格式及功能是什么?第第3章思考题章思考题10.设计用户登录界面第第3章作业题章作业题长春大学管理学院会计系冯建祝本章本章结束
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!