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

فكرة :- تقرير حسب رغبة المستخدم


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

السلام عليكم

عندي فكرة عمل تقرير حسب رغبة المستخدم

فعند الضغط ع زر طباعة تقرير 

تظهر اسماء جميع الحقول الموجودة ضمن قاعدة البيانات في جميع الجداول 

و بجوار كل اسم حقل مربع اختيار و يختار ما يرغب به في التقرير 

 

فهل يمكن عمل مثل هكذا فكرة 

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

كل شيء ممكن
ولكن ابدأ في تصميم الملف وحاول أنت أولا

وإذا وقفت معك خطوة ستجد الجميع يساعدك

لكن عرض الفكرة وغيرك ينفذ

ربما لا تجدها

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

14 دقائق مضت, أ / محمد صالح said:

كل شيء ممكن
ولكن ابدأ في تصميم الملف وحاول أنت أولا

وإذا وقفت معك خطوة ستجد الجميع يساعدك

لكن عرض الفكرة وغيرك ينفذ

ربما لا تجدها

البرنامج كامل وما فيه نقص 

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

اذا تنجح فشرح للطريقة او ملف يبين طريقة العمل

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

كل شيء ممكن وينجح مع الإصرار 
ولكن أكره الكلام النظري

فائدته قليلة جدا

وحسب فهمي للمطلوب

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

وعند اختيار الأعمدة يتم تجميع نص الاستعلام بلغة sql

وبناء تقرير جديد بناء على الاستعلام بهذه الدالة المعرفة

Function CreateDynamicReport(strSQL As String)
Dim db As DAO.database ' database object
Dim rs As DAO.Recordset ' recordset object
Dim fld As DAO.Field ' recordset field
Dim txtNew As Access.TextBox ' textbox control
Dim lblNew As Access.Label ' label control
Dim rpt As Report ' hold report object
Dim lngTop As Long ' holds top value of control position
Dim lngLeft As Long ' holds left value of controls position
Dim title As String 'holds title of report
 
     'set the title
     title = "Title for the Report"
 
     ' initialise position variables
     lngLeft = 0
     lngTop = 0
 
     'Create the report
     Set rpt = CreateReport
 
     ' set properties of the Report
     With rpt
         .Width = 8500
         .RecordSource = strSQL
         .Caption = title
     End With
 
     ' Open SQL query as a recordset
     Set db = CurrentDb
     Set rs = db.OpenRecordset(strSQL)    
 
     ' Create Label Title
     Set lblNew = CreateReportControl(rpt.Name, acLabel, _
     acPageHeader, , "Title", 0, 0)
     lblNew.FontBold = True
     lblNew.FontSize = 12
     lblNew.SizeToFit
 
     ' Create corresponding label and text box controls for each field.
     For Each fld In rs.Fields
 
         ' Create new text box control and size to fit data.
         Set txtNew = CreateReportControl(rpt.Name, acTextBox, _
         acDetail, , fld.Name, lngLeft + 1500, lngTop)
         txtNew.SizeToFit
 
         ' Create new label control and size to fit data.
         Set lblNew = CreateReportControl(rpt.Name, acLabel, acDetail, _
         txtNew.Name, fld.Name, lngLeft, lngTop, 1400, txtNew.Height)
         lblNew.SizeToFit        
 
         ' Increment top value for next control
         lngTop = lngTop + txtNew.Height + 25
     Next
 
     ' Create datestamp in Footer
     Set lblNew = CreateReportControl(rpt.Name, acLabel, _
     acPageFooter, , Now(), 0, 0)
 
     ' Create page numbering on footer
     Set txtNew = CreateReportControl(rpt.Name, acTextBox, _
     acPageFooter, , "='Page ' & [Page] & ' of ' & [Pages]", rpt.Width - 1000, 0)
     txtNew.SizeToFit
 
     ' Open new report.
     DoCmd.OpenReport rpt.Name, acViewPreview
 
     'reset all objects
     rs.Close
     Set rs = Nothing
     Set rpt = Nothing
     Set db = Nothing
 
End Function
 

بالتوفيق

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

4 ساعات مضت, أ / محمد صالح said:

كل شيء ممكن وينجح مع الإصرار 
ولكن أكره الكلام النظري

فائدته قليلة جدا

وحسب فهمي للمطلوب

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

وعند اختيار الأعمدة يتم تجميع نص الاستعلام بلغة sql

وبناء تقرير جديد بناء على الاستعلام بهذه الدالة المعرفة


