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

📄 qtsy31p.txt

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