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

سؤال في CRESTAL REPORT

مغلق
بدأه VIPER_HEAD في 15 أغسطس 2005 · 11 رد · 1,361 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أخواني الأعزاء سلام الله عليكم ورحمته وبركاته

أعتدت علي أستخدام برنامج CRESTAL REPORT لعمل التقارير وكنت دائما أنشيء التقارير به مستخدما ال Wizard المسمي Using Report Expert وكنت دائما أضع المعايير أو الشروط التي سينفذ علي أساسها التقرير في الجزء المسمي Select

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

المشكلة الأن أنني أريد أن أضع المعايير من خارج التقرير بمعني

إذا كان لديك قاعدة بيانات عن الموظفين وتريد عرض تقرير عن كل موظف تكتب أسم الموظف في Text Box فيقوم البرنامج بعرض التقرير الخاص بهذا الموظف

علما بأني أستخدم Crestal Report وليس Data Report

أرجو لمن لديه الحل ألا يبخل به

وجزاكم الله كل خير

#2

اعمل cut لجملة الselect من الكريستال ريبورت

اضف للفورم زر و تكست بوكس

في الزر اكتب الكود

crystalreport1.selectionformula=""

وبين القوسين انسخ الجملة التي قصصتها من الكريستال ريبورت

قص من الجملة المنسوخة الاسم الذي كنت ستبحث عنه و ضع بدلا منه

" & text1.text &"

بعد هذا السطر اكتب الامر

crystalreport1.action =1

من قال لا إله إلا الله صادقا دخل الجنة

موقعي للتعارف و تبادل الأخبار http://www.xybond.com

#3

اعتقد ان هذا الحل غير مضبوط

لان

selection formula

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

اما الحل الصحيح من وجهة نظري فهو انه لديك خيارين :

1- ان تبني التقرير الخاص بك علي فيو تقوم بعملها في قاعدة البينات وتكون هذه الفيو معتمده علي جدول معين للشروط وليكن اسمه

Criteria

تحفظ فيه في كل مرة تنادي فيها التقرير الشروط التي تريدها

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

Emp_Data

ده بيجيب بينات الموظفين كلهم

تعمل جدول تاني تسميه

Criteria

وتضع فيه حقلين

From_Emp_Code , ToEmp_Code

وتزيد شرط علي الفيو مثلا

Wehere Emp_Data.Emp_Code >= Criteria.From_Emp_Code

and

Wehere Emp_Data.Emp_Code<= Criteria.To_Emp_Code

وقبل ما تطبع التقرير تروح تحفظ في جدول ال

criteria

شرط كود الموظف من الي

==

ملحوظة هذه الطريقة سهلة وسريعة وانا شخصيا بافضلها

===========

2- فيه طريقة تانيه برده سهلة لكنها فيها بعض العيوب اهمها ان لا تعرف تعمل لها ديبج كويس

هذه الطريقة هي انك تاخذ جملة ال

Select

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

m_Rep.SQLQuery = ""

وتكتب بين القوسين الجملة الخاصة بك

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

Sql

كما هي مسجلة في التقرير بالضبط

=====

#4

شكرا على المعلومة و يمكن طريقتك اسرع بس selection formula انا اشتغل بيها و هي تفي بغرض الاخ السائل

من قال لا إله إلا الله صادقا دخل الجنة

موقعي للتعارف و تبادل الأخبار http://www.xybond.com

#5
VIPER_HEAD كتب:
المشكلة الأن أنني أريد أن أضع المعايير من خارج التقرير بمعني

إذا كان لديك قاعدة بيانات عن الموظفين وتريد عرض تقرير عن كل موظف تكتب أسم الموظف في Text Box فيقوم البرنامج بعرض التقرير الخاص بهذا الموظف

علما بأني أستخدم Crestal Report  وليس Data Report

أرجو لمن لديه الحل ألا يبخل به

وجزاكم الله كل خير

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

gaza3-3.jpg
#6

شكرا لكم جميعا علي الرد وعلي الأهتمام وجزاكم الله كل خير

ولكن عندي رجاء للأخ العزيز إبراهيم الطيب

الوصلة التي قمت بوضعها بوضعها بها Virus لذا لم أتمكن من إنزال الملف الموجود بها

فهل تستطيع تحميلها مرة أخري ؟؟

#7

من عيوني التنين باذن الله :) و ارجو المعزرة :)

gaza3-3.jpg
#8

تسلم عنيك أخي إبراهيم وفي أنتظار الملف

أخواني الأعزاء سلام الله عليكم ورحمته وبركاته

قمت بتنفيز الخطوات التي أخبرني بها مشكورا الأخ hishamnasr

ولكن دائما تخرج لي رسالة الخطأ التالية

Error in File Report1.rpt
Error in Formula <Record_Selection>
"select * from bank WHERE name='ahmed'"
A number , currency amount , boolean ,date,time,or string
is expected here.

الخطوات التي قمت بها بالتريب هي

1] قمت بأنشاء تقرير من داخل ال Crestal Report دون وضع شرط به وقمت بربطه بقاعدة البيانات bank

2] من داخل ال VB وضعت علي الForm الكائنات التالية

Text Box , Command Button , Crestal Report Control

3]قمت بربط ملف التقرير مع الvb باستخدام الأداة Crestal Report Control مستخدما الخاصية Report File Name

4] من داخل ال Command Button كتبت الكود التالي

Private Sub Command1_Click()
CrystalReport1.SelectionFormula = "select * from bank WHERE name= '" & Text1.Text & "'"
CrystalReport1.Action = 1
End Sub

هذا كل ما قمت به من خطوات

مرفق الملف الذي أجرب به الكود لمن يريد الأطلاع عليه

أرجو أن يخبرني أحد سبب هذا الخطأ لأني عجزت عن تفسيره

Select.rar

#9

/index.ph...e=post&id=21830

بعد التعديل , خالي من الفيروسات باذن الله :)

gaza3-3.jpg
#10

شكرا أخي إبراهيم وصل الملف وبه الحل للمشكلة جزاك الله كل خير

#11

الحمد لله

:)

gaza3-3.jpg
#12

-9

السلام عليكم

أخواني الاعزاء كنت أبحث عن الصيغة لفتح تقرير العملاء

مابين كودين ياعني لو افترضنا اننا عندنا 40 عميل

فأزي أفتح التقرير كل العملاء ما بين 22 , 30 علي سبيل المثال

حولت أستخدم Between

فا ظهرلي خطا كما حدث للاخ فيبر هد ...... فأرجو المساعدة

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

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