?? background.c
字號:
radixPoint--;
}
getyx(txtbox[4],col[4],row[4]);
mvwaddch(txtbox[4],col[4],--row[4],' ');
price[--cnt[4]]='\0';
wmove(txtbox[4],0,row[4]);
wrefresh(txtbox[4]);
}
break;
case KEY_F(1):
return;
case KEY_UP:
goto FOUR;
break;
case KEY_DOWN:
case '\n':
goto SIX;
default:
if ( ((ch>='0'&&ch<='9') || (ch=='.'&&radixPoint==0)) && (cnt[4]<12) )
{
if (ch=='.')
{
radixPoint++;
}
row[4]++;
waddch(txtbox[4],ch);
price[cnt[4]]=ch;
price[++cnt[4]]='\0';
wrefresh(txtbox[4]);
break;
}
}
}
//商品進(jìn)貨價格
SIX:
wmove(txtbox[5],0,0);
wprintw(txtbox[5],purchasePrice);
wrefresh(txtbox[5]);
radixPoint=0;
while(1)
{
ch=wgetch(txtbox[5]);
switch (ch)
{
case KEY_BACKSPACE: //按退格鍵盤
if (cnt[5]>0)
{
if (code[cnt[4]-1]=='.')
{
radixPoint--;
}
getyx(txtbox[5],col[5],row[5]);
mvwaddch(txtbox[5],col[5],--row[5],' ');
purchasePrice[--cnt[5]]='\0';
wmove(txtbox[5],0,row[5]);
wrefresh(txtbox[5]);
}
break;
case KEY_F(1):
return;
case KEY_UP:
goto FIVE;
break;
case KEY_DOWN:
case '\n':
goto SEVEN;
default:
if ( ((ch>='0'&&ch<='9') || (ch=='.'&&radixPoint==0)) && (cnt[5]<12) )
{
if (ch=='.')
{
radixPoint++;
}
row[5]++;
waddch(txtbox[5],ch);
purchasePrice[cnt[5]]=ch;
purchasePrice[++cnt[5]]='\0';
wrefresh(txtbox[5]);
break;
}
}
}
//商品折扣
SEVEN:
wmove(txtbox[6],0,0);
wprintw(txtbox[6],discount);
wrefresh(txtbox[6]);
radixPoint=0;
while(1)
{
ch=wgetch(txtbox[6]);
switch (ch)
{
case KEY_BACKSPACE: //按退格鍵盤
if (cnt[6]>0)
{
if (code[cnt[4]-1]=='.')
{
radixPoint--;
}
getyx(txtbox[6],col[6],row[6]);
mvwaddch(txtbox[6],col[6],--row[6],' ');
discount[--cnt[6]]='\0';
wmove(txtbox[6],0,row[6]);
wrefresh(txtbox[6]);
}
break;
case KEY_F(1):
return;
case KEY_UP:
goto SIX;
break;
case KEY_DOWN:
case '\n':
goto EIGHT;
default:
if ( ((ch>='0'&&ch<='9') || (ch=='.'&&radixPoint==0)) && (cnt[6]<4) )
{
if (ch=='.')
{
radixPoint++;
}
row[6]++;
waddch(txtbox[6],ch);
discount[cnt[6]]=ch;
discount[++cnt[6]]='\0';
wrefresh(txtbox[6]);
break;
}
}
}
//商品數(shù)量
EIGHT:
wmove(txtbox[7],0,0);
wprintw(txtbox[7],count);
wrefresh(txtbox[7]);
while(1)
{
ch=wgetch(txtbox[7]);
switch (ch)
{
case KEY_BACKSPACE: //按退格鍵盤
if (cnt[7]>0)
{
getyx(txtbox[7],col[7],row[7]);
mvwaddch(txtbox[7],col[7],--row[7],' ');
count[--cnt[7]]='\0';
wmove(txtbox[7],0,row[7]);
wrefresh(txtbox[7]);
}
break;
case KEY_F(1):
return;
case KEY_UP:
goto SEVEN;
break;
case KEY_DOWN:
case '\n':
goto ENSURE;
default:
if ( ((ch>='1'&&ch<='9') || (ch=='0'&&cnt[7]!=0)) && (cnt[7]<5) )
{
row[7]++;
waddch(txtbox[7],ch);
count[cnt[7]]=ch;
count[++cnt[7]]='\0';
wrefresh(txtbox[7]);
break;
}
}
}
ENSURE:
wattron(dialog[1],A_REVERSE);
mvwprintw(dialog[1],1,2, "確定");
wrefresh(dialog[1]);
while (1)
{
ch=wgetch(dialog[1]);
switch (ch)
{
case KEY_F(1):
return;
case KEY_UP:
wattroff(dialog[1],A_REVERSE);
mvwprintw(dialog[1],1,2, "確定");
wrefresh(dialog[1]);
goto EIGHT;
case KEY_RIGHT:
wattroff(dialog[1],A_REVERSE);
mvwprintw(dialog[1],1,2, "確定");
wrefresh(dialog[1]);
goto CANCEL;
case '\n':
//獲取所有輸入數(shù)據(jù)
{
if (cnt[0]!=8)
{
Message("請輸入以CN開頭的8位條形碼",10,40);
scr_restore("addcommodity.scr");
code[2] = '\0';
col[0] = 0;
cnt[0] = 2;
row[0] = 2;
goto FIRST;
}
if (cnt[1]==0)
{
scr_dump("addproduct.scr");
Message("商品名不能為空",10,40);
scr_restore("addproduct.scr");
goto SECOND;
}
if (cnt[2]==0)
{
scr_dump("addproduct.scr");
Message("單位不能為空",10,40);
scr_restore("addproduct.scr");
goto THIRD;
}
if (cnt[3]==0)
{
scr_dump("addproduct.scr");
Message("規(guī)格不能為空",10,40);
scr_restore("addproduct.scr");
goto FOUR;
}
if (cnt[4]==0)
{
scr_dump("addproduct.scr");
Message("請輸入售價",10,40);
scr_restore("addproduct.scr");
goto FIVE;
}
if (cnt[5]==0)
{
scr_dump("addproduct.scr");
Message("請輸入進(jìn)貨價格",10,40);
scr_restore("addproduct.scr");
goto SIX;
}
if (cnt[6]==0)
{
scr_dump("addproduct.scr");
Message("請輸入折扣",10,40);
scr_restore("addproduct.scr");
goto SEVEN;
}
if (cnt[7]==0)
{
scr_dump("addproduct.scr");
Message("請輸入數(shù)量",10,40);
scr_restore("addproduct.scr");
goto EIGHT;
}
PRODUCT *pro_info=(PRODUCT *)malloc(sizeof(PRODUCT));
strcpy(pro_info->bar_code,code);
strcpy(pro_info->product_name,name);
strcpy(pro_info->unit,unit);
strcpy(pro_info->spec,spec);
pro_info->sale_price = atof(price);
pro_info->purchase_price = atof(purchasePrice);
pro_info->discount = atof(discount);
pro_info->count = atoi(count);
//對輸入的折扣進(jìn)行判斷折扣不允許大于1
if (pro_info->discount>1)
{
Message("您輸入的折扣大于1",10,40);
scr_restore("addcommodity.scr");
code[2] = '\0';
name[0] = '\0';
unit[0] = '\0';
spec[0] = '\0';
price[0] = '\0';
purchasePrice[0] = '\0';
discount[0] = '\0';
count[0] = '\0';
for ( i=0; i<=7; i++ )
{
col[i] = 0;
cnt[i] = 0;
row[i] = 0;
if (i==0)
{
cnt[i] = 2;
row[i] = 2;
}
}
goto FIRST;
}
//判斷數(shù)據(jù)庫中是否存在商品條形碼
res=code_in_product(pro_info);
if (res==-1)
{
Message("數(shù)據(jù)庫出錯",10,40);
endwin();
exit(1);
}
if (res==1)
{
Message("此商品已存在",10,40);
scr_restore("addcommodity.scr");
code[2] = '\0';
name[0] = '\0';
unit[0] = '\0';
spec[0] = '\0';
price[0] = '\0';
purchasePrice[0] = '\0';
discount[0] = '\0';
count[0] = '\0';
for ( i=0; i<=7; i++ )
{
col[i] = 0;
cnt[i] = 0;
row[i] = 0;
if (i==0)
{
cnt[i] = 2;
row[i] = 2;
}
}
goto FIRST;
}
//插入數(shù)據(jù)庫
res=insert_product(pro_info);
if (res==-1)
{
Message("數(shù)據(jù)庫出錯",10,40);
endwin();
exit(1);
}
if (res==0)
{
Message("添加商品信息到數(shù)據(jù)庫出錯",10,40);
endwin();
exit(1);
}
}
return;
}
}
CANCEL:
wattron(dialog[2],A_REVERSE);
mvwprintw(dialog[2],1,2, "取消");
wrefresh(dialog[2]);
while (1)
{
ch=wgetch(dialog[2]);
switch (ch)
{
case KEY_F(1):
return;
case KEY_LEFT:
wattroff(dialog[2],A_REVERSE);
mvwprintw(dialog[2],1,2, "取消");
wrefresh(dialog[2]);
goto ENSURE;
case '\n':
return;
}
}
}
/*======================================================
function:修改商品窗口
=======================================================*/
void modify_commodity_win()
{
WINDOW *dialog[3]={NULL};
print_dialog_box(24,80,"歡迎光臨XXX超市",5,dialog);
mvwprintw(dialog[0],6,36,"修改商品");
mvwprintw(dialog[0],10,11,"條形碼");
wrefresh(dialog[0]);
WINDOW *txtbox={NULL};
char firstStr[9]="CN";
int cnt=2;
int col=0;
int row=2;
int res=0;
int ch=0;
txtbox=create_win(1,42,10,20);
keypad(txtbox,TRUE);
keypad(dialog[1],TRUE);
keypad(dialog[2],TRUE);
wbkgd(txtbox,COLOR_PAIR(1));
wrefresh(txtbox);
scr_dump("modifycommodity.scr");
FIRST:
wmove(txtbox,0,0);
wprintw(txtbox,firstStr);
wrefresh(txtbox);
while(1)
{
ch=wgetch(txtbox);
switch (ch)
{
case KEY_BACKSPACE: //按退格鍵盤
if (cnt>2)
{
getyx(txtbox,col,row);
mvwaddch(txtbox,col,--row,' ');
firstStr[--cnt]='\0';
wmove(txtbox,0,row);
wrefresh(txtbox);
}
break;
case KEY_F(1):
return;
case KEY_UP:
break;
case KEY_DOWN:
case '\n':
goto ENSURE;
default:
if (ch>='0'&&ch<='9' && cnt<8)
{
row++;
waddch(txtbox,ch);
firstStr[cnt]=ch;
firstStr[++cnt]='\0';
wrefresh(txtbox);
break;
}
}
}
ENSURE:
wattron(dialog[1],A_REVERSE);
mvwprintw(dialog[1],1,2, "確定");
wrefresh(dialog[1]);
while (1)
{
ch=wgetch(dialog[1]);
switch (ch)
{
case KEY_F(1):
return;
case KEY_UP:
wattroff(dialog[1],A_REVERSE);
mvwprintw(dialog[1],1,2, "確定");
wrefresh(dialog[1]);
goto FIRST;
case KEY_RIGHT:
wattroff(dialog[1],A_REVERSE);
mvwprintw(dialog[1],1,2, "確定");
wrefresh(dialog[1]);
goto CANCEL;
case '\n':
//驗證輸入的條形碼是否存在,存在繼續(xù)執(zhí)行,不存在給提示
{
PRODUCT *pro_info=(PRODUCT *)malloc(sizeof(PRODUCT));
strcpy(pro_info->bar_code,firstStr);
//判斷數(shù)據(jù)庫中是否存在商品條形碼
res= get_product_info(pro_info);
if (res==-1)
{
Message("數(shù)據(jù)庫出錯",10,40);
endwin();
exit(1);
}
if (res==0)
{
Message("沒有這種商品信息",10,40);
scr_restore("modifycommodity.scr");
firstStr[2] = '\0';
col = 0;
cnt = 2;
row = 2;
goto FIRST;
}
//打印新窗口并將所有數(shù)據(jù)打印出來
modify_commodity_data_win(pro_info);
}
return;
}
}
CANCEL:
wattron(dialog[2],A_REVERSE);
mvwprintw(dialog[2],1,2, "取消");
wrefresh(dialog[2]);
while (1)
{
ch=wgetch(dialog[2]);
switch (ch)
{
case KEY_F(1):
return;
case KEY_RIGHT:
break;
case KEY_LEFT:
wattroff(dialog[2],A_REVERSE);
mvwprintw(dialog[2],1,2, "取消");
wrefresh(dialog[2]);
goto ENSURE;
case '\n':
return;
}
}
}
/*===============================================================
function:修改商品數(shù)據(jù)窗口
==================================================================*/
void modify_commodity_data_win(PRODUCT *pro_info)
{
WINDOW *dialog[3]={NULL};
print_dialog_box(24,80,"歡迎光臨XXX超市",5,dialog);
keypad(dialog[1],TRUE);
keypad(dialog[2],TRUE);
mvwprintw(dialog[0],2,36,"修改商品");
mvwprintw(dialog[0],4,11,"條形碼:");
mvwprintw(dialog[0],6,13,"名稱:");
mvwprintw(dialog[0],8,13,"單位:");
mvwprintw(dialog[0],10,13,"規(guī)格:");
mvwprintw(dialog[0],12,13,"售價:");
mvwprintw(dialog[0],14,9,"進(jìn)貨價格:");
mvwprintw(dialog[0],16,13,"折扣:");
mvwprintw(dialog[0],18,13,"數(shù)量:");
wrefresh(dialog[0]);
WINDOW *txtbox[8] = {NULL};
char code[9] = "CN";
char name[31] = {'\0'};
char unit[17] = {'\0'};
char spec[17] = {'\0'};
char price[12] = {'\0'};
char purchasePrice[12] = {'\0'};
char discount[5] = {'\0'};
char count[6] = {'\0'};
Trim(pro_info->bar_code);
Trim(pro_info->product_name);
Trim(pro_info->unit);
Trim(pro_info->spec);
strcpy(code, pro_info->bar_code);
strcpy(name, pro_info->product_name);
strcpy(unit, pro_info->unit);
strcpy(spec, pro_info->spec);
sprintf(price, "%.2f", pro_info->sale_price);
sprintf(purchasePrice, "%.2f", pro_info->purchase_price);
sprintf(discount, "%.2f", pro_info->discount);
sprintf(count, "%d", pro_info->count);
int cnt[8]={0};
int col[8]={0};
int row[8]={0};
cnt[0]=row[0]=strlen(code);
cnt[1]=row[1]=strlen(name);
cnt[2]=row[2]=strlen(unit);
cnt[3]=row[3]=strlen(spec);
cnt[4]=row[4]=strlen(price);
cnt[5]=row[5]=strlen(purchasePrice);
cnt[6]=row[6]=strlen(discount);
cnt[7]=row[7]=strlen(count);
int i=0;
int ch=0;
int res=0;
for (i=0; i<8; i++)
{
txtbox[i]=create_win(1,42,4+2*i,20);
keypad(txtbox[i],TRUE);
wbkgd(txtbox[i],COLOR_PAIR(1));
wrefresh(txtbox[i]);
}
wprintw(txtbox[0],code);
wprintw(txtbox[1],name);
wprintw(txtbox[2],unit);
wprintw(txtbox[3],spec);
wprintw(txtbox[4],price);
wprintw(txtbox[5],purchasePrice);
wprintw(txtbox[6],discount);
wprintw(txtbox[7],count);
for (i=0; i<8; i++)
{
wrefresh(txtbox[i]);
}
scr_dump("modifycommoditydata.scr");
//商品名稱窗口
SECOND:
wmove(txtbox[1],0,0);
wprintw(txtbox[1],name);
wrefresh(txtbox[1]);
while(1)
{
ch=wgetch(txtbox[1]);
switch (ch)
{
case KEY_BACKSPACE: //按退格鍵盤
if (cnt[1]>0)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -