📄 menu.c
字号:
#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 + -