الانتقال إلى المحتوى

ارجو المساعدة فى شجرة الحسابات


AHM3ORA3

Recommended Posts

السلام عليكم ورحمة الله و بركاته
انى سعيد لانى مشارك فى هذا المنتدى الجميل و اجمل ما فى هذا المنتدى روح التعاون الشديدة بين مشاركية و ارجو من الله دوام التوفيق لهذا المنتدى العربى الجميل .
أريد عمل جدول يحتوى على شجرة الحسابات و يكون ترتبها عند عمل امر order by لهذا الجدول على النحو التالى : كمثال
1111
11112
112
1121
11211
11212
113
1131
1135
11351
11352
وهكذ
ولكن عندما أستخدم امر order by لهذا الجدول يكون الناتج
112 - 113- 1111 -1121 -1131 -1135 -11112 - 11211 -11212 -11351 11352
أرجو الافادة يا جماعة حيث انة شئ محير جداً

رابط هذا التعليق
شارك

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

declare
CURSOR parentaccount_CURSOR IS
SELECT ACCNUMBER
FROM ACCOUNTS
WHERE ACCNUMBER=:parentaccount;
parentaccount_RECORD parentaccount_CURSOR%ROWTYPE;
maxorder number;
digit number;
v number;
v_show_alert_a number;
v_p number :=0;
begin
--------------------
v:= length(:accnumber);
open parentaccount_cursor;
while v_p=0 loop
fetch parentaccount_cursor into parentaccount_record;
exit when parentaccount_cursor%notfound;
if parentaccount_record.ACCNUMBER=:parentaccount then
v_p:=parentaccount_record.ACCNUMBER;
end if;
end loop;
close parentaccount_cursor;
---------------------
if v_p<>0 or v=1 then
select nvl(max(accnumber),0) into maxorder
from accounts;
if maxorder=0 then digit:=1;
ELSE
digit:=length(maxorder);
end if;
v:= length(:accnumber);
if maxorder >= 1 then
if digit<v then
update accounts
set sortorder=sortorder *10;
digit:=digit+1;
end if;
:sortorder:=:accnumber * power(10,digit-v);
end if;
if v=1 then
if digit=1 then :sortorder:=:accnumber;
else :sortorder:=:accnumber * power(10,digit-v);

end if;
end if;
commit;
if :accname is not null then

exit_form(no_commit);
end if;
else v_show_alert_a:= show_alert('ALERT_CHEC_p');
end if;

end;
رابط هذا التعليق
شارك

السلام عليكم ورحمة الله وبركاته،،
بكل بساطة غير نوع البيانات إلى
Varcahr2
حتترتب معاك ولا تقول ان هناك مشاكل من استخدام Varchar2 في رقم الحساب فأنا أستخدمه منذ سنوات

رابط هذا التعليق
شارك

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

create table cust (cust_cd1 number (2),  
                  cust_cd2 number (2),
                  cust_cd3 number (2),       
                  cust_cd4 number (4),  
                  cust_nam varchar2 (50),                   
constraint cust_key primary key (cust_cd1,cust_cd2,cust_cd3,cust_cd4));


وتمثل تلك الاكواد الاربعة
1 ـ كود رئيسي
2 ـ كود مساعد
3 ـ كود فرعي
4 ـ كود تحليلي
يمكنك اضافة اي عدد من الاكواد في حالة رغبتك زيادة عدد المستويات من أربعة الى خمسة او ستة وستقوم بالتكويد بالشكل التالي مثال :ـ
01 الاصول
0101 الاصول الثابتة
0102 الاصول المتدوالة
وهكذا
ويمكنك ان تقوم بعمل Order by على الحقل cust_cd1 وسيظهر كل كود في ترتيبه المنطقي انشالله
وتفضل بقبول فائق تحياتي
اخوك
حسن الحسيني
مصر ـ الزقازيق

رابط هذا التعليق
شارك

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

رابط هذا التعليق
شارك

  • بعد 1 سنة...

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

ياريت جزاك الله خيرا لوترسلي له هذة الشجرة حيث حاليا ااصمم برنامج بحيث تكون الشجرة حتى 11 مستوى وعدد الخانات لرقم الحساب لايزيد عن 15 خانة [email protected]
رابط هذا التعليق
شارك

  • بعد 3 سنة...

ياخوان

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

ارجوا الرد علي وارجوا ارسال الرد على الايميل لانني لاستطيع ان ارجع الى هذاه الصفحة لمعرفة الرد

[email protected]

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

تم تعديل بواسطة YAHYATHH
رابط هذا التعليق
شارك

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

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

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

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

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

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