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

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

قام بنشر

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

لو عندي حقول كالتالي

الاسم السنة المبلغ بالتقرير ستظهر بالشكال التالي

الاسم     المبلغ    السنة

عمر        10000     2017

خالد        5000      2017

عمر        20000     2016

خالد        10000     2016

طيب لو حبيت اعدل بشكل التقرير يعني

الاسم   2017       2016

عمر   10000      20000

خالد   5000      10000

 

هل هناك طريقة لعمل هذه الحركة بالتقرير؟

مع جزيل الشكر

 

 

عرض تقرير.zip

قام بنشر

شكراً استاذ عبدالطيف على الرد ..

لكن لو اتت سنة 2018 هل سأقوم ببناء استعلام اخر واضع الشرط 2018 ..

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

شكرا لك 

قام بنشر

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

 

تستطيع عمل استعلام CrossTab ، والذي سيعطيك نتائج صحيحة ،

783.Clipboard01.jpg.3e5127eed143b1b3a795716ab459aee1.jpg

.

783.Clipboard02.jpg.b00b863b10d6627bea16da919eb0a67f.jpg

.

ولكن في التقرير يمكنك مسبقا ان تضيف كم سنه للمستقبل ، وبرمجيا تخبئ العمود اذا مافي بيانات لتلك السنه ،

وهذه طريقة عمل الاعمدة في استعلام CrossTab واللي على اساسه تعمل التقرير:

.

وهناك طريقة اخرى لعمل التقرير:

.

 

وهنا سؤال آخر عن نفس الموضوع:

 

 

جعفر

 

783.عرض تقرير.accdb.zip

  • Like 3
قام بنشر

شكرأ اخ جعفر حفظك الله من كل مكروه ...

لكن اخفاء الحقل مثلا حقل اسميه A2018  لو تم اضافة السنة للجدول يتم اظهار الحقل في التقرير وجعل مسارة ياخذ 2018 من الاستعلام ...

قمت بعمل دالة دي لوك اب للبحث عن السنة بعد اضافتها لكن لم تعمل ودي كونت ايضاً للبحث عن القيمة ولم تعمل ايضاً ...

قام بنشر

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

 

رجاء متابعة عمل الاستعلام CrossTab في اول مشاركة اعلاه،

الان نريد التقرير ان يكون الى سنة 2020 مثلا ، فلاحظ اننا اضفنا هذه السنوات في عمود السنوات Yeaa ، والذي هو "مسمى للعمود" Column Heading :

783.Clipboard03.jpg.02d764d55550b95c40079ad98a4d4c5f.jpg

.

على اساسه ، نرى ان الاستعلام اعطانا اعمدة للسنوات التي اردناها ، والسنه اللي ما فيها قيمة ، تركها فاضية (وهو المطلوب):

783.Clipboard04.jpg.9f03e185bddc8c627aaa65815ae0fb9d.jpg

.

طلبت من الاكسس يعمل تقرير من الاستعلام ، ونرى ان الاستعلام هو مصدر بيانات التقرير:

783.Clipboard05.jpg.5c056c23e4fe76efec32d912b8132c58.jpg

.

لاحظ طريقة تسميتنا لكائن التسمية ، وقمنا بهذا العمل لتسهيل عمل الكود:

783.Clipboard06.jpg.a316ea8953c7796d734180eb78dd9b46.jpg

.

ثم استعملنا هذا الكود ، ليجعل عرض الحقول = 0 ، للسنوات التي لا يوجد بها قيمة ، ويخفيها كذلك:


Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)

    Dim ctrl As Control
    Dim A As Integer

    For Each ctrl In Me.Controls
    
        If ctrl.ControlType = acTextBox And IsNumeric(ctrl.Name) Then
            
            A = DCount("*", "Table1", "[Yeaa]=" & Val(ctrl.Name))
            'Debug.Print "A " & A & "-" & ctrl.Name
            
            If A = 0 Then
                ctrl.Width = 0
                ctrl.Visible = False
                
                Me("Label_" & ctrl.Name).Width = 0
                Me("Label_" & ctrl.Name).Visible = False

            Else
                ctrl.Width = 1 * 1440
                ctrl.Visible = True
                
                Me("Label_" & ctrl.Name).Width = 1 * 1440
                Me("Label_" & ctrl.Name).Visible = True
            
            End If

        End If
        
    Next

   
End Sub

.

وهذه هي النتيجة ، اعطانا التقرير السنوات التي بها قيمة فقط:

783.Clipboard07.jpg.8736da63035d5419395024b21c34d79c.jpg

.

وللتجربة ، اضفنا قيمة لسنة 2018 

783.Clipboard08.jpg.108e8fde63961108280592a607dd99d6.jpg

.

فكانت نتيجة التقرير ، وهو المطلوب:

783.Clipboard09.jpg.0ad8e2a317f70bdb31409fbabfb70818.jpg

.

 

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

فأضفت حقل فاضي وكائن تسمية ، شفافي الخلفية والاطراف ، وغير مضمن:

783.Clipboard012.jpg.1499efca5ca6ce0a4ea254e008caa929.jpg

.

وعليه ، تغير الكود ليقوم بتوسعة هذين الحقلين المطاطين ، فاصبح:


Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)

    Dim ctrl As Control
    Dim A As Integer
    Dim Empty_Cells As Integer
    
    Empty_Cells = 0
    For Each ctrl In Me.Controls
    
        If ctrl.ControlType = acTextBox And IsNumeric(ctrl.Name) Then
            
            A = DCount("*", "Table1", "[Yeaa]=" & Val(ctrl.Name))
            'Debug.Print "A " & A & "-" & ctrl.Name
            
            If A = 0 Then
                ctrl.Width = 0
                ctrl.Visible = False
                
                Me("Label_" & ctrl.Name).Width = 0
                Me("Label_" & ctrl.Name).Visible = False
                
                Empty_Cells = Empty_Cells + 1

            Else
                ctrl.Width = 1 * 1440
                ctrl.Visible = True
                
                Me("Label_" & ctrl.Name).Width = 1 * 1440
                Me("Label_" & ctrl.Name).Visible = True
            
            End If

        End If
        
    Next
    
    Me.Empty_Space.Width = (1 * 1440 * Empty_Cells) / 2
    Me.Label_Empty_Space.Width = Me.Empty_Space.Width
   
End Sub

.

وهذا التقرير بالتنسيق الجديد ، وبدون 2018

783.Clipboard10.jpg.1eaa12f74347de0a829cc10538bb3d1a.jpg

.

وعند اضافة 2018 في بيانات الجدول ، نلاحظ ان التقرير اخذ تنسيقه الصحيح في وسط الصفحة كذلك:

783.Clipboard11.jpg.d71503bfc24994bac008c55d2ee871a0.jpg

.

 

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

 

جعفر

 

783.عرض تقرير.accdb.zip

  • Like 1
قام بنشر

وتغيير اخير ، إضافة عرض الحقول بغير بيانات ، الى الحقول التي بها بيانات ، وبهذه الطريقة الحقول دائما تملئ عرض التقرير:smile:

عمل التجربة في تقرير جديد:

783.Clipboard013.jpg.971e6527a3ad3fc4efcfbc9fa0221a56.jpg

.

783.Clipboard014.jpg.50544a33459a66b67d76201c805a5079.jpg

.

 

جعفر

783.عرض تقرير.zip

  • Like 3

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information