تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشكلة في جلب الصورة في التقرير
#1
هل يمكن تعديل الكود حتى يتم جلب الصورة في التقرير
علمـاً بأن الصورة مخزنة في قاعدة البيانات في جدول TBL_File - اسم الحقل Cimage
أو يمكن أن يتم جلب الصورة من المجلد School_logo في - Debug
المهم يتم جلب الصورة أو اللوجو في التقرير؛ فأي طريقة تنجح يتم اعتمادها

كود :
Private Sub ButReport1_Click(sender As Object, e As EventArgs) Handles ButReport1.Click
       ' كشف بأسمــاء الطلبــة
       If CombClass.Text = "" Then
           MessageBox.Show(" عفواً ، يجب اختيـار الفصل الدراســي", "تنبيــه", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign)
           Exit Sub
       End If

       If Combroom.Text = "" Then
           MessageBox.Show(" عفواً ، يجب اختيـار القسم الدراســي", "تنبيــه", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign)
           Exit Sub
       End If

       Dim rpt1 As New CrystalReport1
       Dim dt As New DataTable()
       Try
           Using da = New OleDbDataAdapter("SELECT * From TBL_Students WHERE ClassName LIKE '%" & CombClass.Text & "%' AND Classroom LIKE '%" & Combroom.Text & "' ", Con)
               dt.Clear()
               da.Fill(dt)
               rpt1.SetDataSource(dt)
           End Using
           If dt.Rows.Count = 0 Then
               MessageBox.Show("عفـــواً ... لا يوجــد طلبــة دراسين فـي: " & " " & CombClass.Text & vbCrLf & " قسـم: " & Combroom.Text & " * ليتم عرض بيانـاتهم ", "تنبيـــه", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign)
               CombClass.Text = String.Empty
               Combroom.Text = String.Empty
               Exit Sub
           End If

           Dim LTextName As CrystalDecisions.CrystalReports.Engine.TextObject = rpt1.Section2.ReportObjects("LTextName")
           LTextName.Text = " " & Me.LabelC2.Text & Environment.NewLine & " " & Me.LabelC4.Text & Environment.NewLine & " كشف بأسمـاء طلبـة " & Me.CombClass.Text & Environment.NewLine & " القسـم: " & Me.Combroom.Text
           Dim TextName As CrystalDecisions.CrystalReports.Engine.TextObject = rpt1.Section2.ReportObjects("TextName")
           TextName.Text = " " & Me.LabelC5.Text & Environment.NewLine & " مديــر عام المعهـد"

           rpt1.SetParameterValue("Image", Application.StartupPath & "\School_logo\logo.jpg‎")

           FormReport.CrystalReportViewer1.ReportSource = rpt1
           FormReport.CrystalReportViewer1.Zoom(100)
           FormReport.CrystalReportViewer1.Refresh()
           FormReport.CrystalReportViewer1.RefreshReport()
           FormReport.Show()
       Catch ex As Exception
           MessageBox.Show(ex.Message)
       End Try

   End Sub

جربت هذا الجزء في الكود ولم يفلح

           rpt1.SetParameterValue("Image", Application.StartupPath & "\School_logo\logo.jpg‎")


وجربت هذا الجزء أيضاً

Dim logoPath As String = Application.StartupPath & "\School_logo\logo.jpg"
Dim pic As CrystalDecisions.CrystalReports.Engine.PictureObject = rpt1.Section2.ReportObjects("Picture1")
pic.ObjectFormat.PictureGraphicLocation = logoPath

علماً بأن الصــورة تم جلبها في الفورم FormReports
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
الرد }}}
تم الشكر بواسطة:
#2
الطريقة الأولى: جلب الصورة من مجلد المشروع (أسهل وأنسب)
إذا كانت الصورة موجودة في المجلد \School_logo\logo.jpg داخل مجلد Debug (أي بجانب ملف exe)، فببساطة:
تأكد من أن الصورة تمت إضافتها إلى المشروع وأن:
Copy to Output Directory الخاص بها مضبوط على Copy if newer أو Copy always.
افتح تقرير CrystalReport1 في وضع التصميم.
قم بإدراج صورة Picture Object في التقرير (من شريط الأدوات)، ثم:
لا تحدد صورة حالياً.
اضبط اسم الكائن (مثلاً Picture1).
في الكود، استخدم الكود التالي لتحديث الصورة من المسار:.

PHP كود :
Dim pic As CrystalDecisions.CrystalReports.Engine.PictureObject
pic 
CType(rpt1.Section2.ReportObjects("Picture1"), CrystalDecisions.CrystalReports.Engine.PictureObject)
pic.ImageLocation Application.StartupPath "\School_logo\logo.jpg" 

مهم: لا تستخدم SetParameterValue("Image", ...) إلا إذا كنت تستخدم حقل Parameter وربطه بالصورة في التصميم، وهو أسلوب أصعب وأقل مرونة.
الطريقة الثانية: جلب الصورة من قاعدة البيانات (من حقل Cimage)
لو كانت الصورة مخزنة في قاعدة البيانات (بصيغة OLE Object أو byte[]) وتريد عرضها، يجب:
في تقرير CrystalReport1:
أضف الحقل Cimage من الجدول TBL_File إلى التقرير.
تأكد من أن نوع الحقل في التقرير هو Blob Field.
هذه الطريقة مضمونة وسهلة التنفيذ.
في الكود:
تأكد أنك تجلب بيانات TBL_File، مثلاً:

PHP كود :
Dim daLogo As New OleDbDataAdapter("SELECT Cimage FROM TBL_File WHERE ID = 1"Con)
Dim dtLogo As New DataTable()
daLogo.Fill(dtLogo)

If 
dtLogo.Rows.Count 0 Then
    rpt1
.Database.Tables("TBL_File").SetDataSource(dtLogo)
End If 

مع ضرورة التأكد من أن التقرير يحتوي على الربط الصحيح لهذا الجدول.
الرد }}}
تم الشكر بواسطة: Taha Okla , princelovelorn , princelovelorn , Zuhare , Zuhare
#3
المشكلة في عرض بيانات الجدولين في التقرير
شعار المعهد في الجدول = TBL_File - اســم الحقل = Cimage
وبيانات الطلبـة في الجدول = TBL_Students

المشكلة في كيفية تمريـر شعار المعهد في التقريـر
ووضعت أيضاً شعار كمثال فقط في المجلد = Debug = School_logo

https://top4top.io/downloadf-3435iy17y1-rar.html
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
الرد }}}
تم الشكر بواسطة:
#4
(28-05-25, 09:45 PM)مصمم هاوي كتب : المشكلة في عرض بيانات الجدولين في التقرير
شعار المعهد في الجدول =  TBL_File -  اســم الحقل = Cimage
وبيانات الطلبـة في الجدول = TBL_Students

المشكلة في كيفية تمريـر شعار المعهد في التقريـر
ووضعت أيضاً شعار كمثال فقط في المجلد = Debug = School_logo

https://top4top.io/downloadf-3435iy17y1-rar.html

اربطها عن طريق الباراميتر وليس الداتا تابل  اسهل لك
الطريقة
أضف باراميتر (مثلاً: ImagePath) في التقرير ثم أضف صورة ديناميكية واربطها بالباراميتر ثم في كود عرض التقرير أضف السطر التالي :
كود :
rpt1.SetParameterValue("ImagePath", logoPath)

logoPath = مسار الصورة
لا إله إلا الله وحده لا شريك له له الملك وله الحمد وهو على كل شئ قدير
سبحان الله وبحمده سبحان الله العظيم
سبحان الله والحمد لله ولا إله إلا الله والله أكبر ولا حول ولا قوة إلا بالله العلى العظيم
رب أغفر لي 

الرد }}}
تم الشكر بواسطة: مصمم هاوي
#5
(29-05-25, 01:09 AM)princelovelorn كتب :
(28-05-25, 09:45 PM)مصمم هاوي كتب : المشكلة في عرض بيانات الجدولين في التقرير
شعار المعهد في الجدول =  TBL_File -  اســم الحقل = Cimage
وبيانات الطلبـة في الجدول = TBL_Students

المشكلة في كيفية تمريـر شعار المعهد في التقريـر
ووضعت أيضاً شعار كمثال فقط في المجلد = Debug = School_logo

https://top4top.io/downloadf-3435iy17y1-rar.html

اربطها عن طريق الباراميتر وليس الداتا تابل  اسهل لك
الطريقة
أضف باراميتر (مثلاً: ImagePath) في التقرير ثم أضف صورة ديناميكية واربطها بالباراميتر ثم في كود عرض التقرير أضف السطر التالي :
كود :
rpt1.SetParameterValue("ImagePath", logoPath)

logoPath = مسار الصورة

لا أدري لماذا لم يضبط معي. هل نسيت أمرا. فلو سمحت وتكرمت بالتعديل على المثال حتى أدرس الكود جيدا وأعرف مكمن الداء
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
الرد }}}
تم الشكر بواسطة:
#6
لم أجد حلا إلا عن طريق إنشاء تقرير فرعي (Subreport)
حيث قمت بتمرير (Logo) إليه ثم إضافته للتقرير الرئيسي.
وبهذا الطريقة نجح الأمر.
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
الرد }}}
تم الشكر بواسطة:
#7
(31-05-25, 05:02 PM)Zuhare كتب : هل انتهى الموضوع

أبــداً الموضوع لم ينتهي بعد؛ بل هو معلقٌ إلى أن يرزقني اللهُ بخبير، وأنا متأكد من ذلك
وبالنسبة لصندوق الرسائل الخاصة فقد قمتُ بإفراغ جميع الرسائل
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
الرد }}}
تم الشكر بواسطة: Zuhare , Zuhare
#8
السيد المصمم الهاوي يا ريت المثال بعد نجاح تجربتك
حتي نستفيد
الرد }}}
تم الشكر بواسطة: مصمم هاوي
#9
(01-06-25, 09:44 AM)atefkhalf2004 كتب : السيد المصمم الهاوي يا ريت المثال بعد نجاح تجربتك
حتي نستفيد

تكرم قمت ببعض المحاولات حيث عملت استعلام من جدولين:
جدول الطلبة
والجدول الموجود فيه اللوجو
ثم أدرجت حقول بيانات الطلبة في التقرير مع سحب حقل اللوجو ونجح الأمر.
ولكن لا أريد هذه الطريقة.
أنا أريد تمرير الصورة مباشرة من الجدول الموجود فيه الصورة بدون استعلام.

لو استطعت تنفبذ الأمر فحاضر
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
الرد }}}
تم الشكر بواسطة:
#10
ارغب في المثال علي الوضع الحالي
الرد }}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: