📄 fun.bak
字号:
#include "include.h"
struct goods pre_set_goods[10]; //十个预置货物
/*------------------------------
显示预置值清单 10个 分3页
按下相应按键返回预置单价
--------------------------------*/
uchar get_pre_num()
{
uchar i,x=0,key;
for(;;)
{
key=0xff;
lcd_clr();
for(i=0;i<4;i++)
{
lcd_display_one_num(0,i*2,i+x);
lcd_display_uint(16,i*2,(uint)pre_set_goods[i+x].name);
lcd_display_float(48,i*2,pre_set_goods[i+x].price);
}
while(key==0xff)
key=scan_key();
if(key==0x0f&x<6)
{
x++;
}
else if(key==0x0e&x>0)
{
x--;
}
else if(key<=10)
{
lcd_clr();
return key;
}
}
}
/*------------------------------
显示预置值清单 10个 分3页
按下相应按键修改预置单价
--------------------------------*/
void set_pre_price()
{
uchar list_num;
uchar i,x=0,key;
for(;;)
{
key=0xff;
lcd_clr();
for(i=0;i<4;i++)
{
lcd_display_one_num(0,i*2,i+x);
lcd_display_uint(16,i*2,(uint)pre_set_goods[i+x].name);
lcd_display_float(48,i*2,pre_set_goods[i+x].price);
}
while(key==0xff)
key=scan_key();
if(key==0x0f&x<6)
{
x++;
}
else if(key==0x0e&x>0)
{
x--;
}
else if(key<=10)
{
lcd_clr();
pre_set_goods[key].name=(uchar)input_float(0,0);
pre_set_goods[key].price=input_float(0,2);
}
else if(key==0x0b)
{
list_num=flash_read_list_num();
flash_clr(0x8000); //清除FLASH的0x8000
flash_wr(pre_set_goods,list_num); //将数据存入FLASH
break;
}
}
}
/*-----------------------------------
查看历史清单
list_num:当前清单ID
-------------------------------------*/
uchar show_list(uchar list_num)
{
uchar key=0xff;
struct list code *add;
if(list_num==0)
list_num=99;
else list_num--;
lcd_display_list_head();
for(;;)
{
key=0xff;
add=(struct list code *)(0x4c00+list_num*128);
lcd_display_time(16,0,add->year);
lcd_display_time(48,0,add->month);
lcd_display_time(80,0,add->day);
lcd_display_time(0,2,add->hour);
lcd_display_time(32,2,add->minute);
lcd_clr_page(4,40,56);
lcd_display_uint(32,4,(uint)(add->sales));
lcd_clr_page(6,32,120);
lcd_display_float(32,6,add->sum_price);
lcd_display_uint(80,4,(uint)(add->list_num)); //清单编号 测试用
lcd_display_uint(80,6,list_num); //正确清单编号 测试用
while(key==0xff)
key=scan_key();
if(key==0x0f) //切换下张清单
{
if(list_num==99)
list_num=0;
else list_num++;
}
else if(key==0x0e) //切换上张清单
{
if(list_num==0)
list_num=99;
else list_num--;
}
else if(key==0x0c) //退出清单查看
{
lcd_clr();
return 0;
}
else if(key==0xd) //查看清单明细
{
show_thing(add->buy);
lcd_display_list_head();
}
}
}
uchar show_thing(struct thing buy[])
{
uchar key;
uchar thing_num=0;
lcd_display_thing();
for(;;)
{
key=0xff;
lcd_display_uint(32,0,(uint)(buy[thing_num].name));
lcd_display_float(32,2,buy[thing_num].unit_price);
lcd_display_float(32,4,buy[thing_num].weight);
lcd_display_float(32,6,buy[thing_num].unit_price*buy[thing_num].weight);
while(key==0xff)
key=scan_key();
if(key==0x0f) //切换下一货物
{
if(thing_num==11&buy[0].name!=0xff)
thing_num=0;
else if(buy[thing_num+1].name!=0xff)
thing_num++;
}
else if(key==0x0e) //切换上一货物
{
if(thing_num==0&buy[11].name!=0xff)
thing_num=11;
else if(buy[thing_num-1].name!=0xff)
thing_num--;
}
else if(key==0x0c) //退出清单查看
{
lcd_clr();
return 0;
}
}
}
void print_list(struct list list1)
{
uchar i;
TI=1;
printf("\x18\x1c\x26 "); //清除打印机缓存 进入中文模式
TI=1;
// printf("%buabc%bu\n",list1.year+2000,list1.minute);
printf("%.2d年%d月%d日\n ",(int)list1.year,(int)list1.month,(int)list1.day);
TI=1;
printf("%.2d时%d分\n ",(int)list1.hour,(int)list1.minute);
TI=1;
printf("总额:%.2f元\n ",list1.sum_price);
TI=1;
printf("%d号销售员\n ",(int)list1.sales);
for(i=0;(list1.buy[i].name!=0xff)&(i<12);i++)
{
TI=1;
printf("\x1c\x2e --------------\n ");
TI=1;
printf("\x1c\x26商品编号:%d\n ",(int)list1.buy[i].name);
TI=1;
printf("单价:%.2f元\n ",list1.buy[i].unit_price);
TI=1;
printf("重量:%.3fKg\n ",list1.buy[i].weight);
TI=1;
printf("金额:%.2f\n ",(list1.buy[i].unit_price)*(list1.buy[i].weight));
}
TI=1;
printf("\x1c\x2e --------------\n ");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -