اخواني منذ اشهر وانا احاول حل مشكلة تقارير كريستال ريبورت مع تقارير تحتوي على حقل مذكرة من نوع RTF و بائت كل المحاولات بالفشل .
لدي جدول يحتوي على حقلين
حقل من نوع رقم
و حقل من نوع مذكرة
في قاعدة بيانات اكسس
ولدي نموذج رئيسي يحتوي على مربع نص لاظهار الحقل الرقمي , و مربع نص غني(RICH TEXT BOX) لاظهار محتويات حقل المذكرة حيث يتم تخزين بيانات هذا النص بكامل تنسيقاته من الوان للخطوط وانواعها في هذا الحقل على شكل شيفرة RTF.
ويتم عرضها في النموذج بشكل جيد و طبيعي دون مشاكل.
و لدي تقرير من نوع كريستال ريبورت يحتوي على حقل لاظهار محتويات الحقل الرقمي ,و حقل لاظهار محتويات حقل المذكرة .
التقرير يستقي البيانات من DATASET المربوطة بالمشروع.
المشكلة : التي تظهر ان التقرير يقوم بعرض شيفرة RTF بدلا من عرض النص المنسق المحفوظ في حقل المذكرة .
مع العلم قمت بتغير الفورمات الخاص بالحقل الذي على التقرير الى النوع CRrtf و بالمعاينة الطبيعية من قلب التقرير تكون الامور بخير لكن عند التعامل مع الكود لاستدعاء التقرير تحدث المشكلة و يصبح التقرير عاجز عن تحليل شيفرة RTF , لم استطع حل هذه المشكلة بحثت عن الحل مرارا و تكرارا و لم اتوصل اليه.
الاخوة الكرام من يملك حلا لهذه المشكلة فليسعفنا به اجاركم الله .
اعرض لكم الكود المستخدم :
Dim constr22 As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|DB.mdb"
If conn.State = ConnectionState.Open Then conn.Close()
conn.Open()
Dim str4 As String = "select code,RTF_Field from rtf_table "
Dim daser4 As New DataSet
Dim can As New OleDb.OleDbDataAdapter(str4, conn)
can.Fill(daser4, "rtf_table")
Dim dM As New DataTable
dM = daser4.Tables.Item("rtf_table")Dim p1 As New prt1 p1.SetDataSource(dM) p1.Refresh() Dim f3 As New Form3 f3.CrystalReportViewer1.ReportSource = p1 f3.Show()