الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

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

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

كيف تتحول الأرقام إلى كتابة

Featured Replies

بتاريخ:

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

أريد أن أعرف كيف يتم تحوي الأرقام إلى كتابة في التقارير مثال

يوجد لدي الرقم 99 درجة أريده أن يتحول في حقل جواره إلى ( تسعة وتسعون درجة )هكذا

وأشكر القائمين على المنتدى وخاصة الأستاذ أسامه على جهوده.

بتاريخ:

اخي الكريم
تحويل الارقام الى كتابة تعتمد على مبدأ تحليل الرقم نفسه واظن الاخوان طرحوا امثلة تفصيلية بهذا الموضوع ولكن هنا سوف نستعرض الشرح بطريقة تسهل فهمها
فاستخدام الفورميلا هي الاساس فأنت تخرج اجمالي رقم
وتقوم بارسال الرقم او قيمة الحقل الرقمي وبعد ذلك يستدعي فانكشن تحويل الارقام حيث يتم تجزئة الرقم لمعرفة اكبر خانة عشرات او مئات او الوف ينتمي اليها الرقم بعد ذلك يتم تحويل هذه الخانات وحسب خانة الرقم
لو فرضنا اننا ادخلنا الرقم 129 فسوف يتم استدعاء الفانكشن الخاصة بالتحويل ومعرفة هل يوجد بها خانات عشرية ام لا ويتم ذلك بضرب الرقم ب 100 ثم عمل TRUNC له وهي فانكشن تستخدم للقطع
ثم يقوم باستدعاء الفانكشن NUMBER_DESC وهي فانكشن نحن نقوم بعملها وهي تحتوي على
المعادلات لتقسيم هذا الرقم حيث الرقم موجود بخنة المئات والعشرات والاحاد
مرفق تقرير او مثال عملي
واي استفسار ممكن استعراضه بنفس الموضوع
طبعا اول ما تشغل التقرير يطلب يوزر نيم وباسوورد ادخل اي يوزر نيم عندك
بعدها اعمل رن وادخل الرقم المراد تحويله




واستخدم خاصية البحث

CON_REP.zip

بتاريخ:

أخي العزيز اليك هذا الاجراء انا كتبته:-

FUNCTION read_number(p_no number) RETURN char IS
ln number;
v_desc varchar2(100);
v_desc1 varchar2(100);
v_desc2 varchar2(100);
begin
ln:=length(to_char(p_no));
if ln=1 then
select decode(p_no,
1,'واحد',
2,'إثنان',
3,'ثلاثة',
4,'أربعة',
5,'خمسة',
6,'ستة',
7,'سبعة',
8,'ثمانية',
9,'تسعة'
) into v_desc from dual;
elsif ln=2 and p_no<20 then
select decode(p_no,
10,'عشرة',
11,'أحد عشر',
12,'إثنا عشر',
13,'ثلاثة عشر',
14,'أربعة عشر',
15,'خمسة عشر',
16,'ستة عشر',
17,'سبعة عشر',
18,'ثمانية عشر',
19,'تسعة عشر'
) into v_desc from dual;
elsif ln=2 then
select decode(p_no,
20,'عشرون',
30,'ثلاثون',
40,'أربعون',
50,'خمسون',
60,'ستون',
70,'سبعون',
80,'ثمانون',
90,'تسعون',
null
) into v_desc from dual;
if v_desc is null then
v_desc1:=read_number(to_number(substr(to_char(p_no),2,1)));
v_desc2:=read_number(to_number(substr(to_char(p_no),1,1)||'0'));
v_desc:=v_desc1||' و '||v_desc2;
end if;
elsif ln=3 then
select decode(p_no,
100,'مائة',
200,'مائتان',
300,'ثلاثمائة',
400,'أربعمائة',
500,'خمسمائة',
600,'ستمائة',
700,'سبعمائة',
800,'ثمانمائة',
900,'تسعمائة',
null
) into v_desc from dual;
if v_desc is null then
v_desc1:=read_number(to_number(substr(to_char(p_no),2,2)));
v_desc2:=read_number(to_number(substr(to_char(p_no),1,1)||'00'));
v_desc:=v_desc2||' و '||v_desc1;
end if;
elsif ln=4 then
select decode(p_no,
1000,'ألف',
2000,'ألفان',
3000,'ثلاثة آلاف',
4000,'أربعة آلاف',
5000,'خمسة آلاف',
6000,'ستة آلاف',
7000,'سبعة آلاف',
8000,'ثمانية آلاف',
9000,'تسعة آلاف',
null
) into v_desc from dual;
if v_desc is null then
v_desc1:=read_number(to_number(substr(to_char(p_no),2,3)));
v_desc2:=read_number(to_number(substr(to_char(p_no),1,1)||'000'));
v_desc:=v_desc2||' و '||v_desc1;
end if;
elsif ln=5 then
v_desc1:=read_number(to_number(substr(to_char(p_no),1,2)))||' ألف ';
v_desc2:=read_number(to_number(substr(to_char(p_no),3,3)));
v_desc:=v_desc1||' و '||v_desc2;
elsif ln=6 then
v_desc1:=read_number(to_number(substr(to_char(p_no),1,3)))||' ألف ';
v_desc2:=read_number(to_number(substr(to_char(p_no),4,3)));
v_desc:=v_desc1||' و '||v_desc2;
elsif ln=7 then
select decode(p_no,
1000000,'مليون',
2000000,'مليونان',
3000000,'ثلاثة ملايين',
4000000,'أربعة ملايين',
5000000,'خمسة ملايين',
6000000,'ستة ملايين',
7000000,'سبعة ملايين',
8000000,'ثمانية ملايين',
9000000,'تسعة ملايين',
null
) into v_desc from dual;

if v_desc is null then
v_desc1:=read_number(to_number(substr(to_char(p_no),2,6)));
v_desc2:=read_number(to_number(substr(to_char(p_no),1,1)||'000000'));
v_desc:=v_desc2||' و '||v_desc1;
end if;
elsif ln=8 then
v_desc1:=read_number(to_number(substr(to_char(p_no),1,2)))||' مليوناً ';
v_desc2:=read_number(to_number(substr(to_char(p_no),3,6)));
v_desc:=v_desc1||' و '||v_desc2;
elsif ln=9 then
v_desc1:=read_number(to_number(substr(to_char(p_no),1,3)))||' مليون ';
v_desc2:=read_number(to_number(substr(to_char(p_no),4,6)));
v_desc:=v_desc1||' و '||v_desc2;
elsif ln=10 then
select decode(p_no,
1000000000,'مليار',
2000000000,'ملياران',
3000000000,'ثلاثة ملايارات',
4000000000,'أربعة ملايارات',
5000000000,'خمسة ملايارات',
6000000000,'ستة ملايارات',
7000000000,'سبعة ملايارات',
8000000000,'ثمانية ملايارات',
9000000000,'تسعة ملايارات',
null
) into v_desc from dual;
if v_desc is null then
v_desc1:=read_number(to_number(substr(to_char(p_no),1,1)||'000000000'));
v_desc2:=read_number(to_number(substr(to_char(p_no),2,9)));
v_desc:=v_desc1||' و '||v_desc2;
end if;
elsif ln=11 then
v_desc1:=read_number(to_number(substr(to_char(p_no),1,2)))||' مليار ';
v_desc2:=read_number(to_number(substr(to_char(p_no),3,9)));
v_desc:=v_desc1||' و '||v_desc2;
elsif ln=12 then
v_desc1:=read_number(to_number(substr(to_char(p_no),1,3)))||' مليار ';
v_desc2:=read_number(to_number(substr(to_char(p_no),4,9)));
v_desc:=v_desc1||' و '||v_desc2;
end if;
if substr(v_desc,length(v_desc)-3+1,3)= ' و 'then
v_desc:=substr(v_desc,1,length(v_desc)-3);
end if;

return v_desc;
exception when others then
return 'not define ';
end;
---------------------------
وهذه الدالة نستدعيها من الدالة التالية:-

Function CF_READ_AMOUNTFormula return Char is
INT_NUMBER NUMBER(10):=TRUNC(:CHECK_AMOUNT);
FRC_NUMBER NUMBER(5,2):=(:CHECK_AMOUNT - INT_NUMBER)*100;
begin
IF FRC_NUMBER IS NULL OR FRC_NUMBER=0 THEN
RETURN 'فقط '||READ_NUMBER(INT_NUMBER)||' ريال'||' لا غير';
ELSE
RETURN 'فقط '||READ_NUMBER(INT_NUMBER)||' ريال و '||FRC_NUMBER||' هللة'||' لا غير';
END IF;
end;

بتاريخ:

السلام عليكم
هذه اول مشاركة لي و اشكر كل القائمين على المنتدي
و اشكر كل المشاركين و الذين ينفعون الناس بعلمهم و لا يبخلون عليهم به
و كان لي رأي في موضوع تحويل الاعداد الى حروف منطوقة او مكتوبة
و قد عملتها بعدة اشكال و لكن هناك طريقة سهلة و بسيطة
و هي انشاء جدول نخزن به الرقم و مدلوله بالحروف ليس كل الارقام طبعا و لكنها تقريبا مثل ما فعل conector
من 1 إلى 10 و من 11 إلى 20 و 30و 40 و50و .........90 ثم
100و200 و هكذا
و لا داعي من استعمال 1000 لانني سوف استعمل نفس الطريقة مع كتابة رقم الف بجانب الارقام الموجودة في الافات
و مليون و ستكون ان شاء الله بسيطة و سهلة
اذا اردت ان تعرفوا الطريقة و الكود بالشرح المفصل فانا تحت امركم لعل الله يجعله في ميزان حسناتي

بتاريخ:

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

ومرحبا بك بيننا مرة اخرى
http://www.araboug.org/ib/index.php?showtopic=13959

اخوك
اسامة

  • بعد 4 شهور...
بتاريخ:

ما شاء الله عليك اخي connector

الله يوفقك ويخليك

تحياتي

  • بعد 11 سنة...
بتاريخ:

الفان وتسع عشر

  • بعد 6 سنة...
بتاريخ:
في ٢٧‏/٥‏/٢٠٠٦ at 09:15, hogoz قال:

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

أريد أن أعرف كيف يتم تحوي الأرقام إلى كتابة في التقارير مثال

يوجد لدي الرقم 99 درجة أريده أن يتحول في حقل جواره إلى ( تسعة وتسعون درجة )هكذا

وأشكر القائمين على المنتدى وخاصة الأستاذ أسامه على جهوده.

 

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.