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

📄 display.c

📁 税控收款机源码:拼音输入法,LCD,VFD驱动,IC卡驱动,税控国标
💻 C
📖 第 1 页 / 共 3 页
字号:
		strcpy(buf_t,"已经有发票,不能再录入\r");
		break;
			
	case INVOICE_INPUT_FAIL:
		strcpy(buf_t,"录入发票失败,请重试\r");
		break;
			
	case NO_DUTY_DATA:
		strcpy(buf_t,"无申报数据,请先汇总\r");
		break;
			
	case ALREADY_COLLECTED:
		strcpy(buf_t,"用户卡已汇总,请先申报\r");
		break;
	case MACH_COLLECTED:
		strcpy(buf_t,"机器已汇总\r");
		break;		
	case CLEAR_CARD_IDFAIL:
		strcpy(buf_t,"清机卡鉴别码错误\r");
		break;
			
	case USB_FALL:
		strcpy(buf_t,"USB通讯失败\r");
		break;
				
	//------------权限范围类-------------//
	case POWER_FAIL:
		strcpy(buf_t,"对不起,您的权限不满足\r");
		break;
			
	case MACH_NO_INITIALED:
		strcpy(buf_t,"机器未初始化,请先初始化\r");
		break;
		
	//------------信息提示类-------------//
	case USERCARD_INVO_END:
		strcpy(buf_t,"发票用完,请重新购买\r");
		break;
			
	case INVO_NO_OVERFLOW:
		strcpy(buf_t,"票号超出,清除后重新输入\r");
		break;
			
	case TAX_DECLARE_DATE:
		strcpy(buf_t,"允许报税\r");
		break;
			
	case LOCK_DATE:
		strcpy(buf_t,"请注意,锁机日期已到\r");
		break;
			
	case INVO_ROLL_END:
		strcpy(buf_t,"请录入新的发票卷\r");
		break;
			
	case INVO_ROLL_INPUT:
		strcpy(buf_t,"接下来请录入发票卷\r");
		break;
			
	case NOT_RETREAT:
		strcpy(buf_t,"该票号已退或已作废\r");
		break;
			
	case PLU_NOT_FOUND:       
		strcpy(buf_t,"PLU未找到\r");
		break;
		
	//----------非错误的提示----------//	
	case CANCEL:
		strcpy(buf_t,"操作取消\r");
		break;
			
	case OK:
		strcpy(buf_t,"操作成功\r");
		break;
			
	case NO_DATA:
		strcpy(buf_t,"无相关数据\r");
		break;
			
	case PLEASE_RETURN:
		strcpy(buf_t,"   \r");
		break;
			
	case POWER_FAIL_1:
		strcpy(buf_t,"权限不够(从销售菜单登录)\r");
		break;
			
	case MAX_FAU_ERR	:
		strcpy(buf_t,"审计记录已满!!!\r");
		break;
			
	case CARD_DATE_INVALID	:
		strcpy(buf_t,"对不起,卡已过期\r");
		break;
			
	case FILE_OVER:
		strcpy(buf_t,"卡已写满!\r");
		break;
			
	case RANGE_ERROR_BYMONTH:
		strcpy(buf_t,"按自然月报税未到日期\r");
		break;
			
	case INVO_ROLL_OVER:
		strcpy(buf_t,"用的发票卷数超出,请报税\r");
		break;
			
	case FIND_NO_FAIL:
		strcpy(buf_t,"未找到该票号的记录\r");
		break;
			
	case FIND_UPDATA_FAIL:
		strcpy(buf_t,"未找到升级工具\r");
		break;		
			
	default:
		sprintf(buf_t,"其它错误(编号:%d)\r",(uint)error1);
		break;
	}
	if((error1>1)&&(error1<50)&&(mode==0))Write_FAU_data(6,error1);             
	clear_lcd(3,1);//清屏
	lcd_disp(3,0,buf_t);
	//con_disp(3,0,strlen(buf_t));
}


/*--------------------------------------------------------------------
功能:交易过程显示,使用LCD的前三项,显示以交易项所在的部门优先显示
      按下PLU键后代替部门的显示
输入:uchar menu_num:交易的某一项;uchar brush_area:刷新区域
输出:
--------------------------------------------------------------------*/
extern uchar branch_no1; //作交易时要不要刷新部类的标志
extern uint plu_no1;

