Как создать Crystal Report из XML (XML из веб-службы) на C #

Я хочу знать, как я могу создать кристаллический отчет из XML (XML из веб-службы), я читал в некоторых руководствах, что ему нужно найти файл и перетащить поля в отчете, но как насчет XML из Веб-сервис?

Вот код, как я получаю XML из веб-службы

  var doc = XDocument.Parse(trx.GetCardTrx("xxxxx", "xxxx", "xxx", "", dateTimePicker1.Text, dateTimePicker2.Text, "", "", "", "", "", "", "", "", "", "", "", "FALSE", "", "", "", "", "", "", "", "", "", "", ""));
MessageBox.Show(doc.ToString());

Итак, этот код возвращает такие значения (From MessageBox.Show(doc.ToString())

введите описание изображения здесь

А вот код выбранных значений, которые должны быть в отчете

var summary = from r in doc.Descendants("TrxDetailCard") 
                      select new 
                      {
                          Account_Type = r.Element("Account_Type_CH").Value,
                          Captured = r.Element("Captured").Value,
                          Trans_Type_ID = r.Element("Trans_Type_ID").Value,
                          Acct_Num_CH = r.Element("Acct_Num_CH").Value,
                          Tip_Amt_MN = r.Element("Tip_Amt_MN").Value,
                          Total_Amt_MN = r.Element("Total_Amt_MN").Value,
                          Date_DT = r.Element("Date_DT").Value,
                      };

И я хочу создать отчет с использованием Crystal Reports с этими значениями, а не со всеми значениями. Только выбранные значения. Как я могу это сделать? Любые идеи будут большим подспорьем Спасибо: D


person GrayFullBuster    schedule 23.12.2012    source источник
comment
вы знакомы с чтением XMLDocument ..? Можете ли вы также указать, каков путь к этому файлу .xml, чтобы я мог дать вам действительный пример ..   -  person MethodMan    schedule 23.12.2012
comment
@DJKRAZE, xml файла нет, результат от функции веб-сервиса   -  person GrayFullBuster    schedule 23.12.2012
comment
как называется отчет, который вы пытаетесь создать .. Я добавлю его к своему ответу ..   -  person MethodMan    schedule 23.12.2012
comment
@DJKRAZE, TransReport: D   -  person GrayFullBuster    schedule 23.12.2012


Ответы (1)


Это не было проверено, но вы можете попробовать что-то вроде следующего

using System.Xml;
using System.Xml.Linq;

var doc = XDocument.Parse(trx.GetCardTrx("xxxxx", "xxxx", "xxx", "", dateTimePicker1.Text, dateTimePicker2.Text, "", "", "", "", "", "", "", "", "", "", "", "FALSE", "", "", "", "", "", "", "", "", "", "", ""));

  var data = new DataSet();
  var context = new XmlParserContext(null, new XmlNamespaceManager(new NameTable()), null, XmlSpace.None);
  var reader = doc
  data.ReadXml(reader);

  var report = new ReportDocument();

  report.SetDataSource(data);
  this.crystalReportViewer1.ReportSource.ReportSource = report;

Идея в теории должна работать, но вы можете ссылаться на что-то подобное по этой ссылке Crystal Report на основе XML не обновляет дочерние объекты при обновлении

person MethodMan    schedule 23.12.2012
comment
Почему есть путь? Могу я что-нибудь сделать TransReport rpt = new TransReport (); rpt.SetDataSource (данные); crystalReportViewer1.ReportSource = rpt; ?? - person GrayFullBuster; 23.12.2012
comment
есть ошибка Ошибка 2 Аргумент 1: невозможно преобразовать из System.Xml.Linq.XDocument в System.Xml.XmlReader - person GrayFullBuster; 23.12.2012
comment
А я не могу вызвать crystalReportViewer1.ViewCore? Я использую только crystalReportViewer1.ReportSource = report; - person GrayFullBuster; 23.12.2012
comment
Вот хорошая ссылка для xDocument на XmlReader stackoverflow.com/questions/1508572/ - person MethodMan; 23.12.2012
comment
все еще есть ошибка Ошибка 2 Аргумент 1: невозможно преобразовать из System.Xml.XmlDocument в System.Xml.XmlReader - person GrayFullBuster; 23.12.2012
comment
есть ли способ сохранить xml в каталог, а затем отправить мне свой код, я исправлю его для вас ... - person MethodMan; 23.12.2012
comment
мне нужно сохранить в каталог? - person GrayFullBuster; 24.12.2012