⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 report2.lst

📁 用keil开发的.单片机税控器程序.单片机用的是AT公司的.upsd3245
💻 LST
📖 第 1 页 / 共 4 页
字号:
C51 COMPILER V8.01   REPORT2                                                               03/28/2006 09:49:28 PAGE 1   


C51 COMPILER V8.01, COMPILATION OF MODULE REPORT2
OBJECT MODULE PLACED IN Report2.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Report2.c LARGE OPTIMIZE(9,SIZE) BROWSE DEBUG OBJECTEXTEND CODE

line level    source

   1          /*
   2          * Copyright (c) 2004,成都港顺科技发展有限公司
   3          * All rights reserved.
   4          *
   5          * 编 译 器:Keil:C Compiler:7.20;Assembler:7.10
   6          * 工程名称:POS-Test.UV2
   7          * 文件名称:ReportPrint.C
   8          * 摘    要:表报打印
   9          *
  10          * 单 片 机:uPSD3254
  11          * 当前版本:0.4
  12          * 作    者:雍继兵
  13          * 完成日期:2004-12-7 14:45
  14          */
  15          
  16          #include "Main.h"
  17          #include "Report.h"
  18          
  19          
  20          
  21          #define useinfo 1  //测试时使用 在实际使用时将此置为0
  22          
  23          
  24          /*-----------------------------------------------------------------------------------
  25                                                                          日交易数据在LCD上显示打印
  26          disHead = 0:不显示提示语
  27          disHead = 1:显示提示语
  28          disHead = 2:不打印报表头
  29          disHead = 3:打印报表头
  30          -----------------------------------------------------------------------------------*/
  31          uchar DayCollDataDisplay(uchar disHead,uchar *InputDayData)
  32          {
  33   1              uchar i=0,j=0,InitVal[3],str[30],PrintBuf[50],time[10];
  34   1              gyt2 *Npm;
  35   1              gyt4 *Ipt;
  36   1              ulong delay = 0xffff;
  37   1      
  38   1              Itarr(InitVal);
  39   1      
  40   1              if(disHead == 1)
  41   1                      DisHint("指定时间段内的","<<日交易数据>>汇总报表","按[确认]开始查找...");//只有在时间段查询时有
  42   1              WindowsSet(12);
  43   1      //当前日期
  44   1              strcpy(&WinHint[0][1],"当前日期:");
  45   1              BcdToStr(4,&InputDayData[0],&WinHint[0][10],0);
  46   1      //当天正常发票份数
  47   1      
  48   1              strcpy(&WinHint[1][1],"当天正常份数:");
  49   1              Npm = &InputDayData[4];
*** WARNING C182 IN LINE 49 OF REPORT2.C: pointer to different objects
  50   1              if(Npm->dat == 0)
  51   1                      strcpy(&WinHint[1][14],"0");
  52   1              else
  53   1                      NumToStr(Npm->dat,&WinHint[1][14],0);
  54   1      
C51 COMPILER V8.01   REPORT2                                                               03/28/2006 09:49:28 PAGE 2   

  55   1      //当天退票份数
  56   1              strcpy(&WinHint[2][1],"当天退票份数:");
  57   1              Npm = &InputDayData[6];
*** WARNING C182 IN LINE 57 OF REPORT2.C: pointer to different objects
  58   1              if(Npm->dat == 0)
  59   1                      strcpy(&WinHint[2][14],"0");
  60   1              else
  61   1                      NumToStr(Npm->dat,&WinHint[2][14],0);
  62   1      
  63   1      //当天废票份数
  64   1              strcpy(&WinHint[3][1],"当天废票份数:");
  65   1              Npm = &InputDayData[8];
*** WARNING C182 IN LINE 65 OF REPORT2.C: pointer to different objects
  66   1              if(Npm->dat == 0)
  67   1                      strcpy(&WinHint[3][14],"0");
  68   1              else
  69   1                      NumToStr(Npm->dat,&WinHint[3][14],0);
  70   1      
  71   1      //分类统计金额
  72   1              strcpy(&WinHint[4][1],"     分类统计金额");
  73   1              strcpy(&WinHint[5][1],"税号 正常金额 退票金额");
  74   1              for(j=0;j<6;j++)
  75   1              {
  76   2                      for(i=0;i<29;i++)str[i]=' ';
  77   2                      NumToStr(InputDayData[10+j],str,0);//税率
  78   2      
  79   2                      Ipt = &InputDayData[16+j*4];
*** WARNING C182 IN LINE 79 OF REPORT2.C: pointer to different objects
  80   2                      if(Ipt->dat == 0)
  81   2                              strcpy(&str[4],"0.00");
  82   2                      else
  83   2                              NumToStr(Ipt->dat,&str[4],5); //正常金额
  84   2      
  85   2                      Ipt = &InputDayData[40+j*4];
*** WARNING C182 IN LINE 85 OF REPORT2.C: pointer to different objects
  86   2                      if(Ipt->dat == 0)
  87   2                              strcpy(&str[15],"0.00");
  88   2                      else
  89   2                              NumToStr(Ipt->dat,&str[15],5);//退票金额
  90   2      
  91   2                      for(i=0;i<23;i++)
  92   2                              if(str[i]==0)str[i]=' ';
  93   2                      str[23]=0;
  94   2                      strcpy(&WinHint[6+j][1],str);
  95   2              }
  96   1              if(disHead == 0 || disHead == 1)//在LCD上显示
  97   1              {
  98   2                      Windows(1,0,InitVal);//按退出键退出
  99   2                      return *InitVal;
 100   2              }
 101   1              else if(disHead == 2 || disHead == 3)//打印报表数据
 102   1              {
 103   2                      if(disHead == 3)//打印报表头
 104   2                              PrintLine("指定时间段内的日交易数据报表");
 105   2                      else
 106   2                              PrintLine("日交易数据");
 107   2      
 108   2                      BcdToStr(4,&InputDayData[0],&time[0],0);
 109   2                      PrintTime("当前日期:",&time[0],&PrintBuf[0]);
 110   2                      PrintStr(&PrintBuf[0]);
 111   2      
 112   2                      for(i=1;i<12;i++)
C51 COMPILER V8.01   REPORT2                                                               03/28/2006 09:49:28 PAGE 3   

 113   2                              PrintStr(&WinHint[i][1]);
 114   2                      PrintLine("");
 115   2                      PrintStr("电子存根");
 116   2      
 117   2                      while(--delay);
 118   2              }
 119   1              else ;
 120   1      }
 121          /*-----------------------------------------------------------------------------------
 122                                                                                  发票打印数据在LCD上显示
 123          disfg = 0:不显示提示语
 124          disfg = 1:显示提示语
 125          disfg = 2:不打印报表头
 126          disfg = 3:打印报表头
 127          Sectfg = 0 :按时间查询
 128          Sectfg = 1 :按时间段查询
 129          Sectfg = 2 :按发票号查询
 130          -----------------------------------------------------------------------------------*/
 131          uchar InvPrintData(uchar disfg,uchar Sectfg,uchar *str)
 132          {
 133   1              uchar i=0,InitVal[3],PrintBuf[50],time[10],InputData[30];
 134   1              uint v=0,n=0,delay=0x7fff;
 135   1              gyt4 *Ips,*Its,*Sts;
 136   1              gyt2 tp;
 137   1      
 138   1              ulong InvStartAddress,temp=0;
 139   1      
 140   1      
 141   1              n=0;
 142   1              InvStartAddress=InvoListLimit1;
 143   1      
 144   1              for(i=0;i<27;i++) InputData[i]=str[i];
 145   1      
 146   1              if(disfg == 0xff)
 147   1                      return 0;                       //在打印时选择退出
 148   1      
 149   1              Itarr(InitVal);
 150   1      
 151   1              WindowsSet(7);
 152   1      
 153   1              if(disfg == 1)                  //显示提示窗口
 154   1                      DisHint("指定时间段内的","<<发票打印数据>>报表","按[确认]开始查找...");
 155   1      
 156   1      
 157   1              Its = &InputData[0];//按输入时间查询时
*** WARNING C182 IN LINE 157 OF REPORT2.C: pointer to different objects
 158   1      
 159   1              temp = Its->dat;
 160   1      //      UartTxd(4,Its->str);
 161   1      
 162   1      
 163   1              I2cRead(InvoPrintNum,2,tp.str);
 164   1      
 165   1              if(tp.dat == 0)
 166   1                      return 0;                       //返回 数量为0 说明没有数据
 167   1      
 168   1      
 169   1              while(Sectfg == 0 && disfg == 0)
 170   1              {
 171   2      
 172   2                      SerialFlashRead(FlashInvo,InvStartAddress,27,InputData);
 173   2      
C51 COMPILER V8.01   REPORT2                                                               03/28/2006 09:49:28 PAGE 4   

 174   2                      Ips = InputData;
*** WARNING C182 IN LINE 174 OF REPORT2.C: pointer to different objects
 175   2      
 176   2                      if(temp == Ips->dat)
 177   2                              break;
 178   2                      else
 179   2                      {
 180   3                              InvStartAddress+=27;
 181   3                              n++;
 182   3                              if(n >= tp.dat)
 183   3                                      return 0;
 184   3                      }
 185   2              }
 186   1      
 187   1              while(1)
 188   1              {
 189   2      
 190   2                      Itarr(InitVal);
 191   2      
 192   2                      strcpy(&WinHint[0][1],"开票日期:");
 193   2                      BcdToStr(4,&InputData[0],&WinHint[0][10],0);
 194   2      
 195   2                      strcpy(&WinHint[1][1],"发票号:");
 196   2      
 197   2                      Ips = &InputData[4];
*** WARNING C182 IN LINE 197 OF REPORT2.C: pointer to different objects
 198   2                      NumToStr(Ips->dat,&WinHint[1][8],0);    //按HEX格式转换
 199   2      
 200   2                      strcpy(&WinHint[2][1],"开票类型:");
 201   2                      NumToStr(InputData[8],&WinHint[2][10],0);
 202   2      
 203   2      
 204   2                      strcpy(&WinHint[3][1],"开票总金额:");
 205   2                      Ips = &InputData[9];
*** WARNING C182 IN LINE 205 OF REPORT2.C: pointer to different objects
 206   2                      if(Ips->dat == 0)
 207   2                              strcpy(&WinHint[3][12],"0.00");
 208   2                      else
 209   2                              NumToStr(Ips->dat,&WinHint[3][12],5);
 210   2      
 211   2                      strcpy(&WinHint[4][1],"税控码:");       //在第五行上显示税控码字样
 212   2                      Ips = &InputData[13];

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -