📄 setup.c
字号:
#else
feed_on_line(1);
#endif
continue;
}
#ifdef HYS620
else if(key==BACK_PAPER) //响应C8上的退纸键
{
back_on_dot(120);
continue;
}
#endif
else
over_mode=choose_menu_line(key,menu_num,&cur_line);//否则选择菜单项,当前行将移到新位置
switch(over_mode)
{
case IS_CHOOSED://若选定某项菜单,
if(layer<MAX_LAYER_MENU)//在最后菜单级之前,则到其对应下一级的首行开始反显页面
{
last_line=cur_line;//保存此级当前项所在行位置
cur_line=1;//下一级的首行
}
else//若此时为最后菜单级时,则取得相应功能号
function_no=menu_Lmax_ST[last_line-1][cur_line-1];
if((layer==SND_LAYER_MENU)&&(last_line==SET_MANUFACTURE))//需要清机卡的操作
{
strcpy(buf,"请插入设置卡后\r 按任意键继续");
clear_lcd(0,2);
lcd_disp(0,0,buf);
while(1)
{
openbacklight();
key=get_key();
if(low_pwr) return POWER_OFF;//监测到断电了,则exit
if (!key) continue; //如果无键按下则重新扫描
if(key==VOID)layer--;
result=0;
break; //如果按下键就退出
}
//result=enter_application_direct(USER_CARD);
//if(result) return result;
}
layer++;//指到其对应下一级
break;
case EXIT_CHOOSE://若选择返回
if(layer>FST_LAYER_MENU)//在第1级菜单之前,则回到其对应的上一级菜单项反显
{
layer--;
cur_line=last_line;
if(layer==SND_LAYER_MENU) last_line=1;
}
break;
default://未选定,则继续等待按键
break;
}
//-------------2.1.3 显示当前菜单级页面-----------------------//
switch(layer)
{
case SND_LAYER_MENU:
display_menu_page(switch_mode,layer,menu_L2_ST,cur_line);
menu_num=strlen(menu_L2_ST);
break;
case MAX_LAYER_MENU:
display_menu_page(switch_mode,layer,menu_Lmax_ST[last_line-1],cur_line);
menu_num=strlen(menu_Lmax_ST[last_line-1]);
break;
default://若到达功能级,则转到功能设置
break;
}
//===============2.2 功能设置=========================//
if(layer==FUNCTION_LAYER)//若到达功能级
{
//-----------2.2.1 执行相应功能------------//
switch(function_no)
{
//-------获取发票卷--------//
case GET_INVOICE_NO:
if(!mach_initial)
{
result=MACH_NO_INITIALED;
break;
}
//----------提示当前功能--------------//
get_menu_name_sp(MAX_LAYER_MENU,function_no,buf);
lcd_disp(0,0,buf);
clear_lcd(1,3);
//从EEPROM中检查是否还有暂存的发票卷未录入税控卡
//result=get_distribute_invoice(0,&distribute_invoice,&index_no,0);
//2005.8.5
result=get_V_invoice(tempbuf);
if(result==POWER_OFF)return(result);
if((result!=0)&&(result!=tempbuf[result]))return(result);
j=result;
//send_str(j,tempbuf);
if(result) //从EEPROM中没有未录入税控卡的暂存发票卷154
{
result=check_user_card();//-------检查用户卡合法性--------//
if(result)
{
result=CARD_ERROR;
break;
}
clear_lcd(0,4);
sprintf(buf,"请输入要获取的发票卷数\r最大输入%bu卷",j);//sprintf(buf,"请输入要获取的发票卷数[1-%bu]",MAX_DISTRIBUTE_NUM);//1-50
lcd_disp(0,0,buf);
result=wait_input_num(&num,0,2,j);//wait_input_num(&num,0,2,MAX_DISTRIBUTE_NUM); //不允许输入小数
if(result==POWER_OFF) return POWER_OFF;
else if(result==CANCEL) break;
//从用户卡分发发票
result=get_invoice_nb((uchar)num,tempbuf);//从用户卡分发的发票卷暂存在EEROM中
break;
}
else //从EEPROM中还有未录入税控卡的暂存发票卷
{
clear_lcd(0,4);
sprintf(buf,"对不起,机器位置已满");
lcd_disp(0,0,buf);
//memset(buf,0,50);
/*sprintf(buf,"还有发票卷起止号:\r%08lu--%08lu\r可以录入到税控卡\r",
distribute_invoice.invoice_start_no,distribute_invoice.invoice_end_no);
lcd_disp(0,0,buf);
//clear_lcd(2,2);
sprintf(buf," 按[取消]退出");
lcd_disp(3,0,buf);
//----等待按键执行设置操----//
result=wait_usal_key(2);//只接受[取消]键
if(result==POWER_OFF) return POWER_OFF;
else
{
clear_lcd(0,3);
break;
}
*/
}
break;
//-------录入发票卷--------//
case SET_INVOICE_ROLL:
if(!mach_initial)
{
result=MACH_NO_INITIALED;
break;
}
//----------提示当前功能--------------//
get_menu_name_sp(MAX_LAYER_MENU,function_no,buf);
lcd_disp(0,0,buf);
//---检查发票是否用完---//
//从税控卡获得发票卷的信息
result=get_invoice_roll_info(&inv_roll_info);
if(result==0) //没有用完
{
strcpy(buf,"对不起,当前发票卷没用完");
clear_lcd(2,2);
lcd_disp(2,0,buf);
result=PLEASE_RETURN;
break;
}
if(result!=INVO_ROLL_END)return(result);
clear_lcd(0,4);
/*sprintf(buf,"请输入发票起始号码");
lcd_disp(0,0,buf);
result=wait_input_num(&start_no,0,10,0);
if(result==POWER_OFF) return POWER_OFF;
else if(result==CANCEL) break;
//发票用完,从EEPROM中检查是否有未录入税控卡的暂存发票卷
result=get_distribute_invoice(start_no,&distribute_invoice,&index_no);
if(result==READ_EEPROM_FAIL)
return(result);
if(result) //从EEPROM中没有未录入税控卡的暂存发票卷
{
strcpy(buf,"请先获取新发票卷!!\r 按[取消]退出\r");
clear_lcd(1,3);
lcd_disp(1,0,buf);
wait_usal_key(2);//接受[取消]键
break;
}
else
{
sprintf(buf,"已获取的发票卷起止号:\r%010lu--%010lu\r",
distribute_invoice.invoice_start_no,distribute_invoice.invoice_end_no);
lcd_disp(1,0,buf);
strcpy(buf," 按[确认]录入");
lcd_disp(3,0,buf);
*/
result=get_distribute_invoice(0,&distribute_invoice,&index_no,0);
if((distribute_invoice.invoice_start_no==0)&&(distribute_invoice.invoice_end_no==0))
{
strcpy(buf,"对不起,发票卷已用完!!\r 请取发票卷!");
clear_lcd(2,2);
lcd_disp(2,0,buf);
result=PLEASE_RETURN;
break;
}
sprintf(buf,"有发票卷起止号:\r%08lu--%08lu\r可以录入到税控卡",
distribute_invoice.invoice_start_no,distribute_invoice.invoice_end_no);
lcd_disp(0,0,buf);
sprintf(buf,"按上/下选择 按[确定]录入");
lcd_disp(3,0,buf);
i=index_no;
j=index_no;
k=index_no;
end_index=49;
while(1)
{
if(low_pwr) return POWER_OFF;//监测到断电了,则exit
key=get_key();
if (!key) continue; //如果无键按下则重新扫描
if(key==VOID) {result=CANCEL; break;}
else if((key== '8')||(key== '2'))
{
if((key== '8')&&(j>=i)){if((j==i)&&(i==0))j=0;else j--;}
else if(key== '2'){if(j<end_index)j++;else j=0;}
else continue;
if((j>=0)&&(j<50))
result=get_distribute_invoice(0,&distribute_invoice,&index_no,j);
//else continue;
if(!result)
{
k=index_no;
j=index_no;
sprintf(buf,"有发票卷起止号:\r%08lu--%08lu\r可以录入到税控卡\r",
distribute_invoice.invoice_start_no,distribute_invoice.invoice_end_no);
lcd_disp(0,0,buf);
sprintf(buf,"按上/下选择 按[确定]录入");
lcd_disp(3,0,buf);
}
else if(result==INVO_ROLL_END){index_no=k;j=index_no;end_index=k;}//buf[1]=1;
}
else if(key==ENTER)
{
result=input_invoice_nb(&distribute_invoice,index_no);//录入税控卡
if(result==0) result=OK;
break; //如果按下确认键就退出
}
continue;
}
//----等待按键执行设置操----//
/* result=wait_usal_key(1);//接受[取消]键或[确认]键
if(result==POWER_OFF) return POWER_OFF;
else if(result==CANCEL)
{
break;
}
result=input_invoice_nb(&distribute_invoice,index_no);//录入税控卡
if(result==0) result=OK;
//}
*/
break;
#ifdef DISPLAY_PRODUCER
//-------------显示出厂信息-------------
case DISP_PRODUCER:
display_producer();
result=0;
break;
#endif
//-------设置固定加成\折扣\辅币兑换率--------//
case FIXED_SERVICE:
case FIXED_DISCOUNT:
//#ifdef NEED_BIT
case SET_BIT_RATE:
//#endif
if(!mach_initial)
{
result=MACH_NO_INITIALED;
break;
}
result=set_parameter_struct(function_no);
if(result==POWER_OFF) return result;////断电,返回
break;
//-------设置是否色标定位--------//
case INVOICE_LOCATE:
if(!mach_initial)
{
result=MACH_NO_INITIALED;
break;
}
clear_lcd(0,4);
//----------提示当前功能--------------//
get_menu_name_sp(MAX_LAYER_MENU,function_no,buf);
lcd_disp(0,0,buf);
//----------提示下一步操作---------------//
strcpy(buf,"当前状态: 色标定位状态\r");
if(!g_invoice_locate)
{
buf[9] = 0xb7;//非色标
buf[10] = 0xc7;
//buf[12] = 0;
}
strcat(buf," 按[确认]切换\r");
lcd_disp(1,0,buf);
//----等待按键,确认则执行设置操----//
result=wait_usal_key(1);
if(result==POWER_OFF) return POWER_OFF;
else if(result==CANCEL) break;
result=set_switch_para(&g_invoice_locate,INVOICE_LOCATE_ADDR);
if(result==0) result=OK;
//----------提示设置结果---------------//
strcpy(buf,"当前状态: 色标定位状态\r");
if(!g_invoice_locate)
{
buf[9] = 0xb7;//非
buf[10] = 0xc7;
//buf[12] = 0;
}
clear_lcd(1,1);
lcd_disp(1,0,buf);
con_disp(1,0,strlen(buf),buf);
break;
//-------设置是部门或PLU快捷键--------//
case BRANCH_PLU_SWITCH:
if(!mach_initial)
{
result=MACH_NO_INITIALED;
break;
}
clear_lcd(0,4);
//----------提示当前功能--------------//
get_menu_name_sp(MAX_LAYER_MENU,function_no,buf);
lcd_disp(0,0,buf);
//----------提示下一步操作---------------//
strcpy(buf,"当前状态:");
if(g_branch_plu_switch)
strcat(buf,"PLU快捷键\r");
else
strcat(buf,"部门快捷键\r");
strcat(buf," 按[确认]切换\r");
lcd_disp(1,0,buf);
//----等待按键,确认则执行设置操----//
result=wait_usal_key(1);
if(result==POWER_OFF) return POWER_OFF;
else if(result==CANCEL) break;
result=set_switch_para(&g_branch_plu_switch,BRANCH_PLU_SWITCH_ADDR);
if(result==0) result=OK;
//----------提示设置结果---------------//
strcpy(buf,"当前状态:");
if(g_branch_plu_switch)
strcat(buf,"PLU快捷键\r");
else
strcat(buf,"部门快捷键\r");
clear_lcd(1,1);
lcd_disp(1,0,buf);
con_disp(1,0,strlen(buf),buf);
break;
//-------设置是否PDA输入--------//
case PDA_SWITCH:
if(!mach_initial)
{
result=MACH_NO_INITIALED;
break;
}
clear_lcd(0,4);
//----------提示当前功能--------------//
get_menu_name_sp(MAX_LAYER_MENU,function_no,buf);
lcd_disp(0,0,buf);
//----------提示下一步操作---------------//
strcpy(buf,"当前状态: 需要手写板输入\r");
if(!g_pda_switch)
{
buf[9] = 0xb2;//不
buf[10] = 0xbb;
}
strcat(buf," 按[确认]切换\r");
lcd_disp(1,0,buf);
//----等待按键,确认则执行设置操----//
result=wait_usal_key(1);
if(result==POWER_OFF) return POWER_OFF;
else if(result==CANCEL) break;
result=set_switch_para(&g_pda_switch,PDA_SELECT);
if(result==0) result=OK;
//----------提示设置结果---------------//
strcpy(buf,"当前状态: 需要手写板输入\r");
if(!g_pda_switch)
{
buf[9] = 0xb2;//不
buf[10] = 0xbb;
}
clear_lcd(1,1);
lcd_disp(1,0,buf);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -