📄 manage.lst
字号:
487 2 tp.dat=0;
488 2 str[0]=K_TC;
489 2 str[1]=K_HJ;
490 2 str[2]=0;
491 2 x=Windows(x,0,str);
492 2 if(str[0]==K_TC)return;
493 2 for(i=0;i<25;i++)str[i]=0;
494 2 switch(x)
495 2 {
496 3 case 1:
497 3 j=0;
498 3 LcdDisplay(0,0,"请输入项目编号:",3);
499 3 m=0;
500 3 while(1)
501 3 {
502 4 k=KeyScan();
503 4 if(k==K_TC)
504 4 {
505 5 m=1;
506 5 break;
507 5 }
508 4 if(k==K_HD)
509 4 {
510 5 j^=25;
511 5 if(j==0)LcdDisplay(16,0," ",1);
512 5 else LcdDisplay(16,0,"项目换档状态!",1);
513 5 continue;
514 5 }
515 4 for(i=0;i<25;i++)
516 4 if(k==xm[i])break;
517 4 if(i<25)break;
518 4 Beep(400);
519 4 }
520 3 if(m==1)break;
521 3 WareNo = (i+1+j)|0xFF00;
522 3 tp.dat = WareNo;
523 3 GetWareInfo(tp.dat,0);
524 3 break;
525 3
526 3 case 2: GetPlu(3);
527 3 if(WareNo==0)break;
528 3 GetWareInfo(WareNo,0);
529 3 break;
530 3
531 3 case 3: adr=ItemNumber; //当前项目数量 1 HEX
532 3 I2cRead(adr,1,tp.str);
C51 COMPILER V8.01 MANAGE 03/28/2006 09:49:23 PAGE 10
533 3 if(tp.str[0]>=50) //test
534 3 {Hint(16,0,"项目数量已满!",3);break;}
535 3 tp.str[0]+=1;
536 3 WareNo = tp.str[0] | 0xFF00;
537 3 if(GetWareInfo(WareNo,1)==1)
538 3 I2cWrite(adr,1,tp.str);
539 3 break;
540 3
541 3 case 4: adr = PluNumber; //当前PLU数量 2 HEX
542 3 I2cRead(adr,2,tp.str);
543 3 if(tp.dat>=11900)
544 3 {Hint(16,0,"PLU数量已满!",3);break;}
545 3 tp.dat+=1;
546 3 WareNo=tp.dat;
547 3 if(GetWareInfo(WareNo,1)==1)
548 3 I2cWrite(adr,2,tp.str);
549 3 break;
550 3
551 3 case 5:
552 3 WareDown();
553 3 break;
554 3
555 3 default: Beep(400); break;
556 3 }
557 2 k=0;
558 2 }
559 1 }
560
561
562 /*--------------------------------------------------------------------------------
563 增加用户 或 删除用户
564 flag=1 增加用户 flag=0 删除用户
565 --------------------------------------------------------------------------------*/
566 uint InputSalerNo()
567 {
568 1 uint adr;
569 1 uchar InitLen[2];
570 1
571 1 InitLen[0]=0;
572 1 while(1)
573 1 {
574 2 LcdDisplay(16,56,"营业员:",1);
575 2 InitLen[0]=0;
576 2 SalerNo=GetInt(16,120,0,2,0,InitLen);//输入营业员编号
577 2 if(InitLen[0]==K_TC)return 0;
578 2 if(SalerNo!=0 && SalerNo<13)break;
579 2 LcdDisplay(48,16,"0 < 营业员编号 < 13",1);
580 2 }
581 1 adr=(SalerNo-1)*4+SalerPwd;
582 1 return adr;
583 1 }
584
585 void ModifyPwd(uint n)
586 {
587 1 ulong key;
588 1 uchar InitLen[2];
589 1 uint us1;
590 1 gyt4 pwd;
591 1
592 1 // LcdDisplay(32,40,"新 密 码:",1);
593 1 // LcdDisplay(48,40,"重复密码:",1);
594 1 if(n==0)
C51 COMPILER V8.01 MANAGE 03/28/2006 09:49:23 PAGE 11
595 1 us1=BossPwd;
596 1 else
597 1 us1=n;
598 1 I2cRead(us1,4,pwd.str);//读出密码
599 1 while(1)
600 1 {
601 2 LcdDisplay(16,40,"原 密 码:",1);
602 2 InitLen[0]=0;
603 2 key=GetInt(16,120,0,8,1,InitLen);//输入原密码
604 2 if(InitLen[0]==K_TC)return;
605 2 if(pwd.dat==key)break;
606 2 LcdDisplay(48,32,"密码不正确!",1);
607 2 Beep(400);
608 2 }
609 1 while(1)
610 1 {
611 2 LcdDisplay(32,40,"新 密 码:",1);
612 2 LcdDisplay(48,40,"重复密码:",1);
613 2 InitLen[0]=0;
614 2 key=GetInt(32,120,0,8,1,InitLen);//输入新密码
615 2 if(InitLen[0]==K_TC)return;
616 2 InitLen[0]=0;
617 2 pwd.dat=GetInt(48,120,0,8,1,InitLen);//重新输入新密码
618 2 if(InitLen[0]==K_TC)return;
619 2 if(key==pwd.dat)break;
620 2 Hint(16,0,"两次输入不一致,重新输入",3);
621 2 Beep(400);
622 2 }
623 1 I2cWrite(us1,4,pwd.str);
624 1 Hint(16,64,"修改成功!",3);
625 1 }
626
627 void SalerEdit(uchar flag)
628 {
629 1 uchar i,InitLen[2];
630 1 uint us1=0;
631 1 ulong key=0;
632 1 gyt4 mydat;
633 1
634 1 switch(flag)
635 1 {
636 2 case 1: if(VerifyBossPwd()!=1)break;
637 2 while(1)
638 2 {
639 3 LcdDisplay(0,56,"增加营业员",3);
640 3 us1=InputSalerNo();
641 3 if(us1==0)return;
642 3 I2cRead(us1,4,mydat.str);
643 3 if(mydat.dat!=0)
644 3 {
645 4 Hint(16,16,"本营业员已经设置!",3);
646 4 continue;
647 4 }
648 3 LcdDisplay(32,56,"密 码:",1);
649 3 LcdDisplay(48,56,"重 复:",1);
650 3 InitLen[0]=0;
651 3 key=GetInt(32,120,0,8,1,InitLen);//输入密码
652 3 if(InitLen[0]==K_TC)return;
653 3 InitLen[0]=0;
654 3 mydat.dat=GetInt(48,120,0,8,1,InitLen);//重复输入密码
655 3 if(InitLen[0]==K_TC)return;
656 3 if(key==0)
C51 COMPILER V8.01 MANAGE 03/28/2006 09:49:23 PAGE 12
657 3 {
658 4 Hint(16,32,"密码不能为0",3);
659 4 continue;
660 4 }
661 3 if(key==mydat.dat)break;
662 3 Hint(16,0,"两次输入不一致,重新输入",3);
663 3 Beep(400);
664 3 }
665 2 I2cWrite(us1,4,mydat.str);//写数据
666 2 I2cRead(SalerNum,1,&i);
667 2 i++;
668 2 I2cWrite(SalerNum,1,&i);
669 2 Hint(16,56,"增加成功!",3);
670 2 break;
671 2 case 2: I2cRead(SalerNum,1,&i);
672 2 if(i==0)
673 2 {
674 3 Hint(16,32,"没有设置营业员!",3);
675 3 break;
676 3 }
677 2 if(VerifyBossPwd()!=1)break;
678 2 LcdDisplay(0,56,"删除营业员",3);
679 2 us1=InputSalerNo();
680 2 if(us1==0)return;
681 2 I2cRead(us1,4,mydat.str);
682 2 if(mydat.dat==0)
683 2 {
684 3 Hint(16,32,"没有这个营业员!",3);
685 3 break;
686 3 }
687 2 mydat.dat=0;
688 2 I2cWrite(us1,4,mydat.str);
689 2 i--;
690 2 I2cWrite(SalerNum,1,&i);
691 2 Hint(16,64,"删除成功!",3);
692 2 break;
693 2 case 3:
694 2 LcdDisplay(0,32,"修改营业员密码",3);
695 2 us1=InputSalerNo();
696 2 if(us1==0)return;
697 2 I2cRead(us1,4,mydat.str);
698 2 if(mydat.dat==0)
699 2 {
700 3 Hint(16,32,"没有这个营业员!",3);
701 3 break;
702 3 }
703 2 ModifyPwd(us1);
704 2 break;
705 2 case 4: LcdDisplay(0,16,"设置或修改管理员密码",3);
706 2 ModifyPwd(0);
707 2 break;
708 2 default :break;
709 2 }
710 1 }
711
712 /*-------------------------------------------------------------------------------------
713 营业员管理
714 --------------------------------------------------------------------------------------*/
715 void SalerManage()
716 {
717 1 uchar i=1,InitVal[3];
718 1
C51 COMPILER V8.01 MANAGE 03/28/2006 09:49:23 PAGE 13
719 1 while(1)
720 1 {
721 2 WindowsSet(4);
722 2 strcpy(&WinHint[0][1],"1.增加营业员");
723 2 strcpy(&WinHint[1][1],"2.删除营业员");
724 2 strcpy(&WinHint[2][1],"3.修改营业员密码");
725 2 strcpy(&WinHint[3][1],"4.修改管理员密码");
726 2
727 2 InitVal[0]=K_TC;
728 2 InitVal[1]=K_HJ;
729 2 InitVal[2]=0;
730 2 i=Windows(i,0,InitVal);
731 2 if(InitVal[0]==K_TC)return;
732 2 SalerEdit(i);
733 2 }
734 1 }
735
736 /*-----------------------------------------------------------------------------------
737 营业员登陆
738 -----------------------------------------------------------------------------------*/
739 uchar Login()
740 {//首先应该判断营业员数量,如果为零则不登陆
741 1 uchar i,InitLen[2];
742 1 ulong pwd;
743 1 uint us1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -