الانتقال إلى المحتوى
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

بتاريخ:

الاعضاء الكرام
عندي فاتوره وحقل للمجموع اريد حقل ثاني الى جانب المجموع يكون فيه المجموع بس حرفيا وليس رقم مثال
حقل المجموع =10000 اريد يكون في الحقل الثاني : عشره الاف ريال فقط لاغير
جزاكم الله خير هذا الشي الي ناقص في مشروعي فقط

بتاريخ:

أخوووي هذا الشي ,,, صعب نسبيا اذا أردت اللغة العربية

ولكن بالانجليزي متاح في أوراكل بشكل طبيعي ,,,

.
.
هذه الموضوع أسمه "التفقيط"

أبحث و بالتووفيق لك

بتاريخ:

بسم الله الرحمن الرحيم
قمت بعمل مثال لك إن شاء الله تستفيد منه

DECLARE
a0 varchar2(10):='واحد';
A VARCHAR2(10):='إثنين';
B VARCHAR2(10):='ثلاثه';
C VARCHAR2(10):='إربعه';
D VARCHAR2(10):='خمسه';
BEGIN

IF :ONE = 1 THEN
:two:=(a0);


ELSIF :ONE = 2 THEN
:TWO:=(A);
ELSIF :ONE = 3 THEN
:TWO:=(B);
ELSIF :ONE = 4 THEN
:TWO:=©;
ELSIF :ONE = 5 THEN
:TWO:=(D);
end if;
end;

تم تعديل بواسطة eslam4444

بتاريخ:

السلام عليكم
راجع هذا الرابط:

http://www.araboug.org/ib/index.php?showtopic=35979&st=0&p=165871&fromsearch=1entry165871

موفق.

بتاريخ:

أخي الكيم جري الحل:
package body Faqat is

-- Private type declarations
type Spelled_Table is TABLE OF VARCHAR2(30) INDEX BY BINARY_INTEGER;
type Qualifiers_Table is TABLE OF Qualifier INDEX BY BINARY_INTEGER;

-- Private variable declarations
Zero_Spelled VARCHAR2(100);
From_1_To_19 Spelled_Table;
From_20_To_90 Spelled_Table;
From_100_To_900 Spelled_Table;
All_Qualifiers Qualifiers_Table;
Main_Qualifiers Qualifiers_Table;

-- Function and procedure implementations
PROCEDURE Set_Zero_Spelled (Spelled_Amount VARCHAR2) IS
BEGIN
Zero_Spelled := Spelled_Amount;
END;

FUNCTION Get_Token_Qualifier (Token IN VARCHAR2, Token_Qualifier Qualifier) RETURN varchar2 IS
BEGIN
-- Cases of 0, 1, and 2 are handled best by the spell function itself
IF (TO_NUMBER(Token) > 2 AND TO_NUMBER(Token) < 11) THEN
RETURN (Token_Qualifier.Plural );
ELSE
RETURN (Token_Qualifier.Singular );
END IF;
END;


FUNCTION Spell_Token (Token IN VARCHAR2, Token_Qualifier Qualifier) RETURN varchar2 IS
U NUMBER(1); -- Units
T NUMBER(1); -- Tens
H NUMBER(1); -- Hundreds
Spelled VARCHAR2(100) DEFAULT NULL;

BEGIN
U := TO_NUMBER(SUBSTR(Token,3,1));
T := TO_NUMBER(SUBSTR(Token,2,1));
H := TO_NUMBER(SUBSTR(Token,1,1));

-- Added for qualifiers only
IF (TO_NUMBER(Token) = 2) THEN
RETURN (Token_Qualifier.Two );
END IF;
-- Added for qualifiers only
IF (TO_NUMBER(Token) = 1) THEN
RETURN (Token_Qualifier.Singular);
END IF;
-- Added for qualifiers only
IF (TO_NUMBER(Token) = 0) THEN -- No qualifiers for zeros
RETURN NULL;
END IF;

IF (H <> 0) THEN
Spelled := From_100_To_900(H);
END IF;

IF (U=0) AND (T=0) THEN -- Multiples of a hundred case 100,200,...
RETURN (Spelled || ' ' || Get_Token_Qualifier(Token, Token_Qualifier));
END IF;

IF (H <> 0) THEN
Spelled := Spelled || ' æ';
END IF;

IF (T = 1) THEN
Spelled := Spelled || From_1_To_19(T*10+U);

