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

نسخة كاملة : مشكلة تنسيق التاريخ في تقرير الكريستال
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
أعاني من مشكلة تنسيق التاريخ في تقرير الكريستال، حيث أن التاريخ يظهر معه الوقت
على الرغم من أن الحقل في الجدول نوعه (data)
علماً بأن التاريخ عند الاتصال بقاعدة بيانات أكسس يظهر في التقرير بدون وقت
ولكن في جدول قاعدة بيانات SQL يظهر التاريخ مع الوقت.

فمـا هــو الحلُّ ؟!!!!

وهذا هو كود التقريــر
كود :
Private Sub ButReport_Click(sender As Object, e As EventArgs) Handles ButReport.Click
        ' تقريـر الكتب المعـارة
        Try

            If DataGridView1.Rows.Count = 0 Then
                ShowErrorMessageBox("عفـواً ... البيانـات التي قمت باختيـارها غير موجـودة.")
                Exit Sub
            End If

            If Combtasnifs.Text = "" Then
                ShowErrorMessageBox("الرجــاء ... اختيـار  تصنيـف الكتب المعـارة.")
                Combtasnifs.Focus()
                Exit Sub
            End If

            Dim rpt1 As New CrystalReport2
            rpt1.SetDataSource(DT)

            Dim TextName As CrystalDecisions.CrystalReports.Engine.TextObject = rpt1.Section3.ReportObjects("TextName")
            TextName.Text = Form_Main.TextBox1.Text

            Form_Reports.CrystalReportViewer1.ReportSource = rpt1
            Form_Reports.CrystalReportViewer1.Zoom(100)
            Form_Reports.CrystalReportViewer1.Refresh()
            Form_Reports.Show()

        Catch ex As Exception
            ShowErrorMessageBox("عفــوا ... لا يمكن عرض التقريــر.")
        End Try

    End Sub
قم بتجربة الحل التالي


PHP كود :
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions
.Shared

Public Class Form1
    Private Sub ButReport_Click
(sender As ObjectAs EventArgsHandles ButReport.Click
        Try
            
' التحقق من وجود بيانات في DataGridView قبل إنشاء التقرير
            If DataGridView1.Rows.Count = 0 Then
                ShowErrorMessageBox("عفـواً ... البيانـات التي قمت باختيـارها غير موجـودة.")
                Exit Sub
            End If

            If Combtasnifs.Text = "" Then
                ShowErrorMessageBox("الرجــاء ... اختيـار تصنيـف الكتب المعـارة.")
                Combtasnifs.Focus()
                Exit Sub
            End If

            ' 
إنشاء كائن التقرير
            Dim rpt1 
As New CrystalReport2
            rpt1
.SetDataSource(DT' تمرير بيانات DataTable إلى التقرير

            ' 
ضبط النص داخل عنصر TextObject
            Dim TextName 
As TextObject rpt1.Section3.ReportObjects("TextName")
 
           TextName.Text Form_Main.TextBox1.Text

            
' تنسيق حقل التاريخ ليظهر بدون الوقت
            Dim field As FieldObject
            field = CType(rpt1.ReportDefinition.Sections("Section3").ReportObjects("اسم_حقل_التاريخ"), FieldObject)

            ' 
ضبط التنسيق ليظهر فقط التاريخ بدون الوقت
            Dim format 
As New FieldFormat()
 
           format.DateTimeFormat DateTimeFormat.Date
            field
.ApplyFormat(format)

 
           ' عرض التقرير في عارض Crystal Report
            Form_Reports.CrystalReportViewer1.ReportSource = rpt1
            Form_Reports.CrystalReportViewer1.Zoom(100)
            Form_Reports.CrystalReportViewer1.Refresh()
            Form_Reports.Show()

        Catch ex As Exception
            ShowErrorMessageBox("عفــوا ... لا يمكن عرض التقريــر.")
        End Try
    End Sub
End Class 
(06-02-25, 01:48 AM)Kamil كتب : [ -> ]قم بتجربة الحل التالي


PHP كود :
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions
.Shared

Public Class Form1
    Private Sub ButReport_Click
(sender As ObjectAs EventArgsHandles ButReport.Click
        Try
            
' التحقق من وجود بيانات في DataGridView قبل إنشاء التقرير
            If DataGridView1.Rows.Count = 0 Then
                ShowErrorMessageBox("عفـواً ... البيانـات التي قمت باختيـارها غير موجـودة.")
                Exit Sub
            End If

            If Combtasnifs.Text = "" Then
                ShowErrorMessageBox("الرجــاء ... اختيـار تصنيـف الكتب المعـارة.")
                Combtasnifs.Focus()
                Exit Sub
            End If

            ' 
إنشاء كائن التقرير
            Dim rpt1 
As New CrystalReport2
            rpt1
.SetDataSource(DT' تمرير بيانات DataTable إلى التقرير

            ' 
ضبط النص داخل عنصر TextObject
            Dim TextName 
As TextObject rpt1.Section3.ReportObjects("TextName")
 
           TextName.Text Form_Main.TextBox1.Text

            
' تنسيق حقل التاريخ ليظهر بدون الوقت
            Dim field As FieldObject
            field = CType(rpt1.ReportDefinition.Sections("Section3").ReportObjects("اسم_حقل_التاريخ"), FieldObject)

            ' 
ضبط التنسيق ليظهر فقط التاريخ بدون الوقت
            Dim format 
As New FieldFormat()
 
           format.DateTimeFormat DateTimeFormat.Date
            field
.ApplyFormat(format)

 
           ' عرض التقرير في عارض Crystal Report
            Form_Reports.CrystalReportViewer1.ReportSource = rpt1
            Form_Reports.CrystalReportViewer1.Zoom(100)
            Form_Reports.CrystalReportViewer1.Refresh()
            Form_Reports.Show()

        Catch ex As Exception
            ShowErrorMessageBox("عفــوا ... لا يمكن عرض التقريــر.")
        End Try
    End Sub
End Class 

للأسف لم ينجح الكود معي
خاصية الفيلد (date end time) غير ظاهـــرة في التقريـــر
كيف أظهرها في التقرير حتى تحل المشكلة

[attachment=30027]
قصدي خاصية فيلد التاريخ (date end time) غير موجودة في التقرير
والصورة أخذتها من أحدى المشاريع القديمة.
مع العلم أن الحقل في الجدول نوع date
ولكن عندي في هذا المشروع هذه الخاصية غير موجودة
أخي الكريم مصمم هاوي
لتنسيق التاريخ داخل الكريستال ريبورت ما في أفضل من استعمال Formula