📄 qtsy31p.txt
字号:
break; //发送登录消息
case 4:
InBuffer(-1,ESCKEY,0,0); //
break;
default:InBuffer(-2,EDITUSER,0,0);
}
break;
case TABKEY:
case F2KEY:
if(Message->x==0)
InBuffer(-2,EDITUSER,0,0);
else if(Message->x==1)
InBuffer(-2,EDITPASSW,0,0);
else
InBuffer(-2,EDITSYFS,0,0);
break;
}
break;
default:InBuffer(-2,EDITUSER,0,0);
}
}
DrawBar(0,0,639,479,clNavy,0xff); //清屏幕
return bLoop;
}
//下载数据
char *dbf_name[8]={"DATA\\JXC_SPB.DBF",
"DATA\\JXC_SYS.DBF",
"DATA\\JXC_SDDZ.DBF",
"DATA\\JXC_SYJB.DBF",
"DATA\\JXC_SYYB.DBF",
"DATA\\JXC_DTMB.DBF",
"DATA\\JXC_LBB.DBF",
"DATA\\JXC_TMCB.DBF"};
int DownLoadData(void)
{
int i,sx=128,sy=160,ex=511,ey=320;
char _buf[80];
TLabel Label={2001,0,160,224,280,22,clSilver,clBlack,clYellow,0,"",0};
Window(sx,sy,ex,ey,clSilver,"下载数据...",3);
for(i=0;i<8;i++)
{
strcpy(_buf,"正在下载...");
strcat(_buf,dbf_name[i]);
strcat(_buf,".....");
ShowLabel(&Label,_buf);
switch(i)
{
case 0:
case 5:
case 7:GetDataFromServer(dbf_name[i],"",Param.DownLoad,i);
break;
default:GetDataFromServer(dbf_name[i],"","",i);
}
}
PutImage(sx,sy);
return 0;
}
//更改收银员密码
int ChangePassWord(void)
{
int sx=200,sy=120,ex=439,ey=240;
Msg *Message;
int bLoop=2;
TEdit PWEdit={2002,1,sx+96,sy+48,120,22,clWhite,clBlack,"",0,0,0,0,1};
Window(sx,sy,ex,ey,clSilver,"密码输入",0);
DrawText(sx+16,sy+50,"请输入密码",clBlack,1);
InBuffer(-1,EDITPASSW,0,0);
while(bLoop==2)
{
Message=Getkey();
switch(Message->h.RetKey)
{
case EDITPASSW:TextEdit(&PWEdit,10,1,1);
break;
case CRKEY: if(sql_changpw(PWEdit.Text))
{
bLoop=1;
GetDataFromServer(dbf_name[4],"","",4);
}
break;
case ESCKEY: bLoop=0;
}
if(bLoop==2&&!BiosKey()) InBuffer(-1,EDITPASSW,0,0);
}
PutImage(sx,sy);
return bLoop;
}
//功能列表
//CallAtt为调用方式
int CallFun(int CallAtt,unsigned char Color)
{
TButton FButtons[14]=
{{2001,0, 3,390,48,21,clSilver,Color,"下班",0,0},
{2001,1, 51,390,48,21,clSilver,Color,"挂起",0,0},
{2001,2, 99,390,48,21,clSilver,Color,"打折",0,0},
{2001,3, 147,390,52,21,clSilver,Color,"计算器",0,0},
{2001,4, 199,390,52,21,clSilver,Color,"条码",0,0},
{2001,5, 251,390,52,21,clSilver,Color,"凭证",0,0},
{2001,12,303,390,52,21,clSilver,Color,"改密码",0,0},
{2001,6, 3,412,48,21,clSilver,Color,"交班",0,0},
{2001,7, 51,412,48,21,clSilver,Color,"解挂",0,0},
{2001,8, 99,412,48,21,clSilver,Color,"暂停",0,0},
{2001,9, 147,412,52,21,clSilver,Color,"统计",0,0},
{2001,10,199,412,52,21,clSilver,Color,"提货卡",0,0},
{2001,11,251,412,52,21,clSilver,Color,"钱箱",0,0},
{2001,13,303,412,52,21,clSilver,Color,"",0,0}};
int i,k,bLoop=1;
Msg *Message;
//显示
Rectangle(1,388,357,435,clBlack,clWhite);//功能列表框
FButtons[0].State=1;
for(i=0;i<14;i++)
ShowButton(&FButtons[i],i==0&&CallAtt);
if(CallAtt)
{
k=0;
FButtons[0].State=1;
while(bLoop)
{
Message=Getkey();
switch(Message->type)
{
case -1://控制键
switch(Message->h.RetKey)
{
case WM_SHOWBUTTON:
ShowButton(&FButtons[Message->x],1);
break;
case CRKEY:
InBuffer(-4,CN_XB+FButtons[k].Handle,0,0);
bLoop=0;
break;
case TABKEY:
FButtons[k].State=0;
InBuffer(-1,WM_SHOWBUTTON,k,0);
k+=Message->x;
k=(k<0)?13:k;
k=(k>13)?0:k;
FButtons[k].State=1;
InBuffer(-1,WM_SHOWBUTTON,k,0);
break;
case NEXTROW:
FButtons[k].State=0;
InBuffer(-1,WM_SHOWBUTTON,k,0);
k=Message->x;
FButtons[k].State=1;
InBuffer(-1,WM_SHOWBUTTON,k,0);
break;
case ESCKEY:
bLoop=0;
InBuffer(-2,SPBMEDIT,0,0);
}
break;
case -2://功能键
switch(Message->h.RetKey)
{
case LEFTKEY:
case F2KEY:
case F5KEY:
InBuffer(-1,TABKEY,-1,0);
break;
case F6KEY:
case RIGHTKEY:
InBuffer(-1,TABKEY,1,0);
break;
case DOWNKEY:
case UPKEY:
if(k<7)InBuffer(-1,NEXTROW,k+7,0);
else InBuffer(-1,NEXTROW,k-7,0);
break;
case F1KEY:
bLoop=0;
InBuffer(-2,SPBMEDIT,0,0);
break;
}
break;
}
}
FButtons[k].State=0;
ShowButton(&FButtons[k],0);
}
return 0;
}
//当班销售统计
int XstjFun(int Att)
{
double hjje=0;
int j=0,i,sx,sy,ex,ey,bLoop=2;
Msg *Message;
sx=184,sy=56,ex=480,ey=400; //定义边界
sql_xshz();
for(i=0;i<5;i++) hjje+=g_flhj[i]; //计算合计
if(!Att)
Window(sx,sy,ex,ey,clSilver,"销售统计",0);
else
Window(sx,sy,ex,ey,clSilver,"交班统计",0);
sx+=16,sy+=40;
sprintf(__Preview[j++]," 当班收银员销售统计表\n\n");
sprintf(__Preview[j++],"时 间:%s\n",g_now);
sprintf(__Preview[j++],"收银机:%s\n",Param.SyjNo);
sprintf(__Preview[j++],"收银员:(%s)%s 班次:%s\n",Syy_No,Syy_Name,g_bc);
sprintf(__Preview[j++],"---------------------------------\n");
sprintf(__Preview[j++],"交易次数:%14d\n",g_jycs);
sprintf(__Preview[j++],"销售笔数:%14d\n",g_xsbs);
if(g_gz_mode[0]=='0')
hjje-=g_flhj[0];
sprintf(__Preview[j++],"合计金额:%14.2f\n",hjje);
sprintf(__Preview[j++]," 其中----\n");
if(g_gz_mode[0]=='0')
sprintf(__Preview[j++]," 现金:----\n");
else
sprintf(__Preview[j++]," 现金:%14.2f\n",g_flhj[0]);
sprintf(__Preview[j++]," 支票:%14.2f\n",g_flhj[1]);
sprintf(__Preview[j++]," 银行卡:%14.2f\n",g_flhj[2]);
sprintf(__Preview[j++]," 提货卡:%14.2f\n",g_flhj[3]);
sprintf(__Preview[j++]," 其他:%14.2f\n",g_flhj[4]);
sprintf(__Preview[j++],"---------------------------------\n\n\n\n\n\n\n\n");
for(i=0;i<j;i++)
DrawText(sx,sy+i*18,__Preview[i],clBlack,1);
while(bLoop==2)
{
Message=Getkey();
switch(Message->h.RetKey)
{
case CRKEY:
if(Param.Dytjb[0]!='0')
{
sprintf(__Preview[0],"当班收银员销售统计表(收银员)\n\n");
dysyt(j);
if(MsgBoxEx("打印第二联吗?",0))
{
sprintf(__Preview[0],"当班收银员销售统计表(收款室)\n\n");
dysyt(j);
}
}
bLoop=1;
break;
case ESCKEY:bLoop=0;
}
}
PutImage(184,56);
return bLoop;
}
//挂起信息提示
void JiaQiYuJieGua(char *value)
{
int i;
strcpy(value,"");
if(_SPListCount>0)
{
sprintf(value,"%d笔 序号:",_SPListCount);
for(i=0;i<__WorkBuffer;i++)
if(__GQList[i].lsh!=0)
sprintf(value,"%s%d ",value,__GQList[i].lsh);
}
}
//显示一张提货卡
//确定返回1,否则返回0
//入口参数,提货卡指真
int ShowTiHuoKa(THK *lpThk)
{
int sx=400,sy=40,ex=623,ey=240;
Msg *Message;
int bLoop=2,i;
char value[51];
double fxzje;
//lijing 下帐编辑框
TEdit XZEdit={2002,1,sx+104,sy+120,100,22,clWhite,clBlack,"",0,0,0,0,1};
sprintf(value,"%.2f",lpThk->xzje);
strcpy(XZEdit.Text,value);
Window(sx,sy,ex,ey,clSilver,"提货卡信息",0);
sprintf(value,"提货卡付款(第%d张)",lpThk->xh);
DrawText(sx+16,sy+32,value,clBlack,1);
DrawText(sx+32,sy+64, "卡号",clBlack,1);
DrawText(sx+104,sy+66,lpThk->kh,clBlue,1);
DrawText(sx+32,sy+82, "发行金额",clBlack,1);
sprintf(value,"%10.2f",lpThk->fkje);
DrawText(sx+104,sy+84,value,clBlue,1);
DrawText(sx+32,sy+100,"现 余 额",clBlack,1);
sprintf(value,"%10.2f",lpThk->dqye);
DrawText(sx+104,sy+102,value,clBlue,1);
DrawText(sx+32,sy+122,"本次消费",clBlack,1);
FontColor=clMaroon;
if(!lpThk->dqye) //当前余额为0
for(i=0;i<5;i++)
Put(ex-80+i*8,sy+16,&CancelBuffer[i*40],40);
Sleep(300);
ClearKey();
InBuffer(-1,CM_XZEDIT,0,0);
while(bLoop==2)
{
Message=Getkey();
switch(Message->h.RetKey)
{
case CM_XZEDIT:TextEdit(&XZEdit,10,1,0);
break;
case ESCKEY:bLoop=0;
break;
case CRKEY:
if(Message->x==1)
{
fxzje=atof(XZEdit.Text);
if((lpThk->xzje>=0&&fxzje<=lpThk->xzje)||
(lpThk->xzje<0&&fxzje>=lpThk->xzje))
{
lpThk->xzje=fxzje;
lpThk->xye=lpThk->dqye-lpThk->xzje;
bLoop=1;
break;
}
else
{
MsgBoxEx("下帐金额大于消费金额",1);
ResetEdit(&XZEdit);
break;
}
}
break;
}
if(!BiosKey()) InBuffer(-1,CM_XZEDIT,0,0);
}
PutImage(sx,sy);
return bLoop;
}
//显示一张提货卡
//确定返回1,否则返回0
//入口参数,提货卡指针
int ShowTiHuoKaEx(THK *lpThk)
{
int sx=280,sy=50,ex=500,ey=230;
Msg *Message;
int bLoop=2,i;
clock_t s,e;
char value[51];
Window(sx,sy,ex,ey,clSilver,"提货卡",1);
DrawText(sx+16,sy+32,"提货卡查询",clBlack,1);
DrawText(sx+32,sy+64, "卡号",clBlack,1);
DrawText(sx+104,sy+66,lpThk->kh,clBlue,1);
DrawText(sx+32,sy+82, "发行金额",clBlack,1);
sprintf(value,"%10.2f",lpThk->fkje);
DrawText(sx+104,sy+84,value,clBlue,1);
DrawText(sx+32,sy+100,"现 余 额",clBlack,1);
sprintf(value,"%10.2f",lpThk->dqye);
DrawText(sx+104,sy+102,value,clBlue,1);
FontColor=clMaroon;
if(!lpThk->dqye) //当前余额为0
for(i=0;i<5;i++)
Put(ex-80+i*8,sy+16,&CancelBuffer[i*40],40);
s=clock();
while(bLoop==2)
{
Message=Getkey();
if(Message->type==-1)
if(Message->h.RetKey==CRKEY)
{
e=clock();
if(e-s>1000) bLoop=1;
}
}
PutImage(sx,sy);
return bLoop;
}
void ShowThkEx(int sx,int sy,int ex,int ey,THK *lpThk)
{
char value[50];
DrawBar(sx,sy,ex,ey,clSilver,0xff);
if(lpThk->kh[0]=='\0')
return;
sprintf(value,"第 %2d 张 ",lpThk->xh);
DrawText(sx,sy,value,clBlack,1);
DrawText(sx,sy+18, "卡 号",clBlack,1);
DrawText(sx+56,sy+18,lpThk->kh,clBlue,1);
DrawText(sx,sy+36, "发行金额",clBlack,1);
sprintf(value,"%9.2f",lpThk->fkje);
DrawText(sx+64,sy+36,value,clBlue,1);
DrawText(sx,sy+54,"原 余 额",clBlack,1);
sprintf(value,"%9.2f",lpThk->dqye);
DrawText(sx+64,sy+54,value,clBlue,1);
DrawText(sx,sy+72,"现 余 额",clBlack,1);
sprintf(value,"%9.2f",lpThk->xye);
DrawText(sx+64,sy+72,value,clBlue,1);
}
void QueryThkYE(int sx,int sy,int ex,int ey)
{
TEdit KHEdit={2002,1,sx+24,sy+64,240,22,clWhite,clBlack,"",0,0,0,0,1};
char buf[30];
Msg *Message;
short bLoop=1;
Window(sx,sy,ex,ey,clSilver,"提货卡余额查询",0);
DrawText(sx+24,sy+40,"请刷提货卡...",clBlack,1);
InBuffer(-1,0,0,0);
while(bLoop)
{
Message=Getkey();
switch(Message->h.RetKey)
{
case 0:TextEdit(&KHEdit,25,1,9);
break;
case ESCKEY:
bLoop=0;
break;
case CRKEY:
strcpy(buf,KHEdit.Text);
strcpy(KHEdit.Text,"");
QueryTHK(buf);
break;
}
if(!BiosKey()) InBuffer(-1,0,0,0);
}
PutImage(sx,sy);
}
int SelectBank(int sx,int sy,int ex,int ey,XYK *rec)
{
short bLoop=2;
int i,j,nCount=0,n,m=0;
char buf[51],iBuf[3]="";
Msg *Message;
//交易类型
Window(sx,sy,ex,ey,clSilver,"选择银行卡",0);
Rectangle(sx+5,sy+28,ex-8,sy+216,clBlack,clBlack);
for(i=0;i<20&&_XykLb[i].km[0];i++)
{
sprintf(buf,"%2s %s(%s)",_XykLb[i].km,_XykLb[i].mc,_XykLb[i].yh);
DrawText(sx+10+(i/10)*162,sy+33+(i%10)*18,buf,clBlack,1);
nCount++;
}
if(!nCount) return 0;
i=0;
j=0;
InBuffer(-1,WM_PAINTPOINT,0,0);
while(bLoop==2)
{
Message=Getkey();
if(!Message->type) //是一般的字符
{
iBuf[m++]=(char)(Message->h.RetKey&0xff);
iBuf[m]='\0';
for(n=0;n<nCount;n++)
if(_XykLb[n].km[0]==iBuf[0]&&(m==1||
(m==2&&_XykLb[n].km[1]==iBuf[1])))
{
i=n;
InBuffer(-1,WM_PAINTPOINT,0,0);
break;
}
m%=2;
}
else
switch(Message->h.RetKey)
{
case WM_PAINTPOINT:
//恢复原来的项目
if(j!=i)
{
sprintf(buf,"%2s %s(%s)",_XykLb[j].km,_XykLb[j].mc,_XykLb[j].yh);
DrawBar(sx+8+(j/10)*162,sy+32+(j%10)*18,
sx+164+(j/10)*162,sy+50+(j%10)*18,clSilver,0xff);
DrawText(sx+10+(j/10)*162,sy+33+(j%10)*18,buf,clBlack,1);
}
//显示新项目
sprintf(buf,"%2s %s(%s)",_XykLb[i].km,_XykLb[i].mc,_XykLb[i].yh);
DrawBar(sx+8+(i/10)*162,sy+32+(i%10)*18,
sx+164+(i/10)*162,sy+50+(i%10)*18,clNavy,0xff);
DrawText(sx+10+(i/10)*162,sy+33+(i%10)*18,buf,clWhite,1);
j=i;
break;
case UPKEY:
case F5KEY:
if(i==0) i=nCount-1;
else i--;
InBuffer(-1,WM_PAINTPOINT,0,0);
break;
case DOWNKEY:
case F6KEY:
if(i==nCount-1) i=0;
else i++;
InBuffer(-1,WM_PAINTPOINT,0,0);
break;
case LEFTKEY:
if(i>=10)
{i-=10;
InBuffer(-1,WM_PAINTPOINT,0,0);}
break;
case RIGHTKEY:
if(i+10<=nCount-1)
{i+=10;
InBuffer(-1,WM_PAINTPOINT,0,0);}
break;
case ESCKEY:
bLoop=0;
break;
case CRKEY:
strcpy(rec->km,_XykLb[i].km);
strcpy(rec->yh,_XykLb[i].y
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -