⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qtsyba~2.c

📁 dos下pos机程序 连接sybase数据库 使用Microsoft c7 编译
💻 C
📖 第 1 页 / 共 5 页
字号:
	   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 + -