2013-01-15 58 views
0

我需要生成格式为csv的报告。数据检索为List<T>,只有某些列需要显示在报告中。我正在考虑将其架构存储在App_Data文件夹下的XML文档中,并使用LINQ to XML来检索字段名称并创建报告。通过将模式存储在XML文档中生成报告

示例XML:

<report> 
<fields> 
<field headercaption='Customer Name'>CName</field> 
<field headercaption='Address'>CAddress</field> 
... 
</fields> 
</report> 

它是明智的完全依赖于XML文件,这种方式还是需要通过编码来做到这一点。

编辑

字段是其需要在CSV文件中填充的List<T>性能。标题标题是报表中字段的列名称。

样本报告

客户名称,地址,

ALFKI,31独立大道,华盛顿

+0

这是一种可以随时更改的自定义报告吗?因为如果不是这样,XML可能会增加复杂性,而不会获得其他许多益处。 – R0MANARMY

+0

现在格式是固定的,但是,我想通过使用XML列可以很容易地添加/删除。我能够使用Linq查询它们。但由于我第一次这样做,我想获得反馈。您能否通过使用XML来说明未来的影响? – Sunny

+1

如果您希望能够随意添加/删除列,那么使用纯文本文件(比如“CName | Customer Name”)会更加容易。阅读所有行,按'|'(或任何你选择的字符)分割,然后从那里开始。如果您计划将多个报告放入一个文件中,并且可能会提供其名称,则XML可能会变得有用;或为其他人提交他们自己的报告等提供某种方式。 – R0MANARMY

回答

0

如果你只是想添加/在运行时在这一个删除列报告,使用纯文本文件会更容易。以一种您可以轻松解析的格式存储列信息(如CName|Customer Name)。当您需要生成CSV时,请阅读所有行,按|(或您选择的任何分隔符)分隔,然后从此处开始。您可能还需要在格式为的某处添加注释或文档说明(以防您或其他人需要在一年或一年内回来修改)。

  • 计划,把几份报告合并成一个文件,并可能给他们的名字
  • 提供一些方法供其他人递交自己的报告
  • 创建:如果您

    XML可能成为有用一些创作工具允许用户自定义报告

  • 本地化CSV列名称。你可以定义如

<report> 
<fields> 
    <field name="CName"> 
     <header language="en-us">Customer Name</header> 
     <header language="es-es">Nombre de cliente</header> 
     ... 
    </field> 
    ... 
</fields> 
</report> 
  • 希望与XML库

在这种情况下,XML可能是有用的,因为你可以定义一个XSD,轻松地验证提交的报告是有效的尝试。