📄 query.c
字号:
{
error=KEY_ERROR;
break;
}
num=numstr_to_long(numkey_buf,point,2);//转换输入数为十进制
if(!num||num>g_max_plu_no||num<(*plu_start))//检查其合法性
{
error=OVER_RANGE_ERROR;
break;
}
for(i=0;i<MAX_KEY_LEN;i++) numkey_buf[i]=0;//初始化数字输入缓冲区
step++;
//----------提示设置结果---------------//
if(step==1)
{
*plu_start=num;
sprintf(disp_buf,"请输入PLU的终止号\r起始号:%d\r",*plu_start);
}
else
{
*plu_end=num;
sprintf(disp_buf,"PLU范围:%u--%u\r",*plu_start,*plu_end);
}
clear_lcd(1,2);
lcd_disp(1,0,disp_buf);
con_disp(1,0,strlen(disp_buf),disp_buf);
if(step==1) break;
else return OK;
break;
default:
error=KEY_ERROR;
break;
}
}
}
#endif
#ifdef QY_BRANCH_RPT
/*==================================================================
函数功能:打印部门查询或清机报表
入口参数:function_no--功能号
出口参数:
返回值: ==OK,成功
!=0k,失败
全局变量:g_manufacturer_info
编制人: 日期:2003-06-30
==================================================================*/
uchar print_branch_rpt(uchar function)
{
uchar error;
uchar i,k,len;
uchar buf[60],buf1[15];
uchar report_date[7];
uchar qj[]={"清机"};
//uchar t_negative; //1:t_cash为负数 0:t_cash为正数
// uchar total_negative; //1:total_cash为负数 0:total_cash为正数
//uchar no_space; //用于计算负号的打印位置
//uchar branch_num;
long t_cash,total_cash;
//struct branch_struct branch[MAX_BRANCH_NUM+1];
struct branch_struct branch;
//----检查清除权限---//
if(function==BRANCH_REPORT_DEL&&check_user_card())
return USERCARD_MAC_ERROR;
/* for(i=0;i<MAX_BRANCH_NUM;i++)
{
error =read_eeprom(BRANCH_ADDR+i*(uint)sizeof(branch),(uint)sizeof(branch),&branch);
send_char(branch.lrc);
}
*/
/*error = read_eeprom(BRANCH_ADDR,(uint)(BRANCH_STRUCT_LEN*MAX_BRANCH_NUM),(uchar *)&branch);
if(error) return READ_EEPROM_FAIL;
for(i=0;i<MAX_BRANCH_NUM;i++)
{
error=lrcdata(BRANCH_STRUCT_LEN-1,0,(uchar *)&branch[i]);
if(error){if(i==0) return LRC_ERROR;else break;}
}
branch_num=i;//实际部门数
send_char(i);
*/
//HYS620
error = GotoHomePosition();
if(error)
return PRINT_FAIL;
//END HYS620
len=(PRINTAL_NUM-12)/2;
add_blank(len,buf);
strcat(buf,"部门查询报表");
if(function==BRANCH_REPORT_DEL)
memcpy(&buf[len+4],qj,4);
error=print_str(buf);
if(error) return(error);
strcpy(buf,"机器号:");
HexToStr(g_manufacturer_info.machinery_no,&buf[5],8);
error=print_str(buf);
if(error) return(error);
error = read_eeprom(REPORT_DATE,5,report_date);
if(error) return READ_EEPROM_FAIL;
for(i=0;i<5;i++) buf1[i] = report_date[i];//起始时间
read_rtc(buf);
for(i=0;i<5;i++) buf1[i+6] = buf[i];//当前时间
sprintf(buf,"20%02bx年%02bx月%02bx日至20%02bx年%02bx月%02bx日"
,buf1[0],buf1[1],buf1[2],buf1[6],buf1[7],buf1[8]);
error=print_str(buf);
if(error) return(error);
total_cash=0;
//total_negative=0;
for(i=0;i<MAX_BRANCH_NUM;i++)
{
error =read_eeprom(BRANCH_ADDR+i*(uint)sizeof(branch),(uint)sizeof(branch),&branch);
if(error) return READ_EEPROM_FAIL;
error=lrcdata(BRANCH_STRUCT_LEN-1,0,(uchar *)&branch);
if(error) return LRC_ERROR;
k=1;
if(branch.money&&branch.quantity)
{
//sprintf(buf,"%-20s",branch.name);
strcpy(buf,branch.name);
if(strlen(buf)>10) //如果名字的长度大于10,则将名字单独打印一行
{
error=print_str(buf);
if(error) return(error);
memset(buf,0,60);
memset(buf,' ',10);
}
pri_format(branch.quantity,5,buf1);
print_format(PRINTAL_NUM-19,&buf[strlen(buf)],buf1);
pri_format(branch.money,6,&buf[PRINTAL_NUM-15]);//&buf[PRINTAL_NUM-9]);
/*Alan 03-10-20
//针对负数情况的处理
if(!total_negative) total_cash+=branch[i].money;
else if(total_negative>branch[i].money) total_cash-=branch[i].money;
else
{
total_cash=branch[i].money-total_cash;
total_negative=0;
}
*/
total_cash+=branch.money;
error=print_str(buf);
if(error) return(error);
k=0;
}
if(branch.retreat_money&&branch.retreat_num)
{
if(k) sprintf(buf,"%-10s",branch.name);
else strcpy(buf," ");
pri_format3(branch.retreat_num,5,buf1);
print_format(PRINTAL_NUM-19,&buf[strlen(buf)],buf1);
pri_format3(branch.retreat_money,5,&buf[PRINTAL_NUM-15]);//&buf[PRINTAL_NUM-9]);
/*Alan 03-10-20
//willy 2003-8-27 17:09 在计算合计和总计时需要考虑负数的情况
if (total_negative) total_cash-=branch[i].retreat_money;
else if(total_cash>=branch[i].retreat_money) total_cash-=branch[i].retreat_money;
else
{
total_cash=branch[i].retreat_money-total_cash;
total_negative=1;
}
*///Alan 03-10-20
total_cash-=branch.retreat_money;
error=print_str(buf);
if(error) return(error);
//2005.11.7
t_cash=branch.money-branch.retreat_money;
sprintf(buf,"合计金额:");
add_blank(PRINTAL_NUM-19,&buf[9]);
pri_format(t_cash,7,&buf[PRINTAL_NUM-15]);//&buf[PRINTAL_NUM-10]);
/*Alan 03-10-20
if(t_negative)
{
for(no_space=PRINTAL_NUM-10;no_space<PRINTAL_NUM;no_space++)
if(buf[no_space]!=' ') break;
buf[no_space-1]='-'; //如果为负数则需要添加负号
}
*/
error=print_str(buf);
if(error) return(error);
}
}
sprintf(buf,"总计金额:");
add_blank(PRINTAL_NUM-19,&buf[9]);
pri_format(total_cash,7,&buf[PRINTAL_NUM-15]);//&buf[PRINTAL_NUM-10]);
/*Alan 03-10-20
if(total_negative)
{
for(no_space=PRINTAL_NUM-10;no_space<PRINTAL_NUM;no_space++)
if(buf[no_space]!=' ') break;
buf[no_space-1]='-'; //如果为负数则需要添加负号
}
*/
error=print_str(buf);
if(error) return(error);
if(g_printer_sel!=1)
{
#ifdef C6_VER
error=fpaper(8);
Fast_feed_paper_hang(140);
if(error) return LINE_FEED_FAIL;
#else
feed_on_line(8);
#endif
}
else
{
Wei_printer_feed_paper(8);
}
if(function==BRANCH_REPORT_DEL)
{
clear_lcd(2,1);
sprintf(buf,"清除中,请稍候...");
lcd_disp(2,0,buf);
for(i=0;i<MAX_BRANCH_NUM;i++)
{
error =read_eeprom(BRANCH_ADDR+i*(uint)sizeof(branch),(uint)sizeof(branch),&branch);
if(error) return READ_EEPROM_FAIL;
branch.money = 0;
branch.quantity = 0;
branch.retreat_num = 0;
branch.retreat_money = 0;
branch.lrc=lrcdata(BRANCH_STRUCT_LEN-1,1,&branch);
error = write_eeprom(BRANCH_ADDR+(uint)i*BRANCH_STRUCT_LEN,BRANCH_STRUCT_LEN,&branch);
if(error) return WRITE_EEPROM_FAIL;
}
//error = write_eeprom(BRANCH_ADDR,(uint)(BRANCH_STRUCT_LEN*MAX_BRANCH_NUM),(uchar *)&branch);
//if(error) return WRITE_EEPROM_FAIL;
read_rtc(report_date);
error = write_eeprom(REPORT_DATE,5,report_date);
if(error) return WRITE_EEPROM_FAIL;
}
clear_lcd(2,1); //清除成功后去掉残余字样
return OK;
}
#endif
//==================================================================
#ifdef QY_PLU_RPT
/*==================================================================
函数功能:打印plu查询报表
入口参数:plu_start--起始号;plu_end--终止号
出口参数:
返回值: ==OK,成功
!=0k,失败
全局变量:
编制人: 日期:2003-06-30
==================================================================*/
uchar print_plu_rpt(uint plu_start,uint plu_end)
{
uchar error,i,len;
uchar xdata buf[60],buf1[30];
struct plu_struct plu_t;
uint j;
//HYS620
error = GotoHomePosition();
if(error)
return PRINT_FAIL;
//END HYS620
len=(PRINTAL_NUM-12)/2;
add_blank(len,buf);
strcat(buf,"商品查询报表");
error=print_str(buf);
if(error) return(error);
strcpy(buf,"机器号:");
HexToStr(g_manufacturer_info.machinery_no,&buf[5],8);
error=print_str(buf);
if(error) return(error);
read_rtc(buf);
for(i=0;i<5;i++) buf1[i] = buf[i];//当前时间
sprintf(buf,"20%02bx年%02bx月%02bx日 %02bx时%02bx分",buf1[0],
buf1[1],buf1[2],buf1[3],buf1[4]);
error=print_str(buf);
if(error) return(error);
strcpy(buf,"商 品 号 商品名称\0");
error=print_str(buf);
if(error) return(error);
if(g_stocks_opened) strcpy(buf," 部 门 号 库存量 单价\0");
else strcpy(buf," 部 门 号 单价\0");
error=print_str(buf);
if(error) return(error);
strcpy(buf," 条 形 码 \0");
error=print_str(buf);
if(error) return(error);
for(j=plu_start-1;j<plu_end;j++)
{
error=read_plu(j,&plu_t);
if(error) return error;
memset(buf,0,60);
memcpy(buf1,plu_t.name,(uint)sizeof(plu_t.name)); //memcpy(buf1,plu_t.name,24);
buf1[24]=0;
sprintf(buf,"%04u",j+1);
memset(&buf+4,' ',8);
strcat(buf,buf1);
error=print_str(buf);
if(error) return(error);
sprintf(buf,"%2u",(uint)plu_t.branch);
for(i=strlen(buf);i<PRINTAL_NUM;i++) buf[i]=' ';
if(g_stocks_opened)
{
memset(buf1,0,30);
pri_format(plu_t.stocks,7,buf1);
strcpy(&buf+8,buf1);
}
pri_format(plu_t.price,6,&buf[18]);
error=print_str(buf);
if(error) return(error);
/*if(g_stocks_opened)
{
buf1[24] = 0;
sprintf(buf,"%04u",j+1);
print_format(PRINTAL_NUM-4,&buf[4],buf1);
pri_format(plu_t.stocks,7,&buf[PRINTAL_NUM-10]);
}
else
{
buf1[24] = 0;
sprintf(buf,"%04u",j+1);
print_format(PRINTAL_NUM-4,&buf[4],buf1);
}
#ifdef C6_VER
error=prt(buf);
#else
error=(uchar)str_print(buf);
#endif
if(error) return PRINT_FAIL;
sprintf(buf,"%2u",(uint)plu_t.branch);
add_blank(PRINTAL_NUM-12,&buf[2]);
pri_format(plu_t.price,6,&buf[PRINTAL_NUM-10]);
#ifdef C6_VER
error=prt(buf);
#else
error=(uchar)str_print(buf);
#endif
if(error) return PRINT_FAIL;*/
sprintf(buf,"%02bx%02bx%02bx%02bx%02bx%02bx",plu_t.bar_code[0],
plu_t.bar_code[1],plu_t.bar_code[2],plu_t.bar_code[3],plu_t.bar_code[4],plu_t.bar_code[5]);
// sprintf(buf,"%s",plu_t.bar_code);
error=print_str(buf);
if(error) return(error);
}
if(g_printer_sel!=1)
{
#ifdef C6_VER
error=Fast_feed_paper_hang(160);//fpaper(8);
error=Fast_feed_paper_hang(140);//fpaper(8);
if(error) return LINE_FEED_FAIL;
#else
feed_on_line(8);
#endif
}
else
{
Wei_printer_feed_paper(8);
}
return OK;
}
/*==================================================================
函数功能:打印plu销售查询或清机报表
入口参数:funtion--功能号;plu_start--起始号;plu_end--终止号
出口参数:
返回值: ==OK,成功
!=0k,失败
全局变量:
编制人: 日期:2003-06-30
==================================================================*/
uchar print_plu_trade_rpt(uchar funtion,uint plu_start,uint plu_end)
{
uchar error,i,k,len;
uchar xdata report_date[7];
uchar xdata buf[60],buf1[15];
uchar qj[]={"清机"};
//uchar t_negative; //1:t_cash为负数 0:t_cash为正数
// uchar total_negative; //1:total_cash为负数 0:total_cash为正数
//uchar no_space; //用于计算负号的打印位置
long t_cash,total_cash;
struct plu_struct plu_t;
uint j;
//----检查清除权限---//
if(funtion==PLU_SELL_REPORT_DEL&&check_user_card())
return USERCARD_MAC_ERROR;
//HYS620
error = GotoHomePosition();
if(error)
return PRINT_FAIL;
//END HYS620
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -