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

عرض القيم المنطقية في التقرير

بدأه فلسطيننا في 24 يوليو 2010 · 13 رد · 1,535 مشاهدة · في تصميم وبرمجة التقارير
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع
720597902.png

لدي متغيرفي في جدول ما وهذا المتغير منطقي (صح أم خطأ ، 0أو1) أود أن أعرضه في تقرير الكريستال ريبورت ولكن القيم المتوفرة للعرض هي باللغةالانجليزية

كما هوموضح بالصورة التالية

715260772.png

وما أود القيام أن أقوم ببرمجة القيم المنطقية للمتغير المنطقي فهل منأحد يفيدني بذلك ....

رَبِّ لَا تَذَرْنِي فَرْداً وَأَنتَ خَيْرُ الْوَارِثِينَ

#2

السلام عليكم

يمكن ان تستخدم الطريقة الاتية :

اعمل Formula جديدة وسميها مثلاً Donefild

انقر على ال Formula الجديدة بزر الماوس الايمن واختر منها Edit Format

واكتب الكود التالي

if {اسم الحقل}=false then "لا" else "نعم"

واخبرني بالنتيجة

وبالتوفيق

"نحن لا نستسلم... ننتصر أو نموت.... وهذه ليست النهاية... بل سيكون عليكم أن تحاربوا الجيل القادم والاجيال التي تليه... اما أنا... فإن عمري سيكون أطول من عمر شانقي."

عمر المختار

اللهم انعم على بلادي بالأمن والأمان

#3
عبدالجليل العقوري كتب:

السلام عليكم

يمكن ان تستخدم الطريقة الاتية :

اعمل Formula جديدة وسميها مثلاً Donefild

انقر على ال Formula الجديدة بزر الماوس الايمن واختر منها Edit Format

واكتب الكود التالي

if {اسم الحقل}=false then "لا" else "نعم"

واخبرني بالنتيجة

وبالتوفيق

السلام عليكم

فعلت الأتي

if {done1}=true then "نعم" else "لا"

ولكن للأسف لم ينجح الأمر معي

ياريت لويوجد كتاب يشرح الأوامر داخل الكريستال ريبورت

رَبِّ لَا تَذَرْنِي فَرْداً وَأَنتَ خَيْرُ الْوَارِثِينَ

#4

السلام عليكم

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

if { اسم الحقل.اسم الجدول}=false then "لا" else "نعم"

ويفضل ان لاتكتب اسم الحقل بل اختاره من قائمة Report Fields

بالتوفيق

تم تعديل هذه المشاركة بواسطة عبدالجليل العقوري في 26 يوليو 2010 في 14:40

"نحن لا نستسلم... ننتصر أو نموت.... وهذه ليست النهاية... بل سيكون عليكم أن تحاربوا الجيل القادم والاجيال التي تليه... اما أنا... فإن عمري سيكون أطول من عمر شانقي."

عمر المختار

اللهم انعم على بلادي بالأمن والأمان

#5
عبدالجليل العقوري كتب:

السلام عليكم

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

if { اسم الحقل.اسم الجدول}=false then "لا" else "نعم"

ويفضل ان لاتكتب اسم الحقل بل اختاره من قائمة Report Fields

بالتوفيق

جربت يا بركة مثل ماحكيت ...

بس الخطأفي Syntax الخاص بجملة If حبذا لو يوجد كتيب يشرح هذه الدوال

بوركت وبورك منشأك

رَبِّ لَا تَذَرْنِي فَرْداً وَأَنتَ خَيْرُ الْوَارِثِينَ

#6

السلام عليكم اخي الكريم

والله العظيم عملت لك مشروع صغير والامر شغال عندي 100% ولكن عندي مشكلة في ارفاق الملفات فزر ارفاق الملف يظهر ثم يختفي بسرعة ولكن اريد ان اتاكد هل انت متأكد من ان اسم الحقل هو done1 وليس هو الفورملا وهل تعريف الحقل في قاعدة البيانات هو Yas or No

بالتوفيق

"نحن لا نستسلم... ننتصر أو نموت.... وهذه ليست النهاية... بل سيكون عليكم أن تحاربوا الجيل القادم والاجيال التي تليه... اما أنا... فإن عمري سيكون أطول من عمر شانقي."

عمر المختار

اللهم انعم على بلادي بالأمن والأمان

#7

السلام عليكم

هاي صورة أخي الكريم أكثر تبيانا

219500575.png

اقتباس
هل تعريف الحقل في قاعدة البيانات هو Yas or No

بخصوص الحقل في جدول قاعدة البيانات هومن نوع bit

تم تعديل هذه المشاركة بواسطة فلسطيننا في 27 يوليو 2010 في 22:52

رَبِّ لَا تَذَرْنِي فَرْداً وَأَنتَ خَيْرُ الْوَارِثِينَ

#8

السلام عليكم

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

عندما قلت متغير منطقي فانا اعرفه true أو false وهذا ما عملت عليه عندما وضعت الجمله الشرطية والتجربة التي قمت بها ونجحت معي هي باختبار قيمة الحقل والذي عرفته ب Yas or no ولكن في حالتك كما قلت عرفت الحقل bit وبالتالي سيكون عليك تغيير الكود بالصورة التالية

if {Viewcrimdata.done}=1 then "لا" else "نعم"

اي ان الخطا كان في اختبار الجملة الشرطية في الحقل عملت انا على حقل نوع بياناته yas or no فاستخدمت true أو false وانت تعمل على نوع بيانات Bit وبالتالي سيكون اختبار للحقل fب 0 او 1

وان شاء تنحل معك تحياتي

"نحن لا نستسلم... ننتصر أو نموت.... وهذه ليست النهاية... بل سيكون عليكم أن تحاربوا الجيل القادم والاجيال التي تليه... اما أنا... فإن عمري سيكون أطول من عمر شانقي."

عمر المختار

اللهم انعم على بلادي بالأمن والأمان

#9

أخي الكريم

فعلت ولكن لم تضبط النتيجة معي حتى هذه اللحظة وهي نوع الحقل في الجدول Done bit

أخي الكريم يتم التخزين ب true او False في الداتا الباس

ياريت لو تقوم بأرفاق لي مثال

تم تعديل هذه المشاركة بواسطة فلسطيننا في 29 يوليو 2010 في 10:22

رَبِّ لَا تَذَرْنِي فَرْداً وَأَنتَ خَيْرُ الْوَارِثِينَ

#10

أخي الفاضل

فلسطيننا

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

أعتقد ان معالجة الامر من خلال SQL Server أو تحديداً من خلال stored procedure يكون أفضل طريقة لحل هذا الاشكال وذلك باتباع التالي

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

post-46243-081466100 1280573934_thumb.jp

والمطلوب هو استبدال القيم True و False بالقيم نعم ولا باللغة العربية

بمنتهي السهولة ستقوم بعمل اجراء مخزن جديد Create stored procedure ومن خلال الدالة العبقرية Case when يمكن تنفيذ المطلوب بالحرف الواحد

create proc item_Status
as
begin

Select dbo.itemstat.id,
(Case when dbo.itemstat.Fldstat = 1 then 'نعم' else
case when dbo.itemstat.Fldstat = 0 then 'لا'

end
end)as Items_Status
 from dbo.itemstat

 end

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

ستكون النتيجة كالتالي

post-46243-075977600 1280574159_thumb.jp

طبعا النتيجة مرضية جداً وتفيد بالغرض المطلوب

بمنتهي البساطة الان قم ببناء تقرير جديد يستند لهذا الاجراء المخزن وستجد النتيجة مرضية بالتقرير ان شاء الله

بالتوفيق ،،،،

المرفقات
1.jpg2.jpg

تم تعديل هذه المشاركة بواسطة محمد فؤاد تركي في 31 يوليو 2010 في 14:06

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#11

بارك الله فيك أخي الكريم محمد على هذه الفكرة

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

لعلووا خير

رَبِّ لَا تَذَرْنِي فَرْداً وَأَنتَ خَيْرُ الْوَارِثِينَ

#12

السلام عليكم اخي العزيز

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

اولا :الكود المكتوب عملته على SQL server 2000 وقاعدة البيانات التي استخدمتها pubs الجدول Salas والحقل قد اضفتة من عندي واسميته don ونوعة bit وادخلت له قيم 0 و 1

ثانيا:اذهب الي Formula Fields واضغط بزر الماوس الايمن على new واكتب اسم Formula واسميتها انا test ثم اكتب الكود التالي

if {sales.don}=true then "NO" else "Yes"

ولتصدقني انظر الصور المرفقة

post-55046-072509200 1283256776_thumb.jp

post-55046-095767700 1283209444_thumb.jp

وانصحك لاتترك الكريستال ريبورت

وادعوا لنا في هذه الايام المباركة

وبالتوفيق ان شاء الله

المرفقات
PIC2.JPGPIC3.jpg

تم تعديل هذه المشاركة بواسطة عبدالجليل العقوري في 31 أغسطس 2010 في 15:16

"نحن لا نستسلم... ننتصر أو نموت.... وهذه ليست النهاية... بل سيكون عليكم أن تحاربوا الجيل القادم والاجيال التي تليه... اما أنا... فإن عمري سيكون أطول من عمر شانقي."

عمر المختار

اللهم انعم على بلادي بالأمن والأمان

#13
فلسطيننا كتب:

بارك الله فيك أخي الكريم محمد على هذه الفكرة

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

لعلووا خير

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

1 - برنامج الكريستال ريبورت يعيبة بعض البطيء نوعا ما عندما تقوم باستدعاء البيانات وذلك من غير استخدام أي معادلات بداخلة

2 - قد يؤثر كثرة المعادلات داخل تقارير الكريستال ريبورت علي Performance مشروعك فيما بعد عند استدعاء البيانات

3 - مع زياده حجم البيانات مع استخدام المعادلات سيتأثر Performance التقرير لا شك

أما طريقة استخدام Stored Procedure فيميزها التالي

1 - الاستفاده من سرعة الاجراءات المخزنة وقت التنفيذ ووقت استدعاء البيانات (Performance)

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

وبالتوفيق للجميع

تم تعديل هذه المشاركة بواسطة محمد فؤاد تركي في 31 أغسطس 2010 في 15:59

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#14
فلسطيننا كتب:

السلام عليكم

فعلت الأتي

if {done1}=true then "نعم" else "لا"

ولكن للأسف لم ينجح الأمر معي

ياريت لويوجد كتاب يشرح الأوامر داخل الكريستال ريبورت

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

ولكن يجب اخفاء العمود الاصلي من التقرير لان نوعة bit ولن يقبل قيمة "نعم او لا" ويجب اضافة عمود جديد من نوع string واظهار القيمة فية

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…