昨天我们做的Table具有了Print方法,可以简单的打印数据。
现在我需要一个Table,可以把Table中的数据以Html的Table的格式输出。
而我只需要重写Print方法
现在我需要一个Table,可以把Table中的数据以Html的Table的格式输出。
而我只需要重写Print方法
1
public class HtmlTable : Table
2
{
3
public HtmlTable(string reportName, ColumnCollection cols)
4
: base(reportName, cols)
5
{
6![]()
7
}
8![]()
9
public override void Print()
10
{
11
System.Text.StringBuilder sb = new StringBuilder();
12![]()
13
//输出Table的开始标记
14
sb.Append("<table>\n");
15
//输出表头
16
sb.Append("<thead>\n<tr>\n");
17
foreach (Column col in this.Columns)
18
{
19
sb.AppendFormat("<th>{0}</th>\n", col.ColumnName);
20
}
21
sb.AppendLine("</tr>\n</thead>");
22![]()
23![]()
24
//输出数据行
25
foreach (Row row in this.Rows)
26
{
27
sb.AppendLine("<tr>");
28
foreach (object obj in row.ItemArray)
29
{
30
sb.AppendFormat("<td>{0}</td>\n", obj);
31
//System.Console.Write("{0}\t", obj);
32
}
33
sb.AppendLine("</tr>");
34
System.Console.WriteLine();
35
}
36![]()
37
//输出Table的结束标记
38
sb.Append("</table>\n");
39![]()
40
System.Console.WriteLine(sb.ToString());
41![]()
42
}
43![]()
44
}
public class HtmlTable : Table2
{3
public HtmlTable(string reportName, ColumnCollection cols)4
: base(reportName, cols)5
{6

7
}8

9
public override void Print()10
{11
System.Text.StringBuilder sb = new StringBuilder();12

13
//输出Table的开始标记14
sb.Append("<table>\n");15
//输出表头16
sb.Append("<thead>\n<tr>\n");17
foreach (Column col in this.Columns)18
{19
sb.AppendFormat("<th>{0}</th>\n", col.ColumnName);20
}21
sb.AppendLine("</tr>\n</thead>");22

23

24
//输出数据行25
foreach (Row row in this.Rows)26
{27
sb.AppendLine("<tr>");28
foreach (object obj in row.ItemArray)29
{30
sb.AppendFormat("<td>{0}</td>\n", obj);31
//System.Console.Write("{0}\t", obj);32
}33
sb.AppendLine("</tr>");34
System.Console.WriteLine();35
}36

37
//输出Table的结束标记38
sb.Append("</table>\n");39

40
System.Console.WriteLine(sb.ToString());41

42
}43

44
}现在我将SaleReport改继承HtmlTable(参见Table是怎样炼成的:SaleReport Table的继承者 ),其他都不要改动。
然后我们运行该SaleReport
1
SaleReport report = new SaleReport("销售台帐");
2
report.AddRecord("Alex", "Phone", 2600);
3
report.AddRecord("Alex", "PC", 4560);
4
report.AddRecord("Alex", "Table", 234);
5
report.AddRecord("Sidney", "Phone", 2100);
6
report.AddRecord("Sidney", "TV", 4500);
7
report.AddRecord("Tom", "oven", 300);
8
report.AddRecord("Leo", "oven", 240);
9![]()
10
report.Print();
SaleReport report = new SaleReport("销售台帐");2
report.AddRecord("Alex", "Phone", 2600);3
report.AddRecord("Alex", "PC", 4560);4
report.AddRecord("Alex", "Table", 234);5
report.AddRecord("Sidney", "Phone", 2100);6
report.AddRecord("Sidney", "TV", 4500);7
report.AddRecord("Tom", "oven", 300);8
report.AddRecord("Leo", "oven", 240);9

10
report.Print();运行的结果是
1
<table>
2
<thead>
3
<tr>
4
<th>序号</th>
5
<th>姓名</th>
6
<th>商品名称</th>
7
<th>日期</th>
8
<th>数量</th>
9
</tr>
10
</thead>
11
<tr>
12
<td>1</td>
13
<td>Alex</td>
14
<td>Phone</td>
15
<td>2007-2-14 20:39:31</td>
16
<td>2600</td>
17
</tr>
18
<tr>
19
<td>2</td>
20
<td>Alex</td>
21
<td>PC</td>
22
<td>2007-2-14 20:39:31</td>
23
<td>4560</td>
24
</tr>
25
<tr>
26
<td>3</td>
27
<td>Alex</td>
28
<td>Table</td>
29
<td>2007-2-14 20:39:31</td>
30
<td>234</td>
31
</tr>
32
<tr>
33
<td>4</td>
34
<td>Sidney</td>
35
<td>Phone</td>
36
<td>2007-2-14 20:39:31</td>
37
<td>2100</td>
38
</tr>
39
<tr>
40
<td>5</td>
41
<td>Sidney</td>
42
<td>TV</td>
43
<td>2007-2-14 20:39:31</td>
44
<td>4500</td>
45
</tr>
46
<tr>
47
<td>6</td>
48
<td>Tom</td>
49
<td>oven</td>
50
<td>2007-2-14 20:39:31</td>
51
<td>300</td>
52
</tr>
53
<tr>
54
<td>7</td>
55
<td>Leo</td>
56
<td>oven</td>
57
<td>2007-2-14 20:39:31</td>
58
<td>240</td>
59
</tr>
60
</table>
<table>2
<thead>3
<tr>4
<th>序号</th>5
<th>姓名</th>6
<th>商品名称</th>7
<th>日期</th>8
<th>数量</th>9
</tr>10
</thead>11
<tr>12
<td>1</td>13
<td>Alex</td>14
<td>Phone</td>15
<td>2007-2-14 20:39:31</td>16
<td>2600</td>17
</tr>18
<tr>19
<td>2</td>20
<td>Alex</td>21
<td>PC</td>22
<td>2007-2-14 20:39:31</td>23
<td>4560</td>24
</tr>25
<tr>26
<td>3</td>27
<td>Alex</td>28
<td>Table</td>29
<td>2007-2-14 20:39:31</td>30
<td>234</td>31
</tr>32
<tr>33
<td>4</td>34
<td>Sidney</td>35
<td>Phone</td>36
<td>2007-2-14 20:39:31</td>37
<td>2100</td>38
</tr>39
<tr>40
<td>5</td>41
<td>Sidney</td>42
<td>TV</td>43
<td>2007-2-14 20:39:31</td>44
<td>4500</td>45
</tr>46
<tr>47
<td>6</td>48
<td>Tom</td>49
<td>oven</td>50
<td>2007-2-14 20:39:31</td>51
<td>300</td>52
</tr>53
<tr>54
<td>7</td>55
<td>Leo</td>56
<td>oven</td>57
<td>2007-2-14 20:39:31</td>58
<td>240</td>59
</tr>60
</table>现在我们得到了一个可以在HTML上产生表格的结果了。
谁说这个Table没有必要写的?

浙公网安备 33010602011771号