RETURN (Spelled || ' ' || Get_Token_Qualifier(Token, Token_Qualifier));
END IF;

IF (U = 0) THEN
Spelled := Spelled || From_20_To_90(T);
RETURN (Spelled || ' ' || Get_Token_Qualifier(Token, Token_Qualifier));
END IF;

Spelled := Spelled || From_1_To_19(U);

IF (T=0) THEN
RETURN (Spelled || ' ' || Get_Token_Qualifier(Token, Token_Qualifier));
END IF;

Spelled := Spelled || ' æ' || From_20_To_90(T);

RETURN (Spelled || ' ' || Get_Token_Qualifier(Token, Token_Qualifier) );
END;


FUNCTION Get_Faqat (Input_Number IN NUMBER) RETURN varchar2 IS
Int_Token VARCHAR2(30) DEFAULT NULL; -- Integer token
Dec_Token_H VARCHAR2(30) DEFAULT NULL; -- Decimal token to hundred
Dec_Token_T VARCHAR2(30) DEFAULT NULL; -- Decimal token Thousand
Tokens_Count NUMBER;
Int_Pad_Count NUMBER;
Dec_Pad_Count NUMBER;
Spelled_Token VARCHAR2(1024) DEFAULT NULL;
Result VARCHAR2(1024) DEFAULT NULL;

BEGIN
IF (Input_Number=0) THEN
RETURN Zero_Spelled;
END IF;

IF Input_Number > 999999999999.999 THEN
RETURN ('***NUMBER TOO LARGE***');
END IF;

IF Input_Number < 0 THEN
RETURN ('***NEGATIVE NUMBER***');
END IF;

IF Input_Number IS NULL THEN
RETURN (NULL);
END IF;

Spelled_Token := TO_CHAR(Input_Number, '000000000000.000');
Result := NULL;

Int_Token := SUBSTR (Spelled_Token, 2, 12); -- L.E.
Dec_Token_H := '0' || SUBSTR (Spelled_Token, 15, 2); -- P.T.
Dec_Token_T := '00' || SUBSTR (Spelled_Token, -1, 1); -- one-tenth P.T.

Tokens_Count := LENGTH(Int_Token)/3; -- This is 4 of course

for i in 1..(Tokens_Count-1)
loop
Spelled_Token := Spell_Token(SUBSTR(Int_Token, (i-1)*3+1, 3), All_Qualifiers(Tokens_Count-i));
IF (Result IS NOT NULL) THEN
IF (Spelled_Token IS NOT NULL) THEN
Result := Result || ' æ' || Spelled_Token;
END IF;
ELSE
Result := Spelled_Token;
END IF;
end loop;

-- L.E.
Spelled_Token := Spell_Token(SUBSTR(Int_Token, (Tokens_Count-1)*3+1, 3), Main_Qualifiers(1));
IF (Result IS NOT NULL) THEN
IF (Spelled_Token IS NULL) THEN
Result := Result || ' ' || Main_Qualifiers(1).Singular; -- 1000, 1000000,---
ELSE
Result := Result || ' æ' || Spelled_Token;
END IF;
ELSE
Result := Spelled_Token;
END IF;

-- P.T.
Spelled_Token := Spell_Token(SUBSTR(Dec_Token_H, 1, 3), Main_Qualifiers(2));
IF (Result IS NOT NULL) THEN
IF (Spelled_Token IS NOT NULL) THEN
Result := Result || ' æ' || Spelled_Token;
END IF;
ELSE
Result := Spelled_Token;
END IF;

-- One-Tenth P.T.
Spelled_Token := Spell_Token(SUBSTR(Dec_Token_T, 1, 3), Main_Qualifiers(3));
IF (Result IS NOT NULL) THEN
IF (Spelled_Token IS NOT NULL) THEN
Result := Result || ' æ' || Spelled_Token;
END IF;
ELSE
Result := Spelled_Token;
END IF;

RETURN (Result || ' ÝÞØ áÇ ÛíÑ ');
END;


BEGIN
-- Initialization
Zero_Spelled := 'ÕÝÑ';