uchar  disp_trade(uchar brush_area,struct menu_struct * menu,
				  uchar * input_str,uchar condisp_area,
				  struct trade_info_struct* trade_info)
{
	struct plu_struct plu;
	struct branch_struct branch;
	uint   plu_no; //当前菜单的PLU编号
	uchar  branch_no; //当前菜单的部门编号
	uchar xdata name[25];
	uchar  rlt;
	uchar len;
	ulong temp,x;
    uchar times;
	
	uchar xdata buf[50],buf1[50],tmp[50];
	#define HALF 12
    
	set_value0(&plu,(uint)sizeof(plu));
	set_value0(&name,(uint)sizeof(name));
	set_value0(&branch,(uint)sizeof(branch));
	if(trade_info->menu_num==0 && brush_area!=INPUT_AREA)
		return(0);
		
	//客显
	#ifdef __VFD_H_
	ClrVFD();
	DispNumVfd(trade_info->total_money);
	DisplayVFD(2,VFD_DOT);
	
	//	sprintf(buf1,"%lu.%02u",trade_info->total_money/100,
	//	(uint)(trade_info->total_money%100)); 
	//	clear_disp();
	//	disp_r_l(buf1); 
	#endif
	
	//LCD显示
	if(brush_area==PLU_AREA|| brush_area==ALL_AREA)
	{
		plu_no=menu[trade_info->menu_num-1].no;
		branch_no=menu[trade_info->menu_num-1].branch;
		if((plu_no!=plu_no1)||(branch_no!=branch_no1))
		{
			plu_no1=plu_no;
			branch_no1=branch_no;
			if(plu_no) //输入了PLU编号,显示PLU的名称和PLU的编码
			{
				rlt=get_plu(&plu,plu_no-1);//从0号开始读 
				if(rlt)
					return(rlt);
				memcpy(name,plu.name,(uint)sizeof(plu.name));
				sprintf(buf1,"编码:%u",(uint)plu_no);
				add_blank(MAX_LCD_COL-strlen(buf1),buf);
				strcat(buf1,buf);
			}
			else //显示部门名称和部门编号
			{
				rlt=get_branch(&branch,branch_no-1); //从0号开始读
		   
				if(rlt)
					return(rlt);
				memcpy(name,branch.name,(uint)sizeof(branch.name));
				sprintf(buf1,"部类:%u",(uint)branch_no);
				add_blank(MAX_LCD_COL-strlen(buf1),buf);
				strcat(buf1,buf);
			}
			lcd_disp(0,0,buf1);
			sprintf(buf,"名称:%s",name);
			add_blank(MAX_LCD_COL-strlen(buf),tmp);
			strcat(buf,tmp);
			//lcd_disp(1,0,buf);
			if(condisp_area==PLU_AREA)con_disp2(1,0,4,buf);
			//con_disp(1,0,4,buf);
			else 
			{
				lcd_disp(1,0,buf);
			}
			buf[0]=0;
		}
	}
	
	if((brush_area==MONEY_AREA || brush_area==ALL_AREA )&&(condisp_area==MONEY_AREA))
	{
		//2005.11.26
        temp=menu[trade_info->menu_num-1].quantity&0xffffff;
        times=menu[trade_info->menu_num-1].quantity>>24;
		
		if(times>0)
		{
			x=mypow(10,times);
			strcpy(tmp,"数量%lu.%02lu");//2005.12.26
			tmp[10]=times|0x30;	
			sprintf(buf,tmp,temp/x,(temp%x));
		}
		else 
			sprintf(buf,"数量%lu",temp);//

       	sprintf(buf1,"金额%lu.%02u",menu[trade_info->menu_num-1].money/100,
			(uint)(menu[trade_info->menu_num-1].money%100));
 		len=strlen(buf);
		if((strlen(buf1)<HALF)&&(strlen(buf)<HALF))
		 {
		  len=HALF;
		  add_blank(HALF-strlen(buf),buf1);
		  strcat(buf,buf1);
		  sprintf(buf1,"金额%lu.%02u",menu[trade_info->menu_num-1].money/100,
			(uint)(menu[trade_info->menu_num-1].money%100)); 
		 }
		strcat(buf,buf1);
		
		//lcd_disp(2,0,buf);
		if(condisp_area==MONEY_AREA)
		//con_disp(2,0,4,buf);
		
	    con_disp2(2,len,4,buf);
		buf[0]=0;
	}
 //2006.11.26	
  