Function CreateDynamicReport(strSQL As String)
Dim db As DAO.database ' database object
Dim rs As DAO.Recordset ' recordset object
Dim fld As DAO.Field ' recordset field
Dim txtNew As Access.TextBox ' textbox control
Dim lblNew As Access.Label ' label control
Dim rpt As Report ' hold report object
Dim lngTop As Long ' holds top value of control position
Dim lngLeft As Long ' holds left value of controls position
Dim title As String 'holds title of report
 
     'set the title
     title = "Title for the Report"
 
     ' initialise position variables
     lngLeft = 0
     lngTop = 0
 
     'Create the report
     Set rpt = CreateReport
 
     ' set properties of the Report
     With rpt
         .Width = 8500
         .RecordSource = strSQL
         .Caption = title
     End With
 
     ' Open SQL query as a recordset
     Set db = CurrentDb
     Set rs = db.OpenRecordset(strSQL)    
 
     ' Create Label Title
     Set lblNew = CreateReportControl(rpt.Name, acLabel, _
     acPageHeader, , "Title", 0, 0)
     lblNew.FontBold = True
     lblNew.FontSize = 12
     lblNew.SizeToFit
 
     ' Create corresponding label and text box controls for each field.
     For Each fld In rs.Fields
 
         ' Create new text box control and size to fit data.
         Set txtNew = CreateReportControl(rpt.Name, acTextBox, _
         acDetail, , fld.Name, lngLeft + 1500, lngTop)
         txtNew.SizeToFit
 
         ' Create new label control and size to fit data.
         Set lblNew = CreateReportControl(rpt.Name, acLabel, acDetail, _
         txtNew.Name, fld.Name, lngLeft, lngTop, 1400, txtNew.Height)
         lblNew.SizeToFit        
 
         ' Increment top value for next control
         lngTop = lngTop + txtNew.Height + 25
     Next
 
     ' Create datestamp in Footer
     Set lblNew = CreateReportControl(rpt.Name, acLabel, _
     acPageFooter, , Now(), 0, 0)
 
     ' Create page numbering on footer
     Set txtNew = CreateReportControl(rpt.Name, acTextBox, _
     acPageFooter, , "='Page ' & [Page] & ' of ' & [Pages]", rpt.Width - 1000, 0)
     txtNew.SizeToFit
 
     ' Open new report.
     DoCmd.OpenReport rpt.Name, acViewPreview
 
     'reset all objects
     rs.Close
     Set rs = Nothing
     Set rpt = Nothing
     Set db = Nothing
 
End Function
 

بالتوفيق

ممنون جدا استاذ @أ / محمد صالحع الشرح 

 

جربته ولم ينغع 

 

هذا ملف تجريبي يرجى التعديل عليه 

2 ساعات مضت, رضا محمد علي said:

السلام عليكم

مرفق مثال تقريبا  مشابه للطلب _ منقول يمكن تكون فى فكره حسب الطلب

اختيار من الجدول.rar

مشكور استاذ 

ولكن هذا الملف يختار الحقول من جدول واحد 

وانا بحاجة للاختيار من اكثر من جدول  

000 - Copy.rar

تم تعديل بواسطه zYo
رابط هذا التعليق
شارك

21 ساعات مضت, zYo said:

السلام عليكم

عندي فكرة عمل تقرير حسب رغبة المستخدم

فعند الضغط ع زر طباعة تقرير 

تظهر اسماء جميع الحقول الموجودة ضمن قاعدة البيانات في جميع الجداول 

و بجوار كل اسم حقل مربع اختيار و يختار ما يرغب به في التقرير 

 

فهل يمكن عمل مثل هكذا فكرة 

عزيزى ارح بالك 

هذا الموضع العظيم فيه ماتريد واكثر

للاستاذ والخبير القدير @jjafferr

بالتوفيق باذن الله

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

منذ ساعه, محمد عبد الشفيع said:

عزيزى ارح بالك 

هذا الموضع العظيم فيه ماتريد واكثر

للاستاذ والخبير القدير @jjafferr

بالتوفيق باذن الله

 

تمام و رائع ولكن 

يجب الاختيار من جدول  واحد وليس عدة جداول 

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

57 دقائق مضت, zYo said:

 

تمام و رائع ولكن 

يجب الاختيار من جدول  واحد وليس عدة جداول 

اذن عليك محاولة التعديل لجعله ياخذ من اكتر من جدول

وستكون رائعة بالتاكيد

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

8 دقائق مضت, محمد عبد الشفيع said:

اذن عليك محاولة التعديل لجعله ياخذ من اكتر من جدول

وستكون رائعة بالتاكيد

اكيد طبعا 

ان شاءالله احاول بعد ان اتواصل مع استاذ @jjafferr 

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

3 دقائق مضت, saleh204 said:

حاول عمل استعلام يضم الحقول التي تريد من الجداول .

@saleh204

 

جربت ولم تنجح 

هل يمكنك التعديل ع الملف وارساله 

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

  • 2 weeks later...

السلام عليكم ..

أرغب بأن أضيف تجربتي المتواضعة عسى أن يكون بها طلبك .

الفكرة بالخطوات المختصرة :

1- عمل تقرير يتضمن جميع الحقول التي نرغب بعرضها.

2- جعل خاصة يقبل النمو لمربعات النص ( و يمكن اللجوء إلى بعض الأكواد التي تسمح بنمو مربعات النص في التقارير طولاً و عرضاً مع أني لم أجربها و ليست لدي  كوني لم أحتجها).

3- اجعل مصدر التقرير  استعلاماً مصمماً من جميع الجداول التي لديك.

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

5-في حال كنت ترغب بتسجيل كامل البيانات في جميع الجداول و لكن عرض ما ترغب به منها، يمكن أن تلجأ إلى التنسيق الشرطي أيضاً( كعمل مربع نص عند وجود قيمة معينة فيه تختفي الليبل)

لم أجرب استخدام تطبيق الفكرة بخاصية VISIBLE  و إنما استخدمت التنسيق الشرطي فقط .

يمكن ملائمة الفكرة حسب الحاجة.

 و سأكون بالخدمة عند وجود أي استفسار.

و أضيف إلم ترق لك هذه الطريقه فهي  ليست احترافية كونها من غير محترف - لا يمتهن هذا الاختصاص- حديث العهد إلى حد ما في هذا المجال إلا أنها قد لبت احتياجاتي سابقاً و أحببت أن أشارككم بها.

تم تعديل بواسطه Khalf
رابط هذا التعليق
شارك

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