如何在水晶报告中安排这些数据?

时间:2012-01-31 06:01:47

标签: c# .net xml .net-4.0 crystal-reports

我有像这样的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>
      <s_code>1</s_code> 
      <item_code>SKU001</items_code>
      <price>100</price>
    </items>
    <items>
      <s_code>1</s_code>
      <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>
      <s_code>2</s_code>
      <item_code>SKU001</items_code>
      <price>100</price>
    </items>

  </supplier>

</root>

这就是我做的

  1. 定义一个数据集,其中包含两个表。
  2. DataTable1用于存储供应商数据,DataTable2用于存储商品数据
  3. 在DataTable1 s_code和DataTable2 s_code
  4. 之间创建了嵌套关系
  5. 使用数据集创建了一个水晶报告,并将s_code,net_weight添加到标题部分和 item_code,价格详情部分。
  6. 然后我右键单击水晶报告并选择报告 - >选择专家,并在1个可见记录后将章节分页选项卡设置为新页面
  7. 这是我用来将xml加载到两个表中的代码

    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]);
    dset.Tables[1].Merge(reportData.Tables[1]);
    
    ReportDocument report = new CrystalReport1();
    report.SetDataSource(dset);
    reportViewer.ViewerCore.ReportSource = report;
    

    现在我收到3页,其中包含供应商数据和商品。但我希望显示2页[每个供应商1页和每页中与每个客户相关的项目数据]

    任何想法我在这里做错了什么?我该怎么做才能达到我需要的输出。

    问候

1 个答案:

答案 0 :(得分:1)

您可能的意思是“每个供应商1页”(不是“每个客户1页”)。 如果我的假设是正确的,您需要使用“报告 - &gt;组专家”按DataTable1.s_code进行分组,然后使用部分专家为组标题启用“之前的新页面”。