ارسال فایل غکس از فرم به کریستال ریپورت
سلام دوستان
من روی فرمم یدونه عکس دارم می خوام وقتی گزارش میگیرم این عکس داخل گزارشم باشه چه روشی را پیشنهاد میدید
برای نوشته از این روش استفاده می کنم
Dim modir As CrystalDecisions.CrystalReports.Engine.TextObject = CType(rpt.ReportDefinition.Sections(3).ReportObjec ts("txtmodir"), TextObject)
modir.Text = txtShModir.Text
نقل قول: ارسال فایل غکس از فرم به کریستال ریپورت
Imports CrystalDecisions.CrystalReports.Engine
' ...
Dim report As New ReportDocument()
report.Load("Path\To\Your\Report.rpt") ' مسیر فایل گزارش خود را در این قسمت قرار دهید
Dim imagePath As String = "Path\To\Your\Image.jpg" ' مسیر فایل عکس خود را در این قسمت قرار دهید
report.SetParameterValue("ImageParameter", imagePath) ' ImageParameter را با نام پارامتر عکس خود جایگزین کنید
' نمایش گزارش
CrystalReportViewer1.ReportSource = report
CrystalReportViewer1.Refresh()
نقل قول: ارسال فایل غکس از فرم به کریستال ریپورت
سلام
پاسخی که در پست شماره 2 ارسال شده درسته ولی بهتره از روش جاسازی (Embed) تصویر استفاده کنید.
چرا که در غیر اینصورت تصویر توسط کاربران قابل تغییر خواهد بود....
نقل قول: ارسال فایل غکس از فرم به کریستال ریپورت
سلام
من هم عکس را در خود فرم های برنامه نویسی اضافه کردنم و در پوشه خاصی نریختم، ولی نمی تونم چطوری این عکسو داخل کریستال ریپورت فراخوانی کنم
نقل قول:
نوشته شده توسط
ROSTAM2
سلام
پاسخی که در پست شماره 2 ارسال شده درسته ولی بهتره از روش جاسازی (Embed) تصویر استفاده کنید.
چرا که در غیر اینصورت تصویر توسط کاربران قابل تغییر خواهد بود....
نقل قول: ارسال فایل غکس از فرم به کریستال ریپورت
من از این کد استفاده میکنم، ریپورت ها را داخل خود ویژیوال استفاده میکنم
کریستال ریپورت 13
Dim oda As New SqlClient.SqlDataAdapter(strsqls, strconnection)
Dim adataset As New DataSet
oda.Fill(adataset, "Tbl_GharardadElam")
Dim rpt As New NameAtashBedoneSarbarg
rpt.Load("NameAtashBedoneSarbarg")
rpt.SetDataSource(adataset.Tables("Tbl_GharardadEl am"))
''''''''''''''
Dim modir As CrystalDecisions.CrystalReports.Engine.TextObject = CType(rpt.ReportDefinition.Sections(3).ReportObjec ts("txtmodir"), TextObject)
modir.Text = FrmMain.txtShModir.Text
FrmRep.CrystalReportViewer1.ReportSource = rpt
FrmRep.CrystalReportViewer1.Refresh()
FrmRep.ShowDialog()
نقل قول:
نوشته شده توسط
پرستو پارسایی
Imports CrystalDecisions.CrystalReports.Engine
' ...
Dim report As New ReportDocument()
report.Load("Path\To\Your\Report.rpt") ' مسیر فایل گزارش خود را در این قسمت قرار دهید
Dim imagePath As String = "Path\To\Your\Image.jpg" ' مسیر فایل عکس خود را در این قسمت قرار دهید
report.SetParameterValue("ImageParameter", imagePath) ' ImageParameter را با نام پارامتر عکس خود جایگزین کنید
' نمایش گزارش
CrystalReportViewer1.ReportSource = report
CrystalReportViewer1.Refresh()
نقل قول: ارسال فایل غکس از فرم به کریستال ریپورت
' تعریف متغیر برای ذخیره مسیر فایل عکس
Dim imagePath As String = "PATH_TO_YOUR_IMAGE_FILE"
' تعیین مسیر فایل عکس به پارامتر گزارش
rpt.SetParameterValue("ImageParam", imagePath)
' تغییر متن مدیر در گزارش
Dim modir As CrystalDecisions.CrystalReports.Engine.TextObject = CType(rpt.ReportDefinition.Sections(3).ReportObjec ts("txtmodir"), TextObject)
modir.Text = FrmMain.txtShModir.Text
اینگونه تست بفرمائید
نقل قول: ارسال فایل غکس از فرم به کریستال ریپورت
نقل قول:
نوشته شده توسط
پرستو پارسایی
' تعریف متغیر برای ذخیره مسیر فایل عکس
Dim imagePath As String = "PATH_TO_YOUR_IMAGE_FILE"
' تعیین مسیر فایل عکس به پارامتر گزارش
rpt.SetParameterValue("ImageParam", imagePath)
' تغییر متن مدیر در گزارش
Dim modir As CrystalDecisions.CrystalReports.Engine.TextObject = CType(rpt.ReportDefinition.Sections(3).ReportObjec ts("txtmodir"), TextObject)
modir.Text = FrmMain.txtShModir.Text
اینگونه تست بفرمائید
جواب نداد شاید من مسیرو اشتباه میرم
3 ضمیمه
نقل قول: ارسال فایل غکس از فرم به کریستال ریپورت
ضمیمه 155440
می خوام نرم افزارم اگر چند شرکتی شد توانایی اینو داشته باشه که هر شرکتی بتونه لوگوی خودشو جایگزین این لوگو کنه
ولی نمی دونم چطوری باید فراخوانی کتم
ترجیهم اینکه لوگو از داخل فرم به کریستال ریپورت ارسال بشه نه از طریق پوشه
ضمیمه 155441
پارامتر داخل گزارش اضافه کردن و در لوکیشن غکس هم مطابق ابن آموزش انجام دادم ولی تا گزارشو می خواهد نشان دهد پیام بالا نمایش داده می شوذ که مسیر عکسو می خواد
ضمیمه 155442
نقل قول: ارسال فایل غکس از فرم به کریستال ریپورت
اگر تصمیم دارید کاربر لوگو رو انتخاب کنه از این کد میتونی ایده بگیری
Imports CrystalDecisions.CrystalReports.Engine
Public Class Form1
Private Sub ButtonSelectLogo_Click(sender As Object, e As EventArgs) Handles ButtonSelectLogo.Click
Dim openFileDialog As New OpenFileDialog()
openFileDialog.Filter = "Image Files|*.png;*.jpg;*.jpeg;*.gif;*.bmp"
If openFileDialog.ShowDialog() = DialogResult.OK Then
PictureBoxLogo.Image = Image.FromFile(openFileDialog.FileName)
End If
End Sub
Private Sub ButtonGenerateReport_Click(sender As Object, e As EventArgs) Handles ButtonGenerateReport.Click
Dim report As New ReportDocument()
report.Load("YourReportFile.rpt")
Dim logoByteArray As Byte() = ImageToByteArray(PictureBoxLogo.Image)
report.SetDataSource(logoByteArray)
CrystalReportViewer1.ReportSource = report
End Sub
Private Function ImageToByteArray(image As Image) As Byte()
Dim ms As New MemoryStream()
image.Save(ms, ImageFormat.Png)
Return ms.ToArray()
End Function
End Class
ولی فکر کنم بهتره کاربر یکبار لوگو رو در دیتابیس ذخیره کنه که نیاز نباشه موقع گزارشگیری به کرات لوگو رو انتخاب کنه . این هم برای خواندن عکس از دیتابیس . و گزارشگیری
Imports System.Data.SqlClient
Public Class Form1
Private connectionString As String = "Data Source=.\SQLEXPRESS;Initial Catalog=YourDatabase;Integrated Security=True"
Private connection As New SqlConnection(connectionString)
Private Sub ButtonSelectLogo_Click(sender As Object, e As EventArgs) Handles ButtonSelectLogo.Click
Dim openFileDialog As New OpenFileDialog()
openFileDialog.Filter = "Image Files|*.png;*.jpg;*.jpeg;*.gif;*.bmp"
If openFileDialog.ShowDialog() = DialogResult.OK Then
PictureBoxLogo.Image = Image.FromFile(openFileDialog.FileName)
' ذخیره تصویر لوگو در پایگاه داده
Dim imageBytes As Byte() = ImageToByteArray(PictureBoxLogo.Image)
SaveLogoToDatabase(imageBytes)
End If
End Sub
Private Sub SaveLogoToDatabase(imageBytes As Byte())
Dim query As String = "INSERT INTO CompanyLogo (LogoImage) VALUES (@LogoImage)"
Dim command As New SqlCommand(query, connection)
command.Parameters.Add("@LogoImage", SqlDbType.Image).Value = imageBytes
connection.Open()
command.ExecuteNonQuery()
connection.Close()
End Sub
Private Function ImageToByteArray(image As Image) As Byte()
Dim ms As New MemoryStream()
image.Save(ms, ImageFormat.Png)
Return ms.ToArray()
End Function
Private Sub ButtonGenerateReport_Click(sender As Object, e As EventArgs) Handles ButtonGenerateReport.Click
Dim report As New ReportDocument()
report.Load("YourReportFile.rpt")
' بازیابی تصویر لوگو از پایگاه داده
Dim logoBytes As Byte() = GetLogoFromDatabase()
Dim logoStream As New MemoryStream(logoBytes)
Dim logoImage As Image = Image.FromStream(logoStream)
PictureBoxLogo.Image = logoImage
' ارسال تصویر لوگو به گزارش
report.SetDataSource(logoBytes)
CrystalReportViewer1.ReportSource = report
End Sub
Private Function GetLogoFromDatabase() As Byte()
Dim query As String = "SELECT LogoImage FROM CompanyLogo"
Dim command As New SqlCommand(query, connection)
Dim adapter As New SqlDataAdapter(command)
Dim dt As New DataTable()
connection.Open()
adapter.Fill(dt)
connection.Close()
Dim logoBytes As Byte() = DirectCast(dt.Rows(0)("LogoImage"), Byte())
Return logoBytes
End Function
End Class
نقل قول: ارسال فایل غکس از فرم به کریستال ریپورت
با عرض معدرت، کد شما رو کجای دستوراتم جا بدهم؟ فراخوانی گزارش من با شما متفاوته
' On Error Resume Next Dim strconnection As String = ("Data Source=" & server & ";Initial Catalog=Main;User ID=ali;Password=!@#;")
Dim oconnetion As New SqlClient.SqlConnection(strconnection)
Dim strsqls As String
If LblSN.Text <> "" Then
strsqls = "select * from Tbl_GarantyElam where SN LIKE N'" & (LblSN.Text) & "' ORDER BY id ASC"
Dim oda As New SqlClient.SqlDataAdapter(strsqls, strconnection)
Dim adataset As New DataSet
oda.Fill(adataset, "Tbl_GarantyElam")
Dim rpt As New GarantyElam
rpt.Load("GarantyElam")
rpt.SetDataSource(adataset.Tables("Tbl_GarantyElam "))
Dim Sherkat As CrystalDecisions.CrystalReports.Engine.TextObject = CType(rpt.ReportDefinition.Sections(3).ReportObjec ts("txtSherkat"), TextObject)
Sherkat.Text = FrmMain.lblSherkat.Text
Dim adres As CrystalDecisions.CrystalReports.Engine.TextObject = CType(rpt.ReportDefinition.Sections(3).ReportObjec ts("txtadress"), TextObject)
adres.Text = FrmMain.txtShAdres.Text + "_" + " تلفن: " + FrmMain.txtShTel.Text
FrmRep.CrystalReportViewer1.ReportSource = rpt
نقل قول: ارسال فایل غکس از فرم به کریستال ریپورت
با این روش جواب گرفتم
کد ها را باید بغد از دستور
CrystalReportViewer1.ReportSource = rpt
مینوشتم
نقل قول:
نوشته شده توسط
پرستو پارسایی
' تعریف متغیر برای ذخیره مسیر فایل عکس
Dim imagePath As String = "PATH_TO_YOUR_IMAGE_FILE"
' تعیین مسیر فایل عکس به پارامتر گزارش
rpt.SetParameterValue("ImageParam", imagePath)
' تغییر متن مدیر در گزارش
Dim modir As CrystalDecisions.CrystalReports.Engine.TextObject = CType(rpt.ReportDefinition.Sections(3).ReportObjec ts("txtmodir"), TextObject)
modir.Text = FrmMain.txtShModir.Text
اینگونه تست بفرمائید