网站导航网学 原创论文 网站设计 最新系统 最新研究 原创论文 获取论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 设计下载 > PB毕业设计 > 正文

基于PB某电脑公司销售管理系统的设计

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/05/11

网学网为需要PB毕业设计的朋友们搜集整理了基于PB某电脑公司销售管理系统的设计相关资料,希望对各位网友有所帮助!

QQ交谈客服咨询,网学网竭诚为您服务,本站永久域名:myeducs.cn

 

4.4.1.2登录窗口的设计
系统登录窗口的设计目的是防止非法用户使用应用程序,并且为系统的用户限制权限。本窗口是在应用程序运行以后,在启动窗口完后弹出的一个窗口,如果用户的身份验证正确无误,将会进入到系统主窗口中去。否则,用户将不可能进入到系统中去;根据不同的用户,不同的登陆密码,进入系统的用户将会有不同的操作权限。因此,在本窗口的代码中将会有登陆身份的验证和和对登陆到系统的用户的权限设置的代码,并且为了防止非法用户的进入,限制登陆密码只能输入三次,超过三次系统将会自动关闭,禁止再次的输入密码。其功能实现的具体代码如下:
1.        添加职务的代码:
//ddlb_zw for constructer
string zw
integer is_index
//定义游标
 DECLARE mmm CURSOR FOR 
 SELECT bmlbb.lbmc 
    FROM bmlbb ;
 
//打开游标
OPEN mmm ;
//使用搜查记录
if sqlca.sqlcode=-1 then
    messagebox("sql错误","提取数据错误!")
else
    zw=""
    do
           if zw<>"" then
                  //取消相同的内容
                  is_index=ddplb_1.finditem(zw,0)
                  if is_index<>-1 then
                  ddplb_1.deleteitem(is_index)
              end if
                   //添加内容
                   ddplb_1.additem(zw)
      end if
       
            FETCH mmm INTO :zw;
loop while sqlca.sqlcode=0
      
end if
 //关闭游标                                       
close mmm
2.        下面的代码是在选择了职务以后,在该职务下的用户添加代码:;
//ddlb_zw for losefocus
 
string shuming,ll_name,zw
zw=trim(ddplb_1.text)
reset(ddlb_1)
 
 DECLARE newname CURSOR FOR 
 SELECT secret.username 
    FROM secret 
   WHERE secret.bumen = :zw      ;
 
open newname ;
 
if sqlca.sqlcode=-1 then
    messagebox("错误",string(sqlca.sqlcode)+":"+sqlca.sqlerrtext)
else
    ll_name=""
 DO
    if ll_name<>"" then
           shuming=string( ll_name)
       ddlb_1.additem(shuming)
    end if
   
FETCH newname INTO :ll_name;
 
       LOOP while sqlca.sqlcode=0
if sqlca.sqlcode=-1 then
    messagebox("错误",string(sqlca.sqlcode)+":"+sqlca.sqlerrtext)
end if
end if
close newname;
3.        有了职务,有了用户,下面是对输入情况的判断和对用户的权限设置,其具体的代码:
//cb_ok for click
 
//变量的定义
 
string ll_yhm,ll_mima,ll_zw,name,mima,zw,dlshijian
ll_zw=trim(ddplb_1.text)
ll_yhm=trim(ddlb_1.text)
ll_mima=trim(sle_mima.text)
//有效性检查
if ddplb_1.text="" or isnull(ddplb_1.text) then
    MessageBox("缺少数据", "请选择您的职务!")
    ddplb_1.setfocus()
    return
elseif ddlb_1.text="" or isnull(ddlb_1.text) then
    MessageBox("缺少数据", "请选择您的用户名!")
    ddlb_1.setfocus()
    return
elseif sle_mima.text="" or isnull(sle_mima.text) then
    MessageBox("缺少数据", "请输入输入您的口令!")
    sle_mima.setfocus()
    return
end if
//查找数据
SELECT secret.username,  
         secret.password,  
         secret.bumen 
    INTO :name,
          :mima ,
                  :zw
    FROM secret 
   WHERE ( secret.username = :ll_yhm ) AND 
         ( secret.password = :ll_mima ) AND 
         ( secret.bumen = :ll_zw )   ;
 
//判断查找的结果
     if ll_yhm<>name and ll_mima<>mima and ll_zw<>zw then
           ii_entertimes=ii_entertimes+1
           if ii_entertimes>=3 then
                  MessageBox("错误", "连续三次输入错误密码,系统将退出!",stopsign!)
                  halt
           else
       MessageBox("错误", "你的密码输入不正确,请重新输入密码!",stopsign!)
           sle_mima.setfocus()
           sle_mima.text=""
     return
       end if
else
// 存储登录记录
//····························
 
 string is_mkm,is_jb,is_sjsj,is_kssj,is_jssj
 is_mkm="登录"
