Ahmed_J قام بنشر يوليو 16, 2021 قام بنشر يوليو 16, 2021 (معدل) السلام عليكم لدي قاعدة بيانات الموظفين وفيها عدة تقارير وبعض الحقول صعيرة الحجم وفيها كلام كثير عملت الحقول من خلال نافذة ترتيب جدولي ومن خصائص الحقل جعلتها قابلة للنمو لكن الارقام داخل الحقول تبقى في الاعلى كما في الصورة 1 المطلوب / توسيط النص من جميع الجهات في حقول التقرير كما في الصورة رقم 2 الماخوذة من ملف اكسيل وشكرا لكم تم تعديل يوليو 16, 2021 بواسطه Ahmed_J
jjafferr قام بنشر يوليو 16, 2021 قام بنشر يوليو 16, 2021 4 ساعات مضت, Ahmed_J said: كن الارقام داخل الحقول تبقى في الاعلى نعم هذه طريقة الاكسس 🙂 جعفر 1
Ahmed_J قام بنشر يوليو 16, 2021 الكاتب قام بنشر يوليو 16, 2021 (معدل) السلام عليكم استاذ @jjafferr الا توجد طريقة لتوسيط الارقام عن طريق وحدة نمطية او كود معين لاهمية موضوع التنسيق للتقرير بالاكسس وهذا مثال لاحد الاخوة بس مش عاوز بضبط معي عند تغيير قياس الحقل وشكرا لك Database4.mdb تم تعديل يوليو 16, 2021 بواسطه Ahmed_J
أفضل إجابة jjafferr قام بنشر يوليو 16, 2021 أفضل إجابة قام بنشر يوليو 16, 2021 تفضل 🙂 افتح التقرير rpt_Vertically_center_Fields الدالة التي تقوم بالعمل ، وعملت لها وحدة نمطية مستقلة ، حتى يمكننا الاستفادة منها لأكثر من تقرير: Public Sub VerticalAlignCenter(ByRef ctl As Control) ' 'From: https://www.vbforums.com/showthread.php?505561-VB-VBA-Set-TextBox-and-Label-text-to-Vertically-Align-Center&p=3675142&viewfull=1#post3675142 ' 'Sets the vertical alignment of a label or textbox to "Center" 'NOTE: 'MinimumMargin: the value of the smallest margin Access allows in twips. If you set the .TopMargin 'to "0", Access will actually place a gap equal to 1 point (or 20 twips) rather than actually 'placing the text at the very top border of the control. FURTHER NOTE: Access sucks. ' 'BorderWidth: half the value of .BorderWidth in twips. As you increase the border (Hairline, 1pt, 2pt, etc..) 'Access expands the border equally from the center. We're only concerned with the "inner" section of the border. ' 'TwipsPerPoint: global constant set to 20 On Error GoTo ErrorCode Dim MinimumMargin As Integer Dim BorderWidth As Integer Dim TwipsPerPoint TwipsPerPoint = 20 If Not ((TypeOf ctl Is TextBox) Or (TypeOf ctl Is Label)) Then Exit Sub 'Figure out how many lines it is Dim LenOfText, WidOfBox, NumberOfLines, HtOfText If TypeOf ctl Is TextBox Then LenOfText = ctl.Text Else: LenOfText = ctl.Caption End If 'how wide is this puppy? WidOfBox = ctl.Width LenOfText = (Len(LenOfText) * TwipsPerPoint * ctl.FontSize) / 2 NumberOfLines = Int(LenOfText / WidOfBox) + 1 HtOfText = NumberOfLines * TwipsPerPoint * ctl.FontSize MinimumMargin = 1 * TwipsPerPoint BorderWidth = (ctl.BorderWidth * TwipsPerPoint) / 2 ctl.TopMargin = ((ctl.Height - HtOfText) / 2) - MinimumMargin - BorderWidth ErrorCode: Exit Sub End Sub . ثم في التقرير ، انقر على فاصل قسم التفصيل Detail ، وفي حدث "عند الطباعة" (ولن يعمل يأي حدث آخر ، فهو آخر حدث قبل الطباعة ، بينما للاحداث الاخرى يكون فات الاوان لهذا العمل) ، ننادي الدالة اعلاه بإسم الكائن الذي نريد توسيطه : Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer) VerticalAlignCenter Me.save VerticalAlignCenter Me.a1 End Sub . والنتيجة : . كما يوجد مثال عند ملك دوال الاكسس الثقيلة المتقاعد في : http://www.lebans.com http://www.lebans.com/DownloadFiles/A2KVerticalJustify.zip جعفر 1293.1.Report_Draw_BoxLine.accdb.zip 1 1
Eng.Qassim قام بنشر يوليو 16, 2021 قام بنشر يوليو 16, 2021 4 hours ago, Ahmed_J said: السلام عليكم استاذ @jjafferr الا توجد طريقة لتوسيط الارقام عن طريق وحدة نمطية او كود معين لاهمية موضوع التنسيق للتقرير بالاكسس وهذا مثال لاحد الاخوة بس مش عاوز بضبط معي عند تغيير قياس الحقل وشكرا لك Database4.mdb 308 kB · 1 download 9 minutes ago, jjafferr said: تفضل 🙂 افتح التقرير rpt_Vertically_center_Fields جعفر 1293.1.Report_Draw_BoxLine.accdb.zip 71.46 kB · 0 downloads روعة استاذ جعفر ...بصراحة المثال الذي ارفقه الزميل صاحب المشاركة ايضا رائع حاولت تطبيقه فلم يضبط معي رغم اني طبقت جميع اكواده... لا اعرف لماذا اكسس احيانا يتصرف بحماقة تذهلني
jjafferr قام بنشر يوليو 17, 2021 قام بنشر يوليو 17, 2021 11 ساعات مضت, Eng.Qassim said: لا اعرف لماذا اكسس احيانا يتصرف بحماقة تذهلني ما عندي تعليق على ملاحظتك. ولكن انظر الى هذه الملاحظة: 11 ساعات مضت, jjafferr said: وفي حدث "عند الطباعة" (ولن يعمل يأي حدث آخر ، فهو آخر حدث قبل الطباعة ، بينما للاحداث الاخرى يكون فات الاوان لهذا العمل) فإذا وضعت الكود على حدث خطأ ، فالاكسس غير مذنب !! وارى الكثير يستعمل مثل هذا الكود ، والذي لن يعمل على هذا الحدث حتى لو حاولت فيه لبكرة الصبح : Private Sub iDate_AfterUpdate() cancel = true end if . فمناداة الحدث لا يوجد عندها متغير cancel ، والمتغير موجود في الحدث التالي ويعمل من اول مرة : Private Sub iDate_BeforeUpdate(Cancel As Integer) cancel = true end if جعفر 1
Ahmed_J قام بنشر يوليو 20, 2021 الكاتب قام بنشر يوليو 20, 2021 شكرا لك استاذ @jjafferr كلمات الشكر لن توافيك اخوي والله ان اللسان يعجز عن مدحك والاحرف تعجز عن التعبير لك حفظك الله. بارك الله فيك
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.