كيفية تعيين DataSource للحقول في XtrarePorts دون وجود مجموعة بيانات في وقت التصميم؟

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

  •  12-09-2019
  •  | 
  •  

سؤال

أنا ألقي نظرة الآن على أداة الإبلاغ XTrarePorts وهناك شيء لا أحصل عليه بعد.

كيف يمكنني ضبط مصدر البيانات لحقل معين (أظهر في التقرير كعلامة أعتقد)، دون الحاجة إلى إنشاء اتصال ومحول ومجموعات بيانات في وقت التصميم ولكن القيام بذلك برمجيا.

على سبيل المثال، يمكنني الحصول على جدول يسمى "مستخدم" مع 3 حقول: UserID، اسم المستخدم وكلمة المرور. في مصمم التقرير، أعرض 3 ملصقات (وهنا سؤالي) تعيين DataSource لإظهار حقول قاعدة البيانات الثلاثة. بعد ذلك، في الكود الخلف، أقوم بإنشاء اتصال، قم بتنفيذ أمر، وملء مجموعة بيانات، وإنشاء مثيل تقرير، قم بتمرير DataTable إليه وإظهار معاينة التقرير.

هل هذا ممكن؟ اسمحوا لي أن أعرف إذا لم يكن واضحا بما فيه الكفاية.

شكرا!

هل كانت مفيدة؟

المحلول

يمكنك تعيين خاصية DataSourceschema الخاصة بك إلى مخطط XML تمثل مصدر بياناتك. ستتيح لك استخدام مصمم التقرير لتعيين ارتباطات البيانات الخاصة بك في وقت التصميم دون إنشاء اتصال بقاعدة البيانات في كل مرة.

إليك كيف أفعل ذلك: بمجرد الانتهاء من استعلام تقريري في الغالب، قمت بتشغيل التعليمات البرمجية مرة واحدة مع مكالمة

myDataSet.WriteXml("C:\myDataSourceSchema.xml", System.Data.XmlWriteMode.WriteSchema)

ثم في مصمم التقرير، قمت بتعيين خاصية DataSourceschema التقرير إلى الملف المنشئ حديثا. سيقوم هذا بملء علامة تبويب قائمة قائمة مصمم التقرير حتى تتمكن من ربط وقت التصميم. بهذه الطريقة يجب عليك فقط أن يكون لديك مصدر بيانات صالح بمجرد (أو في أي وقت تقوم بتغيير الأعمدة). يمكنك بالتأكيد أن تظل نهج Przemaas وقم بجميع ارتباطات البيانات الخاصة بك في التعليمات البرمجية، لكنني أفضل السماح للمصمم باستخدام معظم العمل.

نصائح أخرى

بناء تقرير بدون مجموعة بيانات، ستستخدم كائن Ilist ... لذلك اتبع هذا البرنامج التعليمي الجميل

كيفية: ربط تقرير ويب إلى قائمة الصفيف https://documentation.devexpress.com/#xtrareports/customdocument3851.

نعم هذا ممكن. يمكنك تحديد قواعد البيانات اللازمة في التعليمات البرمجية:

this.xrLabel1.DataBindings.Add(new DevExpress.XtraReports.UI.XRBinding("Text", data, "Name", "aaa"));
  • النص هنا هو خاصية على فئة XRLABEL. أفترض أنك تريد عرض حقل ملزم كنص في التسمية.
  • البيانات هي كائنك مع البيانات
  • "الاسم" هو اسم الحقل الذي تريد عرضه
  • "AAA" هو تنسيق العرض، قابل للتطبيق في حال كنت ترغب في عرض القيم بتنسيق مخصص

أساسا قواعد البيانات في XtrarePort يتصرف بنفس الطريقة تماما مثل قواعد بيانات نماذج Windows القياسية.

اسمحوا لي أن أعرف هل تحتاج إلى مزيد من الإرشادات

هنا هو بديل ..

rtpObject.DataSourceSchema = dataSet.GetXmlSchema();

قبل القيام بهذا العقار المعدل المحدد كجمهور

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", ageingBindingSource, "ageing_contactsLookup.name");
this.xrLabel19.DataBindings.Add(binding);

// أو //

XRBinding binding = new XRBinding("Text", dbaDataSet, "transactions.fk_transitems_transactionid.name2");
this.xrTableCell1.DataBindings.Add(binding);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top