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

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

قام بنشر

السلام عليكم الإخوة الأفاضل في هذا المنتدى الجميل

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

مثال:

لعرض التقرير :

من النموذج  frm_examen_fin_formation 

اختار:

السنة: 2021/2020

الدرجة: معلم

البلد: عمان

لكن قبل عرض التقرير المسمى rap_pv  يجب عمل مقارنة بين المعطيات المذكورة أعلاه ومقارنته في الجدول  المسمىtab_hauteur_range

في الجدول نجد مايلي:

السنة: 2021/2020

الدرجة: معلم

البلد: عمان

ارتفاع الصف: 1سم

اسم التقرير : rap_pv

- المقارنة بين المعطيات المختارة من النموذج (السنة - الدرجة - البلد-اسم التقرير ) نبحث عنها في الجدول tab_hauteur_range  والتي تكون متشابها

يتم على أساسها تحديد ارتفاع صف التقرير

و في هذا المثال بعد المقارنة  ارتفاع صف التقرير هو 1 سم

 

- وإذا اخترت من النموذج الاختيارات  وعملت مقارنة ولم اجد ما يشابها في الجدول  tab_hauteur_range   اجعل ارتفاع صف التقرير  تلقائا  هو 0.7

بهذا المبدأ أريد التحكم في ارتفاع صف التقرير

لانه لدي سنوات كثيرة ودرجات وبلدان وبهذه الكيفية اتحكم جيدا في التقارير

 

في التقرير : rap_pv  توجد احيانا حقول كثيرة وقد اختصرتها فقط

نتمنى اني اوصلت الفكرة وان شاء الله يمكن تجسيدها

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

 

baseM.accdb

قام بنشر (معدل)
7 ساعات مضت, moho58 said:

السلام عليكم الإخوة الأفاضل في هذا المنتدى الجميل

 

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

كفكرة بسيطة ، في مديول جديد ، استعمل الدالة التالية :-

Public Function GetTxtHeight(annee As String, grade As String, wilaya As String, nomRapport As String) As Single
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim hauteur As Single
    
    Set db = CurrentDb
    Set rs = db.OpenRecordset( _
        "SELECT hauteur_rang FROM tab_hauteur_range " & _
        "WHERE annee = '" & annee & "' " & _
        "AND grade = '" & grade & "' " & _
        "AND wilaya = '" & wilaya & "' " & _
        "AND nom_raport = '" & nomRapport & "'", dbOpenSnapshot)
    
    If Not rs.EOF Then
        hauteur = rs!hauteur_rang * 567
    Else
        hauteur = 0.7 * 567
    End If
    
    rs.Close: Set rs = Nothing: Set db = Nothing
    GetTxtHeight = hauteur
End Function

 

ثم في حدث الزر عند التقر لفتح التقرير :-

Private Sub أمر2_Click()
    Dim h As Single
    Dim annee As String, grade As String, wilaya As String, rapport As String
    
    rapport = "rap_pv"
    
    annee = Me.annee
    grade = Me.grade1
    wilaya = Me.wilaya1
    
    h = GetTxtHeight(annee, grade, wilaya, rapport)
    
    TempVars!Temp_Hauteur = h
    
    DoCmd.OpenReport rapport, acViewPreview
End Sub

 

وفي حدث عند الفتح للتقرير :-

Private Sub Report_Open(Cancel As Integer)
    Dim h As Single
    If Not IsNull(TempVars!Temp_Hauteur) Then
        h = TempVars!Temp_Hauteur
    Else
        h = 0.7 * 567
    End If
    Me.nom.Height = h
    Me.prenom.Height = h
End Sub

 

مع ضرورة عدم تمكين image.png.7e867ff45321515e19cc215a59ae3ea5.png لمربعي النص ( nom و prenom )

 

مع العلم ان الفكرة قابلة للتطوير بالتحكم بحجم الخط أيضاً 😉 

 

الملف :-

 

baseM.zip

تم تعديل بواسطه Foksh
إضافة ملاحظة تتعلق بحجم الخط
قام بنشر

تحية طيبة الأخ والأستاذ الكريم @Foksh

مشكور جدا  جدا على الرد  والاهتمام بموضوعي

بعد التجربة على تقارير ونماذج ، المبدأ العام للفكرة جيد جدا و تقريبا لبى المطلوب

لو سمحت عندي بعض الملاحظات:(معذرة ربما لم أعرف كيف أوصل الفكرة جيدا من الأول)

* فيما يخص التحكم في  ارتفاع الصف يكون معه كذلك التحكم في ارتفاع  التفصيل حتى لا تكون فراغات واضحة (غير محبدة)

يعني ارتفاع الصف يكون بنفس ارتفاع التفصيل الصورة 1

* في الجدول  tab_hauteur_range   عند اضافة سطر (شروط جديدة) لا يأخذها بعين الاعتبار 

لاني لا حظت في الكود السابق يعمل مقارنة مع tab_hauteur_range   في حالة وجود سطر واحد  فقط

وأنا أريد عدة أسطر كثيرة  (يعني شروط جديدة)  في tab_hauteur_range  وعند الاختيار من النموذج تكون المقارنة مع الأسطر  والمتشابهة تماما يكون ارتفاع صف التقرير  وكذا التفصيل  الصورة 2

* اخي في التقرير  ممكن عندي حقول كثيرة  ,انا اريد تطبيقة على عدة تقارير كثيرة

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

 Me.nom.Height = h

 Me.prenom.Height = h

هل فيه طريقة أكثر اختصار  إن امكن لانها هذه تؤدي الوظيفة جيدا

 

***********

شرح بسيط آخر:

أنا عندي سنوات ودرجات و بلدان كثيرة

مثلا  السنة 2021  /2022   والدرجة: معلم      البلد: عمان

في التقرير يظهر لي 27 سطر  - أصــــغر  في ارتفاع الصف والتفصيل حتى تتسعهم صفحة واحدة فقط -

- أطبع التقرير  - بعد مدة طويلة لو أردت طباعته مرة ثانية  يكون بنفس الشكل تماما (يعني عدد الصفحات)

و أكرر نفس العملية : الاختيار من النموذج. (أعدل في ارتفاع الصف والتفصييل كما اشاء - )

 

أن شاء الله اكون قد شرحت جيدا

 

جزاك الله خيرا أخي الكريم @Foksh   وبارك الله فيك

 

 

 

 

 

 

الصورة2.jpg

الصورة1.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