SBO布局随机记录草案或未添加的文档

时间:2016-04-17 14:14:08

标签: crystal-reports sap

我的布局工作正常,除了一部分, 如果我们使用此布局来查看或打印任何添加的文档(AR发票),它将响应写入数据和记录。 但是如果用户在将文档添加到系统之前单击视图或打印,或者文档被保存为草稿,那么:随机记录将以非常随机的方式进入布局,这意味着如果关闭视图并再次打开它另一张不同于珍贵的记录将会出现。 正如我所想,如果用户试图查看或打印未添加到系统中的文档然后显示空白页,正在寻找的内容很简单,
有什么帮助吗?

这是我在CR中使用的查询

SELECT   ohem.[U_Employee_Code] as'Cashier',OUSR.USER_CODE, OUSR.U_NAME,OUDG.[Code],OUDG.Phone1,OUDG.Phone2, OINV.DocEntry,oinv.docnum,  OINV.DocType, OINV.DocStatus, OINV.InvntSttus, OINV.DocDate, OINV.DocDueDate, OINV.CardCode, nnm1.seriesname, 
         OINV.Address2, OINV.Printed, OINV.CardName, OINV.U_Address, OINV.NumAtCard, OINV.VatSum, OINV.DiscPrcnt, OINV.DiscSum, OINV.DocTotal, OINV.DocRate, OINV.u_deldate,
                      OINV.ReceiptNum, OINV.GroupNum, OINV.OwnerCode,OINV.JrnlMemo, OINV.VatPaid, OINV.Address2 AS Expr2, OINV.U_CUSTNAME1 as 'Customer Name' , OINV.U_PHONE1, OINV.ExepAmnt, OINV.ExepAmntSC, OINV.ExepAmntFC, OINV.VatDate,OINV.TotalExpns, 
                      OINV.PaidSum, OINV.OwnerCode, OINV.BillToOW, OINV.ShipToOW, OINV.RetInvoice, OINV.ReqName, OINV.Requester, INV1.ItemCode, INV1.Dscription, INV1.Quantity, inv1.PriceBefDi,
                      INV1.SubCatNum, INV1.ShipDate, INV1.Price, INV1.Currency, INV1.Rate, INV1.DiscPrcnt AS Expr1, INV1.LineTotal, INV1.OpenSum, INV1.VatPrcnt, INV1.PriceAfVAT, 
                      INV1.unitMsr, OINV.TaxDate, INV1.GTotal, OINV.Comments, OCTG.PymntGroup, OINV.LicTradNum, INV1.BaseDocNum, INV1.LineVat, OINV.WTSum, oinv.u_cancelled,
                      OCRN.CurrName, oslp.SlpName,OUDG.Phone1,OUDG.phone2,
        oinv.u_empid as'Sales man',OUDG.Phone1 as 'Branch Phone',OUDG.phone2 as 'Customer Support Phone',OINV.U_PHONE1 as 'Customer Phone',inv1.shipdate as 'Item Delivery Date',  OINV.TotalExpns AS 'FREIGHT CHARGES',OINV.U_Address as 'Customer Address',oinv.UpdateDate, OINV.DocEntry


FROM         OINV INNER JOIN
                      INV1 ON OINV.DocEntry = INV1.DocEntry INNER JOIN
                      OUSR ON OINV.UserSign = OUSR.USERID INNER JOIN
                      OCTG ON OINV.GroupNum = OCTG.GroupNum INNER JOIN
                      OCRN ON OINV.DocCur = OCRN.CurrCode inner join
                     oslp on oinv.SlpCode = oslp.SlpCode INNER JOIN
       OUDG ON OUSR.[DfltsGroup] = OUDG.[Code] inner join 
        nnm1 on OINV.series = nnm1.series LEFT JOIN 
                      OHEM on OUSR.[userId] = OHEM.[USERID]

                        where OINV.DocEntry = {?DocKey@} 

1 个答案:

答案 0 :(得分:0)

解决方案是使用ObjectId来确定源是系统文档还是草稿。这是它

if  {?ObjectId@} =13
SELECT   ohem.[U_Employee_Code] as'Cashier',OUSR.USER_CODE, OUSR.U_NAME,OUDG.[Code],OUDG.Phone1,OUDG.Phone2, OINV.DocEntry,oinv.docnum,  OINV.DocType, OINV.DocStatus, OINV.InvntSttus, OINV.DocDate, OINV.DocDueDate, OINV.CardCode, nnm1.seriesname, 
         OINV.Address2, OINV.Printed, OINV.CardName, OINV.U_Address, OINV.NumAtCard, OINV.VatSum, OINV.DiscPrcnt, OINV.DiscSum, OINV.DocTotal, OINV.DocRate, OINV.u_deldate,
                      OINV.ReceiptNum, OINV.GroupNum, OINV.OwnerCode,OINV.JrnlMemo, OINV.VatPaid, OINV.Address2 AS Expr2, OINV.U_CUSTNAME1 as 'Customer Name' , OINV.U_PHONE1, OINV.ExepAmnt, OINV.ExepAmntSC, OINV.ExepAmntFC, OINV.VatDate,OINV.TotalExpns, 
                      OINV.PaidSum, OINV.OwnerCode, OINV.BillToOW, OINV.ShipToOW, OINV.RetInvoice, OINV.ReqName, OINV.Requester, INV1.ItemCode, INV1.Dscription, INV1.Quantity, inv1.PriceBefDi,
                      INV1.SubCatNum, INV1.ShipDate, INV1.Price, INV1.Currency, INV1.Rate, INV1.DiscPrcnt AS Expr1, INV1.LineTotal, INV1.OpenSum, INV1.VatPrcnt, INV1.PriceAfVAT, 
                      INV1.unitMsr, OINV.TaxDate, INV1.GTotal, OINV.Comments, OCTG.PymntGroup, OINV.LicTradNum, INV1.BaseDocNum, INV1.LineVat, OINV.WTSum, oinv.u_cancelled,
                      OCRN.CurrName, oslp.SlpName,OUDG.Phone1,OUDG.phone2,
        oinv.u_empid as'Sales man',OUDG.Phone1 as 'Branch Phone',OUDG.phone2 as 'Customer Support Phone',OINV.U_PHONE1 as 'Customer Phone',inv1.shipdate as 'Item Delivery Date',  OINV.TotalExpns AS 'FREIGHT CHARGES',OINV.U_Address as 'Customer Address',oinv.UpdateDate

FROM         OINV INNER JOIN
                      INV1 ON OINV.DocEntry = INV1.DocEntry INNER JOIN
                      OUSR ON OINV.UserSign = OUSR.USERID INNER JOIN
                      OCTG ON OINV.GroupNum = OCTG.GroupNum INNER JOIN
                      OCRN ON OINV.DocCur = OCRN.CurrCode inner join
                     oslp on oinv.SlpCode = oslp.SlpCode INNER JOIN
          OUDG ON OUSR.[DfltsGroup] = OUDG.[Code] inner join 
           nnm1 on OINV.series = nnm1.series LEFT JOIN 
                      OHEM on OUSR.[userId] = OHEM.[USERID]

                  where OINV.DocEntry = {?DocKey@}
else select ' '