report2.lst

来自「用keil开发的.单片机税控器程序.单片机用的是AT公司的.upsd3245」· LST 代码 · 共 943 行 · 第 1/4 页

LST
943
字号
*** WARNING C182 IN LINE 212 OF REPORT2.C: pointer to different objects
 213   2                      NumToStr(Ips->dat,&WinHint[5][1],0);    //最高位如果是‘0’不会显示
 214   2                      for(i=0;i<10;i++)
 215   2                              if(WinHint[5][1+i]==0)
 216   2                                      WinHint[5][1+i]='0';//如果数据为0则显示出字符0
 217   2      
 218   2                      Ips = &InputData[17];
*** WARNING C182 IN LINE 218 OF REPORT2.C: pointer to different objects
 219   2                      NumToStr(Ips->dat,&WinHint[5][11],0);
 220   2                      for(i=0;i<10;i++)
 221   2                              if(WinHint[5][11+i]==0)
 222   2                                      WinHint[5][11+i]='0';//如果数据为0则显示出字符0
 223   2      
 224   2                      strcpy(&WinHint[6][1],"原始发票号:");
 225   2                      Sts = &InputData[21];
*** WARNING C182 IN LINE 225 OF REPORT2.C: pointer to different objects
 226   2                      NumToStr(Sts->dat,&WinHint[6][12],0);
 227   2      
 228   2                      if(disfg == 0 || disfg == 1)
 229   2                      {
C51 COMPILER V8.01   REPORT2                                                               03/28/2006 09:49:28 PAGE 5   

 230   3                              Windows(1,0,InitVal);
 231   3                              if(*InitVal == K_TC)
 232   3                                      return K_TC;//按退出键退出
 233   3                              else if(Sectfg == 1)            //在时间段查询时用
 234   3                                      return *InitVal;
 235   3                              else if(Sectfg == 2)//按发票号查询
 236   3                                      return 0;
 237   3                      }
 238   2      
 239   2                      if(disfg == 2 || disfg == 3)//disfg = 3:打印报表头,disfg = 2 :不打印报表头
 240   2                      {
 241   3                              if(disfg == 3)
 242   3                                      PrintLine("指定时间段内的发票打印数据报表");
 243   3                              else
 244   3                                      PrintLine("发票打印数据");
 245   3      
 246   3                              BcdToStr(4,&InputData[0],&time[0],0);
 247   3                              PrintTime("开票日期:",&time[0],&PrintBuf[0]);
 248   3                              PrintStr(&PrintBuf[0]);
 249   3      
 250   3                              for(i=1;i<4;i++)
 251   3                              {
 252   4                                      PrintStr(&WinHint[i][1]);
 253   4                                      delay=0x6fff;
 254   4                                      while(--delay);         //由于发送数据太快.导至打印缓冲数据溢出所以得延时
 255   4                              }
 256   3      
 257   3                              strcpy(PrintBuf,"税控码:");
 258   3                              strcpy(&PrintBuf[7],&WinHint[5][1]);
 259   3                              PrintStr(&PrintBuf[0]);
 260   3                              delay=0x6fff;
 261   3                              while(--delay);         //由于发送数据太快.导至打印缓冲数据溢出所以得延时
 262   3                              PrintStr(&WinHint[6][1]);
 263   3                              delay=0x6fff;
 264   3                              while(--delay);         //由于发送数据太快.导至打印缓冲数据溢出所以得延时
 265   3      
 266   3                              PrintLine("");
 267   3                              PrintStr("电子存根");
 268   3      
 269   3                              if(Sectfg == 1 || Sectfg == 2)
 270   3                                      return 0;
 271   3                      }
 272   2      
 273   2                      if(Sectfg == 0)         //只有在输入时间查询时才有效
 274   2                      {
 275   3                              while(1)
 276   3                              {
 277   4                                      InvStartAddress+=27;
 278   4                                      SerialFlashRead(FlashInvo,InvStartAddress,27,InputData);
 279   4                                      Ips = &InputData[0];
*** WARNING C182 IN LINE 279 OF REPORT2.C: pointer to different objects
 280   4      //                              UartTxd(4,Ips->str);
 281   4                                      n++;
 282   4                                      if((Ips->dat > temp) || (n >= tp.dat))
 283   4                                              return 0;
 284   4                                      else if(Ips->dat == temp) break;
 285   4              //                      if((temp != Ips->dat) && (n >= tp.dat))
 286   4              //                      {
 287   4              //                              Sts.dat = temp;
 288   4              //                              for(i=0;i<4;i++)
 289   4              ////                                    *InputData++ = Sts.str[i];              //为保证退出程序再进时指向下一笔数据
 290   4              //                                              InputData[i]=Sts.str[i];
C51 COMPILER V8.01   REPORT2                                                               03/28/2006 09:49:28 PAGE 6   

 291   4              //                              for(i=4;i<8;i++)
 292   4              //                                              InputData[i]=0;
 293   4              ////                                    *InputData++ = 0;               //为保证退出程序再进时指向下一笔数据
 294   4              //                              return 0;
 295   4              //                      }
 296   4                        }
 297   3                      }
 298   2              }
 299   1      }
 300          
 301          
 302          //----------------------------------------------------------------------------
 303          //
 304          //
 305          //
 306          //----------------------------------------------------------------------------
 307          void DanJunInvoiceWindownOne(uchar *InputDat)
 308          {
 309   1              uchar i,UnitName[45],Use[10];
 310   1      
 311   1              I2cRead(TaxpayerName,40,UnitName);      //读取单位名称
 312   1      
 313   1              WindowsSet(12);
 314   1              strcpy(&WinHint[0][1],"单位名称:");
 315   1              for(i=0;i<22;i++) WinHint[1][1+i]=UnitName[i];
 316   1              for(i=0;i<18;i++)       WinHint[2][1+i]=UnitName[22+i];
 317   1      
 318   1              strcpy(&WinHint[3][1],"税号:");
 319   1              I2cRead(TaxNumber,20,UnitName);                 //读取税号 ==  纳税人编码
 320   1              for(i=0;i<20;i++) WinHint[4][1+i]=UnitName[i];
 321   1      
 322   1              strcpy(&WinHint[5][1],"机器号:");
 323   1              I2cRead(MachineNo,8,Use);
 324   1              BcdToStr(8,Use,UnitName,0x81);
 325   1              strcpy(&WinHint[6][1],UnitName);
 326   1      
 327   1              strcpy(&WinHint[7][1],"开票日期:");
 328   1              BcdToStr(4,&InputDat[29],UnitName,0x81);
 329   1              strcpy(&WinHint[8][1],UnitName);
 330   1              strcpy(&WinHint[8][9]," 至 ");
 331   1              BcdToStr(4,&InputDat[33],UnitName,0x81);
 332   1              strcpy(&WinHint[8][13],UnitName);
 333   1      
 334   1              strcpy(&WinHint[9][1],"发票代码:");
 335   1              BcdToStr(10,&InputDat[0],UnitName,0x81);
 336   1              strcpy(&WinHint[10][1],UnitName);
 337   1      
 338   1              strcpy(&WinHint[11][1],"按〖小计〗显示下屏内容");
 339   1      }
 340          
 341          void DanJunInvoiceWindownTwo(uchar *InputDat)
 342          {
 343   1              gyt2 *Ipint;
 344   1              gyt4 *Iplong;
 345   1              uchar Use[15];
 346   1              WindowsSet(8);
 347   1      
 348   1              strcpy(&WinHint[0][1],"发票起始号:");
 349   1              Iplong = &InputDat[10];
*** WARNING C182 IN LINE 349 OF REPORT2.C: pointer to different objects
 350   1              NumToStr(Iplong->dat,Use,0);
 351   1              strcpy(&WinHint[0][12],Use);
C51 COMPILER V8.01   REPORT2                                                               03/28/2006 09:49:28 PAGE 7   

 352   1      
 353   1              strcpy(&WinHint[1][1],"发票终止号:");
 354   1              Iplong = &InputDat[14];
*** WARNING C182 IN LINE 354 OF REPORT2.C: pointer to different objects
 355   1              NumToStr(Iplong->dat,Use,0);
 356   1              strcpy(&WinHint[1][12],Use);
 357   1      
 358   1              strcpy(&WinHint[2][1],"正常发票份数:");
 359   1              NumToStr(InputDat[18],&WinHint[2][14],0);
 360   1      
 361   1              strcpy(&WinHint[3][1],"正常开具金额:");
 362   1              Iplong = &InputDat[21];
*** WARNING C182 IN LINE 362 OF REPORT2.C: pointer to different objects
 363   1              NumToStr(Iplong->dat,Use,7);
 364   1              strcpy(&WinHint[3][14],Use);
 365   1      
 366   1              strcpy(&WinHint[4][1],"退票份数:");
 367   1              NumToStr(InputDat[20],&WinHint[4][10],2);
 368   1      
 369   1              strcpy(&WinHint[5][1],"废票份数:");
 370   1              NumToStr(InputDat[21],&WinHint[5][10],2);
 371   1      
 372   1              strcpy(&WinHint[6][1],"退票金额:");
 373   1              Ipint = &InputDat[25];
*** WARNING C182 IN LINE 373 OF REPORT2.C: pointer to different objects
 374   1              NumToStr(Ipint->dat,&WinHint[6][10],7);
 375   1      
 376   1              strcpy(&WinHint[7][1],"按〖小计〗显示下屏内容");
 377   1      }
 378          
 379          
 380          /*------------------------------------------------------------------------------------
 381                                                                  发票代码在LCD上显示
 382          dts = 0:不显示提示语
 383          dts = 1:显示提示语
 384          dts = 2:不打印报表头
 385          dts = 3:打印报表头
 386          ------------------------------------------------------------------------------------*/
 387          
 388          uchar AppointInvdis(uchar dts,uchar *indat)
 389          {
 390   1              uchar i=0,InitKey[3];
 391   1      
 392   1              ulong delay = 0xffff;
 393   1      
 394   1              if(dts == 1)                    //要显示提示则将disTS=1否则不显示提示
 395   1                      DisHint("指定时间段内的","<<单卷发票使用>>报表","按[确认]开始查找...");
 396   1      
 397   1              InitKey[0]=K_TC;
 398   1              InitKey[1]=K_HJ;
 399   1              InitKey[2]=K_XJ;
 400   1              InitKey[3]=0;
 401   1      
 402   1              if(dts == 1 || dts == 0)                //显示
 403   1              {
 404   2                      while(1)
 405   2                      {
 406   3                              InitKey[0]=K_TC;
 407   3                              InitKey[1]=K_HJ;
 408   3                              InitKey[2]=K_XJ;
 409   3                              InitKey[3]=0;
 410   3                              if(!i)
C51 COMPILER V8.01   REPORT2                                                               03/28/2006 09:49:28 PAGE 8   

 411   3                                      DanJunInvoiceWindownOne(indat);
 412   3                              else
 413   3                                      DanJunInvoiceWindownTwo(indat);
 414   3                              Windows(1,0,InitKey);
 415   3                              if(*InitKey==K_TC)      return K_TC;
 416   3                              else if(*InitKey==K_XJ) i=~i;
 417   3                              else if(*InitKey==K_HJ) return 1;
 418   3                      }
 419   2                      return *InitKey;
 420   2              }
 421   1              if(dts == 2 || dts == 3)                //打印
 422   1              {
 423   2      
 424   2                      PtintInvoTome(indat);
 425   2                      return 1;
 426   2              }
 427   1      }
 428          
 429          
 430          /*
 431          uchar AppointInvdis(uchar dts,uchar *indat)
 432          {

⌨️ 快捷键说明

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