منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : طلب كود لربط Reportviewerباكثر من تقرير حسب شرط معين
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم اساتذتنا الكرام في منتدانا الكبير وأخص منهم الاستاذ أبو ليلى والاستاذ أبو عمر ولا يهونون الاعضاء المحترمون الاخرون
لدي قاعدة بيانات تحوي جدول واحد بأسم Tab1 يخص طلاب المدرسة فيه عدة حقول وكالاتي:,ID,StName,Class,As1,As2,Ar1,Ar2
حيث As1,As2 درجات ماده التربية الاسلامية و Ar1,Ar2 درجات مادة العربي
اريد ان اظهر درجات الاسلامية في تقرير ودرجات العربي في تقرير اخر
تمكنت بفضل الله ومساعدة الاخوين أبو ليلى وأبو عمر من عمل المطلوب ولكن بالصيغة التاليه::: عملت اكثر من Reportviewer وكل واحد ربطته بتقرير فصار عدد التقارير كثير وعدد Reportviewe كثير سؤالي:
هل هناك طريقة لربط كل هذه التقارير ب Reportviewer واحد او ان اجعل التقرير الواحد في كل مرة تختلف الحقول التي يعرضها أعتمادا على شرط معين
أسف للاطالة شكري وتقديري للجميع وفقكم الله.
 
غفر الله لنا ولك
نعم تستطيع عرض كافة التقارير لديك في اداة واحدة وتكتفي فقط بتعريفات التالي
1- الداتا ست لكل تقرير لديك وجعله مصدر للبيانات مع اسم الجدول او الداتا تيبل في التقرير
2- تعريف مسار ملف التقرير
كالاتي:
PHP كود :
public MainWindow()
        {
            
InitializeComponent();
            
DataTable dt = new DataTable();
            
dt.Columns.Add(new DataColumn("ID"typeof(int)));
            
dt.Columns.Add(new DataColumn("Name"typeof(string)));
            
dt.Columns.Add(new DataColumn("City"typeof(string)));
            
dt.Columns.Add(new DataColumn("OrderAmount"typeof(int)));

            
DataRow dr dt.NewRow();
            
dr["ID"] = 1;
            
dr["Name"] = "CK Nitin";
            
dr["City"] = "New York";
            
dr["OrderAmount"] = 100;
            
dt.Rows.Add(dr);

            
ReportDataSource datasource = new ReportDataSource("DataSet1"dt);
      
            
this._reportViewer.LocalReport.DataSources.Clear();
            
this._reportViewer.LocalReport.DataSources.Add(datasource);

            
this._reportViewer.LocalReport.ReportPath Application.StartupPath " \Report1.rdlc");
            
_reportViewer.RefreshReport();
 
// Path of the rdlc file
           
this._reportViewer.RefreshReport();
 
        } 
واعذرني على قل الاجتهاد في الاجابة
ولمزيد من المعرفة حول التعامل مع هذه الاداة تابع اجابة الاخ الطلب
http://vb4arb.com/vb/thread-13061-post-6...l#pid61851
وانظر ايضا في نفش هذه الصفحة لمجموعة المواضيع المحتمل ان تكون مشابهة لطلبك
بالتوفيق
(19-09-16, 05:28 PM)أبو عمر كتب : [ -> ]غفر الله لنا ولك
نعم تستطيع عرض كافة التقارير لديك في اداة واحدة وتكتفي فقط بتعريفات التالي
1- الداتا ست لكل تقرير لديك وجعله مصدر للبيانات مع اسم الجدول او الداتا تيبل في التقرير
2- تعريف مسار ملف التقرير
كالاتي:
PHP كود :
public MainWindow()
 
       {
 
           InitializeComponent();
 
           DataTable dt = new DataTable();
 
           dt.Columns.Add(new DataColumn("ID"typeof(int)));
 
           dt.Columns.Add(new DataColumn("Name"typeof(string)));
 
           dt.Columns.Add(new DataColumn("City"typeof(string)));
 
           dt.Columns.Add(new DataColumn("OrderAmount"typeof(int)));

 
           DataRow dr dt.NewRow();
 
           dr["ID"] = 1;
 
           dr["Name"] = "CK Nitin";
 
           dr["City"] = "New York";
 
           dr["OrderAmount"] = 100;
 
           dt.Rows.Add(dr);

 
           ReportDataSource datasource = new ReportDataSource("DataSet1"dt);
 
     
            this
._reportViewer.LocalReport.DataSources.Clear();
 
           this._reportViewer.LocalReport.DataSources.Add(datasource);

 
           this._reportViewer.LocalReport.ReportPath Application.StartupPath " \Report1.rdlc");
 
           _reportViewer.RefreshReport();
 
// Path of the rdlc file
 
          this._reportViewer.RefreshReport();
 
 
       
واعذرني على قل الاجتهاد في الاجابة
ولمزيد من المعرفة حول التعامل مع هذه الاداة تابع اجابة الاخ الطلب
http://vb4arb.com/vb/thread-13061-post-6...l#pid61851
وانظر ايضا في نفش هذه الصفحة لمجموعة المواضيع المحتمل ان تكون مشابهة لطلبك
بالتوفيق

اجتهدت كثيرا اخي الكريم ولست مقلا بارك الله بك
هل من حلول اخرى سادتي
إذا كنت تريد ربط ReportViewer واحد عن طريق الكود بأي تقرير موجود بالمشروع استخدم الكود التالي
كما تلاحظ اسم التقرير هو من نوع نصي ويكتب كامل مع نوعه rdlc.
وبهذه الطريقة تستطيع تغيير اسم التقرير المراد ربطه بالكود بسهولة.
كود :
Me.ReportViewer1.LocalReport.ReportEmbeddedResource = Me.GetType().Namespace & "." & "Report1.rdlc"
Me.ReportViewer1.RefreshReport()
كود :
Me.ReportViewer1.LocalReport.ReportEmbeddedResource = Me.GetType().Namespace & "." & "Report2.rdlc"
Me.ReportViewer1.RefreshReport()

مع ضرورة تنفيذ RefreshReport بعد الربط مباشرة.