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

نسخة كاملة : تعديل كود في عرض بيانات من جدولين على ريبورت فيور
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم 


احتاج تعديل الكود في ريبورت فيور 

حيث الكود يعمل على جلب بيانات من سجل واحد وجدول واحد وانا احتاجه من جدولين 

عندي بيانات عميل وبيانات سيارات وبيانات مستأجر 

احتاج اني اعمل تقرير مستأجر بحيث انه يظهر لي بيانات العميل والسياره المستأجره وبيانات المستأجر فقط 

وتقرير آخر يظهر شامل جميع سيارات العميل 




كود :
 Dim res =
From x In Me.EmployeesDataSet.information
Where x.ID_M = TryCast(InformationBindingSource.Current, DataRowView).Item("id_m")

       If IsDBNull(res(0).Item("name_a")) Then res(0).Item("name_a") = String.Empty

       Form9.ReportViewer1.LocalReport.DataSources(0).Value = res.CopyToDataTable
       Form9.ReportViewer1.RefreshReport()
       Form9.Show()
اضافة لما سبق
التقرير الأول :
احتاج منه :

الجدول الأول يستخرج منه بيانات المستأجر الحالي لهذا السيارة
الجدول الثاني يسخرج منه بيانات مالك السياره او المستثمر
الجدول الثالث يستخرج منه بيانات هذه السيارة نوعها وموديلها

التقرير الثاني
احتاج منه :

الجدول الأول اسم العميل او المستثمر
الجدول الثاني السيارات وموديلاتها للمستثمر

كما في الصورة المرفقة


وفقكم الله . ما نزلتها الا بعد ما بحث وما عرفت الطريقة .
يجب تعديل الرابط الموجود الداتاسيت mllsDataSet.xsd
انقر مرتين على خط الرابط الموجود بين الجدولين TB1 وtb2
في نافذة الرابط التي ستظهر بدل بين الطرفين بحيث
يكون TB1 في اليسار عند Parent Table مع إعادة تحديد العمود الخاص به وهو ID
ويكون tb2 في اليمين عند Child Table مع إعادة تحديد العمود الخاص به وهو cars_id_pk

ثم افتح Form1 وحدد الداتاجريد وانقر على السهم الصغير الذي سيظهر في طرفه
وافتح Choose Data Srouce وستلاحظ أن TB1BindingSource بجانبه سهم افتحه وسيظهر tb2_TB1 قم باختياره
وسيتم تلقائيا إنشاء Tb2TB1BindingSource وهو الهدف من هذه الخطوة

في الكود الموجود في زر print أضف السطر التالي تحت سطر Form2.ReportViewer1.LocalReport.DataSources(0).Value
PHP كود :
Form2.ReportViewer1.LocalReport.DataSources(1).Value Tb2TB1BindingSource 
الله يكرمك بكرمه ويحفظك وشاكر لك سعة صدرك


بجرب بأذن الله وبعطيك النتيجه
صحيح هذا هو بالضبط يبقى الشرط

البيانات الاساسية تكون ثابته والبيانات الفرعيه تكون حسب العميل من الجدول الاول وبيانات نوع السياره من الجدول الثاني


الله يعطيكم العافيه جميعاً ... احاول فيه بأذن الله يضبط
مشاركتي السابقة كانت على أساس المرفق الأول قبل أن تقوم بتغييره والذي لم يكن فيه سوى جدولين وفورمين
وبالنسبة للمرفق الجديد وجدت أنك قمت بإصلاح الرابط بين الجدولين TB1 وtb2

عموما أصبح الحل في تلك المشاركة ليس له فائدة، وسأقوم بحذفها بعد قليل

سأحاول إيجاد الحل بناء على المرفق الجديد إن تيسر لي ذلك
الله يعطيك العافيه ولاهنت واشكرك ما احب اثقل عليكم وشفت ما احد رد وحاولت اني احط مرفق .

اذا تكرمت اذا لقيت لي حل بحاول افهمها اهم من كل شي لاني وقفت بطريقي وماهي صعبه على عباقره امثالكم ...
هل من طريقه يا شباب الله يعطيكم العافيه ... بحاول ما عرفت لها
السلام عليكم و رحمة الله و بركاته


اولاً قم بتصميم استعلام في القاعدة كما يلي 


ثانياً اتبع الخطوات في الصورة



الان من جهة البرنامج اضف هذا الاجراء لديك

PHP كود :
   Private Sub GetSelect()
 
       Using Con As New Data.OleDb.OleDbConnection With {.ConnectionString My.Settings.mllsConnectionString}
 
           Using Da As New OleDb.OleDbDataAdapter("Select * from Q1"My.Settings.mllsConnectionString)
 
               Da.Fill(Me.MllsDataSet.Q1)
 
           End Using
        End Using
    End Sub 
و هذا لزر الطباعة (طباعة تقرير شامل)
PHP كود :
       GetSelect()
 
       Dim res =
 
               From x In Me.MllsDataSet.Q1
                Where x
.id TryCast(TB1BindingSource.CurrentDataRowView).Item("id")


 
       If IsDBNull(res(0).Item("names")) Then res(0).Item("names") = String.Empty

 
       Form2.ReportViewer1.LocalReport.DataSources(0).Value res.CopyToDataTable
        Form2
.ReportViewer1.RefreshReport()
 
       Form2.Show() 

وكذلك هذه الصورة لتنسيق التقرير ليكون قادراً على عرض تفاصيل مرتبطة بسجل محدد


صورة عن التقرير



بالتوفيق للجميع.
يا جعل والديكم للجنه ولاهنتم جميعاً بطبق الطريقه