📄 pospublic.c
字号:
#include "posPublic.h"
#include "pub.h"
#include <string.h>
#include <stdlib.h>
int DrawLine(WINDOW * win,int x)
{
int i=0;
mvwaddch(win,x,0,ACS_LTEE);
for(i=1;i<COLS-1;i++)
{
mvwaddch(win,x,i,ACS_HLINE);
}
mvwaddch(win,x,COLS-1,ACS_RTEE);
return 0;
}
int MessageBox(char * msg,int flag)
{
WINDOW * winmsg;
scr_dump("scr_save.scr");
init_pair(6,COLOR_BLACK,COLOR_MAGENTA);
winmsg=newwin(8,40,8,20);
box(winmsg,0,0);
if(has_colors())
{
wbkgd(winmsg,COLOR_PAIR(6));
}
mvwprintw(winmsg,0,15,"tip");
mvwprintw(winmsg,2,5,"%s",msg);
wrefresh(winmsg);
getch();
wclear(winmsg);
delwin(winmsg);
scr_restore("scr_save.scr");
refresh();
return 0;
}
int MessageBox2(char * msg)
{
WINDOW * winmsg,*winsure,*wincancle;
int n,flag=0,num=2,ch;
scr_dump("scr_save.scr3");
init_pair(11,COLOR_BLACK,COLOR_MAGENTA);
init_pair(12,COLOR_BLACK,COLOR_WHITE);
winmsg=newwin(8,40,8,20);
box(winmsg,0,0);
if(has_colors())
{
wbkgd(winmsg,COLOR_PAIR(11));
}
mvwprintw(winmsg,0,15,"tip");
mvwprintw(winmsg,2,5,"%s",msg);
wrefresh(winmsg);
wincancle=newwin(1,6,12,48);
wbkgd(wincancle,COLOR_PAIR(12));
mvwprintw(wincancle,0,1,"退出");
wrefresh(wincancle);
winsure=newwin(1,6,12,25);
wbkgd(winsure,COLOR_PAIR(12));
wattron(winsure,A_REVERSE);
mvwprintw(winsure,0,1,"确定");
wattroff(winsure,A_REVERSE);
wrefresh(winsure);
while(1)
{
ch=getch();
if(ch==KEY_LEFT||ch==KEY_RIGHT)
flag=buttonCtl(winsure,wincancle,num,ch,flag);
switch(flag)
{
case 0:
wattron(winsure,A_REVERSE);
mvwprintw(winsure,0,0," 确定 ");
wattroff(winsure,A_REVERSE);
wrefresh(winsure);
break;
case 1:
touchwin(wincancle);
wattron(wincancle,A_REVERSE);
mvwprintw(wincancle,0,0," 退出 ");
wattroff(wincancle,A_REVERSE);
wrefresh(wincancle);
break;
}
if(ch==KEY_ENTER||ch==10)
{
if(0==flag)
{
flag=10;
break;
}
if(1==flag)
{
flag=20;
break;
}
}
}
wclear(winmsg);
wrefresh(winmsg);
delwin(winmsg);
scr_restore("scr_save.scr3");
refresh();
if(10==flag)
return 0;
if(20==flag)
return 1;
}
int MessageBox3(char * msg,char * buf,int key)
{
/* WINDOW * winmsg,*winsure,*wincancle,*winbuf;
int n,flag=0,num=3,ch;
scr_dump("scr_save.scr11");
init_pair(35,COLOR_BLACK,COLOR_MAGENTA);
init_pair(36,COLOR_BLACK,COLOR_WHITE);
winmsg=newwin(8,40,8,20);
box(winmsg,0,0);
if(has_colors())
{
wbkgd(winmsg,COLOR_PAIR(35));
}
mvwprintw(winmsg,0,15,"tip");
mvwprintw(winmsg,2,5,"%s",msg);
wrefresh(winmsg);
wincancle=newwin(1,6,12,48);
wbkgd(wincancle,COLOR_PAIR(36));
mvwprintw(wincancle,0,1,"退出");
wrefresh(wincancle);
winbuf=newwin(1,6,10,25);
wbkgd(winbuf,COLOR_PAIR(36));
wrefresh(winbuf);
winsure=newwin(1,6,12,25);
wbkgd(winsure,COLOR_PAIR(36));
wattron(winsure,A_REVERSE);
mvwprintw(winsure,0,1,"确定");
wattroff(winsure,A_REVERSE);
wrefresh(winsure);
while(1)
{
ch=getch();
if(ch==KEY_LEFT||ch==KEY_RIGHT)
flag=buttonCtl(winsure,wincancle,num,ch,flag);
switch(flag)
{
case 0:
touchwin(winbuf);
wrefresh(winbuf);
break;
case 1:
wattron(winsure,A_REVERSE);
mvwprintw(winsure,0,0," 确定 ");
wattroff(winsure,A_REVERSE);
wrefresh(winsure);
break;
case 2:
touchwin(wincancle);
wattron(wincancle,A_REVERSE);
mvwprintw(wincancle,0,0," 退出 ");
wattroff(wincancle,A_REVERSE);
wrefresh(wincancle);
break;
}
if(ch==KEY_ENTER||ch==10)
{
if(0==flag)
{
flag=10;
break;
}
if(1==flag)
{
flag=20;
break;
}
}
if()
}
wclear(winmsg);
wrefresh(winmsg);
delwin(winmsg);
scr_restore("scr_save.scr11");
refresh();
if(10==flag)
return 0;
if(20==flag)
return 1;*/
}
int Trim(char * str)
{
int len;
char *p,*q;
len = strlen(str);
p= str+len-1;
while(isspace(*p)) *p--='\0';
q=str;
while(isspace(*q)) *q++='\0';
if(p==q)
return 1;
return 0;
}
int get_str(WINDOW *textbox, char inputed_str[], int style, int num_limit, int input_limit)
{
int ch;
int i=0;
memset(inputed_str,0,sizeof(inputed_str));
touchwin(textbox);
wrefresh(textbox);
/*clearWin(textbox ,0,0,3);*/
keypad(textbox,TRUE);
noecho();
while(1)
{
ch=getch();
if(KEY_BACKSPACE==ch)
{
if(i>0)
{
inputed_str[i--]='\0';
wprintw(textbox,"\b \b");
wrefresh(textbox);
}
}
else if(KEY_ENTER==ch||10==ch)
break;
else if(KEY_F(2)==ch)
return -2;
else if(KEY_F(3)==ch)
return -3;
else if(KEY_F(4)==ch)
return -4;
else if(KEY_F(5)==ch)
return -5;
else if(KEY_F(6)==ch)
return -6;
else if(KEY_F(7)==ch)
return -7;
else if(KEY_F(8)==ch)
return -8;
else if(KEY_F(9)==ch)
return -9;
else if(KEY_UP==ch)
return -10;
else if (KEY_DOWN==ch)
return -11;
else if(KEY_LEFT==ch)
return -12;
else if(KEY_RIGHT==ch)
return -13;
else if(ch=='\t')
return -14;
else
{
if(i<num_limit)
{
if(isdigit(ch))
{
wprintw(textbox,"%c",ch);
inputed_str[i++]=ch;
wrefresh(textbox);
}
}
}
}
return i;
}
int IsBarCode(char * barcode)
{
return 0;
}
int clearWin(WINDOW * win ,int lineBegin,int lineEnd,int colBegin)
{
int i=0;
for(i=lineBegin;i<=lineEnd;i++)
{
mvwprintw(win,i,colBegin,"%-77c",' ');
}
/*wmove(win,lineBegin,);*/
wrefresh(win);
return 0;
}
int buttonCtl(WINDOW * winsure,WINDOW * wincancle,int num,int ch,int flag)
{
int x=(num==2)?1:num-3;
if(ch==KEY_DOWN||ch=='\t')
{
flag=++flag%num;
if(flag==0)
{
mvwprintw(wincancle,0,0," 退出 ");
wrefresh(wincancle);
}
if(flag==num-1)
{
mvwprintw(winsure,0,0," 确定 ");
wrefresh(winsure);
}
return flag;
}
if(ch==KEY_UP)
{
if(flag==0)
{
flag=num-1;
}
else
flag=--flag%num;
if(flag==num-2)
{
mvwprintw(wincancle,0,0," 退出 ");
wrefresh(wincancle);
}
if(flag==x)
{
mvwprintw(winsure,0,0," 确定 ");
wrefresh(winsure);
}
return flag;
}
if(ch==KEY_LEFT)
{
if(flag==num-1)
{
flag=abs(--flag)%num;
mvwprintw(wincancle,0,0," 退出 ");
wrefresh(wincancle);
}
return flag;
}
if(ch==KEY_RIGHT)
{
if(flag==num-2)
{
flag=++flag%num;
mvwprintw(winsure,0,0," 确定 ");
wrefresh(winsure);
}
return flag;
}
}
int IsRightMoney(char * str)
{
int len=strlen(str);
int i=0,pointNum=0;
if(str[len-1]=='.')
return 1;
for(i=0;i<len;i++)
{
if(str[i]=='.')
pointNum++;
else
{
if(!isdigit(str[i]))
return 3;
}
}
if(pointNum>1)
return 2;
return 0;
}
int IsRightBarcode(char * barcode)
{
int i=0,len=strlen(barcode);
if(len<=2)
return 1;
if(barcode[0]!='C'||barcode[1]!='N')
return 1;
for(i=2;i<len;i++)
{
if(!isdigit(barcode[i]))
return 2;
}
return 0;
}
int IsRightDiscount(char * discount)
{
int n=IsRightMoney(discount);
if(n==0)
{
if(atof(discount)<0||atof(discount)>1)
return 3;
}
else
return n;
return 0;
}
int IsRightNum(char * num)
{
int i=0,len=strlen(num),flag=0;
for(i=0;i<len;i++)
{
if(!isdigit(num[i]))
{
flag=1;
return 1;
}
}
if(0==flag&&atoi(num)<=0)
return 2;
return 0;
}
int IsRightDate(char * date)
{
int len=strlen(date);
char mon[5],day[5];
memset(mon,0,sizeof(mon));
memset(day,0,sizeof(day));
mon[0]=date[4];
mon[1]=date[5];
day[0]=date[6];
day[1]=date[7];
if(len<8)
return 1;
if(strcmp(date,"19000101")<0||strcmp(date,"20501231")>0)
{
return 2;
}
if(atoi(mon)>12||atoi(mon)==0)
return 3;
if(atoi(day)>31||atoi(day)==0)
return 3;
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -