28-05-25, 11:33 AM
الطريقة الأولى: جلب الصورة من مجلد المشروع (أسهل وأنسب)
إذا كانت الصورة موجودة في المجلد \School_logo\logo.jpg داخل مجلد Debug (أي بجانب ملف exe)، فببساطة:
تأكد من أن الصورة تمت إضافتها إلى المشروع وأن:
Copy to Output Directory الخاص بها مضبوط على Copy if newer أو Copy always.
افتح تقرير CrystalReport1 في وضع التصميم.
قم بإدراج صورة Picture Object في التقرير (من شريط الأدوات)، ثم:
لا تحدد صورة حالياً.
اضبط اسم الكائن (مثلاً Picture1).
في الكود، استخدم الكود التالي لتحديث الصورة من المسار:.
مهم: لا تستخدم SetParameterValue("Image", ...) إلا إذا كنت تستخدم حقل Parameter وربطه بالصورة في التصميم، وهو أسلوب أصعب وأقل مرونة.
الطريقة الثانية: جلب الصورة من قاعدة البيانات (من حقل Cimage)
لو كانت الصورة مخزنة في قاعدة البيانات (بصيغة OLE Object أو byte[]) وتريد عرضها، يجب:
في تقرير CrystalReport1:
أضف الحقل Cimage من الجدول TBL_File إلى التقرير.
تأكد من أن نوع الحقل في التقرير هو Blob Field.
هذه الطريقة مضمونة وسهلة التنفيذ.
في الكود:
تأكد أنك تجلب بيانات TBL_File، مثلاً:
مع ضرورة التأكد من أن التقرير يحتوي على الربط الصحيح لهذا الجدول.
إذا كانت الصورة موجودة في المجلد \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
مع ضرورة التأكد من أن التقرير يحتوي على الربط الصحيح لهذا الجدول.
