générer Dynamiquement RDLC - Ce qui me empêche d'utiliser un StringBuilder pour la construction du XML

StackOverflow https://stackoverflow.com/questions/872867

Question

Je construis un rapport local. En raison de certaines limites de la propriété Hidden, je dois générer dynamiquement le rapport.

J'ai trouvé une documentation .

Le contrôle ReportViewer a besoin d'un flux.

Je ne aime pas vraiment la méthode qui est utilisée dans la documentation. Et la construction d'un XmlDocument n'est pas très lisible imo.

Y at-il quelque chose qui me empêche de le faire comme ceci

  

Programme de classe       {           static void Main (string [] args)           {               Générer un rapport();           }

    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();
    }
}
Était-ce utile?

La solution

simple: si vous utilisez cette méthode, des opérations spéciales dans le processeur détectent que les ws erronées de classe utilisées pour générer cette chaîne, à quel point la police sont appelés d'exactitude.

Sérieusement, il n'y a rien qui vous empêche de le faire exactement de cette façon; en fait, sous les couvertures, vous pouvez parier il y a un code dans le générateur de XML plus complexe qui fait quelque chose de très bien comme ça. Lorsque vous descendez à elle, XML est juste une chaîne, et aussi longtemps qu'il est bien formé, cette chaîne va être la même, peu importe la façon dont vous construisez.

L'avantage des autres classes est qu'ils sont plus simples et plus souples lorsque vous voulez construire XML plus compliqué.


Il y a presque une infinité de classes qui peuvent générer des documents XML ou XHTML. Rechercher un qui a une « interface fluide ». Dans un C ++ - comme la langue, il pourrait ressembler à:

  XMLOutStream foo("filename.xml);
  foo.group("Top","attr=val")
     .group("Next")
     .line("Another", "attr=val") ;

pour générer

 <Top>
   <Next attr="val">
      <Another attr="val" />
   </Next>
 </Top>

Je cherchais quelque chose de similaire pour HTML dans cette question.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top