is_sjsj=string(today(),"yyyy-mm-dd hh:mm:ss")
ll_sjsj=is_sjsj
is_kssj=string(now(),"hh:mm:ss")
is_jssj=string(now(),"hh:mm:ss")
SELECT secret.class 
    INTO :is_jb 
    FROM secret 
   WHERE secret.username = :ll_yhm   ;      
       INSERT INTO rizhi 
         ( czy,  
           sjsj,  
           czkssj,  
           czmk,  
           czjssj,  
           xjsj,  
           dljb ) 
 VALUES ( :ll_yhm,  
           :is_sjsj,  
           :is_kssj,  
           :is_mkm,  
           :is_jssj,  
            null,  
           :is_jb ) ;
 
//························
           open(w_main)     
       close(w_login)
    is_czy=ll_yhm
   
    end if
    string qq
 int i
 SELECT secret.quanxian 
    INTO :qq
    FROM secret 
   WHERE secret.username = :is_czy ; 
//权限的设置                
    i=wf_opclass(qq)
4.        登陆窗口的外观如下:
主窗口的菜单设计
主窗口的设计主要是为了将所有的操作集中在一起,以便于集中的操作,因此,对主窗口而言,它的菜单显的尤为重要,对于我的系统而言,我把所有大部分功能全部集中在菜单中了,所有系统的功能都是通过点击菜单项目来实现的,这样,最突出的两大优点是:一是节省屏幕的显示空间,几十上百的功能选择集合到菜单里只占一行的空间;二是对系统功能的分门别类,菜单可以一级一级地展开,形成树形结构,条理清晰,查找快捷。我在菜单的设计中,参考了以下的设计原则:
菜单的整体要有统筹规划,使其划分合理,条理清晰,简明直观,方便易用。基本作到能够根据前级菜单项,知道下级菜单包含的范围;根据用户的功能要求,知道应该从哪一个菜单标题以及菜单项去操作。
菜单标题和菜单项的名称设计应当简明扼要,具有概括和直观性;
采用加速键和快捷键,起到加速和没有鼠标只用键盘也能操作菜单的双重效果;
如果某菜单项将打开一个对话框,则在该菜单项的标题中要使用省略号进行提示;
某一菜单项或整个菜单标题下菜单项不能使用或禁止使用时,应该当使其变灰;
级联菜单的层数不宜太多,菜单栏以及下拉菜单不要超过屏幕范围,否则无法操作;
采用状态栏对菜单的使用提供帮助和提示信息,对菜单项的功能进行详细的说明。
主窗口的菜单设计如下:
其它的菜单,如右键菜单、系统日志的菜单等的设计思想和主窗口的菜单设计思想是一致的,它们的目的也是为了便于操作或是集中操作。
4.4.1.3主窗口设计
快捷栏中的操作进行权限设置。在登录的时候设置的权限是对主窗口的菜单的权限设置,但是由于菜单的操作不是十分的便捷,因此,我采用了快捷栏,对于它的操作,由于操作员的不同,也要进行权限的设置。
对软件的注册次数进行编辑,如果已经注册,则对使用的次数不在进行限制,否则,对使用的次数要减一。
4.4.2快捷栏的设计

虽然,对系统的操作通过菜单可以实现,并且完成强大的功能,但是,操作仍然不是最简洁的,最快捷的,因为菜单的有些项目是不通过点击是看不到的,而且有些功能的界限并不是十分明确,因此,试图从窗口的菜单名称来判断到底它放在那个菜单级下面是很难的,只有通过逐个的点击去查找,这样会给操作带来很大的麻烦,而且,会浪费很多的宝贵时间。但是我所设计的快捷栏将会克服上述的所有缺点,我把系统的所有主要功能都放在了快捷栏里面,在系统的主窗口打开的时候,快捷栏也将会随之打开的,这样为系统的操作员又提供了一种选择操作的方法。同时,在快捷栏的打开的同时,也对它里面的某些功能设置了权限,有些项目如果操作员的权限不到位的话是不能操作的。但是,它的外观是我模拟QICQ的操作界面制作的。如何判断操作员自己的权限是否可以操作呢?我在设计的时候为这种问题,提出了一种很隐蔽的方法,那就是看鼠标放在上面的图标,如果是手形的则是有权限的,如果是一个箭头的符号则是没有权限的了。实现目的一样,但是使用快捷栏更直观,更简洁明了、更便于操作。


 

 

本站发布的计算机毕业设计均是完整无错的全套作品,包含开题报告+程序+论文+源代码+翻译+答辩稿PPT

本文选自计算机毕业设计http://myeducs.cn
论文文章部分只是部分简介,如需了解更多详情请咨询本站客服!QQ交谈QQ3710167

原创论文

设为首页 | 加入收藏 | 论文首页 |原创论文 |
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师