📄 report1.lst
字号:
507 1 strcpy(&WinHint[2][1],"生产日期:");
508 1 for(i=0;i<8;i++)
509 1 WinHint[2][10+i]=str[i+16];//机器生产日期
510 1
511 1 strcpy(&WinHint[3][1],"硬件版本号:");
512 1 for(i=0;i<18;i++)
513 1 WinHint[4][1+i]=str[24+i];
514 1
515 1 strcpy(&WinHint[5][1],"软件版本号:");
516 1 for(i=0;i<18;i++)
517 1 WinHint[6][1+i]=str[42+i];
518 1
519 1 if(flag == 1) //显示
520 1 {
521 2 while(1)
522 2 {
523 3 InitVal[0]=K_TC;
524 3 InitVal[1]=0;
525 3 Windows(1,0,InitVal);
526 3 if(*InitVal==K_TC)return;//退出
527 3 }
528 2 }
529 1 else if(flag == 2)//打印
530 1 {
531 2 PrintLine("机器出厂数据");
532 2
533 2 strcpy(PrintBuf,&WinHint[0][1]);
534 2 strcpy(&PrintBuf[9],&WinHint[1][1]);
535 2 PrintStr(PrintBuf);
536 2
537 2 PrintTime("开票日期:",&str[16],PrintBuf);
538 2 PrintStr(PrintBuf);
539 2
540 2 strcpy(PrintBuf,&WinHint[3][1]);
C51 COMPILER V8.01 REPORT1 03/28/2006 09:49:26 PAGE 10
541 2 strcpy(&PrintBuf[11],&WinHint[4][1]);
542 2 PrintStr(PrintBuf);
543 2
544 2 strcpy(PrintBuf,&WinHint[5][1]);
545 2 strcpy(&PrintBuf[11],&WinHint[6][1]);
546 2 PrintStr(PrintBuf);
547 2
548 2 PrintLine("");
549 2 PrintStr("电子存根");
550 2 }
551 1 else;
552 1 }
553
554
555 /*-----------------------------------------------------------------
556 税种税目信息的显示与打印
557 flag = 1:显示
558 flag = 2:打印
559 -----------------------------------------------------------------*/
560 void TaxTax(uchar flag,uchar *str)
561 {
562 1 uchar i=0,InitVal[4],PrintBuf[50];
563 1 gyt2 *xp;
564 1
565 1
566 1 WindowsSet(7);
567 1
568 1 strcpy(&WinHint[0][1],"税种税目索引号:");
569 1 NumToStr(str[0],&WinHint[0][16],0);
570 1
571 1 strcpy(&WinHint[1][1],"税种税目代码:");
572 1 BcdToStr(4,&str[1],&WinHint[1][14],0);
573 1
574 1 strcpy(&WinHint[2][1],"税率:");
575 1 xp=&str[5];
*** WARNING C182 IN LINE 575 OF REPORT1.C: pointer to different objects
576 1 NumToStr(xp->dat,&WinHint[2][6],0);
577 1
578 1 strcpy(&WinHint[3][1],"经营项目中文名称:");
579 1 for(i=0;i<20;i++)
580 1 WinHint[4][1+i]=str[7+i];
581 1
582 1 strcpy(&WinHint[5][1],"经营项目英文名称:");
583 1 for(i=0;i<20;i++)
584 1 WinHint[6][1+i]=str[27+i];
585 1
586 1 if(flag == 1)//显示
587 1 {
588 2 InitVal[0]=K_TC;//只有退出键才有效
589 2 InitVal[1]=0;
590 2 Windows(1,0,InitVal);
591 2 if(*InitVal==K_TC)return;//返回
592 2 }
593 1 else if(flag == 2)//打印
594 1 {
595 2 PrintLine("税种税目信息");
596 2
597 2 for(i=0;i<3;i++)
598 2 PrintStr(&WinHint[i][1]);
599 2
600 2 strcpy(PrintBuf,&WinHint[3][1]);
601 2 strcpy(&PrintBuf[17],&WinHint[4][1]);
C51 COMPILER V8.01 REPORT1 03/28/2006 09:49:26 PAGE 11
602 2 PrintStr(PrintBuf);
603 2
604 2 strcpy(PrintBuf,&WinHint[5][1]);
605 2 strcpy(&PrintBuf[17],&WinHint[6][1]);
606 2 PrintStr(PrintBuf);
607 2
608 2 PrintLine("");
609 2 PrintStr("电子存根");
610 2 }
611 1 }
612 /*-------------------------------------------------------------------------
613 已分发的显示与打印
614 flag = 1:显示
615 flag = 0:打印
616 -------------------------------------------------------------------------*/
617 void FenFademand(uchar flag)
618 {
619 1 uchar i=0,InitVal[4],str[30],Len=0,Nm=0;
620 1 uint addr=0;
621 1 gyt4 *xp;
622 1 addr=InvoiceNum;//已分发的发票卷数
623 1 I2cRead(addr,1,InitVal);//存放已分发的发票卷数
624 1 addr=InvoCode;//发票地址
625 1 #if !Invofenfa
626 1 Len=InitVal[0];
627 1 #endif
628 1 #if Invofenfa
Len=10;//测试时使用
#endif
631 1 if(Len==0)
632 1 {
633 2 LcdDisplay(16,0,"没有分发发票,请返回!",3);
634 2 LcdDisplay(32,0,"按任意键继续!",0);
635 2 KeyScan();
636 2 return;
637 2 }
638 1
639 1 while(Len--)
640 1 {
641 2 for(i=0;i<12;i++)
642 2 WinHint[i][0]=1;
643 2 Nm++;
644 2 I2cRead(addr,22,str);
645 2
646 2 strcpy(&WinHint[0][1],"第00卷发票");
647 2 // NumToStr(Nm,&WinHint[0][10],0);//在第一行上显示已分发的第几卷
648 2 if(Nm<10)WinHint[0][4]=Nm+'0';
649 2 else
650 2 {
651 3 WinHint[0][3]='1';
652 3 WinHint[0][4]=Nm-10+'0';
653 3 }
654 2
655 2 strcpy(&WinHint[1][1],"发票代码:");
656 2 BcdToStr(10,str,&WinHint[2][1],0);
657 2
658 2 strcpy(&WinHint[3][1],"发票起始号:");
659 2 xp=&str[10];
*** WARNING C182 IN LINE 659 OF REPORT1.C: pointer to different objects
660 2 NumToStr(xp->dat,&WinHint[4][1],0);
661 2
662 2 strcpy(&WinHint[5][1],"发票终止号:");
C51 COMPILER V8.01 REPORT1 03/28/2006 09:49:26 PAGE 12
663 2 xp=&str[14];
*** WARNING C182 IN LINE 663 OF REPORT1.C: pointer to different objects
664 2 NumToStr(xp->dat,&WinHint[6][1],0);
665 2
666 2 strcpy(&WinHint[7][1],"MAC:");
667 2 xp=&str[18];
*** WARNING C182 IN LINE 667 OF REPORT1.C: pointer to different objects
668 2 NumToStr(xp->dat,&WinHint[7][5],0);
669 2 for(i=0;i<3;i++)
670 2 WinHint[8+i][0]=0;
671 2 if(flag == 1)// 在LCD上显示
672 2 {
673 3 InitVal[0]=K_TC;
674 3 InitVal[1]=K_HJ;
675 3 InitVal[2]=0;
676 3 Windows(1,0,InitVal);
677 3 if(*InitVal==K_TC)return;// 返回
678 3 }
679 2 else if(flag == 0)//在打印机上打印
680 2 {
681 3 PrintLine("已分发发票");
682 3 for(i=0;i<8;i++)
683 3 PrintStr(WinHint[i]);
684 3 PrintLine("");
685 3 PrintStr("电子存根");
686 3 }
687 2 addr+=22;
688 2 }
689 1 }
690
691 void Itarr(uchar *str)
692 {
693 1 *str++ = K_TC;
694 1 *str++ = K_HJ;
695 1 *str = 0;
696 1 }
697
698 /*-------------------------------------------------------------------------
699 显示与打印选择
700 -------------------------------------------------------------------------*/
701 uchar ReSelectMode(void)
702 {
703 1 uchar Ln=0,Initval[5];
704 1
705 1 // Itarr(Initval);
706 1 while(1)
707 1 {
708 2 Initval[0]=K_TC;
709 2 Initval[1]=K_HJ;
710 2 Initval[2]=K_JZ;
711 2 Initval[3]=K_TZ;
712 2 Initval[4]=0;
713 2 ReMenu2();
714 2 Ln=Windows(1,0,Initval);
715 2 switch(*Initval)
716 2 {
717 3 case K_TC: return 0;
718 3 case K_HJ: return Ln;
719 3 case K_JZ: PaperControl(1,16);
720 3 continue;
721 3 case K_TZ: PaperControl(0,16);
722 3 continue;
C51 COMPILER V8.01 REPORT1 03/28/2006 09:49:26 PAGE 13
723 3 default:break;
724 3 }
725 2 if(Ln == 1 || Ln == 2 ) return Ln;
726 2 // if(*Initval == K_TC)//为退出键时退出,返回0
727 2 // return 0;
728 2 // else
729 2 // return Ln;//否则返回行号
730 2 }
731 1 }
732
733 /*-------------------------------------------------------------------------
734 打印提示
735 -------------------------------------------------------------------------*/
736 uchar PrintHint(void)
737 {
738 1 uchar key=0;
739 1 LcdDisplay(0,Col,"提 示",3);
740 1 LcdDisplay(16,0,"请换同规格普通打印纸!",0);
741 1 LcdDisplay(32,0,"否则,后果自负!",0);
742 1 LcdDisplay(48,0,"[退出] [确认]",0);
743 1 // DisplayFullRec(0,0,63,191,1);
744 1 DisplayFullRec(0,Co,16,120,1);
745 1
746 1 while(1)
747 1 {
748 2 key = KeyScan();
749 2 if(key == K_TC)//按的是退出键
750 2 return 0;
751 2 else if(key == K_HJ)//按的确认键
752 2 return 1;
753 2 else;
754 2 }
755 1 }
756
757
758
759 /*--------------------------------------------------------------------------
760 营业员销售额查询
761 --------------------------------------------------------------------------*/
762 uchar Businessdemand(uchar BianHao,uchar *ReadJE,uchar xzReport)
763 {
764 1 uint address=0;
765 1 address=SalerStat+(BianHao-1)*4;//获得营业员销售金额的存放地址 为什么要减1是因为营业员编号是从1开始的.而
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -