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

📄 report1.lst

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


C51 COMPILER V8.01, COMPILATION OF MODULE REPORT1
OBJECT MODULE PLACED IN Report1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Report1.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          * 文件名称:ReportPrint1.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          #define Invofenfa 0             //发票分发测试 在实际应用中将此改为0
  20          
  21          
  22          /*-------------------------------------------------------------------
  23                                                                                          报表主菜单初始化
  24          -------------------------------------------------------------------*/
  25          void ReMenu1()
  26          {
  27   1              WindowsSet(6);
  28   1              strcpy(&WinHint[0][1],"1.用户信息查询");
  29   1              strcpy(&WinHint[1][1],"2.已销售发票信息查询");
  30   1              strcpy(&WinHint[2][1],"3.已分发和录入发票查询");
  31   1              strcpy(&WinHint[3][1],"4.监控管理数据查询");
  32   1              strcpy(&WinHint[4][1],"5.申报备份数据查询");
  33   1              strcpy(&WinHint[5][1],"6.营业员销售额查询");
  34   1      //      strcpy(&WinHint[6][1],"7.税控信息安全报表");
  35   1      }
  36          
  37          //void Menu4()
  38          //{
  39          //      uchar i=0;
  40          //      strcpy(&WinHint[0][1]," 1.单卷发票使用汇总查询");
  41          //      strcpy(&WinHint[1][1]," 2.发票打印数据查询");
  42          //      strcpy(&WinHint[2][1]," 3.日交易数据查询");
  43          //}
  44          
  45          void ReMenu5()
  46          {
  47   1              WindowsSet(3);
  48   1              strcpy(&WinHint[0][1],"1.机器出厂数据查询");
  49   1              strcpy(&WinHint[1][1],"2.用户信息查询");
  50   1              strcpy(&WinHint[2][1],"3.税种税目信息查询");
  51   1      }
  52          void ReMenu6()
  53          {
  54   1              WindowsSet(3);
  55   1              strcpy(&WinHint[0][1],"1.单卷发票使用汇总查询");
C51 COMPILER V8.01   REPORT1                                                               03/28/2006 09:49:26 PAGE 2   

  56   1              strcpy(&WinHint[1][1],"2.发票打印数据查询");
  57   1              strcpy(&WinHint[2][1],"3.日交易数据查询");
  58   1      
  59   1      }
  60          void ReMenu7()
  61          {
  62   1              WindowsSet(4);
  63   1              strcpy(&WinHint[0][1],"1.按发票代码查询");
  64   1              strcpy(&WinHint[1][1],"2.按发票起始号查询");
  65   1              strcpy(&WinHint[2][1],"3.按发票终止号查询");
  66   1              strcpy(&WinHint[3][1],"4.按时间段查询");
  67   1      
  68   1      }
  69          void ReMenu8()
  70          {
  71   1              WindowsSet(4);
  72   1              strcpy(&WinHint[0][1],"1.按开票日期查询");
  73   1              strcpy(&WinHint[1][1],"2.按发票号查询");
  74   1              strcpy(&WinHint[2][1],"3.按时间段查询");
  75   1              strcpy(&WinHint[3][1],"4.按时间段查询汇总数据");
  76   1      
  77   1      }
  78          
  79          void ReMenu10()
  80          {
  81   1      
  82   1              WindowsSet(6);
  83   1              strcpy(&WinHint[0][1],"1.税种一");
  84   1              strcpy(&WinHint[1][1],"2.税种二");
  85   1              strcpy(&WinHint[2][1],"3.税种三");
  86   1              strcpy(&WinHint[3][1],"4.税种四");
  87   1              strcpy(&WinHint[4][1],"5.税种五");
  88   1              strcpy(&WinHint[5][1],"6.税种六");
  89   1      
  90   1      }
  91          void ReMenu11()
  92          {
  93   1      
  94   1              WindowsSet(2);
  95   1              strcpy(&WinHint[0][1],"1.已分发发票查询");
  96   1              strcpy(&WinHint[1][1],"2.已录入发票查询");
  97   1      
  98   1      }
  99          void ReMenu12()
 100          {
 101   1              WindowsSet(3);
 102   1      
 103   1              strcpy(&WinHint[0][1],"1.根据起始日期查询");
 104   1              strcpy(&WinHint[1][1],"2.根据终止日期查询");
 105   1              strcpy(&WinHint[2][1],"3.根据时间段查询");
 106   1      
 107   1      }
 108          
 109          void ReMenu13()
 110          {
 111   1              WindowsSet(4);
 112   1      
 113   1              strcpy(&WinHint[0][1],"1.单个营业员X报表");
 114   1              strcpy(&WinHint[1][1],"2.单个营业员Z报表");
 115   1              strcpy(&WinHint[2][1],"3.所有营业员X报表");
 116   1              strcpy(&WinHint[3][1],"4.所有营业员Z报表");
 117   1      }
C51 COMPILER V8.01   REPORT1                                                               03/28/2006 09:49:26 PAGE 3   

 118          
 119          void ReMenu14()
 120          {
 121   1              WindowsSet(2);
 122   1              strcpy(&WinHint[0][1],"1.按当前日期查询");
 123   1              strcpy(&WinHint[1][1],"2.按时间段查询");
 124   1      }
 125          
 126          /*-------------------------------------------------------------------
 127                                                                                          发票代码初始化菜单
 128          -------------------------------------------------------------------*/
 129          void ReMenu2()
 130          {
 131   1              //LCD显示初始化
 132   1      
 133   1              WindowsSet(2);
 134   1      
 135   1              strcpy(&WinHint[0][1],"1.显示方式");
 136   1              strcpy(&WinHint[1][1],"2.打印方式");
 137   1      
 138   1      }
 139          /*---------------------------------------------------------------------------
 140                                                                          时间段输入函数
 141          ---------------------------------------------------------------------------*/
 142          uchar TimeInputDialog(uchar *TimeVal)
 143          {
 144   1              uchar i=0,ReVal=0,Itfg1=0,Itfg2=0,temp[2];
 145   1              gyt4 *Itime1,*Itime2;
 146   1              LcdDisplay(0,0,"开始日期:(年/月/日)",3);
 147   1      
 148   1      //      for(i=0;i<4;i+=3)
 149   1      //              DisplayFullRec(i,i,63-i,191-i,1);
 150   1      
 151   1              LcdDisplay(32,0,"结束日期:(年/月/日)",0);
 152   1              temp[0]=0;
 153   1              temp[1]=0;
 154   1              ReVal=GetBcd(16,0,TimeVal,8,temp);//输入的时间放在TimeVal
 155   1              if(ReVal != K_HJ)//如果不是确认键则返回功能的按键值
 156   1                      return ReVal;
 157   1              else
 158   1              {
 159   2                      for(i=0;i<4;i++)
 160   2                              TimeVal[4+i]=0;
 161   2                      temp[0]=0;
 162   2                      ReVal=GetBcd(48,0,&TimeVal[4],8,temp);//从第四个位置开始存放结束日期
 163   2              }
 164   1              if(ReVal != K_HJ)//如果不是确认键则返回功能的按键值
 165   1                      return ReVal;
 166   1              else                                            //如果两次都是按确认键则进入
 167   1              {
 168   2                      Itime1 = TimeVal;
*** WARNING C182 IN LINE 168 OF REPORT1.C: pointer to different objects
 169   2                      Itfg1 = Verdict(TimeVal);//时间的合法性检查
 170   2      
 171   2                      Itime2 = &TimeVal[4];
*** WARNING C182 IN LINE 171 OF REPORT1.C: pointer to different objects
 172   2                      Itfg2 = Verdict(&TimeVal[4]);//时间的合法性检查
 173   2      
 174   2                      if(Itime2->dat > Itime1->dat && Itfg1 && Itfg2)//如果输入的结束时间大于开始时间
 175   2                              return 1;                                                                               //且输入的开始时间与结束时间格式正确后方可返回1
 176   2                      else
 177   2                      {
C51 COMPILER V8.01   REPORT1                                                               03/28/2006 09:49:26 PAGE 4   

 178   3                              ReHint("时间格式错误!","请重新输入...");
 179   3                              return 0;
 180   3                      }
 181   2              }
 182   1      }
 183          /*----------------------------------------------------------------------------
 184                                                                          BCD码输入对话框
 185          ----------------------------------------------------------------------------*/
 186          uchar Dialog(uchar *Clew1,uchar *Clew2,uchar *Clew4,uchar Len,uchar *BCD_Val)
 187          {
 188   1              uchar temp[2],i = 0,ReValue=0;
 189   1              LcdDisplay(0,0,Clew1,3);
 190   1              LcdDisplay(16,0,Clew2,0);
 191   1              LcdDisplay(48,0,Clew4,0);
 192   1              temp[0]=0;BCD_Val[0]=0;
 193   1              ReValue=GetBcd(32,0,BCD_Val,Len,temp);//ReVal为GetBCD返回的键值
 194   1              return ReValue;
 195   1      }
 196          /*---------------------------------------------------------------------------
 197                                                                          Hex码输入对话框
 198          ----------------------------------------------------------------------------*/
 199          ulong HexlongDialog(uchar *Clew1,uchar *Clew2,uchar *Clew4,uchar *Len,ulong Init)
 200          {
 201   1              ulong Re_Val=0;
 202   1              uchar i=0,k=0,tp[2];
 203   1      
 204   1              k = Len[0];
 205   1              LcdDisplay(0,0,Clew1,3);
 206   1      
 207   1      //      for(i=0;i<4;i+=3)
 208   1      //              DisplayFullRec(i,i,63-i,191-i,1);
 209   1      
 210   1              LcdDisplay(16,0,Clew2,0);
 211   1              LcdDisplay(48,0,Clew4,0);
 212   1              tp[0]=0;
 213   1              Re_Val=GetInt(32,0,Init,k,0,tp);//当输入返回时得到的LEN为按键值
 214   1              *Len = tp[0];//得到所需要的返回值
 215   1              return Re_Val;
 216   1      }
 217          
 218          /*-----------------------------------------------------------
 219                                                                  营业员编号对话框
 220          //-----------------------------------------------------------*/
 221          //uchar BusinessNumber(uchar *Clew1,uchar *Clew2,uchar *Clew3,uchar *Clew4,uchar *Len)
 222          //{
 223          //      uchar Reval=0;
 224          //      uchar i,tp[2];
 225          //      i=*Len;
 226          //      tp[0]=0;
 227          //      LcdDisplay(0,56,Clew1,3);
 228          //      LcdDisplay(16,0,Clew2,0);
 229          //      LcdDisplay(32,0,Clew3,0);
 230          //      LcdDisplay(48,0,Clew4,0);
 231          //      Reval = GetInt(16,90,0,i,0,tp);
 232          //      *Len = tp[0];           //得到所需的返回按键值=功能键
 233          //      return Reval;
 234          //}
 235          
 236          /*------------------------------------------------------------------------------
 237                                                                                                  发票代码查询
 238          ------------------------------------------------------------------------------*/
 239          uchar Res_InvCode(uchar *InInvCode,uchar *ReadInvCode)
C51 COMPILER V8.01   REPORT1                                                               03/28/2006 09:49:26 PAGE 5   

 240          {
 241   1              uchar i,j=0;
 242   1              uint x=0;
 243   1              gyt2 tp;
 244   1              ulong InvCode_address=0;
 245   1              InvCode_address=InvoStatBegin;//单卷发票存放的开始地址
 246   1      
 247   1              I2cRead(InvoStatNum,2,tp.str);
 248   1      
 249   1              if(tp.dat == 0)//如果数量为0则直接返回 0 说明没有数据
 250   1                      return 0;
 251   1      
 252   1      //      RePlan(1);

⌨️ 快捷键说明

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