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

اضهار اللسته في التقارير(للااهمية)

مغلق
بدأه حد السيف في 22 يوليو 2003 · 11 رد · 1,107 مشاهدة · في قواعد بيانات Oracle
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

انا عملت تقرير بالاصناف ولكن عندما ياتى اسم المستودع يضهر لى القيمه 2 ولا يضهر لى اسم المستودع انا اريد اضهار اسم المستودع بدل الرقم لان الرقم مجرد قيمه في الدات بيز

STORE_NAME هذا اسم الحقل ونوعه رقمى

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

#2

هههههههه

مثلي وربي

ماقدرت عليها وحولت على LOV اصرف ويخزن قيم

طيب سؤال الان لك

لو اضفنا مستودع جديد كيف يضاف الى اللست ايتم طبعا تضيفه الى

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

المستودعات الجديده وتعطيها ارقام

يعني كل ما احتجت الى اضافت مستودع لابد من فتح السورس كود واضافه مستودع ورقم -على حسب مافهمت من الشرح للمدرس- اما ال LOV لا هي تحدث نفسها صحيح حجم كبير على قاعدة البيانات بس وش تسوي

كمان النقطه هذه عقدتني وخلتني اتجه الى ال LOV بشكل اكبر

#3

1- أدخل على خصائص البرميتر

2- أدخل على List of value

3- أختر select Statement

4- أكتب ال Query

مثلاً

select store_code,store_name 

from stores 

order by store_name

لاحظ أن الكود يأتي أولاً في select statement

#4

السلام عليكم

سأسئل سؤال يعتمد على مدى معرفتك بجداول scott

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

يعني يحدد المستخدم اسم القسم من قائمة منسدلة من FORM. ثم يطبع التقرير

كيف يمكنني ذلك? لا اريد تفصيل اريد الفكرة فقط.

هل تقوم بعمل فورم خاصة لتشغيل التقارير ام تستخدم الشاشة الخاصة بالـReport Biulder

(runtime parameter form)

وماهو الفرق

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

#5

أنا أفضل عمل فورم تقوم بتشغيل التقرير أكثر من استخدام ال Parameter Form الموجودة في الريبورت بيلدر

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

#6

اهلين شباب فعلاً محب انا افكر بنفس مشكلتك وباخذ حل ابرهيم وبسوى عندى ديام ابو خليل يجيب الحل هو فارسنا لكن هالمره ماجابها هالمره بس ولو افادنا في شغله ثانيه اخوى بن طالب بكل بساطه اعمل فورم وانشاء فيه زر وفي الزر اكتب السورس الى تبيه يطبعه لك حسب شروطك وسلامتك شباب انتبهو لمشكلتى دورو لها حل البرنامج ابىاسلمه هاليومين بس تورطت فيها

#7

ممكن تستخدم DECODE في ال SELECT الخاصة بالريبورت كالتالي

DECODE(1,'STORE1',2,'STORE2',3,'STORE3',4,'STORE4')

انا مجربها

#8

مشكور اخوى o7oc راح اجربه واشوف إن شاء الله ينفع

#9

عفوا

لقد كنت مستعجل ولم اضع اسم الحقل في الDECODE

والصحيح

DECODE(FILD_NAME,1,'STOR1_NAME',2,'STORE2_NAME')

#10

المعذرة حقيقة إذا كنت ما فهمت السؤال زين

بس كنت تتكلم عن لستة في التقارير وهاذي ما تجي إلى في Parameter Form

بس الحين فهمت السؤال وهذي حلها بسيط تابع معي :

- أولا تروح Data Model

- تختار من الأدوات شي اسمه Formula Column دائماً تلق اسمه يبدأ ب CFوتضعها بين الحقول اللي جاية من ال Query

- تدخل على الخصائص تغيرها إلى character وتزود الحجم زي ما تبي

- تدخل الآن على PL/SQL في خصائص CF تسجل الكود التالي

function CF_1Formula return Char is

temp varchar2(100);

begin



select store_name  into temp

from stores 

where store_code = :store_code;



retturn (temp);

exception

when no_data_found then return null;

end;

الحين الخطوة الأخيرة تروح لل Layout Model

تدخل على خصائص رقم المستودع تلقى خاصية باسم return

غيرها إلى CF_1

#11

عفوا اخ ابرهيم

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

ولكن حسب فهي للسؤال ( اذا كان فهمي صحيح ) فان الاخ حد السيف عامل ارقام المخازن واسمائها على شكل list of item بحيث تظهر في القائمة اسماء المخازن وتخزن في الداتا بيس كرقم.

وهنا ارى انه كان من الافضل للاخ ان يستخدم جدول في الداتا بيس باسماء وارقام المخازن ويتم عرضها عن طريق list of item او list of value

بحيث يستطيع المستخدم التحكم فيها

#12

سلام عليكم

اخي حد السيف

بحاول أساعدك على حسب مقدرتي

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

زر data model الموجود ظمن الأزرار الأربعة في يسار أعلى الشاشة

ثم يظهر لك الحقول التي لديك في التقرير ضع المؤشر داخل المربع ثم أضف

formula column للمجموعة عن الزر الموجود ظمن القائمة في اليسار

حدد على العنصر الجديد الذي أضفته وليكن اسمه cf_item ثم أذهب إلى خصائصة بالضغط على (f4) ثم غير نوعة إلى حرفي وارفع قيمته إلى 50 حرف

ثم أذهب إلى خاصية PL/SQL FORMULA

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

function CF_ITEM return char is
x varchar2(50);

    begin

  if :STORE_NAME=1 then
  	x:='الأدوية المخدرة';
  elsif
  	:STORE_NAME=2 then

x:=' الأدوية غير المحددة';
elsif
  	:STORE_NAME=3 then

x:=' الأدوية الطبيعية';	

elsif
  	:STORE_NAME=4 then

x:=' االحبوب';	

 else

x:=' غير محدد';	


    end if;
    return x;

end;

يمكنك زيادة الشروط حسب اللسته اللي عندك

بعدين ترجع للبرنامج وتظغط على layout model

وتحدد حقل STORE_NAME ثم تذهب إلى خصائصة ثم تذهب إلى الخاصية

source وتغيرها إلى cf_item

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

ارجوا اني وضحت لك ولو جزء يسير

تحياتي

اخوك

صالح

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

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