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

بتاريخ:

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

قمت بتصميم تقرير لطباعة الفواتير لكن في مشكلة بيظهر لي جميع الفواتير انا عايز لما اعمل رن يظهر بس اخر فاتورة يعني أعلى رقم فاتورة

حاولت عملت في الكيوري ماكس بيظهر خطأ انها غير مقبولة ممكن احد يساعدني كيف اعملها

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

 

بتاريخ:

Group by

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

مش فاهم والله استاذ اسلام ممكن توضح كلامك شوية حضرتك

بتاريخ:

عذرا ،
جرب
Select *from table where date_column=
(Select max( date_column) from same_table)

بتاريخ:

Or

select * from (select * from table order by date_colum desc ) where rownum = 1 ;

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

ألف شكر استاذ اسلام للتجاوب

طيب انا عامل عدد 2 tables

invoice_desc وفيه رقم الفاتورة وتاريخها وما إلى ذلك

Invoice_det وفيه اسماء الأصناف وأرقامها والمبالغ

والشاشات في الفورم مكونة من الجدولين دول انا عايز لما التقرير اعمله رن يظهر معي آخر فاتورة فقط

والله ولي التوفيق

بتاريخ:

السلام عليكم

ليه ما تعمل التقرير Dynamic وتضيف Parameter عبارة عن رقم الفاتورة ؟

أو

تعمل من رقم فاتورة إلى رقم فاتورة (2 Parameters).

بتاريخ:

ألف شكر استاذ اسلام للتجاوب

طيب انا عامل عدد 2 tables

invoice_desc وفيه رقم الفاتورة وتاريخها وما إلى ذلك

Invoice_det وفيه اسماء الأصناف وأرقامها والمبالغ

والشاشات في الفورم مكونة من الجدولين دول انا عايز لما التقرير اعمله رن يظهر معي آخر فاتورة فقط

والله ولي التوفيق

 

نصيحة من أخ ,

حط لنفسك منهج وامشى عليه بنظام .

الطبيعى انك تذاكر بالترتيب ده

sql

pl/sql

forms

reports

 - بالنسبة للريبورت فهو فى الاول وفى الاخر قايم على جملة select , يعنى الطبيعى تذاكر sql الاول .

- اقرأ عن الـ Joins واتمكن شوية من الـ sql عامة وبعدين ادخل على التقارير .

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

الله يسعدك أستاذي كلامك حقيقة شكراً لك اخوي

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

شاكر لك حبيبي

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

بس لو أمكن تساعدني في هذه والله اكون لك من الشاكرين

بتاريخ:

select * from ( Select table1.* , table2.* from table1 , table2

where table1.pk = table.fk

order by table1.date_column )

where rownum = 1

 

الى كتبته ده اسمه Inline View , اقرأ عنه بعد ما تقرأ عن الـ Joins

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

الله يسعدك دنيا وآخره ياااااااااااارب غالي والله

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

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

وقدرت اعمل جلب لتفاصيل الفاتورة مينوال انا المشكلة عندي في اني لما اعمل برنت يطبع معايا بيانات اخر فاتورة 

في اي تريجر يعمل الحاجة دي؟ أو اي طريقة اخرى

بتاريخ:

مبدأيا بس : احنا متفقين انك بتكتب في الـ Report Builder ؟

- ورينى الى انت كتبته .

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

 

SELECT ALL INVOICEDESC.INVOICE_DATE, INVOICEDESC.CUSTOMER_NAME, 

INVOICEDESC.TOTAL, INVOICEDESC.DISCOUNT, 

INVOICEDET.QTY, INVOICEDET.UNIT_PRICE, INVOICEDET.ITEM_NAME, 

INVOICEDET.ITEM_NO, INVOICEDET.INVOICE_NO FROM INVOICEDET, INVOICEDESC  

WHERE (INVOICEDET.INVOICE_NO = INVOICEDESC.INVOICE_NO)  

ORDER BY INVOICEDESC.INVOICE_NO

بيجي معايا كل التفاصيل لكل الفواتير انا عايز تفتح معايا اخر فاتورة فقط مش كل الفواتير في شكل صفحات انا عايزه يفتح معايا الصفحة التي تحتوى على آخر فاتورة فقط

 

بتاريخ:

قارن ده بقى باى حل من الى قلتهملك هتلاقى ملوش علاقة .
2- ليه مش بتستخدم max(invoice_id) مع group by ؟

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

فكرت فيها والله وعملتها بس مظبتش معايا

حتى عملت 

WHERE ROWNUM=(SELECT MAX(ROWNUM) FROM INVOICE_DESC)

بس مظبتش معايا معلشي حاول تساعدني فيها الله يسعدك

بتاريخ:

SELECT * FROM

(

SELECT INVOICEDESC.INVOICE_DATE, INVOICEDESC.CUSTOMER_NAME, 
INVOICEDESC.TOTAL, INVOICEDESC.DISCOUNT, 
INVOICEDET.QTY, INVOICEDET.UNIT_PRICE, INVOICEDET.ITEM_NAME, 
INVOICEDET.ITEM_NO, INVOICEDET.INVOICE_NO FROM INVOICEDET, INVOICEDESC  
WHERE (INVOICEDET.INVOICE_NO = INVOICEDESC.INVOICE_NO)  
ORDER BY INVOICEDESC.INVOICE_NO
)
WHERE ROWNUM = 1 ;
 
----------------------------------------------------------------------
SELECT MAX(INVOICEDESC.INVOICE_DATE), INVOICEDESC.CUSTOMER_NAME, 
INVOICEDESC.TOTAL, INVOICEDESC.DISCOUNT, 
INVOICEDET.QTY, INVOICEDET.UNIT_PRICE, INVOICEDET.ITEM_NAME, 
INVOICEDET.ITEM_NO, INVOICEDET.INVOICE_NO FROM INVOICEDET, INVOICEDESC  
WHERE (INVOICEDET.INVOICE_NO = INVOICEDESC.INVOICE_NO)  

GROUP BY

INVOICEDESC.CUSTOMER_NAME, 

