الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكله في طباعة التقرير من نوع Crystal Report

مغلق
بدأه ضاري في 5 سبتمبر 2006 · 23 رد · 1,393 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اتمنى التعديل على هذا المثال ياخوان وحل المشكله فيه

حيث ان المشكله في طباعة التقرير وهي عندما استعرض بيانات شخص ما

واريد طباعة بياناته يأتي التقرير ببيانات اول شخص مسجل بقاعدة البيانات لماذا ؟

ماهو الحل حيث اني اريد طباعة الشخص المراد

اتمنى اجد حل عندكم يارب

هذا هو المثال

____.rar

تم تعديل هذه المشاركة بواسطة HnHn في 4 أكتوبر 2006 في 04:04

#2

يا عزيزي لا أملك جميع الملفات المكتبية dll لتشغيل برنامجك ولكن:

هل استعلمت؟ أي هل قمت بكتابة جملة SQL أو ماشابه ذلك لكي تختار فقط الموظف الذي تريد أن تطبع بياناته؟

مثلا:

Dim sql As String
sql = "select * from tappp where t1='" & Text1 & "'"

In order to understand recursion, one must first understand recursion

alawfiadel@yahoo.com

#3

لا لم اقم بكتابة هذه الجمله

وحقيقة لا اعلم كيف

ياليت تساعدني

#4

أنا مبتديء أيضاً وربنا معانا.

افترض أنك تتصل بقاعدة بيانات Access اسمها "m.mdb" موجودة على نفس دليل البرنامج. بها جدول اسمه "em" يحتوي الحقول "ID" و "Name".

وافترض أنك تستخدم في الاتصال Microsoft ADO data Control و Microsoft.Jet.OLEDB.4.0.

في الحدث Load للنموذج Form نعرف المتغيرات التالية:

Dim conn As ADODB.Connection
Dim rec As ADODB.Recordset
Dim sql As String

ثم نبدأ في تعيين القيم لها تحت التعريفات.

Set conn = New ADODB.Connection
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\m.mdb;Persist Security Info=False"
conn.Open
sql = "SELECT * FROM em WHERE ID='" & text1 & "'"
Set rec = New ADODB.Recordset
rec.Open sql, conn, adOpenKeyset, adLockOptimistic

لاحظ أننا استعلمنا عن الموظف عن طريق الحقل ID وهو معرف للموظف لا يتكرر. استعلمنا عن الموظف الذي يوافق معرفه النص text1.

المتغير rec عبارة عن مجموعة من السجلات. لو نجح الاستعلام السابق ووجد موظفاً معرفه يوافق النص text1 لأصبح في مجموعة السجلات rec سجلاً واحداً بذلك الموظف تستطيع الحصول على جميع بيانات الحقول في ذلك السجل عن طريق الصيغة "rec!ID" للمعرف أو "rec!Name" للاسم وهكذا حسب أسماء الحقول.

مثلاً:

MsgBox rec!Name

تظهر الاسم.

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

إما أن تستعلم عنه بمفرده أو تحرك هذا المؤشر إلى ذلك الموظف باستخدام الأوامر "MoveFirst" و "MoveNext" و"MoveLast" إلخ... لمجموعة السجلات rec.

In order to understand recursion, one must first understand recursion

alawfiadel@yahoo.com

#5

كل الشكررررررررر لك اخوي على تعاونك ومحاولتك المساعده

انا طبقت كل اللي شرحته انت

لكن يبقى الكود الذي اضعه تحت زر طباعه ماهو ؟؟

#6

ليس لدي خبرة في التقارير. ولم أستخدم Crystal Report إلى الآن للأسف.

آسف أخي العزيز.

In order to understand recursion, one must first understand recursion

alawfiadel@yahoo.com

#7

ماقصرت اخوي على كل شي مشكوووور

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

#8

بانتظاركم اخواني ...........................

#9

معقوووووووول لا يوجد حل لهذه المشكله ؟؟؟؟؟؟؟؟؟؟؟

#10

إذا كنت تستخدم برامج Crystal Report وصممت التقرير Em1.rpt وقاعدة البيانات هي m.mdb والجدول em والحقل ID. وتريد عرض/طباعة تقرير عن الموظف صاحب ID الذي يوافق ماهو موجود في مربع النص text1 وقد أضفت أداة CrystalActiveXReportViewer واسمها CR1 ... اتبع التالي:

Dim Ap As New CRAXDDRT.Application
Dim Rp As New CRAXDDRT.Report

' تحديد التقرير المصمم ببرنامج Crystal Report
Set Rp = Ap.OpenReport(App.Path & "\Em1.rpt")

' تحديد ملف قاعدة البيانات
Rp.Database.Tables(1).Location = App.Path & "\DB.mdb"

' الاستعلام عن الموظف المراد
Rp.RecordSelectionFormula = "{em.ID}='" & text1 & "'"

'عرض التقرير
CR1.ReportSource = Rp
CR1.Zoom 1
CR1.ViewReport

أتمنى ما أكون أخطأت لأن هذا أول يوم لي مع Crystal Report ... أرجو من الإخوان التصحيح لو فيه مشكلة.

تم تعديل هذه المشاركة بواسطة Adel_N في 12 سبتمبر 2006 في 09:09

In order to understand recursion, one must first understand recursion

alawfiadel@yahoo.com

#11

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

اخوي Adel_N اشكر لك اهتمامك وجزاك الله كل خير وجعله في موازين حسناتك يوم الحساب

يبدو ان العقده في الكريستال ربورت لكن اخي نستطيع الاستغناء عنه باستخدام الداتا ريبورت

فهل تستطيع حل مشكلتي باستخدام الداتا ريبورت ؟

#12

اخي العزيز اعذرني لم أرى مشاركتك من قبل ولكن

ان شاء الله المشكلة بسيطة

اذهب الى التقرير ثم قائمة ملف ثم ازل علامة الصح من على الجملة التالية

save Data With report

وان شاء الله تعمل معاك

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

158.gif

هناك فرق بين أن تكبر بالعمر

، و أن تكبر بالعقل
فالأولى ، إجباري
، والثانية اختياري .."
 
 

164684_514411088579476_442405016_n.jpg

#13

اشكرك اخي الفوارس على الرد والتوضيح

ولكن للاسف لم تنجح الطريقه :(

فانا والله تعقدت من هذه المشكله اكاد اجن منها

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

ثم ترفقه لي حتى يكون جاهز ويوفر علينا عناء الشرح

والموضوع لا يقتصر على الكريستال ريبورت

فلو اردت ان نستغني عنه بالداتا ريبورت فلا امانع سواء باستخدام الكريستال ريبورت او بالداتا ريبورت

اهم حاجه ان اجد حل لهذه المشكله

بانتظااارك اخوي

#14

اخي العزيز انا الكرستل الذي لدي هو الاصدار العاشر

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

ثانياً : ارفق لي المثال موجود فيه بيانات وارفق لي تفصيل ادق للمشكلة لكي اتمكن من مساعدتك

عـــــــــــــــــــاطر التحايا

لأن المثال المرفق لا يوجد فيه سوى بيان واحد

158.gif

هناك فرق بين أن تكبر بالعمر

، و أن تكبر بالعقل
فالأولى ، إجباري
، والثانية اختياري .."
 
 

164684_514411088579476_442405016_n.jpg

#15

مشكور اخي لهتمامك

انا استخدم الاصدار الثامن للكريستال ريبورت

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

فانا ارفقته لانه مطابق تماما لمشروعي

بانتظارك

#16

ولكن الاصدار الثامن لا يوجد لدي والذي لدي هو الاصدار العاشر

158.gif

هناك فرق بين أن تكبر بالعمر

، و أن تكبر بالعقل
فالأولى ، إجباري
، والثانية اختياري .."
 
 

164684_514411088579476_442405016_n.jpg

#17

طيب اخوي هل نستطيع عمل هذا التقرير بالداتا ريبورت ؟

#18

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

أخوك.

In order to understand recursion, one must first understand recursion

alawfiadel@yahoo.com

#19

راح ابحث عن الاصدار العاشر واجرب باذن الله

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

#20

لا أعلم والله عن Data Report. آسف أنا مبتديء في التقارير عموماً.

In order to understand recursion, one must first understand recursion

alawfiadel@yahoo.com

#21

اخي العزيز الداتا ريبوتر برضه تعطي تقارير كويسه انته

حاول تعمل عليها وإلا واجهتك مشكله نحن بعون الله موجودون وإذا اسريت فسوف ابحث عن الاصدار 8 او 8.5 واقوم بعمل المطلوب

عـــــــــــــــاطر التحايا

158.gif

هناك فرق بين أن تكبر بالعمر

، و أن تكبر بالعقل
فالأولى ، إجباري
، والثانية اختياري .."
 
 

164684_514411088579476_442405016_n.jpg

#22

اخوي الفوارس اشكر اهتمامك

انا حاولت بالاصدار الثامن وقدرت بفضل الله ثم بفضلكم

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

وهي عند الظغط على زر طباعة تظهر الطباعة كما نسقتها ولكن تظهر بيانات

الشخص السابق الذي تم طباعته سابقا ويوجد مع اداة عرض التقرير الزر الاصفر اللي هو للتحديث

وعند الضغط علي زر التحديث يتم عرض الشخص المراد

والان المطلوب هو : طباعة الشخص المراد عند الضغط على زر طباعه دون الحاجه للضغط على زر التحديث

اتمنى احد يساعدين

#23

اخ ضاري جرب هذا الرابط

سجل ايميلك هنا

googlejb5.gif ليصلك كل ما هو مفيد في عالم البرمجة
#24

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

انت دلوقتي بتصمم التقرير بالكريستال ريبورت تمام كدة

قبل ما تعمل save للريبورت بتاعك روح علي قايمة File ومنها هتلاقي في القايمة اللي ظاهرة دي الإختيار ده Save data with report وهتلاقي قدامه علامة صح تمام كدة

كل اللي سيادتك تعمله اتك تختار الإخيتار ده علشان تشيل علامة الصح دي

وبعد كدة تعمل save للريبورت بتاعك

الكلام ده معناه ايه بقي

انك لما شيلت العلامة دي اصبح النقرير متغير

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

يارب يكون ده الحل ان شاء الله ويارب تكون فهمتني يا جميل

منتظر ردك يا باشا

وكل سنة وانت طيب

vipersig.jpg

المحاسب

سامح إبراهيم عبداللطيف

sameh_ibm@hotmail.com

SAMHOOON

هذا الموضوع مغلق.

مواضيع مشابهة