📄 qtsyba~2.c
字号:
case F2KEY:
case F5KEY:
InBuffer(-1,TABKEY,-1,0);
break;
case F6KEY:
case RIGHTKEY:
InBuffer(-1,TABKEY,1,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=455,ey=400; //定义边界
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",g_syjh);
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++],"------------------------------");
sprintf(__Preview[j++],"\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:
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<5;i++)
if(__SPLists[i].state==1)
sprintf(value,"%s%d ",value,__SPLists[i].lsh);
}
}
//显示一张提货卡
//确定返回1,否则返回0
//入口参数,提货卡指真
int ShowTiHuoKaOnly(THK *lpThk)
{
int sx=400,sy=40,ex=623,ey=240;
Msg *Message;
int bLoop=2,i;
clock_t s,e;
char value[51];
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+118,"本次消费",clBlack,1);
sprintf(value,"%10.2f",lpThk->xzje);
DrawText(sx+104,sy+120,value,clBlue,1);
DrawText(sx+32,sy+136,"现 余 额",clBlack,1);
sprintf(value,"%10.2f",lpThk->xye);
DrawText(sx+104,sy+138,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;
}
else if(Message->h.RetKey==ESCKEY)
bLoop=0;
}
PutImage(sx,sy);
return bLoop;
}
//显示一张提货卡
//确定返回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);
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<=0))
{
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;
}
//结帐
int JieZhangFun(int sx,int sy,int ex,int ey)
{
char value[51],values[7][15]={""};
short bLoop=2; // 循环变量
double bcfk=0,fkce;
int ls,k=0;
//定义两个编辑框
Msg *Message;
TEdit FKEdit={2002,1,sx+92,sy+206,272,22,clWhite,clBlack,"",0,0,0,0,1};
TLabel Labels[7]=
{{0,1,sx+98,sy+80, 120,18,clSilver,clNavy,clYellow,0,"",0},
{0,1,sx+98,sy+98, 120,18,clSilver,clNavy,clYellow,0,"",0},
{0,1,sx+98,sy+116,120,18,clSilver,clNavy,clYellow,0,"",0},
{0,1,sx+98,sy+134,120,18,clSilver,clNavy,clYellow,0,"",0},
{0,1,sx+98,sy+152,120,18,clSilver,clNavy,clYellow,0,"",0},
{0,1,sx+98,sy+176,96,18,clSilver,clBlack,clYellow,0,"",0},
{0,1,sx+264,sy+176,96,18,clSilver,clNavy,clYellow,0,"",0}};
fkce=SPLists->ysje-SPLists->fklp.ssje; //付款差额
sprintf(value,"%.2f %.2f",SPLists->spje,
SPLists->spje-SPLists->ysje);
ShowGuXian(value,1,0);
sprintf(value,"Total %.2f",SPLists->ysje);
ShowGuXian(value,2,0);
Window(sx,sy,ex,ey,clSilver,"结帐",0);
DrawText(sx+24,sy+32,"应收金额:",clBlack,1);
sprintf(value,"%9.2f",SPLists->ysje); //应收金额
DrawText(sx+96,sy+32,value,clBlack,1);
DrawText(sx+24,sy+54,"付款明细",clBlack,1);
DrawText(sx+16,sy+68,"──────────────────────",clBlack,1);
DrawText(sx+24,sy+80," 现金:",clBlack,1);
sprintf(values[0],"%9.2f",SPLists->fklp.xjje);
ShowLabel(&Labels[0],values[0]);
DrawText(sx+24,sy+98," 支票:",clBlack,1);
sprintf(values[1],"%9.2f",SPLists->fklp.zpje);
ShowLabel(&Labels[1],values[1]);
DrawText(sx+24,sy+116," 信用卡:",clBlack,1);
sprintf(values[2],"%9.2f",SPLists->fklp.xykje);
ShowLabel(&Labels[2],values[2]);
DrawText(sx+24,sy+134," 提货卡:",clBlack,1);
sprintf(values[3],"%9.2f",SPLists->fklp.thkje);
ShowLabel(&Labels[3],values[3]);
DrawText(sx+24,sy+152," 其它:",clBlack,1);
sprintf(values[4],"%9.2f",SPLists->fklp.qtje);
ShowLabel(&Labels[4],values[4]);
DrawText(sx+16,sy+164,"──────────────────────",clBlack,1);
DrawText(sx+24,sy+176,"付款合计: 差额:",clBlack,1);
sprintf(values[5],"%9.2f",SPLists->fklp.ssje);
ShowLabel(&Labels[5],values[5]);
sprintf(values[6],"%9.2f",fkce);
ShowLabel(&Labels[6],values[6]);
DrawText(sx+24,sy+208,"付款输入",clBlack,1);
DrawText(sx+16,sy+80,"▲",clNavy,1);
// Rectangle(sx+264,sy+32,ex-12,sy+243,clBlack,clBlack);
strcpy(value,"");
InBuffer(-1,WM_PAINT,0,0);
InBuffer(-1,WM_PAINTPOINT,0,0);
//消息循环
while(bLoop==2)
{
Message=Getkey();
switch(Message->h.RetKey)
{
case WM_PAINT: ShowLabel(&Labels[Message->x],values[Message->x]);
sprintf(values[5],"%9.2f",SPLists->fklp.ssje);
ShowLabel(&Labels[5],values[5]);
sprintf(values[6],"%9.2f",fkce);
ShowLabel(&Labels[6],values[6]);
break;
case WM_PAINTPOINT:
DrawBar(sx+16,sy+80,sx+32,sy+168,clSilver,0xff);
DrawText(sx+16,sy+80+k*18,"▲",clNavy,1);
break;
case UPKEY:
case F5KEY: if(k)
{
k--;
if(k==3) k=2;//lijing k==1
}
InBuffer(-1,WM_PAINTPOINT,0,0);
break;
case DOWNKEY:
case F6KEY: if(k<4)
{
k++;
if(k==3) k=4;//lijing k==2
InBuffer(-1,WM_PAINTPOINT,0,0);
}
break;
case CM_FKEDIT:TextEdit(&FKEdit,30,1,0);
break;
case ESCKEY:bLoop=1; // 放弃
break;
case CRKEY: bcfk=0;
if(Message->x==1) // 检查句柄
{ //是付款输入
ls=strlen(FKEdit.Text); //求输入的长度
if(ls>10) //大于5就认为是刷卡
{
strcpy(value,FKEdit.Text);
ResetEdit(&FKEdit);
bcfk=TiHuoKa(value,fkce); //提货卡
//lijing
Sleep(g_dyys);
while(_bios_keybrd(_KEYBRD_READY))
_bios_keybrd(_KEYBRD_READ);
//
SPLists->fklp.thkje+=bcfk;
sprintf(values[3],"%9.2f",SPLists->fklp.thkje);
InBuffer(-1,WM_PAINT,3,0);
}
else //直接输入,现金
{
bcfk=atof(FKEdit.Text); //本次付款
if(bcfk-fkce>=100)
{
MsgBoxEx("本次付款将使找零金额大于100.",1);
bcfk=0;
}
switch(k)
{
case 0:SPLists->fklp.xjje+=bcfk;//
sprintf(values[k],"%9.2f",SPLists->fklp.xjje);
break;
case 1:SPLists->fklp.zpje+=bcfk;//
sprintf(values[k],"%9.2f",SPLists->fklp.zpje);
break;
//lijing
case 2:SPLists->fklp.xykje+=bcfk;
sprintf(values[k],"%9.2f",SPLists->fklp.xykje);
InputXYK(50,50,310,360,bcfk);
break;
//
case 4:SPLists->fklp.qtje+=bcfk;//
sprintf(values[k],"%9.2f",SPLists->fklp.qtje);
break;
}
InBuffer(-1,WM_PAINT,k,0);
}
SPLists->fklp.ssje+=bcfk; //实收金额
fkce-=bcfk; //付款差额
if((SPLists->ysje>0&&fkce<=0)||
(SPLists->ysje<0&&fkce>=0))
{
SPLists->fklp.zbje=SPLists->fklp.ssje-
SPLists->ysje;
if(ls<10) bLoop=0;
else InBuffer(-1,CM_FKEDIT,0,0);
}
else
InBuffer(-1,CM_FKEDIT,0,0);
ResetEdit(&FKEdit);
}
break;
}
if(!BiosKey())
InBuffer(-1,CM_FKEDIT,0,0);
}
PutImage(sx,sy);
if(!bLoop)
{
sprintf(value,"Total %.2f",SPLists->ysje);
ShowGuXian(value,1,0);
sprintf(value," %.2f",SPLists->fklp.zbje);
ShowGuXian(value,2,0);
}
return bLoop;
}
//信用卡
int InputXYK(int sx,int sy,int ex,int ey,double fkje)
{
char value[51],values[7][15]={""};
short bLoop1=2; // 循环变量
int k=0;
int i=0,cardcount;
Msg *Message;
//定义卡号编辑框
TEdit KHEdit={2002,1,sx+92,sy+240,140,22,clWhite,clBlack,"",0,0,0,0,1};
TLabel Labels_yh[7]=
{{0,1,sx+48,sy+80, 60,18,clSilver,clNavy,clYellow,0,"",0},
{0,1,sx+48,sy+98, 60,18,clSilver,clNavy,clYellow,0,"",0},
{0,1,sx+48,sy+116,60,18,clSilver,clNavy,clYellow,0,"",0},
{0,1,sx+48,sy+134,60,18,clSilver,clNavy,clYellow,0,"",0},
{0,1,sx+48,sy+152,60,18,clSilver,clNavy,clYellow,0,"",0},
{0,1,sx+48,sy+170,60,18,clSilver,clNavy,clYellow,0,"",0},
{0,1,sx+48,sy+188,60,18,clSilver,clNavy,clYellow,0,"",0}};
TLabel Labels_mc[7]=
{{0,1,sx+150,sy+80, 60,18,clSilver,clNavy,clYellow,0,"",0},
{0,1,sx+150,sy+98, 60,18,clSilver,clNavy,clYellow,0,"",0},
{0,1,sx+150,sy+116,60,18,clSilver,clNavy,clYellow,0,"",0},
{0,1,sx+150,sy+134,60,18,clSilver,clNavy,clYellow,0,"",0},
{0,1,sx+150,sy+152,60,18,clSilver,clNavy,clYellow,0,"",0},
{0,1,sx+150,sy+170,60,18,clSilver,clNavy,clYellow,0,"",0},
{0,1,sx+150,sy+188,60,18,clSilver,clNavy,clYellow,0,"",0}};
if(!sql_xykxx())
{
MsgBoxEx("未建信用卡表",1);
return 0;
}
for(i=0;i<7;i++)
{
if(strlen(SPLists->fklp.xyk[i].km)==0)
break;
else
{
strcpy(Labels_yh[i].Caption,SPLists->fklp.xyk[i].yh);
strcpy(Labels_mc[i].Caption,SPLists->fklp.xyk[i].mc);
}
}
if(i==0)
return 0;
cardcount=i;
Window(sx,sy,ex,ey,clSilver,"信用卡",1);
DrawText(sx+24,sy+32,"选择信用卡类型:",clBlack,1);
DrawText(sx+16,sy+54, "─────────────",clBlack,1);
for(i=0;i<cardcount;i++)
{
ShowLabel(&Labels_yh[i],Labels_yh[i].Caption);
ShowLabel(&Labels_mc[i],Labels_mc[i].Caption);
}
DrawText(sx+16,sy+220,"─────────────-",clBlack,1);
DrawText(sx+24,sy+242,"卡号输入",clBlack,1);
DrawText(sx+16,sy+80,"◆",clNavy,1);
strcpy(value,"");
InBuffer(-1,WM_PAINTPOINT,0,0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -