26-05-18, 09:43 AM
(02-09-16, 03:07 AM)aber31 كتب : إن شاء الله نحن في الانتظار
والله يا أخي أنا شخصيا أصبحت أكره الكريستال ريبورت
أتممت إنشاء برنامج وفي الأخير واجهت هذه المشاكل مع الكريستال
السلام عليكم ورحمة الله
اخي الكريم اظن انك وضعت الريبورت في فورم واخترت من الجدول ما تحتاج اظهاره بالريبورت
لديك فورم اول به button تحت اسم Printr والكود التالي لفتح الفورم الثاني الخاص بالريبورت Form2
كود :
Public Class Form1
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Imports System.Data.OleDb
Imports System.IO
Private Sub Printr_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Printr.Click
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor
Dim cryRpt As New ReportDocument
Dim crtableLogoninfos As New TableLogOnInfos
Dim crtableLogoninfo As New TableLogOnInfo
Dim crConnectionInfo As New ConnectionInfo
Dim CrTables As Tables
Dim CrTable As Table
Try
With OleCn
If .State <> ConnectionState.Open Then
.ConnectionString = StrConnection()
.Open()
End If
End With
Catch ex As Exception
MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Information)
End Try
Try
cryRpt.Load(Application.StartupPath & "\Reportx.rpt") ' اسم الفقرير الحاص بك
With crConnectionInfo
.ServerName = Application.StartupPath & "\xyz.Accdb" 'اسم قاعدة البيانات الخاصة بك
.DatabaseName = Application.StartupPath & "\xyz.Accdb"
.UserID = ""
.Password = ""
End With
CrTables = cryRpt.Database.Tables
For Each CrTable In CrTables
crtableLogoninfo = CrTable.LogOnInfo
crtableLogoninfo.ConnectionInfo = crConnectionInfo
CrTable.ApplyLogOnInfo(crtableLogoninfo)
Next
Dim QueryString As String
QueryString = "Select * from table1 order by N"
Dim Cmd As New OleDbCommand(QueryString, OleCn)
Dim Adapter As OleDbDataAdapter = New OleDbDataAdapter(Cmd)
Dim ds As DataSet = New DataSet()
Adapter.Fill(ds, "table1")
cryRpt.SetDataSource(ds)
Form2.CrystalReportViewer1.ReportSource = cryRpt
Form2.Show()
OleCn.Close()
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default
Catch ex As Exception
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default
MsgBox(ex.Message(), MsgBoxStyle.Critical, "Print Report Error...")
End Try
End Sub
End Class