📄 front.c.bak
字号:
#include"window.h"
#include"front.h"
#include"db.h"
#include"public.h"
void show_cashwin()
{
init_color_info();
refresh();
C_CLASS LINKLIST list;
NODE *start;
NODE *cur;
int i,j=0,k=0;
char time[20]="";
char code[7]="";
char str[]="CN000001";
WIN mainwin1={24,80,0,0,4,"欢迎光临博洋超市",1};
WIN mainwin2={14,78,5,1,1,"",0};
TEXT txt1={20,8,2,1,"CN"};
TEXT txt2={20,10,10,1,""};
WIN *cashwin1=make_win(&mainwin1);
WIN *cashwin2=make_win(&mainwin2);
TEXT *t1=make_textbox(&txt1);
TEXT *t2=make_textbox(&txt2);
draw_line(cashwin1->win,2,80);
draw_line(cashwin1->win,4,80);
draw_line(cashwin1->win,19,80);
draw_line(cashwin1->win,21,80);
get_time(time);
mvwprintw(cashwin1->win,1,1,"%-4s%-10s%-3s%-15s%-4s%10s%-3s%s","收银员:","","等级:","","交易号:","","时间:",time);
mvwprintw(cashwin1->win,3,1,"%-5s%-10s%-25s%-7s%-7s%-7s%-7s%-7s","序号","条形码","商品名称","规格","单位","单价","数量","金额");
mvwprintw(cashwin1->win,22,1," F2:新增明细 F3:删除明细 F4:收银 F5:挂单 F6:取单 F7:撒单 F8:退货 F9:退出");
mvwprintw(cashwin1->win,20,1,"%-4s%-40s%-5s%-4s","条形码:","","销售状态: ","正常");
cashwin1->show_win(cashwin1);
cashwin2->show_win(cashwin2);
t1->show_text(t1);
t2->show_text(t2);
link_init(&list);
get_goods(&list);
start=list.head->next;
cur=start;
do
{
Print_Data(cashwin2->win,&list,start,cur);
do
{
i=GetInputString(t2->win,code,6,0);
if(i!=0)
{
break;
}
}
while (1);
j = list.get_index_by_key( &list,cur->data,(int (*)(void *,void *))Compare );
k = list.get_index_by_key( &list,start->data,(int (*)(void *,void *))Compare );
if ( i==2 ) /* 向下键 */
{
if ( j<list.count )
{
getch();
j++;
cur = cur->next;
}
if ( j-k>=15 && j<=list.count )
{
k++;
start = start->next;
}
continue;
}
if(i==3)
{
add_delete_goods(cur,0);
get_goods(&list);
continue;
}
if(i==4)
{
k=delete_goods(str,87);
printf("%d",k);
refresh();
endwin();
//add_delete_goods(cur,1);
}
}
while (1);
getch();
refresh();
endwin();
}
void Print_Data( WINDOW *win,C_CLASS LINKLIST *link,NODE *start,NODE *cur)
{
int i=0,k=1 ;
NODE *p;
int counts;
char temp_goods[31],temp_spec[17],temp_unit[17];
float paid;
if ( !start->data ) //无数据
{
return ;
}
wclear( win );
for( p=start;p && i<15;p=p->next )
{
strcpy(temp_goods,((GOODS *)p->data)->goods_name);
strcpy(temp_spec,((GOODS *)p->data)->spec);
strcpy(temp_unit,((GOODS *)p->data)->unit);
TrimSpace(temp_goods);
TrimSpace(temp_spec);
TrimSpace(temp_unit);
if ( p==cur )
{
wattron( win,A_REVERSE|A_BOLD);
wprintw( win,"%-5d%-10s%-25s%-7s%-7s%-7.2f%-7d%-7.2f%2s\n",k,((GOODS *)p->data)->bar_code,temp_goods,temp_spec,temp_unit,((GOODS *)p->data)->sale_price,((GOODS *)p->data)->num,((GOODS *)p->data)->sale_price ," ");
wattroff( win,A_REVERSE|A_BOLD);
}
else
{
wprintw( win,"%-5d%-10s%-25s%-7s%-7s%-7.2f%-7d%-7.2f%2s\n",k,((GOODS *)p->data)->bar_code,temp_goods,temp_spec,temp_unit,((GOODS *)p->data)->sale_price,((GOODS *)p->data)->num,((GOODS *)p->data)->sale_price ," ");
}
k++;
i++;
}
wrefresh( win );
}
int Compare( void const *a,void const *b )
{
if(strcmp(((GOODS*)a)->bar_code,((GOODS*)b)->bar_code )==0)
{
return 0;
}
else
{
return 1;
}
}
void add_delete_goods(NODE *cur,int type)
{
scr_dump("front.scr");
WIN mainatt1={11,40,7,20,4,"新增明细",1};
WIN mainatt2={11,40,7,20,4,"删除明细",1};
TEXT box1={9,38,15,1,""};
TEXT box2={11,38,15,1,""};
TEXT box3={9,27,11,4,"商品条形码:"};
TEXT box4={11,29,9,4,"商品数量:"};
BUTTON but1={8,3,13,27,"确定",4,8};
BUTTON but2={8,3,13,44,"返回",4,8};
WIN *w1=NULL;
if(type==0)
{
w1=make_win(&mainatt1);
}
if(type==1)
{
w1=make_win(&mainatt2);
}
TEXT *t1=make_textbox(&box1);
TEXT *t2=make_textbox(&box2);
TEXT *t3=make_textbox(&box3);
TEXT *t4=make_textbox(&box4);
BUTTON *b1=make_button(&but1);
BUTTON *b2=make_button(&but2);
wprintw(t1->win,"%s",((GOODS *)cur->data)->bar_code);
w1->show_win(w1);
t1->show_text(t1);
t2->show_text(t2);
t3->show_text(t3);
t4->show_text(t4);
b1->show_button(b1);
b2->show_button(b2);
int i=1,res;
char num[3]="";
do
{
if(i==1)
{
res=GetInputString(t2->win,num,2,0);
if(res==0||res==2||res==13)
{
i=2;
continue;
}
}
if(i==2)
{
do
{
b1->print_white(b1);
noecho();
cbreak();
keypad(b1->win3,true );
res=wgetch(b1->win3);
if(res==259)
{
i=1;
b1->delete_white(b1);
break;
}
if(res==27||res==261)
{
i=3;
b1->delete_white(b1);
break;
}
if(res==10)
{
if(type==0)
{
add_goods(((GOODS *)cur->data)->bar_code,atoi(num));
}
if(type==1)
{
delete_goods(((GOODS *)cur->data)->bar_code,atoi(num));
}
return;
}
}while(1);
}
if(i==3)
{
do
{
b2->print_white(b2);
noecho();
cbreak();
keypad(b2->win3,true );
res=wgetch(b2->win3);
if(res==259)
{
i=1;
b2->delete_white(b2);
break;
}
if(res==260)
{
i=2;
b2->delete_white(b2);
break;
}
if(res==10)
{
b2->focus_button(b2);
endwin();
return;
}
}while(1);
}
}while (1);
getch();
scr_restore("front.scr");
refresh();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -