⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 menu.c

📁 要求输入条码
💻 C
📖 第 1 页 / 共 3 页
字号:
#include"stdio.h"
#include"string.h"
#include"8000lib.h"
#include"globle.h"
#include"ucos.h"

#define  BYTE      unsigned char  
int  init_beep[] = { 20,50, 0,5, 20,50, 0,5, 20,50, 0,5, 0,0};
int  ok_beep[] = { 23,25, 0,0 };
int err[]={22,10,20,10,22,10,20,10,0,0};
int mode,tag=0;
static char *ACK  = "ACK\r";
static char *NAK  = "NAK\r";
static char *FULL = "FULL\r"; 
char barcode[40];
int fp,fp1;
int flag;
int mode=0;
extern OS_SEMAPHORE  *DispSem; 
void DispString (int x, int y, char *str, int mode)
    {
    if (y < 0 || y > 7)
        return;
      
    SetVideoMode (mode);
    gotoxy (x, y);
    scprintf ("%s", str);
    SetVideoMode(0);  
                   // release display semaphore
    }
static int ConnectingPage (void)
    {
    clr_scr ();
     
    
    DispString (0, 1, (char*)"传输中",0);    // 2001.02.09 Connecting....
    DispString (0, 5, (char*)"按ESC返回",0);    // Press ESC to
    return 1;
    }
 char* SubString(char *source,int pos,int length)
{
	char Disc[255];
	char str[255];
	
	int i;
	strcpy(str,source);
	for(i=0;i<length;i++)
	  
	  	Disc[i]=str[i+pos];
 Disc[i]=0;
return Disc;
}
char* GetDate()
{
char zTime[20],szBuf[30];
int i;
 get_time (zTime);
    for (i=0; i<4; i++)
        szBuf [i] = zTime [i];
    szBuf [4] = '/';
    szBuf [5] = zTime [4];
    szBuf [6] = zTime [5];
    szBuf [7] = '/';
    szBuf [8] = zTime [6];
    szBuf [9] = zTime [7];
    szBuf [10]=0;
  return szBuf;
}

void mainmenu()
{
  
 char  c;
 int flag,k1,k2;
 int fp,i,x,fp1;
 int nSelection=1;
 char time1[20],t1[10],t2[10],t3[10],a[10];
 get_time(time1);
 strcpy(t1,SubString(time1,4,2));
 x=atoi(t1);
 switch(x)
 {
 	  case 1:
 	  strcpy(t3,(char *)"JAN");
 	  break;
 	  case 2:
 	  strcpy(t3,(char *)"FEB");
 	  break;
 	  case 3:
 	  strcpy(t3,(char *)"MAR");
 	  break;
 	  case 4:
 	  strcpy(t3,(char *)"APR");
 	  break;
 	  case 5:
 	  strcpy(t3,(char *)"MAY");
 	  break;
 	  case 6:
 	  strcpy(t3,(char *)"JUN");
 	  break;
 	  case 7:
 	  strcpy(t3,(char *)"JUL");
 	  break;
 	  case 8:
 	  strcpy(t3,(char *)"AUG");
 	  break;
 	  case 9:
 	  strcpy(t3,(char *)"SEP");
 	  break;
 	  case 10:
 	  strcpy(t3,(char *)"OCT");
 	  break;
 	  case 11:
 	  strcpy(t3,(char *)"NOV");
 	  break;
 	  case 12:
 	  strcpy(t3,(char *)"DEC");
 	  break;
 	  default:
 	      break;
 }
 strcat(t3,SubString(time1,6,2));
 for(i=0;i<32;i++)
   close_DBF(i);
 fp=open_DBF((char *)"data1");
 x=member_in_DBF(fp);
 itoa(x,t1,10);
 i=strlen(t1);
 if(i==1)
 {
 	strcpy(t2,(char *)"000");
 	strcat(t2,t1);
 }
else if(i==2)
{
	strcpy(t2,(char *)"00");
	strcat(t2,t1);
}
else if(i==3)
{
	strcpy(t2,(char *)"0");
	strcat(t2,t1);
}  
 
 
start:
  SetCursor(0);
  clr_scr();
  get_time(time1);
  strcpy(a,SubString(time1,8,2));
  strcat(a,(char *)":");
  strcat(a,SubString(time1,10,2));

 clr_kb ();

 dis_alpha ();
 flag=1;
       for(i=0;i<4;i++)
        DispString(0,i*2+1,(char *)"          ",0); 
SetFont(1);
gotoxy(0,7); 
puts(t3);
gotoxy(6,7);
puts(a);
gotoxy(12,7);
puts(t2);
SetFont(2);
DispString(1,1,sjlr1,(nSelection==1)?1:0);       	
DispString(1,3,sjlr2,(nSelection==2)?1:0); 
DispString(1,5,sjlr3,(nSelection==3)?1:0);
SetFont(1);
k1=sys_sec;
if(k1%2)
   DispString(8,7,(char *)":",0);
else 
   DispString(8,7,(char *)" ",0);   
 while(flag)
   { 
   k2=sys_sec-k1;
   if(k2==1)
   {
      k1=k1+1;
      if(k1%2)
        DispString(8,7,(char *)":",0);
      else 
        DispString(8,7,(char *)" ",0);
   }
   if(c=getchar())
   {
      
   switch(c)
     {
     	
     	case '1':
     	          flag=0;
     	          
     	          sysid=2;
     	         
     	          break;
        case '2':
                  flag=0;
                  for(i=0;i<32;i++)
		   close_DBF(i);
		   fp1=open_DBF((char *)"data2");
		   fp=open_DBF((char *)"data1");
		   x=member_in_DBF(fp);
		   if(x==0)
		   {
		   	on_beeper( err);
		   	close_DBF(fp);
		   	close_DBF(fp1);
		   	sysid=1;
		   	break;
		   }
		   else
		   {
		   get_member(fp1,1,a);
		   x=a[2]-48;
		   tag=0;
		        up(fp,2,x,1);
		   close_DBF(fp); 
		   close_DBF(fp1);
		   if(a[3]=='1')
                          sysid=1;
                   else if(a[3]=='2'&&tag==0)
                   {
                   	clr_scr();
                   	DispString(1,3,(char *)"删除数据!",0);
                   	OSTimeDly(200);
                         remove((char *)"data1");
			 i=create_DBF((char *)"data1",27);
                         create_index(i,1,0,20); 
                         create_index(i,2,20,1);
                         close_DBF(i);
                         DispString(1,6,(char *)"删除完毕",0);
                         OSTimeDly(100);
                         sysid=1;
		      
		   }
		      break;
		   }
        case '3':
                  flag=0;
                   
                  sysid=10;
                  break;               
      case KEY_UP:
                 if(nSelection>1)
                     nSelection--;
                 else
                    nSelection=3;
                flag=0;
                goto start;
      case KEY_DOWN:
              if(nSelection<3)
                   nSelection++;
               else
                 nSelection=1;
              flag=0;
              goto start;
      case KEY_CR:
              flag=0;
              if(nSelection==1)
                 sysid=2;
              else if(nSelection==2)
              {
              	 for(i=0;i<32;i++)
		   close_DBF(i);
		   fp1=open_DBF((char *)"data2");
		   fp=open_DBF((char *)"data1");
		   x=member_in_DBF(fp);
		   if(x==0)
		   {
		   	on_beeper( err);
		   	close_DBF(fp);
		   	close_DBF(fp1);
		   	sysid=1;
		   	break;
		   }
		   else
		   {
		   get_member(fp1,1,a);
		   x=a[2]-48;
		   tag=0;
		        up(fp,2,x,1);
		   close_DBF(fp); 
		   close_DBF(fp1);
		   if(a[3]=='1')
                          sysid=1;
                   else if(a[3]=='2'&&tag==0)
                   {
                   	clr_scr();
                   	DispString(1,3,(char *)"删除数据!",0);
                   	OSTimeDly(200);
                         remove((char *)"data1");
			 i=create_DBF((char *)"data1",27);
                         create_index(i,1,0,20); 
                         create_index(i,2,20,1);
                         close_DBF(i);
                         DispString(1,6,(char *)"删除完毕",0);
                         OSTimeDly(100);
                         sysid=1;
		      
		   }
		      break;
		   }
              }
              else if(nSelection==3)
                    sysid=10;    
            break;
      } 
             
   } 
                
                         
  }  
   
  for(i=0;i<4;i++)
      DispString(0,i*2+1,(char *)"               ",0); 
   
   
  } 			
void form11()
{
	 
       char barcode[50],data[60];
       char data1[50],data2[20],zTime[20],szBuf[20],data3[10]; 
       int flag,fp1,fp2,i,len,j,k;
       long total;
       char c;
	get_time(data1);
	strcpy(data2,SubString(data1,2,6));
	for(i=0;i<32;i++)
	   close_DBF(i);
	fp1=open_DBF((char *)"data1");
	fp2=open_DBF((char *)"data2");
        SetFont(2);
        en_alpha(1);
        get_time (zTime);
    for (i=0; i<4; i++)
        szBuf [i] = zTime [i];
    szBuf [4] = '/';
    szBuf [5] = zTime [4];
    szBuf [6] = zTime [5];
    szBuf [7] = '/';
    szBuf [8] = zTime [6];
    szBuf [9] = zTime [7];
    szBuf [10]=0;
    
    SetCursor(0);
start:
      clr_scr();
      DispString(0,1,(char *)"员工号:",0);
      DispString(2,7,szBuf,0);
      k=read_nskey(7,1,data1,12);
      if(k==0)
      {
      	dis_alpha();
      	close_DBF(fp1);
      	close_DBF(fp2);
      	sysid=1;
      	goto end;
      }
      if(has_member(fp2,1,data1))
      {
      	get_member(fp2,1,data);
      	strcpy(data3,SubString(data,12,8));
      	total=atol(data3);
      }
      else 
         total=0;
      flag=0;   
lp:
      ltoa(total,data3,10);   
      clr_scr();      
      DispString(0,1,(char *)"产品码:",0);
      DispString(0,7,(char *)"数量:",0);
      DispString(5,7,data3,0);
      k=read_nskey(7,1,data2,12);
      if(k==0&&flag==0)
 	goto start;
      else if(k==0&&flag==1)
      {
      	   if(has_member(fp2,1,data1))
           {
      	       delete_member(fp2,1);
      	       strcpy(data,data1);
      	       strcat(data,data3);
      	       add_member(fp2,data);
           }
           else 
           {
               strcpy(data,data1);
      	       strcat(data,data3);
      	       add_member(fp2,data);
      	   }
      	   goto start;  
            
      }	 	
      if(has_member(fp1,3,data2))
      {
      	  DispString(0,5,(char *)"品码重复!!!",0);
      	  on_beeper(err);
      	  OSTimeDly(100);
      	  goto lp;
      }
      else
      {
      	  flag=1;
      	  total++;
      	  strcpy(data,data1);
      	  strcat(data,(char *)",");
      	  strcat(data,data2);
      	  add_member(fp1,data);
      	  DispString(0,5,(char *)"存储成功!!!",0);
      	  OSTimeDly(100);
      	  goto lp;
      }
end:;           
}

void form66()
{
	
	int i;
	char c,d;
	char data[60];
	clr_scr();
	DispString(0,1,(char *)"是否清除数据?",0);
	DispString(4,5,(char *)"CR>是",0);
	DispString(4,7,(char *)"其它>否",0);	
        clr_kb();
	while((c=getchar())==0x00);
	if(c==KEY_CR)
	{
		
			   remove((char *)"data1");
			   i=create_DBF((char *)"data1",26);
                           create_index(i,1,5,20); 
                           create_index(i,2,25,1);       
                           close_DBF(i);
                     
                clr_scr(); 
	  	DispString(0,1,(char *)"清除成功!",0);
	  	DispString(2,7,(char *)"ESC>返回",0);
	  	while((d=getchar())!=KEY_ESC);
	  	clr_kb();
                sysid=10;
                
	}
	else
	
		sysid=13;

			  
}
void form77()
{
	int i,n,sel,fp;
	char c,d;
	long num;
	char data[50],data1[50],data2[50],data4[40],data3[50];
	for(i=0;i<32;i++)
	  close_DBF(i);
	fp=open_DBF((char *)"data1"); 
 
	for(i=0;i<4;i++)
              DispString(0,i*2+1,(char *)"               ",0); 
start:               
	n=member_in_DBF(fp);
	if(n<1)
	{
		clr_scr();
		DispString(0,1,(char *)"无记录",0);
		DispString(0,4,(char *)"任意键继续..",0);
		while((d=getchar())==0x00);
                clr_kb();
                close_DBF(fp);
                sysid=1;
		goto end;
	}
	sel=n;
	lseek_DBF(fp,2,0,-1);
	
me:	
        get_member(fp,2,data);	
	clr_scr();
	gotoxy(1,1);
	clr_eol();
	gotoxy(1,1);
	printf("[%d/%d]",sel,n);
        DispString(0,3,data,0);
        DispString(5,7,(char *)"F1-DEL",0);
        while((c=getchar())==0x00);
        switch(c)
        {
        	case KEY_ESC: 
        	      close_DBF(fp);
                      sysid=13;
                      goto end;
        	case KEY_DOWN:
        	    if(sel<n)
        	    {
        	       lseek_DBF(fp,2,1,0);
        	       sel++;
        	    }
        	    else
        	    {
        	       lseek_DBF(fp,2,0,1);
        	       sel=1;
        	    }
        
        	        break;
        	 case KEY_UP:
        	     if(sel>1)
        	     {
        	     	lseek_DBF(fp,2,-1,0);
        	     	sel--;
        	     } 
        	     else
        	     {
        	     	lseek_DBF(fp,2,0,-1);
        	     	sel=n;
        	     } 
		     break;
		 case KEY_F1:
		        n--;
		        sel--;
		         delete_member(fp,2);
		       
                    goto start;
                           
		      
		     default:
		       break;
	   }
	goto me;    	     	
end:;       	      
}
	
void form10()
{
	int i,sel=1;
	char c;
	SetFont(2);
	clr_scr();
lp6:        
        DispString(1,1,(char *)"1.系统设置",sel==1?1:0);
        DispString(1,3,(char *)"2.浏览数据",sel==2?1:0);
        DispString(1,5,(char *)"3.删除数据",sel==3?1:0);
        DispString(1,7,(char *)"4.读取测试",sel==4?1:0);
        while((c=getchar())==0x00);
        switch(c)
        {
        	case KEY_DOWN:
        	   if(sel<4) sel++;
        	   
        	   else 
        	   {
        	   	sel=5;
        	   	clr_scr();
        	       goto next;
        	   }
        	   break;
        	case KEY_UP:
        	   if(sel>1) sel--;
        	   break;
        	case '1':
        	    sysid=20;
        	    goto end;
        	 case '2':
        	    sysid=12;
        	    goto end;
        	 case '3':
        	    sysid=13;
        	    goto end;
        	case '4':
        	    sysid=14;
        	    goto end;   
        	case KEY_CR:
        	   if(sel==1)
        	   {    sysid=20;
        	       goto end;}
        	   else if(sel==2)
        	    {   sysid=12;
        	        goto end; }  
        	   else if(sel==3)
        	   {    sysid=13;
        	        goto end; } 
        	   else 
        	   {     sysid=14;
        	         goto end;}
        	         
        	         
        	 case KEY_ESC:
        	        sysid=1;
        	        goto end;
        	 default:
        	          break;
         }
       goto lp6;
next:
       
       DispString(1,1,(char *)"5.日期时间",sel==5?1:0);
       DispString(1,3,(char *)"6.内存电池",sel==6?1:0);
       while((c=getchar())==0x00);
        switch(c)
        {
        	case KEY_DOWN:
        	   if(sel==5) sel++;
        	   break;
        	case KEY_UP:
        	   if(sel==6) sel--;
        	   else if(sel==5)
        	   {
        	     sel=4;
        	     clr_scr();
        	     goto lp6;
        	   }
        	   break;
        	case '5':
        	    sysid=15;
        	    goto end;
        	 case '6':
        	    sysid=16;
        	    goto end; 
        	case KEY_CR:
        	   if(sel==5)
        	   {    sysid=15;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -