Je jette un coup d'oeil maintenant à l'outil de rapport de Xtrareports et je ne le comprends pas encore. P>
Comment définir la source de données d'un certain champ (affichée dans le rapport sous forme d'une étiquette que je suppose), sans avoir à créer une connexion, un adaptateur et une carte de données au moment de la conception, mais le faisant de manière programmative. P>
Par exemple, je peux avoir une table appelée "utilisateur" avec 3 champs: UserID, Nom d'utilisateur et mot de passe. Dans le concepteur de rapports, je place 3 étiquettes (et voici ma question) définit la DataSource pour afficher les 3 champs de base de données. Ensuite, dans le code derrière, je crée une connexion, exécutez une commande, remplissez un jeu de données, créez une instance de rapport, transmettez-la sur l'ensemble et affiche l'aperçu du rapport. P>
est-ce possible? Faites-moi savoir si ce n'est pas assez clair. P>
merci! p>
6 Réponses :
Oui, c'est possible. Vous pouvez définir les annonces de données nécessaires dans le code:
this.xrLabel1.DataBindings.Add(new DevExpress.XtraReports.UI.XRBinding("Text", data, "Name", "aaa"));
Fondamentalement Dataildingings dans XTraReport Agissez à peu près de la même manière que les fichiers Windows standard formes de données. P>
Faites-moi savoir si vous avez besoin de plus de directives P> P>
+1 Przemaas pour me montrer la façon de le faire par programme, bien que j'ai le sentiment que c'est un peu conversant, ne pensez-vous pas? Vous devriez être capable de modifier directement la source de données d'un contrôle d'étiquettes. Merci!
Vous pouvez définir la propriété DataSourceschema de votre rapport sur un schéma XML qui représente votre DataSource. Cela vous permettra d'utiliser le concepteur de rapport pour définir vos liaisons de données au moment de la conception sans établir une connexion à la base de données à chaque fois.
Voici comment je le fais:
Une fois que j'ai la requête de mon rapport surtout finalisé, j'exécute le code une fois avec un appel à p> puis dans le concepteur de rapports, j'ai défini la propriété Datasourceschema du rapport dans le fichier nouvellement créé. Cela remplira l'onglet de la liste de champs du concepteur de rapport afin que vous puissiez lier au moment de la conception. De cette façon, vous devez avoir une source de données valide une fois (ou une fois de temps que vous modifiez vos colonnes). Vous pouvez toujours toujours faire l'approche de Przemaas et faire toutes vos liaisons de données dans le code, mais je préfère laisser le concepteur gérer la plupart des travaux. P> p>
Quelque chose comme c'est ce que je cherchais, merci Kyle! Je pense que je peux construire une très petite application qui obtient un SQL et écrit un XML afin de le faire un peu plus rapidement.
Construire un rapport sans jeu de données, vous utiliseriez un objet ilist ... alors suivez ce beau tutoriel p>
Comment: lier un rapport Web à une liste de matrices forte> https://documentation.devexpress.com/#xtrareports/customdocument3851 P>
Merci Jalchr, c'est ce que je cherchais. J'ai déjà résolu les mois il y a des mois, mais merci!
Voici un alternatif ..
rtpObject.DataSourceSchema = dataSet.GetXmlSchema();
Avant de faire cette option de modificateur définie comme publique
InvoicePrinting_Rpt InvoicePrintingRpt = new InvoicePrinting_Rpt();//report object InvoicePrintingRpt.BillDetails.Report.DataSource = ds_Invoice; InvoicePrintingRpt.Report.DataMember = ds_Invoice.Tables[0].TableName; //bellow third parameter as your column name. InvoicePrintingRpt.lbl_BillHead.DataBindings.Add("Text", null, "BILL_DESCRIPTION"); InvoicePrintingRpt.lbl_Det_Date.DataBindings.Add("Text", null, "TRANSACTION_DATE"); InvoicePrintingRpt.lbl_ISINCode.DataBindings.Add("Text", null, "ISIN_CODE"); ReportViewer1.Report = InvoicePrintingRpt;//assign report obj ReportViewer1.Report.Name = "DevExpress_Reports.InvoicePrinting_Rpt"; ReportViewer1.DataBind(); //binding
XRBinding binding = new XRBinding("Text", dbaDataSet, "transactions.fk_transitems_transactionid.name2"); this.xrTableCell1.DataBindings.Add(binding);