I have written for AP purchase order vender packing slip and invoice view same you can do for sales table in AR.
linking packing slip and invoice table use following join.
left join VendInvoicePackingSlipQuantityMatch Vinvpackqm on Vinvpackqm.PACKINGSLIPSOURCEDOCUMENTLINE =vpst.SOURCEDOCUMENTLINE --and Vinvpackqm.DATAAREAID = pt.DATAAREAID
left join VENDINVOICETRANS vinvt on vinvt.SOURCEDOCUMENTLINE = Vinvpackqm.INVOICESOURCEDOCUMENTLINE
------------------------- and you can also use following relation if you want to show purch line data like qty line number etc. -----------------------------------------
VENDPACKINGSLIPTRANS.INVENTTRANSID = Purchline.INVENTTRANSID
VENDINVOICETRANS.INVENTTRANSID = Purchline.INVENTTRANSID
select pt.PURCHID 'po num',pt.OrderAccount 'vendor code',pt.PURCHNAME'Vendor Name' ,pl.LINENUMBER ,pl.ITEMID,pl.NAME,pl.PURCHQTY,
vpst.PACKINGSLIPID, vpst.QTY 'PACKINGSLIP recv qaty',vinvt.INVOICEID,vinvt.QTY 'inv Qty',vinvt.LINEAMOUNT
from PURCHTABLE pt
inner join PURCHLINE pl on pt.PURCHID = pl.PURCHID and pt.DATAAREAID = pl.DATAAREAID
left join VENDPACKINGSLIPTRANS vpst on vpst.INVENTTRANSID = pl.INVENTTRANSID and vpst.DATAAREAID = pt.DATAAREAID
left join VendInvoicePackingSlipQuantityMatch Vinvpackqm on Vinvpackqm.PACKINGSLIPSOURCEDOCUMENTLINE =vpst.SOURCEDOCUMENTLINE --and Vinvpackqm.DATAAREAID = pt.DATAAREAID
left join VENDINVOICETRANS vinvt on vinvt.SOURCEDOCUMENTLINE = Vinvpackqm.INVOICESOURCEDOCUMENTLINE
where pt.DATAAREAID='USMF' and pt.PURCHSTATUS <>'4' and pt.DOCUMENTSTATE <>'0' and Pt.PURCHID='000021' and vpst.QTY<>0
----------------------------------------- 2nd query---------------------------------
select pt.PURCHID 'po num',pt.OrderAccount 'vendor code',pt.PURCHNAME'Vendor Name' ,pl.LINENUMBER ,pl.ITEMID,pl.NAME,pl.PURCHQTY,
vpst.PACKINGSLIPID, vpst.QTY 'PACKINGSLIP recv qaty',vinvt.INVOICEID,vinvt.QTY 'inv Qty',vinvt.LINEAMOUNT
from PURCHTABLE pt
inner join PURCHLINE pl on pt.PURCHID = pl.PURCHID and pt.DATAAREAID = pl.DATAAREAID
left join VENDPACKINGSLIPTRANS vpst on vpst.INVENTTRANSID = pl.INVENTTRANSID and vpst.DATAAREAID = pt.DATAAREAID --and vpst.ITEMID = pl.ITEMID --and vpst.VENDPACKINGSLIPJOUR= vpsj.RECID and vpst.DATAAREAID = pt.DATAAREAID
left join VENDINVOICETRANS vinvt on vinvt.INVENTTRANSID =pl.INVENTTRANSID and vinvt.DATAAREAID = pt.DATAAREAID -- vinvt.RECID = vpst.InvoiceTransRefRecId
where pt.DATAAREAID='USMF' and pt.PURCHSTATUS <>'4' and pt.DOCUMENTSTATE <>'0' and Pt.PURCHID='000021' and vpst.QTY<>0