4

XML (XML は Web サービスからのもの) から Crystal レポートを作成する方法を知りたいのですが、いくつかのチュートリアルで、ファイルを見つけてレポート内のフィールドをドラッグする必要があることを読みましたが、ウェブサービス?

これは、Web サービスから 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

4

1 に答える 1

2

これはテストされていませんが、次のようなものを試すことができますか

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;

理論的にはアイデアは機能するはずですが、このリンクから類似したものを参照できます 。XMLベースのCrystal Reportは、更新時に子オブジェクトを更新しません。

于 2012-12-23T02:24:03.290 に答える