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 + -
显示快捷键?