?? posaddaccount.c
字號:
#include "posAddAccount.h"
#include "posPublic.h"
#include "posBackOracle.h"
#include "pub.h"
#include <stdlib.h>
int printAddaccount(int key,STAFFINFO staffInfo)
{
//WINDOW * winmain,*winbar_code,*winproduct_name,*winunit,*winspec,*winsale_price,*winsure,*wincancle;
WINDOW * winmain,*winstaff_id,*winstaff_name,*winstaff_pwd,*winstaff_type,*winremark,*winsure,*wincancle;
int ch,flag=0,num=7;
char staff_type[3];
char staff_id[10];
char tmp[40]={0};
memset(staff_type,0,sizeof(staff_type));
memset(staff_id,0,sizeof(staff_id));
sprintf(staff_type,"%d",staffInfo->staff_type);
if(has_colors())
{
start_color();
init_pair(26,COLOR_WHITE,COLOR_BLUE);
init_pair(27,COLOR_BLACK,COLOR_WHITE);
}
winmain=newwin(24,80,0,0);
box(winmain,0,0);
wbkgd(winmain,COLOR_PAIR(26));
if(key==2)
{
strcpy(staff_id,staffInfo->staff_id);
}
switch(key)
{
case 1:
mvwprintw(winmain,2,30,"添 加 帳 戶");
break;
case 2:
mvwprintw(winmain,2,30,"修 改 帳 戶");
break;
case 3:
mvwprintw(winmain,2,30,"查 詢 帳 戶");
mvwprintw(winmain,21,30,"按 ESC 鍵 退 出 ......");
break;
}
mvwprintw(winmain,5,20,"編號:");
mvwprintw(winmain,7,20,"姓名:");
mvwprintw(winmain,9,20,"密碼:");
mvwprintw(winmain,11,20,"類型:");
mvwprintw(winmain,13,20,"備注:");
wrefresh(winmain);
winstaff_id=newwin(1,10,5,30);
wbkgd(winstaff_id,COLOR_PAIR(27));
mvwprintw(winstaff_id,0,0,"%s",staffInfo->staff_id);
wrefresh(winstaff_id);
winstaff_name=newwin(1,17,7,30);
wbkgd(winstaff_name,COLOR_PAIR(27));
mvwprintw(winstaff_name,0,0,"%s",staffInfo->staff_name);
wrefresh(winstaff_name);
winstaff_pwd=newwin(1,18,9,30);
wbkgd(winstaff_pwd,COLOR_PAIR(27));
mvwprintw(winstaff_pwd,0,0,"%s",staffInfo->staff_pwd);
wrefresh(winstaff_pwd);
winstaff_type=newwin(1,3,11,30);
wbkgd(winstaff_type,COLOR_PAIR(27));
mvwprintw(winstaff_type,0,0,"%s",staff_type);
wrefresh(winstaff_type);
winremark=newwin(1,32,13,30);
wbkgd(winremark,COLOR_PAIR(27));
mvwprintw(winremark,0,0,"%s",staffInfo->remark);
wrefresh(winremark);
if(key!=3)
{
winsure=newwin(1,6,21,20);
wbkgd(winsure,COLOR_PAIR(27));
mvwprintw(winsure,0,1,"確定");
wrefresh(winsure);
wincancle=newwin(1,6,21,40);
wbkgd(wincancle,COLOR_PAIR(27));
mvwprintw(wincancle,0,1,"取消");
wrefresh(wincancle);
}
if(key==3)
{
while(1)
{
ch=getch();
if(27==ch)
{
break;
}
}
}
else
{
freshaddaccountWin(flag,winstaff_id,winstaff_name,winstaff_pwd,winstaff_type,winremark,winsure,wincancle);
while(1)
{
ch=getch();
if(ch==KEY_DOWN||ch==KEY_UP||ch==KEY_RIGHT||ch==KEY_LEFT)
{
flag=buttonCtl(winsure,wincancle,num,ch,flag);
freshaddaccountWin(flag,winstaff_id,winstaff_name,winstaff_pwd,winstaff_type,winremark,winsure,wincancle);
}
else if(ch==10||ch==KEY_ENTER)
{
if(flag!=num-2&&flag!=num-1)
{
flag=++flag%num;
freshaddaccountWin(flag,winstaff_id,winstaff_name,winstaff_pwd,winstaff_type,winremark,winsure,wincancle);
}
else if(flag==num-2)
{
int type,h=0;
type=atoi(staff_type);
staffInfo->staff_type=type;
if(IsRightNum(staffInfo->staff_id)!=0)
{
MessageBox("帳號有錯,必須為數(shù)字組成!",0);
h=1;
}
if(strlen(staffInfo->staff_pwd)==0)
{
MessageBox("密碼不能為空!",0);
h=1;
}
if(type!=0&&type!=1&&type!=2)
{
MessageBox("類型必須為0或1或2",0);
h=1;
}
if(strlen(staffInfo->staff_id)==0)
{
MessageBox("編號不能為空!",0);
h=1;
}
if(key!=2)
{
if(IsStaffIDExit(staffInfo->staff_id)==0)
{
MessageBox("帳戶已經存在!",0);
h=1;
}
}
if(key==2)
{
if(strcmp(staff_id,staffInfo->staff_id)!=0)
{
if(IsStaffIDExit(staffInfo->staff_id)==0)
{
char tmp[100]={0};
sprintf(tmp,"%s帳戶已經存在!",staffInfo->staff_id);
MessageBox(tmp,0);
h=1;
}
}
}
if(h!=1)
{
flag=100;
break;
}
}
else if(flag==num-1)
{
flag=200;
break;
}
}
else if(KEY_BACKSPACE==ch)
{
if(flag==0)
{
int len=strlen(staffInfo->staff_id);
if(len>0)
{
staffInfo->staff_id[len-1]='\0';
wprintw(winstaff_id,"\b \b");
freshaddaccountWin(flag,winstaff_id,winstaff_name,winstaff_pwd,winstaff_type,winremark,winsure,wincancle);
}
}
if(flag==1)
{
int len=strlen(staffInfo->staff_name);
if(len>0)
{
staffInfo->staff_name[len-1]='\0';
wprintw(winstaff_name,"\b \b");
freshaddaccountWin(flag,winstaff_id,winstaff_name,winstaff_pwd,winstaff_type,winremark,winsure,wincancle);
}
}
if(flag==2)
{
int len=strlen(staffInfo->staff_pwd);
if(len>0)
{
staffInfo->staff_pwd[len-1]='\0';
wprintw(winstaff_pwd,"\b \b");
freshaddaccountWin(flag,winstaff_id,winstaff_name,winstaff_pwd,winstaff_type,winremark,winsure,wincancle);
}
}
if(flag==3)
{
int len=strlen(staff_type);
if(len>0)
{
staff_type[len-1]='\0';
wprintw(winstaff_type,"\b \b");
freshaddaccountWin(flag,winstaff_id,winstaff_name,winstaff_pwd,winstaff_type,winremark,winsure,wincancle);
}
}
if(flag==4)
{
int len=strlen(staffInfo->remark);
if(len>0)
{
staffInfo->remark[len-1]='\0';
wprintw(winremark,"\b \b");
freshaddaccountWin(flag,winstaff_id,winstaff_name,winstaff_pwd,winstaff_type,winremark,winsure,wincancle);
}
}
}
else
{
if(flag==0)
{
int len=strlen(staffInfo->staff_id);
if(len<6)
{
staffInfo->staff_id[len]=ch;
wprintw(winstaff_id,"%c",ch);
freshaddaccountWin(flag,winstaff_id,winstaff_name,winstaff_pwd,winstaff_type,winremark,winsure,wincancle);
}
}
if(flag==1)
{
int len=strlen(staffInfo->staff_name);
if(len<15)
{
staffInfo->staff_name[len]=ch;
wprintw(winstaff_name,"%c",ch);
freshaddaccountWin(flag,winstaff_id,winstaff_name,winstaff_pwd,winstaff_type,winremark,winsure,wincancle);
}
}
if(flag==2)
{
int len=strlen(staffInfo->staff_pwd);
if(len<16)
{
staffInfo->staff_pwd[len]=ch;
wprintw(winstaff_pwd,"%s","*");
freshaddaccountWin(flag,winstaff_id,winstaff_name,winstaff_pwd,winstaff_type,winremark,winsure,wincancle);
}
}
if(flag==3)
{
int len=strlen(staff_type);
if(len<2)
{
staff_type[len]=ch;
wprintw(winstaff_type,"%c",ch);
freshaddaccountWin(flag,winstaff_id,winstaff_name,winstaff_pwd,winstaff_type,winremark,winsure,wincancle);
}
}
if(flag==4)
{
int len=strlen(staffInfo->remark);
if(len<30)
{
staffInfo->remark[len]=ch;
wprintw(winremark,"%c",ch);
freshaddaccountWin(flag,winstaff_id,winstaff_name,winstaff_pwd,winstaff_type,winremark,winsure,wincancle);
}
}
}
}
}
delwin(winmain);
delwin(winstaff_id);
delwin(winstaff_name);
delwin(winstaff_pwd);
delwin(winstaff_type);
delwin(winremark);
if(key!=3)
{
delwin(winsure);
delwin(wincancle);
}
refresh();
if(flag==100)
return 0;
else
return 1;
}
int freshaddaccountWin(int flag,WINDOW *winstaff_id,WINDOW *winstaff_name,WINDOW *winstaff_pwd,WINDOW *winstaff_type,WINDOW *winremark,WINDOW *winsure,WINDOW *wincancle)
{
switch(flag)
{
case 0:
touchwin(winstaff_id);
wrefresh(winstaff_id);
break;
case 1:
touchwin(winstaff_name);
wrefresh(winstaff_name);
break;
case 2:
touchwin(winstaff_pwd);
wrefresh(winstaff_pwd);
break;
case 3:
touchwin(winstaff_type);
wrefresh(winstaff_type);
break;
case 4:
touchwin(winremark);
wrefresh(winremark);
break;
case 5:
wattron(winsure,A_REVERSE);
mvwprintw(winsure,0,0," 確定 ");
wattroff(winsure,A_REVERSE);
wrefresh(winsure);
break;
case 6:
touchwin(wincancle);
wattron(wincancle,A_REVERSE);
mvwprintw(wincancle,0,0," 退出 ");
wattroff(wincancle,A_REVERSE);
wrefresh(wincancle);
break;
}
}
int posAddaccount()
{
staffinfo staffInfo;
int n,m;
while(1)
{
memset(staffInfo.staff_id,0,sizeof(staffInfo.staff_id));
memset(staffInfo.staff_name,0,sizeof(staffInfo.staff_name));
memset(staffInfo.staff_pwd,0,sizeof(staffInfo.staff_pwd));
memset(staffInfo.remark,0,sizeof(staffInfo.remark));
staffInfo.staff_type=0;
n=printAddaccount(1,&staffInfo);
if(n==1)
return 1;
n=AddAccount(&staffInfo);
if(n==0)
{
m=MessageBox2("添加成功! 是否繼續(xù)?");
if(m==1)
return 1;
}
}
return 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -