اذهب الي المحتوي
أوفيسنا

الجمع فى نهاية الصفحة بناءً على شرط


N_ELMASRY

الردود الموصى بها

الأخوة الأفاضل

السلام عليكم ورحمة الله وبركاته

برجاء المساعدة فى الجمع فى نهاية كل صفحة فى التقرير بناءً على شرط وهو القسم، بمعنى: 

اريد جمع عدد الموظفين فى قسم الاستقبال فى كل صفحة وكذلك باقى الاقسام.

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

ولكم جزيل الشكر والتقدير

 

الجمع بشرط فى تقرير.rar

تم تعديل بواسطه N_ELMASRY
  • Like 1
رابط هذا التعليق
شارك

وعليكم السلام:smile:

 

تفضل:smile:

576.Clipboard01.jpg.da4c8981b4379ef1c50833ba0700948d.jpg

.

الكود هو


Private A, B, C As Integer

Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer)

    If Me.Sec = "الاستقبال" Then
        A = A + 1
        
    ElseIf Me.Sec = "الصيانه" Then
        B = B + 1
        
    ElseIf Me.Sec = "المطبعه" Then
        C = C + 1
            
    End If
        
End Sub

Private Sub PageFooterSection_Print(Cancel As Integer, PrintCount As Integer)

    Me.txt_A = A
    Me.txt_B = B
    Me.txt_C = C
    
    A = 0
    B = 0
    C = 0
    
End Sub

 

جعفر

576.الجمع بشرط فى تقرير.accdb.zip

  • Like 4
رابط هذا التعليق
شارك

9 ساعات مضت, jjafferr said:

وعليكم السلام:smile:

 

تفضل:smile:

576.Clipboard01.jpg.da4c8981b4379ef1c50833ba0700948d.jpg

.

الكود هو



Private A, B, C As Integer

Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer)

    If Me.Sec = "الاستقبال" Then
        A = A + 1
        
    ElseIf Me.Sec = "الصيانه" Then
        B = B + 1
        
    ElseIf Me.Sec = "المطبعه" Then
        C = C + 1
            
    End If
        
End Sub

Private Sub PageFooterSection_Print(Cancel As Integer, PrintCount As Integer)

    Me.txt_A = A
    Me.txt_B = B
    Me.txt_C = C
    
    A = 0
    B = 0
    C = 0
    
End Sub

 

جعفر

576.الجمع بشرط فى تقرير.accdb.zip

جزاك الله خيرًا .... وجارى التنفيذ والتجربة

تم تعديل بواسطه N_ELMASRY
رابط هذا التعليق
شارك

11 ساعات مضت, jjafferr said:

وعليكم السلام:smile:

 

تفضل:smile:

576.Clipboard01.jpg.da4c8981b4379ef1c50833ba0700948d.jpg

.

الكود هو



Private A, B, C As Integer

Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer)

    If Me.Sec = "الاستقبال" Then
        A = A + 1
        
    ElseIf Me.Sec = "الصيانه" Then
        B = B + 1
        
    ElseIf Me.Sec = "المطبعه" Then
        C = C + 1
            
    End If
        
End Sub

Private Sub PageFooterSection_Print(Cancel As Integer, PrintCount As Integer)

    Me.txt_A = A
    Me.txt_B = B
    Me.txt_C = C
    
    A = 0
    B = 0
    C = 0
    
End Sub

 

جعفر

576.الجمع بشرط فى تقرير.accdb.zip

جزاك الله خيرًا .... تمت التجربة بنجاح

ولكن برجاء توضيح لماذا يتم زيادة رقم 1 على قيمة المتغيرات؟؟

وهل تصلح نفس الطريقة لو وضعت الاحصاء فى رأس الصفحة ؟؟

وجزاك الله خيرًا

رابط هذا التعليق
شارك

منذ ساعه, N_ELMASRY said:

جزاك الله خيرًا .... تمت التجربة بنجاح

1. ولكن برجاء توضيح لماذا يتم زيادة رقم 1 على قيمة المتغيرات؟؟

2. وهل تصلح نفس الطريقة لو وضعت الاحصاء فى رأس الصفحة ؟؟

وجزاك الله خيرًا

1. هكذا نسحب عدد المتغيّر المطلوب ،

2. جرب:smile:

 

جعفر

  • Like 2
رابط هذا التعليق
شارك

8 ساعات مضت, jjafferr said:

1. هكذا نسحب عدد المتغيّر المطلوب ،

2. جرب:smile:

 

جعفر

أشكر لك سعة صدرك 

أنا بالفعل جربت ولكن وجدت أن القيمة الخاصة بالصفحة الاولى تظهر صحيحة فى الصفحة الثانية وهكذا ...

كما بالمثال المرفق

الجمع بشرط فى تقرير123.rar

رابط هذا التعليق
شارك

هذا صحيح:smile:

لأن اكسس ينتهي من العمل من تضبيط وحساب بيانات راس الصفحة قبل ان يذهب الى قسم التفاصيل (الذي به البيانات) ، ثم الى قسم ذيل الصفحة حيث يلقى مجاميع البيانات جاهزة للعرض:smile:

 

جعفر

 

  • Like 2
رابط هذا التعليق
شارك

منذ ساعه, jjafferr said:

هذا صحيح:smile:

لأن اكسس ينتهي من العمل من تضبيط وحساب بيانات راس الصفحة قبل ان يذهب الى قسم التفاصيل (الذي به البيانات) ، ثم الى قسم ذيل الصفحة حيث يلقى مجاميع البيانات جاهزة للعرض:smile:

 

جعفر

 

طب وده حلها إيه؟؟ 

أنا جربت أقوله خلى التكست اللى فى رأس الصفحه ياخد قيمة اللى فى اسف الصفحه بس نفس المشكله...

رابط هذا التعليق
شارك

الفكرة الجديدة هي:

خلينا نستعرض كل صفحة ونشوف نتيجة الجمع اسفل الصفحة ،

ولما نشوف نتائج كل صفحة ، خلينا نحفظ هذه المعلومة في مكان ما (انا استعملت Array ، ولكن يمكن استعمال جدول مؤقت كذلك) ،

وعلشان نستعرض كل صفحة ، فيجب استعراضها يدويا ، او طباعة التقرير ،

انا طبعت التقرير بصيغة rtf (فحصلت على مجموع كل صفحة في Array ، ثم حذفت ملف rtf المؤقت ،

ثم اعرض التقرير بطريقة عادية ، وتكون النتائج في رأس الصفحة:smile:

 

ولكن يجب عليك فتح التقرير عن طريق النموذج:smile:

 

علشان هذا العمل ، لازم تكون عندنا وحدة نمطية للإحتفاظ بالقيم ، الرقم 100 معناه 100 صفحة تقرير (يعني انا كتبت رقم كبير ، واذا تقريرك فيه صفحات اكثر ، فرجاء تكبير الرقم):

Option Compare Database

Public A1(100), B1(100), C1(100)

 

وكود جمع البيانات كما عملناه سابقا ، بالاضافة الى إضافة النتائج الى Array :

Option Compare Database

Private A, B, C As Integer

Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer)

    If Me.Sec = "الاستقبال" Then
        A = A + 1
        
    ElseIf Me.Sec = "الصيانه" Then
        B = B + 1
        
    ElseIf Me.Sec = "المطبعه" Then
        C = C + 1
            
    End If
        
End Sub



Private Sub PageFooterSection_Print(Cancel As Integer, PrintCount As Integer)
    
    Me.txt_A = A
        A1(Me.Page) = A
    Me.txt_B = B
        B1(Me.Page) = B
    Me.txt_C = C
        C1(Me.Page) = C
    
    A = 0
    B = 0
    C = 0
    
End Sub

Private Sub PageHeaderSection_Print(Cancel As Integer, PrintCount As Integer)
On Error GoTo err_PageHeaderSection_Print
    
    
    Me.txt_A1 = A1(Me.Page)
    Me.txt_B1 = B1(Me.Page)
    Me.txt_C1 = C1(Me.Page)
    
Exit Sub
err_PageHeaderSection_Print:

    If Err.Number = 9 Then
        Resume Next
    Else
        MsgBox Err.Number & vbCrLf & Err.Description
    End If
    
End Sub

 

جعفر

576.الجمع بشرط فى تقرير.accdb.zip

  • Like 2
رابط هذا التعليق
شارك

في 2/12/2017 at 23:28, jjafferr said:

الفكرة الجديدة هي:

خلينا نستعرض كل صفحة ونشوف نتيجة الجمع اسفل الصفحة ،

ولما نشوف نتائج كل صفحة ، خلينا نحفظ هذه المعلومة في مكان ما (انا استعملت Array ، ولكن يمكن استعمال جدول مؤقت كذلك) ،

وعلشان نستعرض كل صفحة ، فيجب استعراضها يدويا ، او طباعة التقرير ،

انا طبعت التقرير بصيغة rtf (فحصلت على مجموع كل صفحة في Array ، ثم حذفت ملف rtf المؤقت ،

ثم اعرض التقرير بطريقة عادية ، وتكون النتائج في رأس الصفحة:smile:

 

ولكن يجب عليك فتح التقرير عن طريق النموذج:smile:

 

علشان هذا العمل ، لازم تكون عندنا وحدة نمطية للإحتفاظ بالقيم ، الرقم 100 معناه 100 صفحة تقرير (يعني انا كتبت رقم كبير ، واذا تقريرك فيه صفحات اكثر ، فرجاء تكبير الرقم):


Option Compare Database

Public A1(100), B1(100), C1(100)

 

وكود جمع البيانات كما عملناه سابقا ، بالاضافة الى إضافة النتائج الى Array :


Option Compare Database

Private A, B, C As Integer

Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer)

    If Me.Sec = "الاستقبال" Then
        A = A + 1
        
    ElseIf Me.Sec = "الصيانه" Then
        B = B + 1
        
    ElseIf Me.Sec = "المطبعه" Then
        C = C + 1
            
    End If
        
End Sub



Private Sub PageFooterSection_Print(Cancel As Integer, PrintCount As Integer)
    
    Me.txt_A = A
        A1(Me.Page) = A
    Me.txt_B = B
        B1(Me.Page) = B
    Me.txt_C = C
        C1(Me.Page) = C
    
    A = 0
    B = 0
    C = 0
    
End Sub

Private Sub PageHeaderSection_Print(Cancel As Integer, PrintCount As Integer)
On Error GoTo err_PageHeaderSection_Print
    
    
    Me.txt_A1 = A1(Me.Page)
    Me.txt_B1 = B1(Me.Page)
    Me.txt_C1 = C1(Me.Page)
    
Exit Sub
err_PageHeaderSection_Print:

    If Err.Number = 9 Then
        Resume Next
    Else
        MsgBox Err.Number & vbCrLf & Err.Description
    End If
    
End Sub

 

جعفر

576.الجمع بشرط فى تقرير.accdb.zip

جزاك الله خيرا 

جارى التجربة .... 

رابط هذا التعليق
شارك

  • 2 months later...

السلام عليكم 

آسف لفتح المواضيع القديمه :smile:

جربت الطريقة المذكورة على برنامج خاص بالعمل وتظهر النتيجة مضبوطة تمامً ..... 

جزاك الله خيرًا على المجهود والمساعدة 

ولكن التقرير حتى يعرض أمامى يأخذ وقت طويل بالدقائق .... فما السبب 

علمًا بأن عدد صفحات التقرير لاتزيد عن 20 صفحة حد أقصى

 

  • Like 1
رابط هذا التعليق
شارك

وعليكم السلام:smile:

 

يااااه ، الموضوع ده كان من زمااااان:smile:

طلبك الاصل كان ، وتمت التجربة بنجاح:

في 2/12/2017 at 11:55, N_ELMASRY said:

جزاك الله خيرًا .... تمت التجربة بنجاح

ولكن برجاء توضيح لماذا يتم زيادة رقم 1 على قيمة المتغيرات؟؟

 

 

بس بعدين طلبك تغير الى

في 2/12/2017 at 11:55, N_ELMASRY said:

وهل تصلح نفس الطريقة لو وضعت الاحصاء فى رأس الصفحة ؟؟

 

ونتيجته ، بطئ التقرير :blink:

 

خليك على الطريقة الاولى ، اللي ما كان فيها مشاكل:smile:

 

جعفر

رابط هذا التعليق
شارك

56 دقائق مضت, jjafferr said:

وعليكم السلام:smile:

 

يااااه ، الموضوع ده كان من زمااااان:smile:

طلبك الاصل كان ، وتمت التجربة بنجاح:

 

 

بس بعدين طلبك تغير الى

 

ونتيجته ، بطئ التقرير :blink:

 

خليك على الطريقة الاولى ، اللي ما كان فيها مشاكل:smile:

 

جعفر

احنا جربنا على ملف تجربه واشتغل سريع وحلو، لما طبقته على البرنامج فى الشغل التقرير بقى بطئ

رابط هذا التعليق
شارك

حسب علمي ، لا يمكن اي طريقة اسرع من الطريقة الاولى "لجمع فى نهاية الصفحة" :blink:

 

للأسف ، في ثمن ندفعه للبرنامج ليقوم بعمله وبالذات للتقارير ، وهذا الثمن اسمه البطء :blink:

 

جعفر

  • Like 2
رابط هذا التعليق
شارك

في 5/1/2017 at 21:41, jjafferr said:

حسب علمي ، لا يمكن اي طريقة اسرع من الطريقة الاولى "لجمع فى نهاية الصفحة" :blink:

 

للأسف ، في ثمن ندفعه للبرنامج ليقوم بعمله وبالذات للتقارير ، وهذا الثمن اسمه البطء :blink:

 

جعفر

جزاك الله خيرًا

رابط هذا التعليق
شارك

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان
×
×
  • اضف...

Important Information