From_1_To_19(1) := 'æÇÍÏ';
From_1_To_19(2) := 'ÇËäÇä';
From_1_To_19(3) := 'ËáÇËÉ';
From_1_To_19(4) := 'ÇÑÈÚÉ';
From_1_To_19(5) := 'ÎãÓÉ';
From_1_To_19(6) := 'ÓÊÉ';
From_1_To_19(7) := 'ÓÈÚÉ';
From_1_To_19(8) := 'ËãÇäíÉ';
From_1_To_19(9) := 'ÊÓÚÉ';
From_1_To_19(10) := 'ÚÔÑÉ';
From_1_To_19(11) := 'ÃÍÏÚÔÑ';
From_1_To_19(12) := 'ÇËäÇÚÔÑ';
From_1_To_19(13) := 'ËáÇËÉÚÔÑ';
From_1_To_19(14) := 'ÃÑÈÚÉÚÔÑ';
From_1_To_19(15) := 'ÎãÓÉÚÔÑ';
From_1_To_19(16) := 'ÓÊÉÚÔÑ';
From_1_To_19(17) := 'ÓÈÚÉÚÔÑ';
From_1_To_19(18) := 'ËãÇäíÉÚÔÑ';
From_1_To_19(19) := 'ÊÓÚÉÚÔÑ';

From_20_To_90(1) := NULL;
From_20_To_90(2) := 'ÚÔÑæä';
From_20_To_90(3) := '臂辊';
From_20_To_90(4) := 'ÃÑÈÚæä';
From_20_To_90(5) := 'ÎãÓæä';
From_20_To_90(6) := 'ÓÊæä';
From_20_To_90(7) := 'ÓÈÚæä';
From_20_To_90(8) := 'ËãÇäæä';
From_20_To_90(9) := 'ÊÓÚæä';

From_100_To_900(1) := 'ãÇÆÉ';
From_100_To_900(2) := 'ãÇÆÊÇä';
From_100_To_900(3) := 'ËáÇËãÇÆÉ';
From_100_To_900(4) := 'ÃÑÈÚãÇÆÉ';
From_100_To_900(5) := 'ÎãÓãÇÆÉ';
From_100_To_900(6) := 'ÓÊãÇÆÉ';
From_100_To_900(7) := 'ÓÈÚãÇÆÉ';
From_100_To_900(8) := 'ËãÇäãÇÆÉ';
From_100_To_900(9) := 'ÊÓÚãÇÆÉ';

All_Qualifiers(1).Singular := 'ÃáÝ';
All_Qualifiers(1).Two := 'ÃáÝÇä';
All_Qualifiers(1).Plural := 'ÂáÇÝ';

All_Qualifiers(2).Singular := 'ãáíæä';
All_Qualifiers(2).Two := 'ãáíæäÇä';
All_Qualifiers(2).Plural := 'ãáÇííä';

All_Qualifiers(3).Singular := 'ãáíÇÑ';
All_Qualifiers(3).Two := 'ãáíÇÑÇä';
All_Qualifiers(3).Plural := 'ãáíÇÑÇÊ';

Main_Qualifiers(1).Singular := 'ÑíÇá';
Main_Qualifiers(1).Two := 'ÑíÇáÇä';
Main_Qualifiers(1).Plural := 'ÑíÇáÇÊ';

Main_Qualifiers(2).Singular := 'åááå';
Main_Qualifiers(2).Two := 'åááÊÇä';
Main_Qualifiers(2).Plural := 'åááÇÊ';

Main_Qualifiers(3).Singular := ' ';
Main_Qualifiers(3).Two := ' ';
Main_Qualifiers(3).Plural := ' ';



PACKAGE FAQAT IS
-- Author : Mohammad M. Fareed
-- Modified : 04/02/2001 04:06:53 ?
-- Modified by : Mohammad Fareed
-- Purpose : To display the spelled amount in arabic of a number

-- Private type declarations
TYPE Qualifier IS RECORD
(
Singular VARCHAR2(30),
Two VARCHAR2(30),
Plural VARCHAR2(30)
);

-- Public function and procedure declarations
FUNCTION Get_Faqat (Input_Number NUMBER) RETURN VARCHAR2;
PROCEDURE Set_Zero_Spelled (Spelled_Amount VARCHAR2);

PRAGMA RESTRICT_REFERENCES (Get_Faqat, WNDS, WNPS);
PRAGMA RESTRICT_REFERENCES (Set_Zero_Spelled, WNDS);
end Faqat;



function CF_COUNTFormula return Number is

X NUMBER :=0;
begin

X:=X+1;
RETURN(X);
end;


function CF_tafqeetFormula return Char is
begin
return(faqat.Get_Faqat(:SumNET_AMOUNTPerReport));
end;


و بلاخر استعمل اخر فنكشين

END Faqat;

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

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

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

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

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

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.