INVOICEDESC.TOTAL, INVOICEDESC.DISCOUNT, 
INVOICEDET.QTY, INVOICEDET.UNIT_PRICE, INVOICEDET.ITEM_NAME, 
INVOICEDET.ITEM_NO, INVOICEDET.INVOICE_NO FROM INVOICEDET, INVOICEDESC  
WHERE (INVOICEDET.INVOICE_NO = INVOICEDESC.INVOICE_NO

------------------------------------------------------------------------------------------

SELECT MAX(INVOICEDESC.INVOICE_ID), INVOICEDESC.INVOICE_DATE, INVOICEDESC.CUSTOMER_NAME, 
INVOICEDESC.TOTAL, INVOICEDESC.DISCOUNT, 
INVOICEDET.QTY, INVOICEDET.UNIT_PRICE, INVOICEDET.ITEM_NAME, 
INVOICEDET.ITEM_NO, INVOICEDET.INVOICE_NO FROM INVOICEDET, INVOICEDESC  
WHERE (INVOICEDET.INVOICE_NO = INVOICEDESC.INVOICE_NO)  

GROUP BY

INVOICEDESC.CUSTOMER_NAME, INVOICEDESC.INVOICE_DATE,

INVOICEDESC.TOTAL, INVOICEDESC.DISCOUNT, 
INVOICEDET.QTY, INVOICEDET.UNIT_PRICE, INVOICEDET.ITEM_NAME, 
INVOICEDET.ITEM_NO, INVOICEDET.INVOICE_NO FROM INVOICEDET, INVOICEDESC  
WHERE (INVOICEDET.INVOICE_NO = INVOICEDESC.INVOICE_NO
بتاريخ:

اول واحد هو الحل ، والباقى مثال على group by
اقرأ عنها

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

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

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

ياخي رسل بالباراميترات من الفورم اللي انت بتريدها مثلا رقم الفاتوره وتاريخها بحيث يكون اسم الباراميترات المرسله من الفورم هي نفسها الموجوده في التقرير وظيف الشرط في التقرير في الحدث  after report

مثلا

function AfterPForm return boolean is
begin
 
 
:M_WHERE := :M_WHERE || ' AND INV_NO=P_INV_NO' ;
 
:M_WHERE := :M_WHERE || ' AND INV_DATE =P_INV_DATE' ;
 
 
  return (TRUE);
end;
بحيث يكون اسماء الباراميترات متساويه في الفورم والريبورت  مثلا رقم الفاتوره p_inv_no 
P_INV_DATEوتاريخ الفاتوره 
وايضا تضيف باراميتر اسمه مثلا m_where
 وتخلي القيمه الافتراضيه له من خصائصه 1=1
وتعمل بعد جمله السؤال where &m_where
وبتضبط معك انشاء الله
بس بشرط انك في زر استدعاء التقرير ترسل رقم الفاتوره وتاريخها من الفورم عن طريق التعليمه التاليه
 
DECLARE
C PARAMLIST ;
--USER_NAME USERS.USER_CODE%TYPE;
BEGIN
 
 
C:=CREATE_PARAMETER_LIST('C_SOC');
 
 
 
ADD_PARAMETER(C,'P_INV_DATE',TEXT_PARAMETER,:INVOIC.INV_DATE);
ADD_PARAMETER(C,'P_INV_NO',TEXT_PARAMETER,:INVOIC.INV_NO);
 
 
 
ADD_PARAMETER(C,'PARAMFORM',TEXT_PARAMETER,'YES');
ADD_PARAMETER(C,'MAXIMIZE',TEXT_PARAMETER,'YES');
                                                   
           
    RUN_PRODUCT(REPORTS,'d:\REPORT\invoic.REP',ASYNCHRONOUS,RUNTIME,FILESYSTEM,C);
    DESTROY_PARAMETER_LIST©;
    RETURN;
END;
على افتراض ان حقل رقم الفاتوره اسمه
INV_NO 
واسم البلوك :INVOIC
 
.INV_DATEوكذلك حقل تاريخ الفاتوره 
 
 
على افتراض ان التقرير اسمه INVOIC ومخزن في الامتداد D:\REPORT
 
                           

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

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

 

SELECT ALL INVOICEDESC.INVOICE_DATE, INVOICEDESC.CUSTOMER_NAME, 
INVOICEDESC.TOTAL, INVOICEDESC.DISCOUNT, 
INVOICEDET.QTY, INVOICEDET.UNIT_PRICE, INVOICEDET.ITEM_NAME, 
INVOICEDET.ITEM_NO, INVOICEDET.INVOICE_NO FROM INVOICEDET, INVOICEDESC  
WHERE (INVOICEDET.INVOICE_NO = INVOICEDESC.INVOICE_NO)  
WHERE (INVOICEDESC.INVOICE_NO) = :p1
ORDER BY INVOICEDESC.INVOICE_NO
 
 
بيجي معايا كل التفاصيل لكل الفواتير انا عايز تفتح معايا اخر فاتورة فقط مش كل الفواتير في شكل صفحات انا عايزه يفتح معايا الصفحة التي تحتوى على آخر فاتورة فقط

 

 

أخي هتضيف اليطر الي اضفتهولك بالكود السابق

و في User Parameter تضيف بارامتر اسمه P1

 

و تضيف السطر دا في زر الطباعة 

ADD_PARAMETER(PARAMID,'p1',TEXT_PARAMETER,:INVOICEDESC.INVOICE_NO);

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

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

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

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

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

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

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.