動的RDLCを生成する - XMLを構築するためのStringBuilderを使用してから私を停止して何
-
22-08-2019 - |
質問
私は、ローカルレポートを構築しています。そのためHiddenプロパティのいくつかの制限のため、私は動的にレポートを生成する必要があります。
私はここのいくつかのドキュメントを見つけました。
のReportViewerコントロールは、ストリームを必要とします。
私は実際にドキュメントで使われている方法は好きではありません。そして、XmlDocumentオブジェクトを構築するIMOの非常に読みやすいではありません。
このようにそれをやってから私を停止するものがある。
クラスプログラム { 静的な無効メイン(文字列[] args) { GenerateReport(); }
static void GenerateReport(){
StringBuilder reportXml = new StringBuilder();
reportXml.Append("<Report>");
reportXml.Append("<PageHeight>8.5in</PageHeight>");
reportXml.Append("</Report>");
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.LoadXml(reportXml.ToString());
xmlDocument.Save(@"C:\test.xml");
xmlDocument.Save(Console.Out);
Console.ReadLine();
}
}
解決
シンプル:あなたがそのメソッドを使用している場合、プロセッサ内の特別な操作は、正当警察がその時点でその文字列を生成するために使用される間違ったクラスWSは、と呼ばれていることを検出します。
真剣に、まさにそのようにそれをやってからあなたを保つものは何もありません。実際には、あなたが賭けることができるカバーの下に非常に多くのそのような何かをして、より複雑なXML発生器内のいくつかのコードがあります。あなたはそれに降りたとき、XMLは単なる文字列であり、そして限り、それがうまく形成されていますように、その文字列は、あなたがそれを構築する方法に関係なく、同じことを行っていないされます。
他のクラスの利点は、あなたがより複雑なXMLを構築したいとき、彼らは、よりシンプルで柔軟だということです。
<時間>XMLやXHTMLを生成することができ、ほぼ無限に多くのクラスがあります。 「流れるようなインターフェイス」を持つものを探してください。 - C ++言語のような、それは次のようになります。
XMLOutStream foo("filename.xml);
foo.group("Top","attr=val")
.group("Next")
.line("Another", "attr=val") ;
生成する
<Top>
<Next attr="val">
<Another attr="val" />
</Next>
</Top>
私はこの質問をhref="https://stackoverflow.com/questions/782316/c-html-generation-classes">