اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

في التقرير ، عمل حقل بطول مجموعة حقول


jjafferr

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

السلام عليكم 🙂

 

عندنا تقرير بهذه الطريقة :

image.png.1ff7e17a9db12a87e782037fb4191eae.png

.

ونريد نعملة بهذه الطريقة :

image.png.51f7ade58a2bd29aca02f3c0f2afe6a2.png

.

نعمل التقرير ، ثم نعمل مجاميع لأي من الحقول ، ثم نعمل حقل ليحسب عدد السجلات للمجموعة :

image.png.eac0ed5cc7a57671e2e71bc18ac35007.png

.

ويجب عمل برواز الحقول شفاف :

image.png.3ebad2cce74f24b732d37764647842b9.png

----------------------------------------------------------------------

التعديل - 1 ، 27/11/2020 

تصحيح البرنامج ، على فرضية اطوال السجلات مختلفة وتحتوي على اكثر من سطر

image.png.96627501821195e1f1121c679e3bbd1f.png

 

 

ثم نرسل هذه البيانات للوحدة النمطية Box_Lines التي تقوم بعمل البرواز :

نرسل اسم الحقل المطلوب عمل المربع الكبير حوله ، ولون الخط ، ولون البرواز ، وعدد سجلات المجموعة :

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

    'No way to adjust the field Height, so we Draw a Box around the new Height
    Call apply_Max_Height("rpt", 0, "save", RGB(221, 217, 195))
    
    'Expand the field to be the size of the combined Records
    'Call Box_Lines(fld  , Text Fore color, Border Color, Group_Record_Count)
    'Call Box_Lines(Me.Name, "save", vbBlack       , vbBlack           , Me.save_Footer)
    Call Box_Lines(Me.Name, "save", RGB(16, 37, 63), RGB(221, 217, 195), Me.save_Footer)
    
End Sub

.

واستخدمت الوحدة النمطية لأخونا العود ابو خليل من هنا ، لضبط اطوال جميع السجلات الى الاطول طلب كود تنسيق نمو حقول التقرير - قسم الأكسيس Access - أوفيسنا (officena.net)

وتقوم الوحدة النمطية Box_Lines بعمل المطلوب ، بعمل حقل واحد (للجقل المطلوب)  :

Option Compare Database
Option Explicit

    Dim str_Text As String
    Dim int_Counter As Integer
    Public fildMaxHeight As Integer
    Dim ctl As Control
'

Public Function Box_Lines(rpt_Name As String, fld_Name As String, rgb_Fore As Long, rgb_Border As Long, Group_Record_Count As Integer)
    
    
    Dim L As Single
    Dim T As Single
    Dim W As Single
    Dim H As Single
    
    
    Set ctl = Reports(rpt_Name)(fld_Name)
    
    'make it simple to understand
    L = ctl.Left
    W = ctl.Width
    T = ctl.Top
    H = ctl.Height
    
    'take the highst Height
    If fildMaxHeight > H Then
        H = fildMaxHeight
    End If
    
    
    'this is to know when a new Group starts
    If ctl <> str_Text Then
        str_Text = ctl
        int_Counter = 1
    End If
        
                
        ctl.BorderColor = vbWhite
        ctl.ForeColor = vbWhite
        Reports(rpt_Name).Line (L, T)-(L, W), rgb_Border    'Left Line
        Reports(rpt_Name).Line (W, T)-(W, H), rgb_Border    'Right Line
    
    'COULDN'T GET IT TO WORK
'    If int_Counter = Group_Record_Count Then    'Last Record
'        Reports(rpt_Name).Line (L, H)-(W, H), rgb_Border 'Bottom Line
'    End If
    
    
    If int_Counter = 1 Then 'First Record
        ctl.ForeColor = rgb_Fore    'Text ForeColor
        Reports(rpt_Name).Line (L, T)-(W, T), rgb_Border    'Top Line
    End If
    

    int_Counter = int_Counter + 1
    
End Function


Public Function find_Max_Height(rpt_Name As String, Section_Number As Integer)

    fildMaxHeight = 0
    
    For Each ctl In Reports(rpt_Name).Section(Section_Number).Controls
        If ctl.Height > fildMaxHeight Then
            fildMaxHeight = ctl.Height
        End If
    Next
    
End Function

Public Function apply_Max_Height(rpt_Name As String, Section_Number As Integer, Exclude_fld_Name As String, rgb_Border As Long)


    fildMaxHeight = 0
    
    'get the max Height
    For Each ctl In Reports(rpt_Name).Section(Section_Number).Controls
        If ctl.Height > fildMaxHeight Then
            fildMaxHeight = ctl.Height
        End If
    Next
    
    'Draw lines around the fields
    For Each ctl In Reports(rpt_Name).Section(Section_Number).Controls
        If ctl.Name <> Exclude_fld_Name Then
            Reports(rpt_Name).Line (ctl.Left, ctl.Top)-Step(ctl.Width, fildMaxHeight), vbWhite, BF
            Reports(rpt_Name).Line (ctl.Left, ctl.Top)-Step(ctl.Width, fildMaxHeight), rgb_Border, B
        End If
    Next
    
End Function

.

--------------------------------------------------------------------

 

النسخة اعلاه فيها خطأ ، فرجاء استعمال النسخة الاحدث ، والتي نستطيع فيها العمل على اكثر من حقل :

 

جعفر

 

1293.1.Report_Draw_BoxLine.mdb.zip

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

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

استاذى الجليل و معلمى القدير و والدى والحبيب استاذ @jjafferr :fff::fff::fff:

بسم الله ما شاء الله .. تبارك الله 

اولا جزاكم الله خيرا :signthankspin:

ثانيا سعادة  الحياة أن تكون بجانبك وتساندك روح طيبة وكريمة تمنحك وتهديك الفرح والسرور وتدخل على نفوس من حولها الفرح و السعادة
ولا أزكيكم على الله وكل اساتذتنا المبجلين كل كلمات ومعان الشكر والعرفان بالجميل لا تكفيكم وتوفيكم قدر حقكم 
بارك الله لكم فى عمركم وفى علمكم و عملكم واهلكم وأسال الله تعالى لكم سعادة الدارين وان يزيدكم من فضله كما تدخلون السرور على فلوب طلبة العلم
دائما تكثرون من العطاء وبكل سخاء دون كلل ولا ملل
احسن الله اليكم كما تحسنون الى طلاب العلم دائما 

1886450457_MR.JAFER.jpg.132dafe5cc3fe04f9e4fdf1277bf6c3e.jpg

 

تم تعديل بواسطه ابا جودى
  • Like 3
رابط هذا التعليق
شارك

السلام عليكم 🙂

 

شكرا لكم جميعا 🙂

اخي اباجودي ، شكر خاص لك على هذا الدلال والدلع ، ومش عرف ان بتجيب الكلمات دي منين 🙂

 

عملت تعديل في المرفق ، واصبح الآن يأخذ اطوال مختلفة من السجلات 🙂

 

جعفر

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

  • 1 month later...
8 ساعات مضت, jjafferr said:

اعطنا مثال

حسنا معلمنا العزيز إن شاء الله عند عودتي من العمل ويارب النت يكون رجع بس لأن الإنترنت منقطع بالمنطقه بقاله ٣ ايام وبستعمل  المحمول

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

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

afer.jpg

printrep.rar

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

  • 1 month later...

بارك الله فيك اخي 

معلومه قيمه جدا

وعندي استفسار لماذا عندما اقوم بتحريك الحقل البرواز لايتحرك مع الحقل اومربع النص ولاينطبق البرواز على الحقل الا اذا كان الحقل في شمال التقرير

اتمنى الرد

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

بارك الله فيك اخي 

معلومه قيمه جدا

وعندي استفسار لماذا عندما اقوم بتحريك الحقل البرواز لايتحرك مع الحقل اومربع النص ولاينطبق البرواز على الحقل الا اذا كان الحقل في شمال التقرير

اتمنى الرد

نت1.jpg

نت2.jpg

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

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