Crystal reports SBO布局在草稿或未添加文件的情况下带来随机记录

Crystal reports SBO布局在草稿或未添加文件的情况下带来随机记录,crystal-reports,sap,Crystal Reports,Sap,我的布局很好,除了一个部分, 如果我们使用此布局查看或打印任何添加的文档(应收账款发票),它将响铃写入数据和记录。 但是,如果用户在将文档添加到系统之前单击“查看”或“打印”,或者如果文档保存为草稿,则:布局中将以非常随机的方式出现一条随机记录,这意味着如果关闭视图并再次打开它,将出现另一条与显示的记录不同的记录。 我想要的就像我想的一样简单,如果用户试图查看或打印未添加到系统中的文档,则显示空白页, 有什么帮助吗 下面是am在CR中使用的查询 SELECT ohem.[U_Employee

我的布局很好,除了一个部分, 如果我们使用此布局查看或打印任何添加的文档(应收账款发票),它将响铃写入数据和记录。 但是,如果用户在将文档添加到系统之前单击“查看”或“打印”,或者如果文档保存为草稿,则:布局中将以非常随机的方式出现一条随机记录,这意味着如果关闭视图并再次打开它,将出现另一条与显示的记录不同的记录。 我想要的就像我想的一样简单,如果用户试图查看或打印未添加到系统中的文档,则显示空白页,
有什么帮助吗

下面是am在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@} 

解决方案是使用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 ' ' 

“给写数据打电话”…@vwegert,不明白你的意思吗?这就是你写的,我也不明白…哈哈,输入错误,“带上正确的数据”,sry:)