📄 manager.c
字号:
{
if(d>29||d<1)
return 21;
}
else
{
if(d>28||d<1)
return 22;
}
break;
case 3:
if(d>31||d<1)
return 3;
break;
case 4:
if(d>30||d<1)
return 4;
break;
case 5:
if(d>31||d<1)
return 5;
break;
case 6:
if(d>30||d<1)
return 6;
break;
case 7:
if(d>31||d<1)
return 7;
break;
case 8:
if(d>31||d<1)
return 8;
break;
case 9:
if(d>30||d<1)
return 9;
break;
case 10:
if(d>31||d<1)
return 10;
break;
case 11:
if(d>30||d<1)
return 11;
break;
case 12:
if(d>31||d<1)
return 12;
break;
}
return 13;
}
void clue_on_input(int is_true)
{
switch (is_true)
{
case 1:
messagebox(stdscr,7,19,44,12,PAUSE,"1月份是从1号开始31号结束的,小弟");
break;
case 21:
messagebox(stdscr,7,19,44,12,PAUSE,"闰年的2月份是从1号开始29号结束的,小弟");
break;
case 22:
messagebox(stdscr,7,19,44,12,PAUSE,"平年的2月份是从1号开始28号结束的,小弟");
break;
case 3:
messagebox(stdscr,7,19,44,12,PAUSE,"3月份是从1号开始31号结束的,小弟");
break;
case 4:
messagebox(stdscr,7,19,44,12,PAUSE,"4月份是从1号开始30号结束的,小弟");
break;
case 5:
messagebox(stdscr,7,19,44,12,PAUSE,"5月份是从1号开始31号结束的,小弟");
break;
case 6:
messagebox(stdscr,7,19,44,12,PAUSE,"6月份是从1号开始30结束的,小弟");
break;
case 7:
messagebox(stdscr,7,19,44,12,PAUSE,"7月份是从1号开始31号结束的,小弟");
break;
case 8:
messagebox(stdscr,7,19,44,12,PAUSE,"8月份是从1号开始31号结束的,小弟");
break;
case 9:
messagebox(stdscr,7,19,44,12,PAUSE,"9月份是从1号开始30号结束的,小弟");
break;
case 10:
messagebox(stdscr,7,19,44,12,PAUSE,"10月份是从1号开始31号结束的,小弟");
break;
case 11:
messagebox(stdscr,7,19,44,12,PAUSE,"11月份是从1号开始30号结束的,小弟");
break;
case 12:
messagebox(stdscr,7,19,44,12,PAUSE,"12月份是从1号开始31号结束的,小弟");
break;
default:
break;
}
}
int action_demand_note_by_time(DIALOG *d)
{
int result=0,sign=1;
int y=0,m=0,is_true=0;
NODE *temp=NULL;
do
{
switch (sign)
{
case 1:
sign=(*((d->i)))->input_char(*((d->i)),1,0,1);//输入个数
if(sign==27)
{
sign=messagebox(stdscr,7,19,44,12,YORN,"确认要退出");
if(sign)
{
sign=0;
break;
}
else
{
sign=1;
}
}
/*数目有没有超过*/
del_blank((*(d->i))->str);
if(isdigital((*(d->i))->str)&&strlen((*(d->i))->str)!=0)//输入的数目不否合法
{
y=atoi((*(d->i))->str);
if(y<0)
{
sign=1;
messagebox(stdscr,7,19,44,12,PAUSE,"公元前有超市吗?");
(*(d->i))->del_str(*(d->i));
}
}
else
{
sign=1;
messagebox(stdscr,7,19,44,12,PAUSE,"请正确输入年份");
(*(d->i))->del_str(*(d->i));
/*提示有非数字字符*/
}
break;
case 2:
sign=(*((d->i+1)))->input_char(*((d->i+1)),1,0,1);//输入个数
if(sign==27)
{
sign=messagebox(stdscr,7,19,44,12,YORN,"确认要退出");
if(sign)
{
sign=0;
break;
}
else
{
sign=2;
}
}
/*数目有没有超过*/
del_blank((*(d->i+1))->str);
if(isdigital((*(d->i+1))->str)&&strlen((*(d->i+1))->str)!=0)//输入的数目不否合法
{
m=atoi((*(d->i+1))->str);
if(m<1||m>12)
{
sign=2;
messagebox(stdscr,7,19,44,12,PAUSE,"老大,一年只有1到12个月份");
(*(d->i+1))->del_str(*(d->i+1));
}
}
else
{
sign=2;
messagebox(stdscr,7,19,44,12,PAUSE,"请正确输入月份");
(*(d->i+1))->del_str(*(d->i+1));
/*提示有非数字字符*/
}
break;
case 3:
sign=(*((d->i+2)))->input_char(*((d->i+2)),1,0,1);//输入个数
if(sign==27)
{
sign=messagebox(stdscr,7,19,44,12,YORN,"确认要退出");
if(sign)
{
sign=0;
break;
}
else
{
sign=3;
}
}
/*数目有没有超过*/
del_blank((*(d->i+2))->str);
if(isdigital((*(d->i+2))->str)&&strlen((*(d->i+2))->str)!=0)//输入的数目不否合法
{
is_true=if_right_date((*(d->i))->str,(*(d->i+1))->str,(*(d->i+2))->str);
if(is_true != 13)
{
sign=3;
clue_on_input(is_true);
(*(d->i+2))->del_str(*(d->i+2));
}
}
else
{
sign=3;
messagebox(stdscr,7,19,44,12,PAUSE,"请正确输入日期");
(*(d->i+2))->del_str(*(d->i+2));
/*提示有非数字字符*/
}
break;
case 4:
sign=(*((d->i+3)))->input_char(*((d->i+3)),1,0,1);//输入个数
if(sign==27)
{
sign=messagebox(stdscr,7,19,44,12,YORN,"确认要退出");
if(sign)
{
sign=0;
break;
}
else
{
sign=4;
}
}
/*数目有没有超过*/
del_blank((*(d->i+3))->str);
if(isdigital((*(d->i+3))->str)&&strlen((*(d->i+3))->str)!=0)//输入的数目不否合法
{
if(strcmp((*(d->i+3))->str,(*(d->i))->str)<0)
{
sign=4;
messagebox(stdscr,7,19,44,12,PAUSE,"结束的年份应该大等于开始年份");
(*(d->i+3))->del_str(*(d->i+3));
}
}
else
{
sign=4;
messagebox(stdscr,7,19,44,12,PAUSE,"请正确输入年份");
(*(d->i+3))->del_str(*(d->i+3));
/*提示有非数字字符*/
}
break;
case 5:
sign=(*((d->i+4)))->input_char(*((d->i+4)),1,0,1);//输入个数
if(sign==27)
{
sign=messagebox(stdscr,7,19,44,12,YORN,"确认要退出");
if(sign)
{
sign=0;
break;
}
else
{
sign=5;
}
}
/*数目有没有超过*/
del_blank((*(d->i+4))->str);
if(isdigital((*(d->i+4))->str)&&strlen((*(d->i+4))->str)!=0)//输入的数目不否合法
{
m=atoi((*(d->i+4))->str);
if(m<1||m>12)
{
sign=5;
messagebox(stdscr,7,19,44,12,PAUSE,"老大,一年只有1到12个月份");
(*(d->i+4))->del_str(*(d->i+4));
}
else
{
if(atoi((*(d->i+3))->str) == atoi((*(d->i))->str)&&atoi((*(d->i+4))->str)<atoi((*(d->i+1))->str))
{
sign=5;
messagebox(stdscr,7,19,44,12,PAUSE,"同一年份年份时结束的月份应该大等于开始的月份");
(*(d->i+4))->del_str(*(d->i+4));
}
}
}
else
{
sign=5;
messagebox(stdscr,7,19,44,12,PAUSE,"请正确输入月份");
(*(d->i+4))->del_str(*(d->i+4));
/*提示有非数字字符*/
}
break;
case 6:
sign=(*((d->i+5)))->input_char(*((d->i+5)),1,0,1);//输入个数
if(sign==27)
{
sign=messagebox(stdscr,7,19,44,12,YORN,"确认要退出");
if(sign)
{
sign=0;
break;
}
else
{
sign=6;
}
}
/*数目有没有超过*/
del_blank((*(d->i+5))->str);
if(isdigital((*(d->i+5))->str)&&strlen((*(d->i+5))->str)!=0)//输入的数目不否合法
{
if(is_true != 13)
{
sign=6;
clue_on_input(is_true);
(*(d->i+5))->del_str(*(d->i+5));
}
else
{
if(atoi((*(d->i+3))->str) == atoi((*(d->i))->str)&&atoi((*(d->i+4))->str) == atoi((*(d->i+1))->str)&&atoi((*(d->i+5))->str) < atoi((*(d->i+2))->str))
{
sign=6;
messagebox(stdscr,7,19,44,12,PAUSE,"同一年年份月份时结束的日期应该大等于开始的日期");
(*(d->i+5))->del_str(*(d->i+5));
}
}
}
else
{
sign=6;
messagebox(stdscr,7,19,44,12,PAUSE,"请正确输入日期");
(*(d->i+5))->del_str(*(d->i+5));
/*提示有非数字字符*/
}
break;
case 7:
(*(d->b))->pitch_on(*(d->b));
sign=(*(d->b))->attack(*(d->b),1,3,3);
if(sign == 0)
{
result=1;
}
break;
case 8:
(*((d->b)+1))->pitch_on(*((d->b)+1));
sign=(*((d->b)+1))->attack(*((d->b)+1),2,1,1);
if(sign == 0)
{
result=0;
}
break;
}
}
while (sign);
return result;
}
void demand_note_by_time()
{
wbkgd(stdscr,COLOR_PAIR(2));
refresh();
FRAME *f[7];
BUTTON *b[2];
INPUT *i[6];
int result=0,sign=1,exist=0;
char *str[6]={"销售时间","开始时间:","结束时间:","年","月","日"};
char *str1[9]={"销售单号","雇员ID","单号","销售时间","付款金额","应付款","实付款","找零","销售状态"};
char date_s[9],date_e[9];
int y=0,m=0,day=0;
LINK *note=NULL;
note=new_link();
memset(date_s,0,9);
memset(date_e,0,9);
f[0]=creat_frame(1,19,16,40,3);
f[1]=creat_frame(5,31,1,4,1);
f[2]=creat_frame(5,37,1,2,1);
f[3]=creat_frame(5,41,1,2,1);
f[4]=creat_frame(9,31,1,4,1);
f[5]=creat_frame(9,37,1,2,1);
f[6]=creat_frame(9,41,1,2,1);
b[0]=createButton(11,26,3,8,"确定");
b[1]=createButton(11,44,3,8,"取消");
i[0]=create_input(f[1],4,0,2,8);
i[1]=create_input(f[2],2,1,3,8);
i[2]=create_input(f[3],2,2,4,8);
i[3]=create_input(f[4],4,3,5,8);
i[4]=create_input(f[5],2,4,6,8);
i[5]=create_input(f[6],2,5,7,8);
FRAME *frame[2];
INPUT *input[1];
int color[2]={3,2};
frame[0]=creat_frame(20,0,10,80,3);
frame[1]=creat_frame(20,0,1,80,2);
input[0]=create_input(frame[1],0,2,1,0);
ROLL_BAR *r=create_roll_bar(¬e,frame,input,20,0,5,80,color);
DIALOG *d=create_dialog(f,i,b,str,NULL);
do
{
show_demand_note_by_time(d);
result=action_demand_note_by_time(d);
if(result)
{
y=atoi(i[0]->str);
m=atoi(i[1]->str);
day=atoi(i[2]->str);
sprintf(date_s,"%04d%02d%02d",y,m,day);
y=atoi(i[3]->str);
m=atoi(i[4]->str);
day=atoi(i[5]->str);
sprintf(date_e,"%04d%02d%02d",y,m,day);
exist=select_note_by_date(date_s,date_e,note);
if(exist)
{
mvprintw(18,0,"%-10s%-8s%-6s%-9s%-9s%-9s%-9s%-9s%-9s",str1[0],str1[1]
,str1[2],str1[3],str1[4],str1[5],str1[6],str1[7],str1[8]);
mvprintw(26,0,"按回车键退出");
refresh();
print_a_page(r);
action_roll(r);
erase();
wbkgd(stdscr,COLOR_PAIR(2));
refresh();
sign=0;
}
else
{
messagebox(stdscr,7,19,44,12,PAUSE,"这段时间内没有交易记录");
sign=0;
}
}
else
{
sign=0;
}
}
while (sign);
free(d);
f[0]->free(&f[0]);
f[1]->free(&f[1]);
f[2]->free(&f[2]);
f[3]->free(&f[3]);
f[4]->free(&f[4]);
f[5]->free(&f[5]);
f[6]->free(&f[6]);
b[0]->free(&b[0]);
b[1]->free(&b[1]);
i[0]->free(&i[0]);
i[1]->free(&i[1]);
i[2]->free(&i[2]);
i[3]->free(&i[3]);
i[4]->free(&i[4]);
i[5]->free(&i[5]);
frame[0]->free(&frame[0]);
frame[0]->free(&frame[1]);
input[0]->free(&input[0]);
note->del_all(¬e);
r->free(&r);
scr_restore("scan15.dat");//屏幕恢复
}
////////////////////////////////////////////////////////按收银员号查询
void demand_note_by_employeeID()
{
wbkgd(stdscr,COLOR_PAIR(2));
refresh();
FRAME *f[2];
BUTTON *b[2];
INPUT *i;
EMP e;
memset(&e,0,sizeof(EMP));
int result=0;
int exist=0;
char *str[2]={"请输入用户ID","用户ID:"};
char *str1[9]={"销售单号","雇员ID","单号","销售时间","付款金额","应付款","实付款","找零","销售状态"};
f[0]=creat_frame(7,15,11,30,3);
f[1]=creat_frame(10,24,1,18,1);
b[0]=createButton(12,18,3,8,"确定");
b[1]=createButton(12,33,3,8,"取消");
i=create_input(f[1],6,0,2,2);
DIALOG *d=create_dialog(f,&i,b,str,NULL);
LINK *note=NULL;
note=new_link();
FRAME *frame[2];
INPUT *input[1];
int color[2]={3,2};
frame[0]=creat_frame(20,0,10,80,3);
frame[1]=creat_frame(20,0,1,80,2);
input[0]=create_input(frame[1],0,2,1,0);
ROLL_BAR *r=create_roll_bar(¬e,frame,input,20,0,5,80,color);
show_inut_user_ID(d);
result=action_input_user_ID(d,&e,0);
if(result)
{
exist=select_note_by_user_id(i->str,note);
if(exist)
{
mvprintw(18,0,"%-10s%-8s%-6s%-9s%-9s%-9s%-9s%-9s%-9s",str1[0],str1[1]
,str1[2],str1[3],str1[4],str1[5],str1[6],str1[7],str1[8]);
mvprintw(26,0,"按回车键退出");
refresh();
print_a_page(r);
action_roll(r);
erase();
wbkgd(stdscr,COLOR_PAIR(2));
refresh();
}
else
{
messagebox(stdscr,7,19,44,12,PAUSE,"这段时间内没有交易记录");
}
}
free(d);
f[0]->free(&f[0]);
f[1]->free(&f[1]);
b[0]->free(&b[0]);
b[1]->free(&b[1]);
i->free(&i);
frame[0]->free(&frame[0]);
frame[0]->free(&frame[1]);
input[0]->free(&input[0]);
note->del_all(¬e);
r->free(&r);
scr_restore("scan7.dat");//屏幕恢复
}
///////////////////////////////////////////////////////////
void show_dema
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -