📄 posbackground.c
字号:
keypad(id,true);
keypad(name,true);
keypad(pwd,true);
keypad(type,true);
keypad(remark,true);
while(1)
{
switch(flag)
{
case 1:
edit_control(id,temp->id,p,2,6);
break;
case 2:
edit_control(name,temp->name,p,5,15);
break;
case 3:
edit_control(pwd,temp->passwd,p,0,16);
break;
case 4:
edit_control(type,temp_type,p,2,1);
break;
case 5:
edit_control(remark,temp->remark,p,5,30);
break;
default:
result = yes_or_no(20,21,1,30);
if (result == -1)
*p = 1;
else if(result == 1)
{
if(strlen(temp->id)&&strlen(temp_type)&&strlen(temp->passwd))
{
result = is_staff_id(temp->id);
if (result != -1)
{
message("此账户已存在,请重新选择其他的ID!",10,30);
break;
}
else
{
temp->type = atoi(temp_type);
if (temp->type > 2)
{
message("身份标识只有0,1或2!",10,30);
break;
}
else
{
insert_new_staff(temp);
delwin(id);
delwin(name);
delwin(pwd);
delwin(type);
delwin(remark);
free(temp);
return 1;
}
}
}
else
{
message("信息未完整!密码,身份为必填! 都不能为空",10,30);
break;
}
}
else
{
delwin(id);
delwin(name);
delwin(pwd);
delwin(type);
delwin(remark);
free(temp);
return 0;
}
break;
}
}
return 1;
}
int alter_user()
{
char temp_type[2] = {0};
WINDOW *name = NULL,*pwd = NULL,*type = NULL,*remark = NULL;
int ch = 0,flag = 1;
int *p = &flag;
int result = 0;
char str[7] = {0};
result = get_user_id(str,1);
if (result == 0)
return 0;
staff_info *temp;
temp = (staff_info *)malloc(sizeof(staff_info));
memset(temp,0,sizeof(staff_info));
user_confirm(str,temp);
show_user_info(temp,2);
name = create_no_border_color_window(1,50,6,28,1);
mvwprintw(name,0,0,temp->name);
wrefresh(name);
pwd = create_no_border_color_window(1,50,8,28,1);
mvwprintw(pwd,0,0,temp->passwd);
wrefresh(pwd);
type = create_no_border_color_window(1,50,10,28,1);
mvwprintw(type,0,0,"%d",temp->type);
wrefresh(type);
remark = create_no_border_color_window(1,50,12,28,1);
mvwprintw(remark,0,0,temp->remark);
wrefresh(remark);
yes_or_no(20,21,0,30);
keypad(name,true);
keypad(pwd,true);
keypad(type,true);
keypad(remark,true);
sprintf(temp_type,"%d",temp->type);
while(1)
{
switch(flag)
{
case 1:
edit_control(name,temp->name,p,5,15);
break;
case 2:
edit_control(pwd,temp->passwd,p,0,16);
break;
case 3:
edit_control(type,temp_type,p,2,1);
break;
case 4:
edit_control(remark,temp->remark,p,5,30);
break;
default:
result = yes_or_no(20,21,1,30);
if (result == -1)
*p = 1;
else if(result == 1)
{
if(strlen(temp_type)&&strlen(temp->passwd))
{
temp->type = atoi(temp_type);
if (temp->type > 2)
{
message("身份标识只有0,1或2!",10,30);
break;
}
else
{
update_staff(temp);
delwin(name);
delwin(pwd);
delwin(type);
delwin(remark);
free(temp);
return 1;
}
}
else
{
message("信息未完整!密码,身份为必填! 都不能为空",10,30);
break;
}
}
else
{
delwin(name);
delwin(pwd);
delwin(type);
delwin(remark);
free(temp);
return 0;
}
break;
}
}
return 1;
}
int delete_user()
{
int result = 0;
char str[7] = {0};
result = get_user_id(str,0);
if (result == 0)
return 0;
staff_info *temp;
temp = (staff_info *)malloc(sizeof(staff_info));
memset(temp,0,sizeof(temp));
user_confirm(str,temp);
show_user_info(temp,3);
result = yes_or_no(20,21,1,30);
if (result == 1)
del_staff(str);
free(temp);
return 1;
}
int show_user_info(staff_info *temp,int stytle)
{
WINDOW *info = NULL;
info = create_default_color_window(25,80,0,0,6);
mvwprintw(info,0,33,"欢迎光临xxx超市");
if (stytle == 1)
mvwprintw(info,2,37,"添加用户");
else if (stytle == 2)
mvwprintw(info,2,37,"修改用户");
else
mvwprintw(info,2,37,"删除用户");
mvwprintw(info,4,20,"帐户ID:");
mvwprintw(info,6,20,"用户名:");
mvwprintw(info,8,22,"密码:");
mvwprintw(info,10,22,"身份:");
mvwprintw(info,12,22,"备注:");
wattron(info,A_REVERSE);
mvwhline(info,4,28,' ',50);
mvwhline(info,6,28,' ',50);
mvwhline(info,8,28,' ',50);
mvwhline(info,10,28,' ',50);
mvwhline(info,12,28,' ',50);
mvwprintw(info,4,28,temp->id);
mvwprintw(info,6,28,temp->name);
mvwprintw(info,8,28,temp->passwd);
mvwprintw(info,10,28,"%d",temp->type);
mvwprintw(info,12,28,temp->remark);
wrefresh(info);
delwin(info);
}
int get_product_code(char *bar_code,product_info *temp,int style)
{
int flag = 1,ch = 0,result = 0,i = 0;
int *p = &flag;
WINDOW *bgb = NULL,*code = NULL;
bgb = create_default_color_window(25,80,0,0,6);
mvwprintw(bgb,0,33,"欢迎光临xxx超市");
mvwprintw(bgb,5,20,"条形码:");
if(style == 1)
mvwprintw(bgb,3,35,"修改商品");
if (style == 0)
mvwprintw(bgb,3,35,"删除商品");
wrefresh(bgb);
delwin(bgb);
code = create_no_border_color_window(1,30,5,27,1);
strcpy(bar_code,"CN");
mvwprintw(code,0,0,bar_code);
wrefresh(code);
yes_or_no(20,21,0,30);
keypad(code,true);
while(1)
{
switch(flag)
{
case 1 :
i = strlen(bar_code);
wmove(code,0,i);
ch = wgetch(code);
if (ch == KEY_DOWN || ch == 10)
*p = 2;
else
get_info(code,bar_code,ch,1,8);
break;
case 2 :
result = yes_or_no(20,21,1,30);
if (result == -1)
*p = 1;
else if(result == 1)
{
if(get_product(bar_code,temp))
{
delwin(code);
return 1;
}
else
{
message("商品号不存在!",10,30);
memset(bar_code,0,9*sizeof(char));
mvwprintw(code,0,0," ");
strcpy(bar_code,"CN");
mvwprintw(code,0,0,bar_code);
wrefresh(code);
*p = 1;
}
}
else
{
delwin(code);
return 0;
}
break;
}
}
return 1;
}
int get_user_id(char *str,int style)
{
int flag = 1,ch = 0,result = 0,i = 0;
int *p = &flag;
WINDOW *bgb = NULL,*code = NULL;
bgb = create_default_color_window(25,80,0,0,6);
mvwprintw(bgb,0,33,"欢迎光临xxx超市");
mvwprintw(bgb,5,20,"用户ID:");
if(style == 1)
mvwprintw(bgb,3,35,"修改用户");
if (style == 0)
mvwprintw(bgb,3,35,"删除用户");
if (style == 2)
mvwprintw(bgb,3,30,"按员工ID查询消费记录");
wrefresh(bgb);
delwin(bgb);
code = create_no_border_color_window(1,30,5,27,1);
wrefresh(code);
yes_or_no(20,21,0,30);
keypad(code,true);
while(1)
{
switch(flag)
{
case 1 :
i = strlen(str);
wmove(code,0,i);
ch = wgetch(code);
if (ch == KEY_DOWN || ch == 10)
*p = 2;
else
get_info(code,str,ch,2,6);
break;
case 2 :
result = yes_or_no(20,21,1,30);
if (result == -1)
*p = 1;
else if(result == 1)
{
i= is_staff_id(str);
if(i == -1)
{
message("不存在此用户!",10,30);
memset(str,0,7*sizeof(char));
mvwprintw(code,0,0," ");
wrefresh(code);
*p = 1;
}
else if (style == 2 && i == 1)
{
message("此帐户为管理员帐户!",10,30);
memset(str,0,7*sizeof(char));
mvwprintw(code,0,0," ");
wrefresh(code);
*p = 1;
}
else if (style == 2 && i == 0)
{
message("此帐户为退货帐户!",10,30);
memset(str,0,7*sizeof(char));
mvwprintw(code,0,0," ");
wrefresh(code);
*p = 1;
}
else
{
delwin(code);
return 1;
}
}
else
{
delwin(code);
return 0;
}
break;
}
}
return 1;
}
int get_detail_date(char *first_date,char *last_date)
{
int flag = 1,ch = 0,result = 0;
int y = 0,m = 0,d = 0;
int *p = &flag;
char fy[5] = {0},fm[3] = {0},fd[3] = {0},ly[5] = {0},lm[3] = {0},ld[3] = {0};
WINDOW *bgb = NULL;
WINDOW *firsty = NULL,*firstm = NULL,*firstd = NULL,*lasty = NULL,*lastm = NULL,*lastd = NULL;
bgb = create_default_color_window(25,80,0,0,6);
mvwprintw(bgb,0,33,"欢迎光临xxx超市");
mvwprintw(bgb,5,18,"开始日期:");
mvwprintw(bgb,7,18,"结束日期:");
mvwprintw(bgb,5,35,"年");
mvwprintw(bgb,5,44,"月");
mvwprintw(bgb,5,53,"日");
mvwprintw(bgb,7,35,"年");
mvwprintw(bgb,7,44,"月");
mvwprintw(bgb,7,53,"日");
wrefresh(bgb);
delwin(bgb);
firsty = create_no_border_color_window(1,5,5,29,1);
wrefresh(firsty);
firstm = create_no_border_color_window(1,5,5,38,1);
wrefresh(firstm);
firstd = create_no_border_color_window(1,3,5,48,1);
wrefresh(firstd);
lasty = create_no_border_color_window(1,5,7,29,1);
wrefresh(lasty);
lastm = create_no_border_color_window(1,5,7,38,1);
wrefresh(lastm);
lastd = create_no_border_color_window(1,3,7,48,1);
wrefresh(lastd);
yes_or_no(20,21,0,30);
keypad(firsty,true);
keypad(firstm,true);
keypad(firstd,true);
keypad(lasty,true);
keypad(lastm,true);
keypad(lastd,true);
while(1)
{
switch(flag)
{
case 1:
date_input(firsty,fy,p,1);
break;
case 2:
date_input(firstm,fm,p,2);
break;
case 3:
date_input(firstd,fd,p,3);
break;
case 4:
date_input(lasty,ly,p,1);
break;
case 5:
date_input(lastm,lm,p,2);
break;
case 6:
date_input(lastd,ld,p,3);
break;
default:
result = yes_or_no(20,21,1,30);
if (result == -1)
*p = 1;
else if(result == 1)
{
y = atoi(fy),m = atoi(fm); d = atoi(fd);
if(m == 0 || d == 0 || y == 0)
{
message("开始日期不完整!",10,30);
*p = 1;
}
else
{
sprintf(first_date,"%04d%02d%02d",y,m,d);
y = atoi(ly),m = atoi(lm); d = atoi(ld);
if(m == 0 || d == 0 || y == 0)
{
message("结束日期不完整!",10,30);
*p = 1;
}
else
{
sprintf(last_date,"%04d%02d%02d",y,m,d);
if(strcmp(first_date,last_date) > 0)
{
message("开始日期应小于或等于结束日期",10,30);
*p = 1;
}
else
{
delwin(firsty);
delwin(firstm);
delwin(firstd);
delwin(lasty);
delwin(lastm);
delwin(lastd);
return 1;
}
}
}
}
else
{
delwin(firsty);
delwin(firstm);
delwin(firstd);
delwin(lasty);
delwin(lastm);
delwin(lastd);
return 0;
}
break;
}
}
return 1;
}
int edit_control(WINDOW *win,char *str,int *p,int style,int limit)
{
int i = 0,ch = 0;
i = strlen(str);
wmove(win,0,i);
i = *p;
while(1)
{
ch = wgetch(win);
if (ch == KEY_DOWN || ch == 10)
{
(*p)++;
return 1;
}
else if (ch == KEY_UP&& i > 1)
{
(*p)--;
return 1;
}
else
{
switch(style)
{
case 0:
get_info(win,str,ch,0,limit);
break;
case 1:
get_info(win,str,ch,1,limit);
break;
case 2:
get_info(win,str,ch,2,limit);
break;
case 3:
get_info(win,str,ch,3,limit);
break;
case 4:
get_info(win,str,ch,4,limit);
break;
case 5:
if (ch == KEY_UP)
break;
get_info(win,str,ch,5,limit);
break;
}
}
}
return 1;
}
int date_input(WINDOW *win,char *str,int *p,int style)
{
int i = 0,ch = 0,j = 0;
i = strlen(str);
wmove(win,0,i);
j = *p;
while(1)
{
ch = wgetch(win);
if (ch == KEY_UP && j>3)
{
(*p) = (*p)-3;
return 1;
}
switch(style)
{
case 1:
if (ch == KEY_RIGHT||ch == 10)
{
(*p)++;
return 1;
}
else if (ch == KEY_DOWN)
{
(*p) = (*p)+3;
return 1;
}
else
get_info(win,str,ch,2,4);
break;
case 2:
if (ch == KEY_RIGHT ||ch == 10)
{
(*p)++;
return 1;
}
else if (ch == KEY_LEFT)
{
(*p)--;
return 1;
}
else if (ch == KEY_DOWN)
{
(*p) = (*p)+3;
return 1;
}
else
get_info(win,str,ch,2,2);
break;
case 3:
if (ch == KEY_LEFT)
{
(*p)--;
return 1;
}
else if (ch == KEY_DOWN || ch == 10)
{
(*p)++;
return 1;
}
else
get_info(win,str,ch,2,2);
break;
}
}
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -