Как расположить эти данные в отчете? - PullRequest
0 голосов
/ 31 января 2012

у меня есть данные 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. создал отчет Crystal с набором данных и добавил s_code, net_weight в раздел заголовка и код товара, цена в разделе деталей.
  5. затем я щелкаю правой кнопкой мыши по отчету Crystal Report и выбираю Report-> Selection Expert и устанавливаю вкладку подкачки раздела на Новую страницу после 1 видимой записи

это код, который я использовал для загрузки 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 Ответ

1 голос
/ 31 января 2012

Вы, вероятно, имеете в виду «1 страница на одного поставщика» (а не «1 страница на одного клиента»). Если мое предположение верно, вам нужно использовать «Отчет -> Эксперт группы» для группировки по DataTable1.s_code, а затем использовать эксперта раздела, чтобы включить «Новую страницу раньше» для заголовка группы.

...