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

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

قام بنشر

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

الساده الزملاء ( اعضاء اوفيسنا )

لو وضعنا فى الاعتبار ان عندى نموذج اختار منه كود او اسم الموظف
بيظهر ليه جميع بيانات الموظفين الموجوده فى المرفق ( tbl_Employees )

ومنها استطيع اختيارات البيانات التى اريد ان تظهر لى فى التقرير
والتقرير هذا عباره عن بيانات حاله موظف

وللاسف ليست البيانات ثابته بمعنى ( كل فترة الموظف بيريد فى بيان الحاله الخاص به )

ان يوضع بيانات معينه من الملف الخاص به وليس كل البيانات ولهذا السبب

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

فى وضع التصميم للبرنامج وتغير البيانات المطلوبة على حسب الموظف ما يريده

 

مرفق صوره موضحه للمطلوب ومرفق ملف اكسس به بعض من بيانات الموظفين

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

PhoXo2.jpg

بيان حاله.accdb

  • تمت الإجابة
قام بنشر

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

بعد فهم الموضوع ، هذه محاولتي البسيطة ، حيث بعد انشاء النموذج والتقرير ، وإضافة عنصر CheckBox جنب كل حقل ترغب بلإظهاره أو لا ، ومن خلال الزر في النموذج اعتمدت على TempVars لحفظ قيمة كل CheckBox ثم فتح التقرير من خلال الكود التالي في الزر :-

Private Sub btn_PreviewReport_Click()
    TempVars("SelectedEmpCode") = Me.Tx_Emp.Column(0)

    TempVars("Show_NationalID") = Me.chk_NationalID.Value
    TempVars("Show_Emp_BirthDate") = Me.chk_Emp_BirthDate.Value
    TempVars("Show_Emp_Phone") = Me.chk_Emp_Phone.Value
    TempVars("Show_Qualification") = Me.chk_Qualification.Value
    TempVars("Show_Graduation") = Me.chk_Graduation.Value
    TempVars("Show_Emp_Address") = Me.chk_Emp_Address.Value
    TempVars("Show_Appointment") = Me.chk_Appointment.Value
    TempVars("Show_InsuranceID") = Me.chk_InsuranceID.Value
    TempVars("Show_JobDesc") = Me.chk_JobDesc.Value
    TempVars("Show_Department") = Me.chk_Department.Value
    TempVars("Show_Salary") = Me.chk_Salary.Value
    TempVars("Show_InsuranceFee") = Me.chk_InsuranceFee.Value

    DoCmd.OpenReport "Rpt_EmployeeStatement", acViewPreview
End Sub

 

الآن وفي التقرير ، استخدمت الـ Tag لتحديد ارتفاع العناصر جميعها بحيث تم تحديده 400 ، ومن هنا تم الاعتماد على الدالة :-

Private Sub AdjustFieldVisibility(ctrl As Control, showField As Boolean)
    If showField Then
        ctrl.Height = Val(ctrl.Tag)
        ctrl.Visible = True
    Else
        ctrl.Visible = False
        ctrl.Height = 0
    End If
End Sub

بإخفاء وتصغير ارتفاع العناصر التي لا نرغب بها ..

وفي مصدر سجلات  التقرير ، استخدم الاستعلام التالي :-

SELECT *
FROM tbl_Employees
WHERE (((tbl_Employees.[Emp_Code])=[TempVars]![SelectedEmpCode]));

وفي الحدث عند التنسيق ، استخدمت الكود التالي لاستدعاء الدالة السابقة وتطبيق الاخفاء على العناصر التي لا نريدها .

Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
    AdjustFieldVisibility Me.NationalID, TempVars!Show_NationalID
    AdjustFieldVisibility Me.Emp_BirthDate, TempVars!Show_Emp_BirthDate
    AdjustFieldVisibility Me.Emp_Phone, TempVars!Show_Emp_Phone
    AdjustFieldVisibility Me.Qualification, TempVars!Show_Qualification
    AdjustFieldVisibility Me.Graduation, TempVars!Show_Graduation
    AdjustFieldVisibility Me.Emp_Address, TempVars!Show_Emp_Address
    AdjustFieldVisibility Me.Appointment, TempVars!Show_Appointment
    AdjustFieldVisibility Me.InsuranceID, TempVars!Show_InsuranceID
    AdjustFieldVisibility Me.JobDesc, TempVars!Show_JobDesc
    AdjustFieldVisibility Me.Department, TempVars!Show_Department
    AdjustFieldVisibility Me.Salary, TempVars!Show_Salary
    AdjustFieldVisibility Me.InsuranceFee, TempVars!Show_InsuranceFee
End Sub

طبعاً طرق كثيرة قد تحقق لك المطلوب ، ولكن هذه رؤيتي :yes: 

وفي النهاية ، الملف بعد التعديل :-

 

 

بيان حاله.accdb

قام بنشر

حبيبى اخى Foksh
 

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

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

  • Like 1
قام بنشر
5 دقائق مضت, Lotfy14 said:

حبيبى اخى Foksh
 

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

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

العفو يا صديقي 🤗 

يسعدني ويشرفني إن الفكرة عجبتك ، طبعاً زي ما وضحت سابقاً انه في كتير طرق لتنفيذ الموضوع ، ولكن قد وقع تفكيري على هذه الفكرة من مشروع سابق ولم اجد فيها اي مشكلة 🤗

 

  • Like 1

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