2012-01-30 98 views
1

先前我的XML是这样如何将这个XML数据添加到数据集?

<?xml version="1.0" encoding="UTF-8"?> 
<root> 
    <supplier> 
    <s_code>1</s_code> 
    <net_weight>100</net_weight> 
    <rate>100.00</rate> 
    </supplier> 

    <supplier> 
    <s_code>2</s_code> 
    <net_weight>500</net_weight> 
    <rate>150.00</rate> 
    </supplier> 
</root> 

所以我创建的数据集,并添加与此类似列和使用该代码将数据加载到数据集,并使用数据集来创建晶体报告。

DataSet reportData = new DataSet(); 
    reportData.ReadXml("http://192.168.1.10/test/data.xml"); 

    DataSet dset = new DataSet1(); 
    dset.Tables[0].Merge(reportData.Tables[0]); 

    ReportDocument report = new CrystalReport1(); 
    report.SetDataSource(dset.Tables[0]); 
    reportViewer.ViewerCore.ReportSource = report; 

所以现在我需要添加更多的信息报告和xml看起来像这样

<?xml version="1.0" encoding="UTF-8"?> 
<root> 
    <supplier> 
    <s_code>1</s_code> 
    <net_weight>100</net_weight> 
    <rate>100.00</rate> 

    <items> 
     <item_code>SKU001</items_code> 
     <price>100</price> 
    </items> 
    <items> 
     <item_code>SKU002</items_code> 
     <price>200</price> 
    </items> 

    </supplier> 

    <supplier> 
    <s_code>2</s_code> 
    <net_weight>500</net_weight> 
    <rate>150.00</rate> 

    <items> 
     <item_code>SKU001</items_code> 
     <price>100</price> 
    </items> 

    </supplier> 

</root> 

所以任何想法如何将项目插入数据集,并在报告中使用它?

问候

回答

0

您需要与嵌套关系定义你的数据集。 有关详细信息,请参见Nesting DataRelations

您可以用VS2002 .. VS2010数据集设计做到这一点:

  • 创建表supplieritems
    • 化妆舒尔两个表有一个字段s_code
  • 创建关系表supplieritems
    • 利用现场s_code作为联系纽带
    • 标记嵌套

的关系为执行代码的项目应该是他们的父母低于后。

+0

非常感谢。现在即时通讯3上面的XML记录,以及任何想法如何为这3记录生成2页? – 2012-01-30 17:58:50

+0

“2页”是什么意思?如果您的意思是suplier 1包含2个子项目,而supplier 2包含子项目,则您的关系需要包含在suplier和items中相同的外键。 – k3b 2012-01-30 20:51:09

+0

是的。我修改了xml以包含内部项目 – 2012-01-30 21:22:39