  if(((brush_area==QUANTITY_AREA || brush_area==ALL_AREA)&&(condisp_area==QUANTITY_AREA))||(condisp_area==PLU_AREA))
  
  //)
	{

	     //2005.11.26
	          
        temp=menu[trade_info->menu_num-1].quantity&0xffffff;
        times=menu[trade_info->menu_num-1].quantity>>24;
		
		if(times>0)
		{
			x=mypow(10,times);
			strcpy(tmp,"数量%lu.%02lu");
			tmp[10]=times|0x30;
			sprintf(buf,tmp,temp/x,(temp%x));//2005.12.26
		}
		else 
			sprintf(buf,"数量%lu",temp);//
		 /*
		sprintf(buf,"数量%lu.%02u",menu[trade_info->menu_num-1].quantity/100,//
			(uint)(menu[trade_info->menu_num-1].quantity%100));
		/*if(strlen(buf)<HALF)
		 {
		  add_blank(HALF-strlen(buf),buf1);
		  strcat(buf,buf1);
		 }
		 */
		
	   sprintf(buf1,"金额%lu.%02u",menu[trade_info->menu_num-1].money/100,
			(uint)(menu[trade_info->menu_num-1].money%100)); 
		if((strlen(buf1)<HALF)&&(strlen(buf)<HALF))
		 {
		  add_blank(HALF-strlen(buf),buf1);
		  strcat(buf,buf1);
		  
		  sprintf(buf1,"金额%lu.%02u",menu[trade_info->menu_num-1].money/100,
			(uint)(menu[trade_info->menu_num-1].money%100)); 
		 }
		strcat(buf,buf1);
		//lcd_disp(2,0,buf);
		if((condisp_area==QUANTITY_AREA)||(condisp_area==PLU_AREA))
		//con_disp(2,0,4,buf);
		con_disp2(2,0,4,buf);
		
		buf[0]=0;
		 
	}
    //if((brush_area==TOTAL_AREA || brush_area==ALL_AREA)&&(condisp_area==TOTAL_AREA))
	if((brush_area!=PLU_AREA)&&(condisp_area!=QUANTITY_AREA))
	{
	    strcpy(buf,input_str);
		//add_blank(HALF-strlen(buf),buf1);
		//strcat(buf,buf1);
		sprintf(buf1,"合计%lu.%02u",trade_info->total_money/100,
			(uint)(trade_info->total_money%100));
        if(strlen(buf1)<HALF)
		 {
		  add_blank(HALF-strlen(buf),buf1);
		  strcat(buf,buf1);
		  sprintf(buf1,"合计%lu.%02u",trade_info->total_money/100,
			(uint)(trade_info->total_money%100));
		 }
		 
		//add_blank(HALF-strlen(buf),buf1);
		strcat(buf,buf1);
		lcd_disp(3,0,buf);
		//if(condisp_area==TOTAL_AREA)
		//con_disp(3,HALF,4,buf);
		
		buf[0]=0;
	}
	/*if(bruash_area==INPUT_AREA || bruash_area==ALL_AREA)
		
	{
		strcpy(buf,input_str);
		add_blank(HALF-strlen(buf),buf1);
		strcat(buf,buf1);
		lcd_disp(3,0,buf); //动态显示区
		buf[0]=0;
	}
   */
	return(0);
}
/*----------------------------------------------------------
 函数功能:由主菜单功能号获取其功能名称
 说明:                                
 入口参数:function_no--菜单功能号;                                 
 出口参数:*name--返回的菜单名称缓冲区地址  
 返回值:
 全局变量:   
 外部函数:                           
 编制人:     日期:2004-01-10                             
 ----------------------------------------------------------*/
/*void get_menu_name_hm(uchar function_no,uchar *name)
{
  switch(function_no)
  {
   
    case EXCHANGE:
     strcpy(name,"销售\r"); 
    break;
    case READ_REPORT:
      strcpy(name,"查询\r");
    break;	
    case REPORT_TAX:
      strcpy(name,"报税\r");
    break;
    case SETUP:
      strcpy(name,"设置\r");
    break;
    case EXERCITATION:
      strcpy(name,"培训\r");
    break;
	case FAUCLASS:
      strcpy(name,"审计\r");
    break;
    default:
      sprintf(name,"%bu号功能\r",function_no);
    break;
	
  }
}*/

void get_menu_name_hm(uchar cur_line,uchar page_displayed)
{
	uchar name[90];
  
	uchar tempx,tempy;
	static uchar lastline=0;
	//2005.11.12
	strcpy(name,"  1:销售      2:报表");
	strcpy(&name[30],"  3:报税      4:设置");
	strcpy(&name[60],"  5:培训      6:审计\r"); 
	tempx=(cur_line-1)/2;
	if(cur_line%2)tempy=4;
	else       tempy=16;
	//if((!page_displayed)||(page_displayed==2))
	//{
	if(!page_displayed)
	{
 
		lcd_disp(0,0,name);
		lcd_disp(1,0,&name[30]);
		lcd_disp(2,0,&name[60]); 
  
	}
	else 
	{
		if(lastline!=tempx)
		{
			lcd_disp(lastline,0,&name[lastline*30]);
			lastline=tempx;
		}
		//lcd_disp(tempx,0,&name[tempx*30]); 
	}
  
	//con_disp1(tempx,tempy,4,&name[tempx*30+tempy]); 
	con_disp2(tempx,tempy,4,&name[tempx*30]); 
	/*}
	else if(page_displayed==1)
	{
		strcpy(guanggao,"欢迎使用税控收款机");
		lcd_roll_disp(3,guanggao);
	}
	*/
}
/*----------------------------------------------------------
 函数功能:由查询档某一菜单项功能号获取其功能名称
 说明:                                
 入口参数:layer--菜单级别;function_no--菜单功能号;                                 
 出口参数:*name--返回的菜单名称缓冲区地址  
 返回值:
 全局变量:   
 外部函数:                           
 编制人:    日期:2003-06-17                             
 ----------------------------------------------------------*/
void get_menu_name_qy(uchar layer,uchar function_no,uchar *name)
{

  if(layer==FST_LAYER_MENU)
  {
    switch(function_no)
    {
      case QUERY:
        sprintf(name,"查询\r");
      break;	
      default:
        sprintf(name,"%bu号功能\r",function_no);
      break;
    }  
  }
  else if(layer==SND_LAYER_MENU)
  {	
    switch(function_no)
    {
      case BUSINESS_RPT://	1		
        strcpy(name,"商业报表(打印)\r");
      break;
      case BUSINESS_RPT_DEL://	1		
        strcpy(name,"商业报表(打印并清除)\r");
      break;
      default:
        sprintf(name,"%bu号功能\r",function_no);
      break;
    }	
  }
  else if(layer==MAX_LAYER_MENU)	
  {
    switch(function_no)
    {
      case BRANCH_REPORT:
        strcpy(name,"部门查询报表\r");
      break;
      case PLU_REPORT:
        strcpy(name,"商品查询报表\r");
      break;
      case PLU_SELL_REPORT:
        strcpy(name,"商品销售查询报表\r");
      break;
      case DAY_REPORT:
        strcpy(name,"日销售查询报表\r");
      break;
      case MONTH_REPORT:
        strcpy(name,"月销售查询报表\r");
      break;
      case RECEIVER_REPORT:
        strcpy(name,"收款员查询报表\r");
      break;
      case TRADE_REPORT:
        strcpy(name,"营业员查询报表\r");
      break;
      
      case BRANCH_REPORT_DEL:
        strcpy(name,"部门报表(打印并清除)\r");
      break;
      case PLU_SELL_REPORT_DEL:
        strcpy(name,"商品销售报表(打印清除)\r");
      break;
      case DAY_REPORT_DEL:
        strcpy(name,"日报表(打印并清除)\r");
      break;
      case MONTH_REPORT_DEL:
        strcpy(name,"月报表(打印并清除)\r");
      break;
      case RECEIVER_REPORT_DEL:
        strcpy(name,"收款员报表(打印并清除)\r");
      break;
      case TRADE_REPORT_DEL:
        strcpy(name,"营业员报表(打印并清除)\r");
      break;
      default:
        sprintf(name,"%bu号功能\r",function_no);
      break;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -