📄 report2.lst
字号:
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 + -