📄 posbackground.c
字号:
}
if(ch == KEY_NPAGE)
{
if(*cur_page == last_page)
return 1;
else
(*cur_page)++;
}
if (ch ==KEY_HOME)
{
*cur_page = 1;
}
if (ch ==KEY_END)
{
*cur_page = last_page;
}
return 0;
}
int print_user_page(WINDOW *win,LINKLIST *linklist,int page)//打印一页用户记录
{
werase(win);
wrefresh(win);
int i = 0,last = 0;
i = (page-1)*14+1;
last = page*14;
while(i <= last && i <= linklist->count)
{
print_user_record(win,linklist,i);
i++;
}
return 0;
}
int print_product_page(WINDOW *win,LINKLIST *linklist,int page)//打印一页商品记录
{
int i = 0,last = 0;
i = (page-1)*14+1;
last = page*14;
wclear(win);
wrefresh(win);
while(i <= last && i <= linklist->count)
{
print_product_record(win,linklist,i);
i++;
}
return 1;
}
int print_detail_page(WINDOW *win,LINKLIST *linklist,int page)
{
int i = 0,last = 0;
i = (page-1)*14+1;
last = page*14;
wclear(win);
wrefresh(win);
while(i <= last && i <= linklist->count)
{
print_detail_record(win,linklist,i);
i++;
}
return 1;
}
int print_user_record(WINDOW *win,LINKLIST *linklist,int flag)//打印一条用户记录
{
NODE *p;
p = get_node_by_index(linklist,flag);
int position;
position = flag%14;
if(position == 0)
position = 14;
char str[20] = {0},temp[31] ={0};
strcpy(temp,((staff_info *)(p->node_data))->remark);
rtrim(temp);
if(strlen(temp) > 15)
{
memcpy(str,temp,15);
strcat(str,"...");
}
else
strcpy(str,temp);
mvwprintw(win,position-1,1,"%d",flag);
mvwprintw(win,position-1,8,((staff_info *)(p->node_data))->id);
mvwprintw(win,position-1,16,((staff_info *)(p->node_data))->name);
mvwprintw(win,position-1,30,((staff_info *)(p->node_data))->passwd);
mvwprintw(win,position-1,45,"%d",((staff_info *)(p->node_data))->type);
mvwprintw(win,position-1,60,str);
wrefresh(win);
return 0;
}
int print_product_record(WINDOW *win,LINKLIST *linklist,int flag)//打印一条用户记录
{
int position;
position = flag%14;
if(position == 0)
position = 14;
NODE *p;
p = get_node_by_index(linklist,flag);
mvwprintw(win,position-1,0,"%d",flag);
mvwprintw(win,position-1,5,((product_info *)(p->node_data))->bar_code);
mvwprintw(win,position-1,15,((product_info *)(p->node_data))->name);
mvwprintw(win,position-1,29,((product_info *)(p->node_data))->spec);
mvwprintw(win,position-1,36,((product_info *)(p->node_data))->unit);
mvwprintw(win,position-1,43,"%.2f",((product_info *)(p->node_data))->sale_price);
mvwprintw(win,position-1,55,"%.2f",((product_info *)(p->node_data))->purchase_price);
mvwprintw(win,position-1,64,"%d",((product_info *)(p->node_data))->count);
mvwprintw(win,position-1,71,"%.2f",((product_info *)(p->node_data))->discount);
wrefresh(win);
return 1;
}
int print_detail_record(WINDOW *win,LINKLIST *linklist,int flag)
{
int position;
position = flag%14;
if(position == 0)
position = 14;
NODE *p;
p = get_node_by_index(linklist,flag);
mvwprintw(win,position-1,0,"%d",flag);
mvwprintw(win,position-1,5,((sale_record *)(p->node_data))->sale_id);
mvwprintw(win,position-1,29,((sale_record *)(p->node_data))->trans_id);
mvwprintw(win,position-1,40,((sale_record *)(p->node_data))->staff_id);
mvwprintw(win,position-1,52,((sale_record *)(p->node_data))->date);
mvwprintw(win,position-1,68,"%.2f",((sale_record *)(p->node_data))->sale_money);
wrefresh(win);
return 1;
}
int print_choice(WINDOW *win,int flag,int style)
{
if(style == 0)
wattroff(win,A_REVERSE);
else
wattron(win,A_REVERSE);
if(flag == 1)
{
mvwhline(win,5,34,' ',10);
mvwprintw(win,5,34,"1. 商品管理");
}
else if(flag == 2)
{
mvwhline(win,7,34,' ',10);
mvwprintw(win,7,34,"2. 帐户管理");
}
else if(flag == 3)
{
mvwhline(win,9,34,' ',10);
mvwprintw(win,9,34,"3. 销售记录管理");
}
else
{
mvwhline(win,11,34,' ',10);
mvwprintw(win,11,34,"0. 返回登入界面");
}
wrefresh(win);
return 0;
}
int print_product_choice(WINDOW *win,int flag,int style)
{
if(style == 0)
wattroff(win,A_REVERSE);
else
wattron(win,A_REVERSE);
if(flag == 1)
{
mvwhline(win,5,34,' ',10);
mvwprintw(win,5,34,"1. 查询商品");
}
else if(flag == 2)
{
mvwhline(win,7,34,' ',10);
mvwprintw(win,7,34,"2. 添加商品");
}
else if(flag == 3)
{
mvwhline(win,9,34,' ',10);
mvwprintw(win,9,34,"3. 修改商品");
}
else if(flag == 4)
{
mvwhline(win,11,34,' ',10);
mvwprintw(win,11,34,"4. 删除商品");
}
else
{
mvwhline(win,13,34,' ',10);
mvwprintw(win,13,34,"0. 返回后台管理界面");
}
wrefresh(win);
return 0;
}
int print_user_choice(WINDOW *win,int flag,int style)
{
if(style == 0)
wattroff(win,A_REVERSE);
else
wattron(win,A_REVERSE);
if(flag == 1)
{
mvwhline(win,5,34,' ',10);
mvwprintw(win,5,34,"1. 查询用户");
}
else if(flag == 2)
{
mvwhline(win,7,34,' ',10);
mvwprintw(win,7,34,"2. 添加用户");
}
else if(flag == 3)
{
mvwhline(win,9,34,' ',10);
mvwprintw(win,9,34,"3. 修改用户");
}
else if(flag == 4)
{
mvwhline(win,11,34,' ',10);
mvwprintw(win,11,34,"4. 删除用户");
}
else
{
mvwhline(win,13,34,' ',10);
mvwprintw(win,13,34,"0. 返回后台管理界面");
}
wrefresh(win);
return 0;
}
int print_detail_choice(WINDOW *win,int flag,int style)
{
if(style == 0)
wattroff(win,A_REVERSE);
else
wattron(win,A_REVERSE);
if(flag == 1)
{
mvwhline(win,5,34,' ',10);
mvwprintw(win,5,34,"1. 按消费日期查询");
}
else if(flag == 2)
{
mvwhline(win,7,34,' ',10);
mvwprintw(win,7,34,"2. 按员工ID查询");
}
else
{
mvwhline(win,9,34,' ',10);
mvwprintw(win,9,34,"0. 返回后台管理界面");
}
wrefresh(win);
return 0;
}
int add_product()
{
int ch = 0,flag = 1,result = 0;
int *p = &flag;
char s_p[8] = {0},p_p[8] = {0},d_c[5] = {0},c[8] = {0};
WINDOW *code = NULL,*name = NULL,*unit = NULL,*spec = NULL,*sale_price = NULL;
WINDOW *purchase_price = NULL,*discount = NULL,*count = NULL;
product_info *temp;
temp = (product_info *)malloc(sizeof(product_info));
memset(temp,0,sizeof(product_info));
show_product_info(temp,1);
code = create_no_border_color_window(1,50,4,28,1);
wrefresh(code);
name = create_no_border_color_window(1,50,6,28,1);
wrefresh(name);
unit = create_no_border_color_window(1,50,8,28,1);
wrefresh(unit);
spec = create_no_border_color_window(1,50,10,28,1);
wrefresh(spec);
sale_price = create_no_border_color_window(1,50,12,28,1);
wrefresh(sale_price);
purchase_price = create_no_border_color_window(1,50,14,28,1);
wrefresh(purchase_price);
discount = create_no_border_color_window(1,50,16,28,1);
wrefresh(discount);
count = create_no_border_color_window(1,50,18,28,1);
wrefresh(count);
yes_or_no(20,21,0,30);
keypad(code,true);
keypad(name,true);
keypad(unit,true);
keypad(spec,true);
keypad(sale_price,true);
keypad(count,true);
keypad(discount,true);
keypad(purchase_price,true);
while(1)
{
switch(flag)
{
case 1:
edit_control(code,temp->bar_code,p,1,8);
break;
case 2:
edit_control(name,temp->name,p,5,30);
break;
case 3:
edit_control(unit,temp->unit,p,5,16);
break;
case 4:
edit_control(spec,temp->spec,p,5,16);
break;
case 5:
edit_control(sale_price,s_p,p,4,8);
break;
case 6:
edit_control(purchase_price,p_p,p,4,8);
break;
case 7:
edit_control(discount,d_c,p,4,4);
break;
case 8:
edit_control(count,c,p,2,8);
break;
default:
result = yes_or_no(20,21,1,30);
if (result == -1)
*p = 1;
else if(result == 1)
{
if (strlen(temp->bar_code)&&strlen(temp->name)&&strlen(temp->unit)&&strlen(temp->spec)&&strlen(s_p)&&strlen(p_p)&&strlen(d_c)&&strlen(c))
{
if(is_product_code(temp->bar_code))
{
message("此商品号已存在!",10,30);
*p = 1;
break;
}
else
{
temp->sale_price = atof(s_p);
temp->purchase_price = atof(p_p);
temp->discount = atof(d_c);
temp->count = atoi(c);
insert_new_product(temp);
delwin(code);
delwin(name);
delwin(unit);
delwin(spec);
delwin(sale_price);
delwin(purchase_price);
delwin(discount);
delwin(count);
free(temp);
return 1;
}
}
else
{
message("信息不完整!!",10,30);
*p = 1;
break;
}
}
else
{
delwin(code);
delwin(name);
delwin(unit);
delwin(spec);
delwin(sale_price);
delwin(purchase_price);
delwin(discount);
delwin(count);
free(temp);
return 0;
}
break;
}
}
return 1;
}
int alter_product()
{
int result = 0;
char bar_code[9] = {0};
product_info *temp;
temp = (product_info *)malloc(sizeof(product_info));
memset(temp,0,sizeof(product_info));
result = get_product_code(bar_code,temp,1);
if (result == 0)
{
free(temp);
return 0;
}
show_product_info(temp,2);
int ch = 0,flag = 1;
int *p = &flag;
char s_p[8] = {0},p_p[8] = {0},d_c[5] = {0},c[8] = {0};
sprintf(s_p,"%.2f",temp->sale_price);
sprintf(p_p,"%.2f",temp->purchase_price);
sprintf(d_c,"%.2f",temp->discount);
sprintf(c,"%d",temp->count);
WINDOW *name = NULL,*unit = NULL,*spec = NULL,*sale_price = NULL;
WINDOW *purchase_price = NULL,*discount = NULL,*count = NULL;
name = create_no_border_color_window(1,50,6,28,1);
mvwprintw(name,0,0,temp->name);
wrefresh(name);
unit = create_no_border_color_window(1,50,8,28,1);
mvwprintw(unit,0,0,temp->unit);
wrefresh(unit);
spec = create_no_border_color_window(1,50,10,28,1);
mvwprintw(spec,0,0,temp->spec);
wrefresh(spec);
sale_price = create_no_border_color_window(1,50,12,28,1);
mvwprintw(sale_price,0,0,s_p);
wrefresh(sale_price);
purchase_price = create_no_border_color_window(1,50,14,28,1);
mvwprintw(purchase_price,0,0,p_p);
wrefresh(purchase_price);
discount = create_no_border_color_window(1,50,16,28,1);
mvwprintw(discount,0,0,d_c);
wrefresh(discount);
count = create_no_border_color_window(1,50,18,28,1);
mvwprintw(count,0,0,c);
wrefresh(count);
yes_or_no(20,21,0,30);
keypad(name,true);
keypad(unit,true);
keypad(spec,true);
keypad(sale_price,true);
keypad(count,true);
keypad(discount,true);
keypad(purchase_price,true);
while(1)
{
switch(flag)
{
case 1:
edit_control(name,temp->name,p,5,30);
break;
case 2:
edit_control(unit,temp->unit,p,5,16);
break;
case 3:
edit_control(spec,temp->spec,p,5,16);
break;
case 4:
edit_control(sale_price,s_p,p,4,8);
break;
case 5:
edit_control(purchase_price,p_p,p,4,8);
break;
case 6:
edit_control(discount,d_c,p,4,4);
break;
case 7:
edit_control(count,c,p,2,8);
break;
default:
result = yes_or_no(20,21,1,30);
if (result == -1)
*p = 1;
else if(result == 1)
{
if (strlen(temp->name)&&strlen(temp->unit)&&strlen(temp->spec)&&strlen(s_p)&&strlen(p_p)&&strlen(d_c)&&strlen(c))
{
temp->sale_price = atof(s_p);
temp->purchase_price = atof(p_p);
temp->discount = atof(d_c);
temp->count = atoi(c);
update_product_info(temp);
delwin(name);
delwin(unit);
delwin(spec);
delwin(sale_price);
delwin(purchase_price);
delwin(discount);
delwin(count);
free(temp);
return 1;
}
else
{
message("信息不完整!!",10,30);
*p = 1;
break;
}
}
else
{
delwin(name);
delwin(unit);
delwin(spec);
delwin(sale_price);
delwin(purchase_price);
delwin(discount);
delwin(count);
free(temp);
return 0;
}
break;
}
}
return 1;
}
int delete_product()
{
int result = 0;
char bar_code[9] = {0};
product_info *temp;
temp = (product_info *)malloc(sizeof(product_info));
memset(temp,0,sizeof(product_info));
result = get_product_code(bar_code,temp,0);
if (result == 0)
{
free(temp);
return 0;
}
show_product_info(temp,3);
result = yes_or_no(20,21,1,30);
if (result == 1)
del_product(bar_code);
free(temp);
return 1;
}
int show_product_info(product_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,"条形码:");
mvwprintw(info,6,22,"名称:");
mvwprintw(info,8,22,"单位:");
mvwprintw(info,10,22,"规格:");
mvwprintw(info,12,22,"售价:");
mvwprintw(info,14,18,"进货价格:");
mvwprintw(info,16,22,"折扣:");
mvwprintw(info,18,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);
mvwhline(info,14,28,' ',50);
mvwhline(info,16,28,' ',50);
mvwhline(info,18,28,' ',50);
mvwprintw(info,4,28,temp->bar_code);
mvwprintw(info,6,28,temp->name);
mvwprintw(info,8,28,temp->unit);
mvwprintw(info,10,28,temp->spec);
mvwprintw(info,12,28,"%.2f",temp->sale_price);
mvwprintw(info,14,28,"%.2f",temp->purchase_price);
mvwprintw(info,16,28,"%.2f",temp->discount);
mvwprintw(info,18,28,"%d",temp->count);
wrefresh(info);
delwin(info);
}
int add_user()
{
char temp_type[2] = {0};
WINDOW *id = NULL,*name = NULL,*pwd = NULL,*type = NULL,*remark = NULL;
int ch = 0,flag = 1;
int *p = &flag;
int result = 0;
staff_info *temp;
temp = (staff_info *)malloc(sizeof(staff_info));
memset(temp,0,sizeof(staff_info));
show_user_info(temp,1);
id = create_no_border_color_window(1,50,4,28,1);
wrefresh(id);
name = create_no_border_color_window(1,50,6,28,1);
wrefresh(name);
pwd = create_no_border_color_window(1,50,8,28,1);
wrefresh(pwd);
type = create_no_border_color_window(1,50,10,28,1);
wrefresh(type);
remark = create_no_border_color_window(1,50,12,28,1);
wrefresh(remark);
yes_or_no(20,21,0,30);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -