أهلا , أخي العزيز , قمت بالتعديل وإن شاء الله يضبط معك , في البداية توجد خاصية تابعة للأدوات أو التكستات المنشأه في تقرير الكريستال ريبورت تستطيع بواسطتها إسناد أو وضع قيم في الأداة مباشره قبل إظهار التقرير في أداة عرض الكريستال ريبورت التي بإسم CRViewer1 , هذا إسم الخاصية :
إذا في البداية سنقوم بجلب إجمالي مبالغ الرواتب بعد الخصم ونضعه في متغير نصي وسيكون هذا المتغير النصي معرف في الموديل Module1 ويكون Public لكي يكون مرئي في جميع فورمات البرنامج , وطريقة جلب أو أخذ إجمالي الرواتب بعد الخصم هي بأني قمت بإضافة أداة DataControl جديدة بإسم Data1 وتكون مخفية حيث بهذه الاداة سنقوم بالإتصال بقاعدة البيانات وتنفيذ إستعلام يجلب لنا إجمالي الرواتب طبعاً مع تطبيق العمليات الحسابية ثم نضعه في المتغير الخاص بذلك المذكور أعلاه :
كود :
Data1.DatabaseName = App.Path & "\D2017.mdb"
Data1.RecordSource = "Select SUM(A1+A2-A3) as Total From RI"
Data1.Refresh
If Data1.Recordset.RecordCount > 0 Then
MonyChar = Data1.Recordset![Total]
Else
MonyChar = "0"
End If
, ثم نقوم بتحويل رقم إجمالي الرواتب المخزن في المتغير النصي إلى المبلغ بالحروف وأيضاً بعد التحويل نضع المبلغ بالحروف في نفس المتغير :
كود :
MonyChar = BADRMEDIA(MonyChar)
بعد ذلك نقوم بإظهار الفورم2 الذي يوجد عليه أداة عرض التقرير CRViewer1 , ثم في حدث الـ Form_Load للفورم2 سنقوم بإضافة سطرين على الكود الموجود في الحدث مسبقاً هاذي هي السطرين :
كود :
Report.Text11.SetText Trim$(MonyChar)
Me.Refresh
حيث Text11 هو إسم التكست الموجود في التقرير والذي سيتم وضع فيه المبلغ بالحروف , تأكد من صحة الإسم , وسيكون كود حدث الـ Form_Load للفورم2 بعد الإضافة عليه بهذا الشكل :
كود :
Screen.MousePointer = vbHourglass
Report.Text11.SetText Trim$(MonyChar)
Me.Refresh
CRViewer1.ReportSource = Report
CRViewer1.ViewReport
Screen.MousePointer = vbDefault
- شغل المشروع بما أنه يشتغل عندك من غير مشاكل , وشوف النتيجة إن شاء الله يضبط , لأنه عندي في جهازي لم يعمل المشروع ولم يفتح التقرير الموجود في المشروع .
- تحياتي .