📄 display.c
字号:
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 + -