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

بتاريخ:

السلام عليكم....
أريد انا أعمل تقرير يحتوي على جدول فيه 20 سطر في حالة وجود بيانات يمكن تعبئتها وفي حالة عدم وجود تبقى هذه الأسطر فارغة فمن يعرف ذلك الرجاء مساعدتي وشكرا للجميع

بتاريخ:

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

بتاريخ:
  • كاتب الموضوع

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

بتاريخ:

يا أخي حياك الله بالسلام
ما فائدة قواعد البيانات هنا ؟؟ في مثل حالتك؟؟

بتاريخ:
  • كاتب الموضوع

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

بتاريخ:

الاخ الكريم
يوجد طريقة ممكن تجد اللي تبغاه يعني هذا اقتراح ممكن يوصلك للحل
انك تثبت عشرين سطر وعشرين field
وتعمل select مثلا للمفتاح الرئيسي من خلال ال query في
data model
ثم تعمل formula تعمل فيها احضار لباقي البايانات حسب رقم المنتج مثلا كالتالي

counter_c number;
cursor c is
select item,cose,item_name from items where item=:item;
begin counter_c:=0
for i in c loop
counter_c:=counter_c+1;
if counter_c =1 then
:cost1 :=i.cost;
:item_name1:=i.item_name;
elsif counter_c =2 then
:cost1 :=i.cost;
:item_name1:=i.item_name;
....

end if;
end loop;
return (null);
end;

بتاريخ:
  • كاتب الموضوع

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

الان انا عندي فاتورة الفاتورة مقسمة على أساس انه يدخل فيها 10 أصناف مثلا انا لما ادخل ال10 اصناف ما فيه مشكلة الأسطر بتطلع عادي لكن لو دخلت مثلا 5 اصناف بيطلع عندي في الفاتورة 5 أسطر والباقي يبقى أبيض

أنا اريد أن أن يطلع 10 أسطر ال5 فيهم بيانات الأصناف والخمسة الاخرين فارغين بذلك تطلع الفاتورة مسطرة

بتاريخ:

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

بتاريخ:

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

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

عزيزى اليك هذا الحل:

SELECT A.ITEM_NO,A.QTY FROM INVOICEV A WHERE
A.INVOICE_NO=:INVOICE_NO
UNION ALL
select 0,0 from (select invoice_no,count(*) invoice_lines from invoices group by invoice_no), looper
where loop_id > invoice_lines AND INVOICE_NO=:INVOICE_NO

يجب اضافة جدول looper به حقل واحد اسمه loop_id واذا كنت عايز عشرة اسطر يجب ادخال بيانات من واحد الى عشرة فى جدول LOOPER

هذا الحل انا شغال بيهو ومافيهو اى مشكلة

تم تعديل بواسطة المكابرابى

بتاريخ:

CREATE TABLE INVOICE
(
 INVOICE_NO  NUMBER(10),
 INVOICE_QUT NUMBER(10,3),
 CONSTRAINT PK_INVOICE PRIMARY KEY(INVOICE_NO)
)
/
INSERT INTO INVOICE VALUES(1,50);
INSERT INTO INVOICE VALUES(2,60);
INSERT INTO INVOICE VALUES(3,40);
INSERT INTO INVOICE VALUES(4,70);
COMMIT;
CREATE OR REPLACE VIEW TBL
AS
(
 SELECT 1 AS FLD FROM DUAL UNION 
 SELECT 2 AS FLD FROM DUAL UNION
 SELECT 3 AS FLD FROM DUAL UNION
 SELECT 4 AS FLD FROM DUAL UNION
 SELECT 5 AS FLD FROM DUAL UNION
 SELECT 6 AS FLD FROM DUAL UNION
 SELECT 7 AS FLD FROM DUAL UNION
 SELECT 8 AS FLD FROM DUAL UNION
 SELECT 9 AS FLD FROM DUAL UNION
 SELECT 10 AS FLD FROM DUAL
)
/

SELECT TBL.FLD,INV.INVOICE_NO, INV.INVOICE_QUT
FROM (SELECT ROWNUM AS RN,INVOICE.* FROM INVOICE ORDER BY INVOICE.INVOICE_NO) INV
 RIGHT JOIN TBL ON TBL.FLD = INV.RN
ORDER BY INV.INVOICE_NO



أو



لو كان هناك أكثر من أو 10 جداول في قاعدة البيانات ، يمكنك إستخدام الطريقة التالية :

SELECT TBL.RN,INV.INVOICE_NO, INV.INVOICE_QUT
FROM (SELECT ROWNUM AS RN,INVOICE.* FROM INVOICE ORDER BY INVOICE.INVOICE_NO) INV
 RIGHT JOIN (SELECT ROWNUM AS RN FROM TAB WHERE ROWNUM <= 10) TBL ON TBL.RN = INV.RN
ORDER BY INV.INVOICE_NO



أو مثلاً يمكنك إستخدام جداول أخري مثل ALL_TABLES أو USER_OBJECTS أو ALL_OBJECTS أو ..... الي آخرة

ودة هيكون أسهل بكثير من إنشاء عارض VIEW أو جدول TABLE يحمل مجموعة من السجلات









بالتوفيق

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

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

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

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

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

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.