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

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

قام بنشر

السلام عليكم

اريد طلبين

1- تقرير به برواز "اطار"خارجي وكيفية تصميمة

2- عندي تقرير به حقل رقمي الارقام تسير بتسلسل وفي بعض الاوقات لا تكون بتسلسل مثل

1 2 3 4 10 11 15

اريد كود في التقرير يجعل الارقام الغير مسلسلة مظللة

وشكرا

قام بنشر

بسم الله الرحمن الرحيم

مرفق مثال يوضح كيفية أستعمال الأطارات في التقارير قم بفك الضغط عن المثال المرفق وقم بوضع المجلد قاموس التقارير في السي \:C وأذا أعجبك المثال سوف أرفق لك باقي الأطارات وهي حوالي 15 أطار وتقبل تحياتي

أخيك سهل أحمد ( ابو نعيم )

Rep.rar

قام بنشر (معدل)

السلام عليكم

هذ الكود لأي عدد من الأعمدة ، أضف على كيفك وما يهمك :pp:

Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
  Dim Ctl As Control
  
  With Me
    For Each Ctl In .Controls
      If Ctl.Section = 0 Then
        Ctl.BackColor = IIf(.SN - Val(.SN.Tag) <> 1, vbGreen, vbWhite)
      End If
    Next
  
    .SN.Tag = .SN
  End With
End Sub

تحياتي .

تم تعديل بواسطه أبو هادي
قام بنشر

السلام عليكم

الأخ محسن سرحان .. آسف كثيرا على التأخير حيث كنت غائبا عن المنتدى طوال هذه الفترة .

يبدو من الصورة أنك استطعت استخدام الكود عدا مشكلة أول سجل فإذا كان كذلك فإليك الكود بعد التعديل :

Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
  Dim Ctl As Control
  
  With Me
    For Each Ctl In .Controls
      If Ctl.Section = 0 Then
        If .SN.Tag <> "" Then
          Ctl.BackColor = IIf(.SN - Val(.SN.Tag) <> 1, vbGreen, vbWhite)
        End If
      End If
    Next
  
    .SN.Tag = .SN
  End With
End Sub

تحياتي .

قام بنشر

السلام عليكم

لقد بدلت في الكود تسهيلا للمصمم ، فقط تحتاج لتبديل إسم الحقل المسلسل .

Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
  Dim Ctl As Control
  Dim SeqID As Control
  
  Set SeqID = Me.SN     '>> ضع هنا حقل المسلسل >>
  
  With Me
    For Each Ctl In .Controls
      If Ctl.Section = 0 Then
        If Me(SeqID.Name).Tag <> "" Then
          Ctl.BackColor = IIf(Me(SeqID.Name) - Val(Me(SeqID.Name).Tag) <> 1, vbGreen, vbWhite)
        End If
      End If
    Next
  
    Me(SeqID.Name).Tag = Me(SeqID.Name)
  End With
End Sub

ثم تحتاج أن تذهب للقائمة أعلى الشاشة وتختار التالي :

View

Sorting and Grouping

وتضع إسم الحقل المسلسل في Field/Exprission

وتختار Ascending في Sort Order

تحياتي .

قام بنشر

السلام عليكم

بدل هذا السطر :

Ctl.BackColor = IIf(Me(SeqID.Name) - Val(Me(SeqID.Name).Tag) <> 1, vbGreen, vbWhite)
بهذا :
Ctl.BackColor = IIf(Me(SeqID.Name) - Val(Me(SeqID.Name).Tag) > 1, vbGreen, vbWhite)

ثم في الترتيب والمجموعات يجب وضع نفس الحقل الموجود في الكود في السطر الأول أي لا يجب تأخيره في حال وجود حقل آخر للترتيب .

مثلا إذا أردت الفحص يكون على حقل setdown_no

فسيكون في الترتيب التالي :

setdown_no Ascending

school_no Ascending

أما إذا كان الفحص على حقل school_no

فسيكون الترتيب كالتالي :

school_no Ascending

setdown_no Ascending

تحياتي .

قام بنشر

السلام عليكم

أخي الفاضل .. تعديل آخر على الكود ، وهو ليس تصحيحا لخطأ فيه ولكن لتفادي خطأ تم عن طريقك وهو جعل خلفية الصناديق شفافة :

Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
 Dim Ctl As Control
 Dim SeqID As Control

 Set SeqID = Me.setdown_no     '>> ضع هنا حقل المسلسل >>

 With Me
   For Each Ctl In .Controls
     If Ctl.Section = 0 Then
       If Me(SeqID.Name).Tag <> "" Then
         Ctl.BackStyle = 1
         Ctl.BackColor = IIf(Me(SeqID.Name) - Val(Me(SeqID.Name).Tag) > 1, vbGreen, vbWhite)
       End If
     End If
   Next

   Me(SeqID.Name).Tag = Me(SeqID.Name)
 End With
End Sub

تحياتي .

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

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

Important Information